lisp初体验-Practical Common Lisp笔记-2.Hello,World!

在真正踏入lisp的世界前,如同选择lisp的分支一样,既然你选择了Common Lisp,那么,再劳驾选择下编译器吧~

官方似乎比较强力的推荐Emacs,说法是:编辑、编译一体化。不过鉴于其整体构建于Elisp分支之上,并且对这款"神用的编辑器"着实有些怵(好吧,我承认我用vi~),还是选用了另一款看起来更新还算靠谱的编译器:[url=http://www.sbcl.org/index.html]SBCL[/url]。

呼呼~作为一篇读书笔记真是太爽了,这里有一大段"为什么玩个lisp都这么麻烦"的解释\介绍,在这就可以一笔带过了:它没有被任何人或组织所控制,so,freedom!

话不多说,先安装上SBCL(大部分os都支持哦)。
进入环境后,应该是个星号:
*
(教程中是"CL-USER>")

理论上就算环境ok了,不过简单验证下总没有坏处:
*10(输入)
10(展示结果)

*(+ 1 2)(输入)
3(展示结果)

如果一致,那么就可以算环境搭建完成了。至于为神马加法会是那么个样子,暂且按下不表(书上这也莫有解释啊)

下面就要上正菜了,算是任何语言都会有的经典入门案例:Hello World!
*"Hello World"
Hello World

额,虽然有点失望,不过,恭喜,你已经一只脚入门了!
如果对于纯字符串你有些失望的话,那么格式化下:
*(format t "Hello World")
Hello World(输出值)
NIL(返回值,类似于None,NULL,False等)

定义下函数:
*(defun hello-world () (format t "hello, world"))
HELLO-WORLD
lisp中的"-"也是可以用的,就是普通的字符。
试试你定义的函数可用否:
*(hello-world)
Hello World
NIL
有没有看明白?这里只是将前面的format包装成了一个函数,然后调用函数名就可以了。
Ok,好歹算是人生第一个lisp模块了,的确有必要珍藏下:把这段代码存入文本中,命名为hello.lisp
当当当。。。
新鲜出炉的模块,快来用啊~
重启下SBCL的shell,
*(hello-world)
恩,一堆报错,有过编码经验的估计早就看出来了,“不引入你就要用了么?”
好的,引入:
*(load "hello.lisp") #这里最好是全路径,win下比如:e:/lisp/hello.lisp
T #表示引入Ok了
然后,
*(hello-world)
Hello, world!
NIL
与调用新鲜出炉的函数一样,不错吧。在lisp中还有一种编译模式:
*(load (compile-file "hello.lisp"))
T
这样会生成一个hello.fasl文件,与.lisp文件一样的用,效果么:在某些情况下是有提速效果的。

至此,Hello World!已经结束!或者,才开始!

(未完待续)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值