小编Flo*_*ofk的帖子

为什么SBCL会像这样打印Sublis?

所以功能:

(defun royal-we ()
  (sublis '((i  .  we))
      '(if I learn lisp I will be pleased)))
Run Code Online (Sandbox Code Playgroud)

SBCL中的输出以这种方式打印:

(IF WE
    LEARN
    LISP
    WE
    WILL
    BE
    PLEASED)
Run Code Online (Sandbox Code Playgroud)

然而一个例子:

(sublis '((roses . violets)  (red . blue))
        '(roses are red))
Run Code Online (Sandbox Code Playgroud)

给出输出

(VIOLETS ARE BLUE)
Run Code Online (Sandbox Code Playgroud)

为什么SBCL在不同的行上打印列表的原子,不像其他发行版如Clisp?

lisp sbcl common-lisp

4
推荐指数
1
解决办法
154
查看次数

为什么这些都打印相同的东西?

我真的好奇为什么使用"删除"实际上并没有从列表中删除,如果我在一个变量中声明它,但是我有另一个变量可以使用它并且它变得非常混乱,他是我的代码;

    ;;;;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)))
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

(#\d #\r #\o #\w)
(#\d #\r #\o #\w)
Run Code Online (Sandbox Code Playgroud)

我原本期望#\ w从输出的第二部分中删除,但除非我在变量中声明它,否则它不会.如何处理单个数据并删除/添加我需要的内容而不声明很多变量?

lisp clisp common-lisp

1
推荐指数
1
解决办法
58
查看次数

如何从列表列表中检索每个"列"中的最小值列表?

所以我有这个小函数在一组3个列表中返回最小值,有没有办法可以把它写得更好看?它对我来说似乎不太好看,但是我可能不知道这意味着什么(我是一个lisp noob)任何提示都会非常感激.

;;;;minimum of 3

(defun minimum-of-3 (list1 list2 list3);returns the minimum value when comparing 3 lists
    (setq minimum-list '())
    (setq mini '())
    (loop for x in list1
            for y in list2
            for z in list3
            do
            (push x mini)
            (push y mini)
            (push z mini)
            (push (apply 'min mini) minimum-list)
            (setq mini '()))

    (reverse minimum-list))
Run Code Online (Sandbox Code Playgroud)

lisp clisp common-lisp

1
推荐指数
1
解决办法
97
查看次数

标签 统计

common-lisp ×3

lisp ×3

clisp ×2

sbcl ×1