运行命令
问题描述:
我具有以下为一个简单的类(堆栈)代码:运行命令
#lang racket
(define stackClass%
(class object%
(super-new)
(init-field (mystack '(A B C)))
(define/public (push n)
(set! mystack (cons n mystack)))
(define/public (pop)
(cond [(empty? mystack) #f]
[else (define res (car mystack))
(set! mystack (rest mystack))
res]))
(define/public (show)
mystack)
mystack ; I want to output mystack at time of creation of class object; not working here;
)); end class;
; USAGE:
(define sc (new stackClass%))
(send sc push 1)
(send sc push 2)
(send sc show)
(send sc pop)
(send sc show)
输出:
'(2 1 A B C)
2
'(1 A B C)
我要输出mystack在创建对象的类的时间。但是,它在这段代码中不起作用,尽管没有显示错误。
使用以下代替(init-field (mystack '(A B C)))
也于事无补:
(init (L '(A B C)))
(define mystack L)
我怎么能运行在类创建时的一段代码?
答
是的,你的代码运行良好。另外,“mystack”正在被评估。但是,它不产生输出。如果你想显示一些东西,你可以使用其中一个功能。尝试在代码中用(println mystack)
代替mystack
。
我知道我错过了很简单的事情。谢谢。 – rnso