Scheme 如何使用DrRacket遵循简单方案手册
我希望能够操纵句子,这样我就可以将它们作为输入,并根据诸如单个字母之类的内容返回输出。例如,ends-e命令将返回以“e”结尾的所有单词: 不幸的是,“e”是一个字符串,(只有优秀的人才会年轻)是一个句子。Scheme无法将句子理解为数据类型(因为它不是数据类型)。如何将用户输入的带有引号和括号的句子转换成我可以操纵并以相同的句子格式返回的句子 这本书:概述了一些可以操作句子和单词的函数,但在底部贴了一个脚注说“就像本书中所有处理单词和句子的程序一样……本章中的程序是Scheme扩展的一部分。” 如何获得这些扩展?我在后面的一章中看到了,但是我对语言的理解太初级,无法理解如何自己创建这些过程 这些是当我试图将“(h)转换为scheme可以理解的数据类型时得到的错误消息Scheme 如何使用DrRacket遵循简单方案手册,scheme,dr.racket,Scheme,Dr.racket,我希望能够操纵句子,这样我就可以将它们作为输入,并根据诸如单个字母之类的内容返回输出。例如,ends-e命令将返回以“e”结尾的所有单词: 不幸的是,“e”是一个字符串,(只有优秀的人才会年轻)是一个句子。Scheme无法将句子理解为数据类型(因为它不是数据类型)。如何将用户输入的带有引号和括号的句子转换成我可以操纵并以相同的句子格式返回的句子 这本书:概述了一些可以操作句子和单词的函数,但在底部贴了一个脚注说“就像本书中所有处理单词和句子的程序一样……本章中的程序是Scheme扩展的一部分。”
Welcome to DrRacket, version 6.12 [3m].
Language: sicp, with debugging; memory limit: 128 MB.
> (symbol->string '(h))
. . symbol->string: contract violation
expected: symbol?
given: (mcons 'h '())
> (list->string '(h))
. . list->string: contract violation
expected: (listof char?)
given: '(h)
> (string->list '(h))
. . string->list: contract violation
expected: string?
given: (mcons 'h '())
> (string->symbol '(h))
. . string->symbol: contract violation
expected: string?
given: (mcons 'h '())
>
这意味着我不能问方案(h)是否等于“h”。我甚至不能问它(h)是否等于(h)
在DrRacket中有一个
1.从包管理器
#简单方案
(se(butlast(bf“this”))
“世界”)
; ==> (你好,“世界”)
我有点困惑,因为和是两本不同的书。SICP在他们的书中有自己指定的程序,在DrRacket中有一种特定的语言,也适用于这种Scheme风格。我写了一封信
Welcome to DrRacket, version 6.12 [3m].
Language: sicp, with debugging; memory limit: 128 MB.
> (symbol->string '(h))
. . symbol->string: contract violation
expected: symbol?
given: (mcons 'h '())
> (list->string '(h))
. . list->string: contract violation
expected: (listof char?)
given: '(h)
> (string->list '(h))
. . string->list: contract violation
expected: string?
given: (mcons 'h '())
> (string->symbol '(h))
. . string->symbol: contract violation
expected: string?
given: (mcons 'h '())
>
> (eq? '(h) "h")
#f
> (eq? '(h) '(h))
#f
>