我正在尝试创建一个使用apply和mapcar来计算它的函数.
在使用第一个mapcar获取列表中pq的所有差异后,我陷入困境.如何对列表中的所有元素进行平方并将它们相加?
(defun euclidean-distance-map (p q)
;; get a list of differences of p - q
(mapcar #'- p q))
Run Code Online (Sandbox Code Playgroud) 我想解决一个返回NUMBER(计数)数字的lisp函数,这些数字大于列表中的第一个数字.列表是一个数字的线性列表.
(defun foo (lst)
(cond ((null lst) 0)
(car = k)
((> (car lst) k)
(1+ (foo (cdr lst))))
(T (foo (cdr lst)))))
Run Code Online (Sandbox Code Playgroud)
我的问题是我不能保留第一个元素并将其与其他元素进行比较.
(defun interleave (x y)
(cond ((and (null x)(null y)) nil)
(t (cons (car x) (cons (car y) (interleave (cdr x) (cdr y)))))
Run Code Online (Sandbox Code Playgroud)
想知道上面的代码做什么?
我有以下代码:
(defun read_coords (in)
(setq x (read-line))
(if (equalp x "0")
in
(progn
(append in (cons x nil))
(read_coords in)
)
)
)
(setq coords (read_coords (cons nil nil)))
Run Code Online (Sandbox Code Playgroud)
目标是读取输入行并将它们存储在列表中.问题是列表coords
保持不变(因此仅包含NIL
).我究竟做错了什么?