2011-02-01 9 views
1

Exercise 35.4.2 from HtDPには、GUIを実装し、コールバック関数を呼び出す「削除」というボタンがあります。ここにあります:ラケットの副作用を `set! 'を使って無視する方法は?

(define (cb-remove x) 
    ((lambda (name result) 
    (cond 
     [(number? result) (remove-name name address-book)] 
     [else (draw-message msg "Not found")])) 
    (string->symbol (text-contents label-name)) 
    (lookup (string->symbol (text-contents label-name)) address-book))) 

これを実行すると、次のメッセージが表示されます。button-callback: result of type <Boolean> expected, your function produced #<set!-result>。問題は、アドレス帳を変更するためにset!に電話しなければならないことです。ただし、set!の結果は(void)であり、ブール型と組み合わせることはできません。どうすればこの問題を回避できますか?どんな洞察もありがとう。

答えて

2

シンプル:

(begin (set! foo bar) #t) 
+0

ブリリアント!それは私が探していたものでした。ありがとうございました! – Greenhorn

+0

@Greenhorn:問題ありません:) – leppie

関連する問題