我开始使用LISP并编写以下程序
(write-line "hello world")
(print "hello world print")
(write "hello world write")
我得到以下输出
hello world
"hello world print" "hello world write"
我猜write
和print
返回字符串对象,因此write-line
返回的类型为什么没有引号。
Link到我的工作空间
答案 0 :(得分:3)
根据write-line
/ write-string
官方文件,它返回其论点。你看到它的副作用(印刷)。通常,您还会在REPL中看到返回顶级:
> (write-line "hello world")
; hello world (printed)
;==> "hello world" (returned)
请注意,write
不仅限于打印字符串,因为它们会占用任何CL对象,而prin1
,print
,pprint
和princ
只是{ {1}}预定义了一些动态设置。