Lisp语言:控制台输出与输入

Lisp全名是Lisp Processor,就是列表处理语言的意思,所以Lisp语言以列表为中心。正因为这个原因,很多Lisp语言的教程在简单介绍基本Lisp后就开始讨论Lisp中的列表,出现一堆令人费解的列表和无尽的括号。对于很多普通的程序员来讲,这种方式总是让人觉的不舒服,难道不能像学习一般语言那样进行学习吗?


或许我们可以试试!


下面我们像写一个普通c或者是java程序那样写个Lisp程序。大家要注意的是这里的Lisp程序从代码风格和设计思路上都没有按Lisp的套路来,Lisp高手们不要喷,之所以这样做是为了让非Lisp程序员舒服一些。


既然是普通的程序,就定义一个main函数作为入口吧,虽然Lisp根本不在乎你定义的是什么名字的函数。

函数定义用的是defun关键字,定义main函数大概像下面这个样子:

(defun main ()


然后我们希望提示用户输入一些字符,并打印出来。

打印可以用format, 向标准设备输出内容的语句像这个样子:(format *query-io* "out put message")

然后后面加一句(force-output *query-io*),主要目的是将上面输出的信息强制输出,不等待换行符的出现。

从控制台获取输入用的是read-line函数,完整语句是(read-line *query-io*),然后通过setq函数可以将获取的输入赋予一个变量。

最后再通过format函数将变量输出到控制台。


完整的代码如下:

(defun main ()


        (format *query-io* "Try to input something here:")
        (force-output *query-io*)
        (setq inputString (read-line *query-io*))
        (format *query-io* "~a ~a ~%" "What you inputed is:" inputString)
        (force-output *query-io*)

)

其中将获取的变量输出到控制台的语句稍微复杂一点,使用了格式字符串"~a ~a ~%"。其中的~a会被替换为后面跟着的参数,按参数顺序依次替换,而~%表示换行。


写完后保存为一个.lisp文件,然后在clisp环境中将这个文件load进来,执行(main)就有下面的执行结果了。

这样看起来是不是和我们学习的其它语言差不多呢? 哈哈,后面继续用这种方式学习,然后慢慢学习Lisp和其它语言不同的地方。




  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值