考虑这个列表:((3(1(215)(85)))(110)),我想得到它的头部和身体。
程序“car”在这里工作,正如我想象的那样:
(car'((3(1(2 15)(8 5)))(1 10)))-返回其第一个项目(列表)
(3(1(2 15)(8 5)))
但是过程“cdr:返回包含另一个列表的列表。。。
(cdr'((3(1(215)(85)))(110)))
((110))
我想要(110)而不是它Scheme是否有一些过程,或者您知道一些方法来实现它(比如检查前两个字符和后两个字符是否是方括号)?
谢谢你们:)

最佳答案

基本上你有carcadrcaddr为了得到第一个,第二个,第三个元素。。。
列表是一个链表,其中cons的值为car,其余的值为cdr'(a b c d)'(a . (b . (c . (d))))相同,您可以使用(cons a (cons b (cons c (cons d '()))))进行设置cdr的值将是(b . (c . (d))),而car的值将再次是b因此(car (cdr '(a . (b . (c . (d))))))就是bScheme对2..5进行了缩写,所以您只需查看中间的char和knw,它与(cadr '(a . (b . (c . (d)))))

关于scheme - 方案-无外部括号的cdr,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23019080/

10-10 13:49