Scheme


Scheme (正體)

Free Web Hosting with Website Builder
Scheme
多范型
面市時間
1970年代
设计者
Guy L. Steele 和 Gerald Jay Sussman
强类型,动态类型
主要实作产品
PLT Scheme, MIT/GNU Scheme, Scheme 48, Chicken, Gambit, Guile, Bigloo, Chez Scheme, STk, STklos, Larceny, SCM, Kawa
衍生副语言
T
启发语言
Lisp, ALGOL
影响语言
Common Lisp, JavaScript, Ruby, Dylan

Scheme,一种多范型的编程语言,它是两种Lisp主要的方言之一。它是由Guy L. Steele跟Gerald Jay Sussman在1970年代发展出来。现在的标准是R5RS,并且R6RS目前已经被批准了。Scheme也是第一个使用静态而非动态变量区域的Lisp方言。

Scheme的哲学是:设计计算机语言不应该进行功能(feature)的堆砌,而应该尽可能减少弱点(weakness)和限制(restriction),使剩下的功能显得必要。[1]

目录

语言元素

注释

在分号(;)之后一直到行末之间就是注释。 变量是由definelet或一些其他的函数所定义的。在上层的变量若以define定义的话,则会变成全局变量如下所示:

(define variable value)

let定义变量的方法如下图所示

(let ((var1 val1) (var2 val2) ...))

函数

函数定义如下所示:

1 (define (func arg1 arg2 ...) ...)
2 (define func (lambda (arg1 arg2 ...) ...))

在scheme里,函数是第一类对象(first-class object),这代表说可以被当成对象传递,也可以作为函数的返回值。

数据类型

Scheme提供了多个数据类型。如:整数,分数,实数,复数,字符串,符号等等。

条件判断

(if test then-expr else-expr)

如果test为真,则执行then这个表达式,要不然就执行else这个表达式

(cond (test1 expr1...)
      (test2 expr2...)
       ...
      (else expr))

如果test1为真,则执行expr1。test2为真,执行expr2。要是都不符合的话,就执行expr。

Scheme 的 hello, world 程式

sheme 的实作品通常是个 PEPL 的 programming environment 如果要写成 script,可以使用 guile 直译器

#! /usr/bin/env guile
!#
 
(write "hello, world")

实现

参见

外部链接







Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History