English | 中文 | Русский | Français
共 408 篇文章
共 2,611 篇文章及评论
也许大家对LISP这个历史悠久的语言会很陌生,但是这个诞生于上个世纪中叶的编程语言到现在还是拥有顽强的生命力。MIT的6.001课程还将它作为计算机科学的入门语言。
最近在学习LISP过程中了解了一个很强大的IDE,它的名字叫DrScheme.它是一个图形化的开发工具,用起来也很方便。这里是它的链接:http://download.plt-scheme.org/drscheme/。这里有Windows版的也有Linux版的.
安装好后,进入主界面,到工具栏中选择Language-->Choose Language,如下图所示。选择R5RS,the Revised5 Report on the Algorithmic Language Scheme。
这里仿照一个简单程序,求平方根:
分别先定义square, average函数,求平方根的算法大概如下:
对输入x,
(1)猜测解a=1为;
(2)检查a*a-x是否足够小;假如足够小,就认为a是解;否则让a=(x/a+a)/2,反复循环,以接近其解;
(define (square x)
(* x x))
(define (average x y)
(/ (+ x y) 2))
(define (good-enough guess x)
(< (abs (- (square guess) x)) 0.001))
(define (improve guess x)
(average guess (/ x guess)))
(define (try guess x)
(if (good-enough guess x)
guess
(try (improve guess x) x)))
(define (squareroot x)
(try 1.0 x))
(squareroot 2)
写好程序后,运行Check Syntax,再运行Run即可。
以下是程序的检查中的演示图,有相当有趣的图形化界面:
此外LISP还支持大整数的运算,比如说:
> (* 1234567890 987654321 12345678987654321 )
15053411218366667518106431248473490
而且也支持分数表示等等。
就大概讲到这吧,我也是刚刚开始学LISP.希望有兴趣的朋友一起学习:)
| 2008年10月08日 23:54
Elwin | 好像不支持Common Lisp中的 defconstant 函数... |
| 2008年10月09日 00:00
Elwin | 应该说是Scheme的开发工具, 更加确切一些, Scheme 只是Lisp 的一种方言, 而Common Lisp 的语法跟Scheme有差异, 不能使用该IDE. |
| 2008年11月08日 23:12
heixia108 | 呵,最近在看那本,也在学习scheme,希望有机会与你交流. :) |
| 2008年11月14日 16:27
iisbsd | 上当——这是Scheme的啊。 |

Elwin