我想从列表中获取一个运算符,该列表将是一个过程而不是一个符号。
例如,假设我要构建此列表:'(- a 3)
using cons
。
如果要放的话((car '(- a 3)) 5 3)
,它应该打印出来2
。但是,由于处于-
列表内,因此获取car
列表的仍然将是符号,而不是实际的运算符。
这里要注意的是,我必须使用它cons
来构建(- a 3)
列表(并打印出来)。我的教授将car
在它的前面加上5 3
应该打印的末尾2
。
所以我现在有这个:(cons '- (cons 'a (cons '3 '())))
,它打印出来了(- a 3)
。
如果我添加car
和5 3
:((car (cons '- (cons 'a (cons '3 '())))) 5 3)
我得到一个错误说not a procedure
。
有人可以提供一些指导吗?我不确定如何进行。
然后使用:(cons - (cons 'a (cons 3 '())))
。也就是说,不要引用-
。这将使用该-
过程而不是符号。
> ((car (cons - (cons 'a (cons 3 '())))) 5 3)
2
可以将其写为准引用列表,也可以将其写为速记:†
> ((car `(,- a 3)) 5 3)
2
†在准引用基准中(即使用反引号代替引号),任何前面带有逗号的内容均不引用。(内部没有逗号的准引用与引用相同。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句