
| 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]
目录 |
在分号(;)之后一直到行末之间就是注释。 变量是由define跟let或一些其他的函数所定义的。在上层的变量若以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。
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