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

问题描述 投票:21回答:1

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

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

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

提前致谢。

scheme racket
1个回答
31
投票
  1. 是的,#lang racket是球拍默认方言,有很多扩展名。
  2. 它不是扩展的两个地方:if必须有一个else分支,并且对是不可变的(没有set-car!set-cdr!)。
  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非常不同。您可能能够在两者中运行一些代码,但这些可能只是微小的玩具示例。
© www.soinside.com 2019 - 2024. All rights reserved.