我知道如果我按照以下方式编写我的方案代码并输入(word'(a b c)),它将以相同的顺序排列。你能告诉我是否有办法可以按相反的顺序打印出来。 Ex-(列出'c'b'a)。 它需要是用户的输入我以相反的顺序打印出来。所以,我不能称之为(反向'(a b c))。因为用户输入可以是'(x y z)。 非常感谢。
(define(word x)
(if(null?x)x
(cons(car x)(word(cdr x)))))
(字'(a b c))
(列出'a'b'c)
答案 0 :(得分:6)
(reverse '(a b c))
会反转你的字符串。但是我怀疑这可能是功课,你应该编写自己的reverse
函数。
如果是这样,你可以撤销一个空列表吗?如果你有一个列表并且与列表的其余部分相反,你能得到整个列表的反向吗?你能看到如何制作一个从这些片段中反转列表的函数吗?
答案 1 :(得分:2)
这是你想要的吗?
(list->string (reverse (string->list "market")))
"tekram"
答案 2 :(得分:1)
提示:cons
创建一个由第一个参数后跟第二个参数组成的列表。现在,您正在使用它创建第一个元素的列表,后跟应用于其余元素的相同函数,并按照与原来相同的顺序创建列表。
如果您创建了一个应用于其余元素的相同函数的列表,然后是第一个元素,您认为会发生什么?
答案 3 :(得分:1)
感谢大家的帮助和帮助。我找到了办法。只是在案件中有其他人在寻找。
(define (word lis)
(if (null? lis)
'()
(append (word (cdr lis))
(list (car lis)))))