clisp学习笔记2-clisp风格的hello-world
ok,来一个clisp风格的hello-world:
打开emacs,进入REPL就开始干活了~
开始输入代码:
CL-USER> “hello,owrld” //输入的代码
轻轻的一个回车,你能看到以下结果
"hello,world”
完了?这就完了?答对了~clisp风格的 hello,world 就是这么简单.太简单了?好,下面来个函数式的 hello,world:
CL-USER> (defun hello-world ()
(format t “Hello,World”)) //回车
HELLO-WORLD //响应,代表完成了编译
OK,代码编辑与编译都完成了,如何运行呢?
CL-USER> (hello-world) //回车
"Hello,World” //输出的结果
NIL//函数返回值
恩,clisp风格的一个函数就算敲定了,大家可以见到我用红色字体标识了一个NIL,这个是函数的返回值,代表空.clisp中的函数默认返回以空格分隔的最后一个表达式的值,而我们这个函数中最后一个表达式(format t “hello,world”) 仅仅输出了一个字符产,所以她的返回值为 NIL(空).
接下来,得想想怎么搞定保存工作了(快捷键中 C = Ctrl).
C+x C+f : 新建一个文件 Hello.lisp (一般风格以.lisp结尾);
可以看到 emacs 直接打开了一个新的文本窗口,好开始code吧~
(defun hello-world ()
(format t “hi! hello,world!”)) //输出的内容有点改变,区分之前的函数~
ok,在函数体上 以C+c C+c 进行编译,emacs回给予一个互动的效果,完成后 C+c C+z 快速打开 REPL,调用函数
CL-USER>(hello-world) //回车
"hi!hello,world!”
NIL
运行通过了,C-x b Hello.lisp切换文档,C+x s保存上就搞定了.
但是,还有一个问题,刚刚是通过直接将函数体发送到LISP编译,然后运行的,若通过源文件的名称改怎么搞?好,试一下.
首先将环境重置一下,切换到REPL,直接输入逗号回车,底部状态栏会提示输入命令,输入 quit将关闭所有缓冲区.再输入 ALT+x slime 重启SLIME(这个现在不明白是什么东西).
重启后进入 REPL,调用一下函数
CL-USER>(hello-world)
会报错,说明环境重置了,来加载源文件
CL-USER> (load “Hello.lisp”)
… 提示加载的路径
CL-USER>(hello-world)
"hi,hello,world!”
NIL
成功~
嘎嘎,总算搞定了,接下来去学习基本语法等知识喽~
剩余的问题还有:
编辑器中包含的 SLIME 还不知道是什么东西.
浙公网安备 33010602011771号