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

orl*_*ybg 21 scheme racket

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

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

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

提前致谢.

Eli*_*lay 31

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

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

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

  4. 要关注SICP,请不要使用任何这些 - Neil Van Dyke编写的语言很好,请参阅其网页了解详细信息.

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

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

  • 只是这里要强调一点:'#lang scheme`几乎完全一样`#lang racket` - 它不是任何更类似于鸡计划,或SiC颗粒或HTDP比`#lang racket`是. (5认同)