【发布时间】:2011-11-01 10:02:09
【问题描述】:
我猜#lang 球拍是一种方案方言,具有更多开箱即用的结构和通用功能,也许更具教学性。 #lang 球拍反对 #lang 方案有什么好处?
最好(甚至可能)在球拍中使用#lang 方案来遵循“计算机程序的结构和解释”甚至“如何设计程序”的所有内容。 HtDP 是特定于#lang 球拍的吗?
用#lang 方案编写的任何代码,只要不包含库,都可以在鸡方案或任何主解释器中使用?
提前致谢。
【问题讨论】:
我猜#lang 球拍是一种方案方言,具有更多开箱即用的结构和通用功能,也许更具教学性。 #lang 球拍反对 #lang 方案有什么好处?
最好(甚至可能)在球拍中使用#lang 方案来遵循“计算机程序的结构和解释”甚至“如何设计程序”的所有内容。 HtDP 是特定于#lang 球拍的吗?
用#lang 方案编写的任何代码,只要不包含库,都可以在鸡方案或任何主解释器中使用?
提前致谢。
【问题讨论】:
是的,#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 社区维护。
要遵循 HtDP,不要使用任何这些,使用学生语言。还有新的基于#lang 的变体,例如#lang htdp/bsl,但它们的形状还不完整。 (而且 HtDP 不是 #lang racket 特定的。)
不,球拍非常与小鸡计划不同。您也许可以在两者中运行一些代码,但这些可能只是很小的玩具示例。
【讨论】:
raco exe 和raco distribute。
#lang scheme 与#lang racket 几乎完全相同——它与鸡计划、SICP 或 HtDP 的相似性并不比#lang racket 的相似。