获得LISP中缺点的值未列出



我正在在方案(LISP)中发挥作用,其中我需要与它相反的列表,如下:

(cons list (cdr (reverse list)))

考虑我有此列表'(0 1 2),所需的输出将是:

(0 1 2 1 0)

但我得到:

((0 1 2) 1 0)

是否有任何函数返回列表的值,而不是列表本身?

您应该在cons:http://en.wikipedia.org/wiki/cons

上阅读

cons将将一个元素与另一个元素配对。如果将元素与列表配对,则在列表的开头添加此元素。在您的情况下,您要配对的元素与相反的列表本身就是一个列表。请参阅Wiki页面上的示例。

您想要的是append,因为您想将这两个列表加在一起。

像这样附加它:

(define (mirror ls)
    (if (null? (cdr ls))
        ls
        (let ((x (car ls)))
            (append 
                (list x)
                (mirror (cdr ls))
                (list x)))))

希望它有帮助:)

相关内容

  • 没有找到相关文章

最新更新