星期四, 十二月 23, 2010

Lisp 如何得到函数返回的多个值?

 LISP很多函数返回几个值,默认是得到第一个值。其他的返回值如何得到呢?
比如parse-integer 返回2个值。
如果想的到第二个返回值,可以用(nth-value (parse-integer "20") 1)
得到2,字符串索引。

还有其他函数可以得到所有返回值。

 nth-value [already mentioned and only pertaining to multiple-vals]
 multiple-value-bind [no such thing as multiple-value-let]
 multiple-value-call
 multiple-value-setq
(multiple-value-list (floor 5 2))
得到:(2 1)