В В упражнении 35.4.2 из HtDP я реализовал графический интерфейс и имею кнопку «Удалить», которая вызывает функцию обратного вызова.Вот оно:
(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)
, который нельзя объединить с логическим типом.Как я могу предотвратить эту проблему?Спасибо за понимание.