【发布时间】:2015-09-25 22:18:43
【问题描述】:
我真的很好奇为什么使用“删除”实际上并没有从列表中删除,如果我在一个变量中声明它会这样,但是我有另一个变量可以使用,这一切都变得非常混乱,他是我的代码;
;;;;Pig latin
(defun pig-latin ()
(let ((word (read-line)))
(setf ind-characters (loop for char across word
collect char))
(setf first-char (car ind-characters))
(setf reversed-word (reverse ind-characters));flips the
(remove (last reversed-word) reversed-word)
(print reversed-word)))
我得到的输出是:
(#\d #\r #\o #\w)
(#\d #\r #\o #\w)
我本来希望 #\w 从输出的第二部分中删除,但除非我在变量中声明它,否则它不会。如何在不声明大量变量的情况下只使用一条数据并删除/添加我需要的内容?
【问题讨论】:
-
为什么大部分变量都是未定义的?例如
first-char?它在哪里定义?你为什么打电话给remove,却从不使用结果?变量first-char是干什么用的?没用过?last函数返回什么? -
因为它不完整,我遇到了一个问题,这是我的问题,我只是添加了所有代码以便更容易理解上下文。
标签: lisp common-lisp clisp