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)
であり、ブール型と組み合わせることはできません。どうすればこの問題を回避できますか?どんな洞察もありがとう。
ブリリアント!それは私が探していたものでした。ありがとうございました! – Greenhorn
@Greenhorn:問題ありません:) – leppie