在LispWorks中进行编程10:打印

  • 0

在LispWorks中进行编程10:打印

Category:UI界面编写 Tags : 

打印

在Listener中评估Lisp过程时,它返回一个值。但是当你运行一个程序时,你可能希望它在程序返回最终结果之前打印出几个值。Lisp提供了几种专门用于打印输出值的替代功能。

打印结果:打印

其中最简单的是print – 它只是打印出其参数的打印表示,然后返回参数。因此,如果您评估,例如:

CL-USER 1 > (print 123)123123

第一个“123”是打印程序的效果。第二个“123”是过程返回的值,也是123.这个例子使它更清晰:

(defun print-and-double (n) (print n) (* n 2))

如果我们评估它,我们得到:

CL-USER 3 > (print-and-double 12)1224

打印格式化值:格式

瑞士军刀印刷的格式。它包括以各种可能的方式打印每种类型的值的选项,我猜大多数Lisp程序员只使用其一小部分功能。我将在这里介绍其最有用的功能:

格式  的过程采用两个或更多个参数。

第一个参数是t,告诉格式化过程打印结果,或者是nil,以将结果作为字符串返回。

第二个参数是格式字符串,它告诉格式化  过程如何打印结果。这是一个文本字符串,可以包含特殊格式序列,前缀为“〜”字符(称为“波浪号”或“旋转”),以在此字符串中插入值。

评估其余参数以提供要插入格式字符串的值。最通用的格式序列是“~a”,它插入将通过print打印的值。所以,例如:

(format t “The answer is ~a.” (* 2 3))

将(* 2 3的值插入~a指定的字符串中,并打印:

答案是6。

您还可以在格式字符串中包含以提供换行符。

或者,通过将第二个参数指定为nil我们可以使用format为我们生成字符串,因此:

(format nil “The answer is ~a.” (* 2 3))

将返回:

“答案是6.”

在  动物  项目中有更多使用格式的例子。

演习

1.使用格式编写故事编写程序。程序故事应该采用名称,食物和颜色; 例如:

(story “Lisa” “cheese” “green”)

并产生一个故事:

曾经有一位名叫丽莎的公主喜欢奶酪。有一天,丽莎找到了一些绿色奶酪,吃得太多,以至于她死了。结束。


Leave a Reply

搜索

分类目录

公 告

本网站学习论坛:

www.zhlisp.com

lisp中文学习源码:

https://github.com/zhlisp/

欢迎大家来到本站,请积极评论发言;

加QQ群学习交流。