Scheme 球拍不允许使用列表和配对

Scheme 球拍不允许使用列表和配对,scheme,racket,Scheme,Racket,我下载了Racket并遵循其手册,之前我曾与Plt Scheme合作,除此之外,作者说也是一样的;我发现了一些不那么简单的东西 当我把指令 (列出“红色”“绿色”“蓝色”) 并执行该程序,出现: (列出“红色”“绿色”“蓝色”) 而不是“(“红”“绿”“蓝”);这种情况过去常常发生在计划中。我试过所有的语言(初学者、中级、高级),什么都没试过;为什么呢 如果我想使用cons,比如: (第12条) 我得到的错误是: 缺点:第二个参数必须是列表,但收到1和2 那为什么也是这样呢?通常在方案中,该表达

我下载了Racket并遵循其手册,之前我曾与Plt Scheme合作,除此之外,作者说也是一样的;我发现了一些不那么简单的东西

当我把指令

(列出“红色”“绿色”“蓝色”)

并执行该程序,出现:

(列出“红色”“绿色”“蓝色”)

而不是“(“红”“绿”“蓝”);这种情况过去常常发生在计划中。我试过所有的语言(初学者、中级、高级),什么都没试过;为什么呢

如果我想使用cons,比如:

(第12条)

我得到的错误是:

缺点:第二个参数必须是列表,但收到1和2

那为什么也是这样呢?通常在方案中,该表达式打印为“(1 2)


有什么帮助吗?

看起来您正在使用其中一种教学语言。尝试以下操作:在窗口的左下角,选择“从源代码确定语言”,并在编辑器中将其作为第一行:

#lang racket
#!r6rs    ; Scheme standard R6RS language
#!r5rs    ; Scheme standard R5RS language (legacy)
#!racket  ; Racket's own Scheme dialect != Scheme (racket can mean "A dirty scheme")

不过要小心,Racket和Scheme是不同的语言,与w.r.t.标准Scheme有一些不同。当你尝试变异一个
cons
单元格时,首先会有一个惊喜出现,请参考此建议。还要记住,在Racket
if
中,表达式必须同时具有结果和替代项。请务必查看此文档以了解更多差异。

看起来您正在使用其中一种教学语言。尝试以下操作:在窗口的左下角,选择“从源代码确定语言”,并在编辑器中将其作为第一行:

#lang racket
#!r6rs    ; Scheme standard R6RS language
#!r5rs    ; Scheme standard R5RS language (legacy)
#!racket  ; Racket's own Scheme dialect != Scheme (racket can mean "A dirty scheme")

不过要小心,Racket和Scheme是不同的语言,与w.r.t.标准Scheme有一些不同。当你尝试变异一个
cons
单元格时,首先会有一个惊喜出现,请参考此建议。还要记住,在Racket
if
中,表达式必须同时具有结果和替代项。请务必查看此项以了解更多差异。

好的,我找到了一个很好的方法,在程序开始时,我应该放:

#lang scheme
然后根据@OscarLopez的建议,从源代码中确定语言


现在至少我可以在Racket中使用Scheme了

好的,我找到了一个很好的方法,在程序开始时,我应该说:

#lang scheme
然后根据@OscarLopez的建议,从源代码中确定语言


现在至少我可以在Racket中使用Scheme了。首先,DrRacket支持多种语言,因此可能是您没有选择正确的语言,或者您选择的语言的默认设置不令人满意。我将介绍如何更改langauge以及如何更改其外观:

选择编程语言 正如您所提到的,在drracketide的左下角有一个下拉菜单,您可以在其中进行一些选择。按该键选择之前已选择的语言之一,或使用“选择语言”选项选择其他语言

另一个非常方便的选项是选择“从源代码确定语言”,并将其中一个作为第一行:

#lang racket
#!r6rs    ; Scheme standard R6RS language
#!r5rs    ; Scheme standard R5RS language (legacy)
#!racket  ; Racket's own Scheme dialect != Scheme (racket can mean "A dirty scheme")
所以DrRacket就像一个IDE,支持多种编程语言,但它们主要是Scheme方言。在被称为Racket之前,它被称为DrScheme,该语言被称为PLT Scheme,默认语言为
#lang Scheme
<代码>#!scheme已弃用,可以删除,以便为将来版本的racket选择其他兼容程序

在按Run之前,实际更改不会发生。您将在“交互”窗口中看到新语言正在生效

更改REPL显示计算表达式的方式 当您在“交互”窗口中按RUN或expressions时,在“交互”窗口中打印的内容(如REPL)不会被输出,因此它不在标准范围内

您可以从相同的左下角选择菜单中选择REPL显示结果的方式。选择“选择语言”,不做任何选择,然后按左下角的“显示详细信息”。你有三种不同的方式来表现它。以下是不同的选项:

Input expression    Constructor      Quasiquote      write
(cons 1 2)          (cons 1 2)      `(1 . 2)         (1 . 2)
(list 1 2)          (list 1 2)      `(1 2)           (1 2)
add1                add1            add1             #<procedure:add1>
Input表达式构造函数quasikote write
(cons12)(cons12)`(1.2)(1.2)
(表12)(表12)`(1 2)(1 2)
地址1地址1地址1地址1#

请务必了解,这只是REPL中的表示,实际上在程序中打印某些内容需要
显示
或类似的打印过程才能获得真正的输出。

首先,DrRacket支持大量语言,因此可能是您没有选择正确的语言,或者您选择的默认设置不令人满意。我将介绍如何更改langauge以及如何更改其外观:

选择编程语言 正如您所提到的,在drracketide的左下角有一个下拉菜单,您可以在其中进行一些选择。按该键选择之前已选择的语言之一,或使用“选择语言”选项选择其他语言

另一个非常方便的选项是选择“从源代码确定语言”,并将其中一个作为第一行:

#lang racket
#!r6rs    ; Scheme standard R6RS language
#!r5rs    ; Scheme standard R5RS language (legacy)
#!racket  ; Racket's own Scheme dialect != Scheme (racket can mean "A dirty scheme")
所以DrRacket就像一个IDE,支持多种编程语言,但它们主要是Scheme方言。在被称为Racket之前,它被称为DrScheme,该语言被称为PLT Scheme,默认语言为
#lang Scheme
<代码>#!scheme
已弃用,可以删除,以便为将来版本的racket选择其他兼容程序

在按Run之前,实际更改不会发生。您将在“交互”窗口中看到新语言正在生效

更改REPL显示计算表达式的方式 当您在“交互”窗口中按RUN或expressions时,在“交互”窗口(如REPL)中打印的内容未显示