【发布时间】:2015-09-20 07:31:51
【问题描述】:
我是一个 Lisp 菜鸟,在理解 loop 和 format 组合时的工作方式时有些困难。
这符合我的预期:
(loop for i upto 2 do (format t "~a" "Badger")) ==>
BadgerBadgerBadger
NIL
这不是:
(loop for i upto 2 do (format nil "~a" "Badger")) ==>
NIL
为什么第二个循环不返回 BadgerBadgerBadger ?我必须写什么代码才能给出这个返回值?
【问题讨论】:
-
第一个循环也不返回 BadgerBadgerBadger。它返回
nil。第二个也是如此。第一个,因为format正在写入标准输出,所以打印 Badger 3 次。第二个,因为格式返回一个字符串,然后被丢弃(因为你没有保存它),不会产生任何输出。
标签: loops format lisp common-lisp