#lang方案和#lang球拍之间的差异

时间:2011-08-22 19:18:12

标签: scheme racket

我猜测#lang球拍是一种方案的方言,具有更多的开箱结构和常用功能,也许更具教学意义。 #lang对#lang方案有什么好处?

最好(甚至可能)在球拍中使用#lang方案来遵循“计算机程序的结构和解释”甚至“如何设计程序”的所有内容。 HtDP是#lang racket特定的吗?

无论用#lang方案编写什么代码,只要不包含库,就可以在鸡计划或任何主要翻译中使用?

提前致谢。

1 个答案:

答案 0 :(得分:31)

  1. 是的,#lang racket是球拍默认方言,有很多扩展名。

  2. 它不是扩展名的两个地方:if必须有一个else分支,而且对是不可变的(没有set-car!set-cdr!)。

    < / LI> 在名称更改之前
  3. #lang scheme使用了一段时间,现在#lang racket一直使用。但我们保持#lang scheme的兼容性(以及保留的各种scheme/---库,有时可能与racket/---对应的库不同)。没有理由在新代码中使用#lang scheme

  4. 要关注SICP,请不要使用其中任何一个 - 有SICP language可用(可与#lang sicp一起使用),最初由Neil Van Dyke编写,但现在保留在Racket中社区。

  5. 要关注HtDP,请不要使用其中任何一种,请使用学生语言。还有一些新的基于#lang的变体,如#lang htdp/bsl,但它们还没有完整的形状。 (并且HtDP #lang racket具体。)

  6. 不,Racket 非常与Chicken Scheme不同。你可能能够在两者中运行一些代码,但那些可能只是很小的玩具示例。