我猜测#lang球拍是一种方案的方言,具有更多的开箱结构和常用功能,也许更具教学意义。 #lang对#lang方案有什么好处?
最好(甚至可能)在球拍中使用#lang方案来遵循“计算机程序的结构和解释”甚至“如何设计程序”的所有内容。 HtDP是#lang racket特定的吗?
无论用#lang方案编写什么代码,只要不包含库,就可以在鸡计划或任何主要翻译中使用?
提前致谢。
答案 0 :(得分:31)
是的,#lang racket
是球拍默认方言,有很多扩展名。
它不是扩展名的两个地方:if
必须有一个else分支,而且对是不可变的(没有set-car!
和set-cdr!
)。
#lang scheme
使用了一段时间,现在#lang racket
一直使用。但我们保持#lang scheme
的兼容性(以及保留的各种scheme/---
库,有时可能与racket/---
对应的库不同)。没有理由在新代码中使用#lang scheme
。
要关注SICP,请不要使用其中任何一个 - 有SICP language可用(可与#lang sicp
一起使用),最初由Neil Van Dyke编写,但现在保留在Racket中社区。 p>
要关注HtDP,请不要使用其中任何一种,请使用学生语言。还有一些新的基于#lang
的变体,如#lang htdp/bsl
,但它们还没有完整的形状。 (并且HtDP 不 #lang racket
具体。)
不,Racket 非常与Chicken Scheme不同。你可能能够在两者中运行一些代码,但那些可能只是很小的玩具示例。