【发布时间】:2018-07-19 07:31:44
【问题描述】:
我必须将整个方案程序作为列表传递给我的用户定义函数/谓词“is-s-list?”它标识作为列表传递的方案程序是否是符号列表。
但是,我不明白如何将方案程序作为列表...?
我试过这个:
(define P '()) ....i.e a null list
(append P "my entire program")
现在,我在函数 "is-s-list?" 中执行 car/cdr 时遇到了一些问题
我应该如何分析程序的组件以确定程序是否是符号列表?而且,一个程序真的只是一个方案符号的列表吗?那么在使用 (symbol? (car P)) 的检查结束后我应该返回#f 吗?
我想做的是这样的:
在像 scheme 这样的语言中,我们将代码表示为符号列表。
写一个谓词“is-s-list?”它将另一个程序作为一个列表,如果它是一个符号列表,则返回 true。
【问题讨论】:
-
方案中的所有内容都是一个列表。 “符号列表”是什么意思?
-
准确一点。 13 不是列表。 "abc" 不是列表。
-
我认为我们需要更多的上下文。我猜您正在学习编程语言课程,并且您的讲师正在选择使用“引用”的功能将带括号的字符串转换为列表。我进一步猜测您被要求编写一个函数来确定任意值是否是字符串列表。这一切都正确吗?
-
如果你使用
'引用你的程序,除非你在上面调用eval,否则它不会执行,但认为一些列表数据与'(ab(de))没有太大区别。 -
在 MIT-scheme 中:如果你定义了一个类似的表达式(定义一个'(.....)),那么如果解释器接受“定义”,那么 a 将是一个正确的列表 -表达。除了数字、字符串和#f、#t 和'() 之外,任何不是对的东西都将是符号。现在:你能举一个“is-s-list”的例子吗?将返回“#f”?