Ответ 1
-
Да,
#lang racket
- диалект по умолчанию для ракеток, с множеством расширений. -
Два места, где он не является расширением:
if
должен иметь ветку else, и пары являются неизменяемыми (нетset-car!
Иset-cdr!
). -
#lang scheme
использовалась некоторое время до смены имени, и теперь#lang racket
используется последовательно. Но мы сохранили#lang scheme
для совместимости (а также различные библиотекиscheme / ---
, которые хранятся и иногда могут отличаться от аналоговracket / ---
). Нет причин использовать#lang scheme
в новом коде. -
Чтобы следовать SICP, не используйте ни один из них - есть язык
#lang sicp
(можно использовать с#lang sicp
), первоначально написанный Нилом Ван Дайком, но теперь поддерживаемый в сообществе Racket. -
Чтобы следовать HtDP, не используйте ни один из них, используйте языки учеников. Есть также новые варианты
#lang
-based, такие как#lang htdp/bsl
но они еще не в полной форме. (И HtDP не специфичен для ракет#lang racket
.) -
Нет, Ракетка очень отличается от Куриной Схемы. Возможно, вы сможете запустить некоторый код в обоих, но это, вероятно, будут лишь крошечные игрушечные примеры.