我注意到人们经常表现得像Stack Overflow上的Scheme和Racket一样(以及网络上的其他地方.例如,关于Scheme的问题经常在Racket中生成解决方案.如果你看一下标记方案的问题,你会看到他们的答案的一半开始#lang racket.
这两种语言真的如此相似,以至于它们可以被认为是平等的吗?Racket只是Scheme的扩展(即Scheme代码总是在Racket解释器上运行)?
我想强调一个事实,即这不是一个论战,只是一个学习Scheme编程语言的人的问题.
Eli*_*lay 14
Racket与Scheme非常接近,实际上直到两年前它还被称为PLT Scheme.
但是,在Racket中使用的默认语言在几个地方与Scheme不同(最值得注意的是它具有不可变对).这不是什么新东西:它被称为PLT Scheme时有类似的差异.它也不是Racket独有的东西:Scheme标准是如此简约,以至于他们定义的语言是不切实际的,这意味着所有 Scheme实现都添加了自己的扩展.在Racket案例中另一个重点是定义新方言非常容易 - 而且Racket实施严格的R5RS方言(严格意味着它不是非常有用)并且它还实现了R6RS方言.
不,他们不平等.但是,Racket实现可以运行标准的Scheme代码.方案由标准定义.球拍不是.如果您想要可移植性,可以编写R6RS代码并使用Racket执行它.
Racket不是Scheme的超集或子集.
| 归档时间: |
|
| 查看次数: |
2536 次 |
| 最近记录: |