我在lisp http://common-lisp.net/language.html#sec-1做了一个啧啧 我想知道如何写这个函数:
(my-floor 1.3)
=> 1 0.3
答案 0 :(得分:8)
使用values
:
(defun foo (x y)
(values x y (+ x y) (cons x y)))
尝试功能:
> (foo 2 pi)
2 ;
3.1415926535897932385L0 ;
5.1415926535897932383L0 ;
(2 . 3.1415926535897932385L0)
将返回的值与multiple-value-bind
一起使用:
(multiple-value-bind (a b sum pair) (foo 1 2)
(list a b sum pair))
==> (1 2 3 (1 . 2))
或(setf values)
。