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和其它语言不同的地方。
分享到:
相关推荐
AutoLISP例程:读取excel文件.doc
awesome-lisp语言:一系列Lisp风格的编程语言
micro-lisp::Christmas_tree:一种非常小的Lisp编程语言:grinning_face:过去不到200行C
语言程序设计资料:LISP语言教程.doc
CAD插件 可直接在CAD内进行+ - * / 或连加、连减、连乘、连除工作快捷键分别为+-*/或++、--、**、//,设定默认保留位置为+++
陈光喜lisp语言,美妙的括号语言。2005 适合喜爱括号的人群们。。。。。
本程序为lisp语言编写的AutoCAD二次开发程序,包括lisp源程序代码和程序测试图。 本程序适合AutoCAD二次开发初学者学习之用,代码比较简单,所用函数也都是基本的函数,并且程序中包含详细注释。适合大学测绘、采矿...
Lisp语言.陈光喜.2005.pdf
LISP语言(马希文).pdf
lisp语言编写的在CAD中对多段线进行换向
NULL 博文链接:https://checkes.iteye.com/blog/437465
LISP语言在CAD方面的运用.pdf
Lisp语言入门.pdf,这个语言比较老,是用很多括号来进行编程的,非常奇怪,但至今依然被许多人用来学习,自然有其存在的价值。
AutoLISP是一种针对扩充及自订AutoCAD函数机能而产生,以LISP为基础的程序设计语言.LISP本身于50年代末期出现,是一种擅于处理串行文字(List of Processing),属第四代人工智能(Artificial Intelligence)的计算机...
简单的lisp语言教程,简单快速入门可用。
本书是为专业程序员而写的。 它采用动手方法引入了ANSI Common Lisp标准。
终端,在文件 'contemplate.lsp' 执行 lisp 解析器:sbcl --script contemplate.lsp运行再一个新版本会输出:unning on a fresh version should output the following:Thinking about ASSERTS ASSERT-TRUE ...
学习 AutoLISP 是非常容易的,对初学者而言,即使没有学习过任何的程序语言, 都能很快的上手,写出精彩漂亮的 AutoLISP 程序! 语法简单 不用特殊的变量宣告,非常富有弹性,比起其它的程序语言,它的语 法可说是非常简单而...
三个LISP语言小程序.pdf
针对cad的二次开发,autolisp语言必不可少,希望对需要的朋友有所帮助。