小编D. *_*nga的帖子

Lisp随机化并使用两个函数从列表拉到另一个列表

好的,所以我是lisp的新手,我一直在研究这个程序几天,了解lisp并研究lisp的某些部分,例如cons,cdr,let,funcall和其他一些部分.我正在尝试创造一种随机分配颜色的糖果机.我已多次运行此代码,起初我花了一段时间才停止获取随机函数的错误,现在它说我对于generate-candy-supply中的缺点有太少的争论.任何人都有任何关于去哪里和任何解决方案的建议?

到目前为止我的代码是......

(defvar candy-color '(yellow red blue green pink orange))

(defun generate-candy-supply (size)
  (if (= 0 size)
    (cons (nth (random (length candy-color)) candy-color))
    (generate-candy-supply (- size 1))))

(defun candy-machine (supply-of-candy)
  (function
    (lambda ()
      (prog1
          (car supply-of-candy)
        (setq supply-of-candy
              (cdr supply-of-candy))))))

(defvar *gummy-bear*
        (candy-machine (generate-candy-supply 4)))

(defvar *easter-egg*
        (candy-machine (generate-candy-supply 6)))

(defun get-candy (machine)
  (funcall machine))
Run Code Online (Sandbox Code Playgroud)

我的任务是......

CANDY计划的原型是

(defun get-candy (machine)
  (funcall machine))
Run Code Online (Sandbox Code Playgroud)

在下面的样本中,我们定义了两个CANDY-MACHINE,一个是有4个糖果的软糖熊机器,另一个是有6个糖果的复活节蛋机器.示例代码如下所示:

(defvar *gummy-bear*
        (candy-machine (generate-candy-supply 4)))
(defvar *easter-egg*
        (candy-machine (generate-candy-supply 6)))
Run Code Online (Sandbox Code Playgroud)

此程序的示例运行如下所示:

[1]> (load 'candy.lisp)
;; Loading file …
Run Code Online (Sandbox Code Playgroud)

lisp clisp common-lisp

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

多次删除列表中的特定元素不区分大小写

我一直在编写这段代码并研究递归运行函数的方法,并让它返回一个单词"the"被删除的列表.

我是Common Lisp的新手,我已经了解了基本功能,如setq, cons, cond, equal, carcdr.

当我运行代码时,我不断获取列表中的最后一个元素,如果有一个the后面的元素,则接下来.

谁能告诉我我做错了什么并引导我朝着正确的方向前进?

允许的Common Lisp构造是:COND,EQUAL(或EQUALP)CONS,CARCDR,以及Common Lisp的一些基本原始构建块.

我不能使用任何预定义的函数来实际消除.

它应该是这样的样子.样品运行:

(filter-out-the   '(There are the boy and THE girl and The Rose))
Run Code Online (Sandbox Code Playgroud)

返回:

(THERE ARE BOY AND GIRL AND ROSE)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

(defun list_member (x L)
  (cond ((null L) nil)                      
        ((equal x (car L))                 
         (list_member x (cdr L)))           
        (T (cons (car l) (list_member x (cdr L))))))  


(defun filter-out-the (L)
  (setq …
Run Code Online (Sandbox Code Playgroud)

lisp common-lisp

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

标签 统计

common-lisp ×2

lisp ×2

clisp ×1