小编use*_*949的帖子

Lisp函数:联合

我有一个lisp作业,我很难用它.

我必须编写一个执行联合操作的函数.该函数采用2个输入,以原子或列表的形式和每个元素的联合,保留顺序并剥离所有级别的括号.

功能的输出:

(my-union 'a 'b)                         ;; (a b)
(my-union 'a '(b))                       ;; (a b)
(my-union '(a b) '(b c))                 ;; (a b c)
(my-union '(((a))) '(b(c((d e))a)))      ;; (a b c d e)
Run Code Online (Sandbox Code Playgroud)

我对lisp很新.这是我到目前为止所写的内容,它仅适用于第三个示例:

(defun new-union (a b)
 (if (not b)
      a
      (if (member (car b) a)
        (new-union a (cdr b))
        (new-union (append a (list (car b))) (cdr b)))))
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激!

lisp clisp common-lisp

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

Lisp:生成10个随机整数的列表

这是我在普通lisp中的第一个作业的一部分.

我们必须定义一个表示从0到100的任意10个随机整数的变量:我不确定这里要问的是什么.我应该写:(setf var1 '())

然后,我们必须定义一个函数,该函数生成一个包含10个随机整数的列表,并返回包含这些数字的列表.

这是我写的,但我一直把NIL作为我的输出.你知道代码有什么问题:

(setf *random-state* (make-random-state t))
(setf var1 '())


(defun randlist (var1)
(dotimes (i 10)
    (setf temp (random 101))
        (cons 'temp var1  ) ) )
Run Code Online (Sandbox Code Playgroud)

lisp common-lisp

3
推荐指数
2
解决办法
6626
查看次数

标签 统计

common-lisp ×2

lisp ×2

clisp ×1