我在猜测#lang球拍是一种具有更多开箱即用的结构和常用功能的方案,也许会更具教育意义。 #lang拍与#lang方案相比有什么特别之处?#lang方案和#lang球拍之间的差异
在球拍中使用#lang方案是否最好(或者甚至可能)遵循“计算机程序结构和解释”的所有内容,甚至是“如何设计程序”。 HtDP是#lang球拍特有的?
无论使用#lang方案编写的代码,只要没有包含库,都可以用在鸡计划或任何主要的解释器中?
在此先感谢。
我在猜测#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,请不要使用其中的任何一种 - 尼尔范戴克写的一种很好的语言,详见web page。
要遵循HtDP,请不要使用任何这些,请使用学生语言。还有像#lang htdp/bsl
这样的基于#lang
的新变种,但它们并不完整。 (和HTDP是不#lang racket
具体。)
没有,球拍是鸡方案非常不同。你也许可以在两者中运行一些代码,但那些代码可能只是小玩具的例子。
非常感谢你的信息Eli,为了教学目的,我会完全用球拍去完成,鸡的很酷的计划是编译到C部分。 – orlybg
有了Racket,就没有太多需要编译到C的地方 - 它使用一个即时编译器,表现相当不错。如果您担心创建独立的可执行文件而不是速度,那么也有办法做到这一点 - 请参阅'raco exe'和'raco distribute'。 –
只是为了强调一件事:'#lang scheme'几乎和'#lang racket'完全一样 - 它与Chicken Scheme,或者SICP或HtDP没有比'#lang racket'更类似。 –