如何在计划中向后打印字符串?

时间:2010-08-01 23:39:45

标签: scheme racket

我知道如果我按照以下方式编写我的方案代码并输入(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)

4 个答案:

答案 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)))))