1

我正在编写一个应该接受两个值的函数。第一个值应该根据输入的值创建一个最多五个数字的列表。第二个值应该n根据输入的数字获取列表并对其进行轮换。

程序交互示例。

> (my_rotate_n 1,2)

> (3 4 5 1 2)

这是我目前拥有的功能。

(defun my_rotate_n (y) (x)
    (append (loop for i from (+ 1 y) to (+ 4 y) collect i)
    (> x 0) (my_rotate_n (rotate-right y)(- x 1)))(list y))

当我测试输出的功能时,我收到错误:有comma is illegal outside of backquotes什么建议吗?

4

1 回答 1

4

逗号

逗号是反引号语法的一部分;请参阅第 2.4.6 节(反引号)。如果在如上所述的反引号表达式的主体之外使用逗号,则逗号无效。

要分隔标记,请使用空白字符

IOW,而不是(my_rotate_n 1,2)你应该写(my_rotate_n 1 2).

(当然,这不会让你的my_rotate_n工作避免那个特定的错误。你应该花一些时间来学习 Lisp 语法。)

于 2017-02-12T00:58:52.760 回答