Я использую знаменитую книгу «Как разрабатывать программы». Точнее, первое издание (физическое у меня есть). В 6-й главе есть несколько упражнений со структурами. В одном из них вы ...
1 ответ
Racket, являясь своего рода схемой, является языком, ориентированным на выражения < / em>. Это означает, что последнее выражение в составном выражении является значением всего выражения.
Это включает в себя цитируемый символ. Его значение, символ, является возвращаемым значением.
Вызов функции (next current-color)
переключает цвет светофора и возвращает символ, указывающий новый цвет светофора:
;; next : symbol -> symbol
Ваш код меняет цвет и возвращает true
(согласно спецификации для switch
):
;; switch : symbol symbol -> true
;; your-next : symbol -> true
Это меняет способ использования функции next
. С дизайном книги мы можем написать
....
(let loop ( ... )
.....
(let ((current-color (next current-color)))
......
))
....
В вашем дизайне такой естественный стиль циклического кода невозможен.
общее замечание: эти спецификации известны как типы, и мы позволяем типам руководить использованием функций в нашем коде. Они помогают нам увидеть, что входит, а что гаснет, поэтому мы можем соединить соответствующие провода , так сказать.
Похожие вопросы
Новые вопросы
types
Типы и системы типов используются для обеспечения уровней абстракции в программах.