随笔-183  评论-160  文章-1 

使用 IronScheme 进入 Scheme 编程语言的世界

用 Scheme 程序说声:hello world。先打开你的编辑器,创建一个称为 hello.ss 的文件,然后将下面的文本内容保存进去:

;hello.ss
(import (rnrs))

(begin
;显示 hello 文字
  (display "hello world.")
  (newline)
)

第1行是注释。Scheme 会把分号(;)及在这行它后面的文本内容忽略掉。

begin 是 Scheme 传输进入从属语句段(subform)序列的一种方式。在上面的示例中有2个从属语句段。第1段 display 处理函数的调用:将它的实参(字符串"hello world.")输出到控制台(或者“标准输出”)。第2段是 newline 处理函数的调用:输出了一个回车。

想要运行该程序的话,打开 IronScheme 控制台,在命令行中输入:

(load "E:\\work\\hello.ss")

Scheme 会执行 hello.ss 中的内容,输出 hello world.再后跟一个回车。

ironscheme_1

在《高阶函数:用作参数、函数生成的函数和匿名函数》中,用匿名函数计算给定数字的平方:

;square.ss
(import (rnrs))

;定义 square 函数
(define square
  ;匿名函数
  (lambda (x)
    (* x x)
  )
)
;调用 square 函数,然后显示
(display (square 3))
(newline)
(display (square 4))
(newline)

执行 square.ss 内容的结果如图:

ironscheme_2

在 abruzzi 的《FP》分享中,用apply处理函数对list的参数进行了累加:

;list.ss
(import (rnrs))
(define (sum argList)
  (apply + argList)
)
(define p '(1 2 3 4 5 6))
(display (sum p))
(newline)

在上面的代码中请注意:用单引号来指定list,也可以写成:

(list 1 2 3 4 5 6)

参考:

Teach Yourself Scheme in Fixnum Days()

(完)

posted on 2010-12-12 22:18 George Wing 阅读(...) 评论(...) 编辑 收藏