Skip to content

(scheme base)

R7RS 基础库,提供了 Scheme 最核心的功能。

导入

scheme
(import (scheme base))
; 或
(import (liii base))  ; Goldfish 扩展版本

定义形式

形式描述示例
define定义变量/函数(define x 10)
define-syntax定义宏(define-syntax when ...)
lambda创建函数(lambda (x) (+ x 1))
let局部绑定(let ((x 10)) x)
let*顺序绑定(let* ((x 10) (y x)) y)
letrec递归绑定(letrec ((f (lambda () (f)))) ...)
let-values多值绑定(let-values (((a b) (values 1 2))) ...)

控制流

形式描述示例
if条件(if (> x 0) 'positive 'negative)
cond多条件(cond ((< x 0) 'neg) ((> x 0) 'pos))
case分支(case x ((1 2) 'small) (else 'large))
and逻辑与(and (> x 0) (< x 10))
or逻辑或(or (null? lst) (car lst))
when真时执行(when (> x 0) (display x))
unless假时执行(unless (null? lst) (car lst))
begin顺序执行(begin (display 1) (display 2))
do循环(do ((i 0 (+ i 1))) ((>= i 10)) ...)

数值

基本运算

函数描述示例
+(+ 1 2 3) => 6
-(- 10 3) => 7
*(* 2 3 4) => 24
/(/ 10 2) => 5
quotient(quotient 10 3) => 3
remainder余数(remainder 10 3) => 1
modulo(modulo -10 3) => 2

数值谓词

函数描述示例
=相等(= 1 1.0) => #t
<小于(< 1 2 3) => #t
>大于(> 3 2 1) => #t
<=小于等于(<= 1 1 2) => #t
>=大于等于(>= 3 3 2) => #t

其他函数

函数描述示例
abs绝对值(abs -5) => 5
max最大值(max 1 5 3) => 5
min最小值(min 1 5 3) => 1
floor向下取整(floor 3.7) => 3
ceiling向上取整(ceiling 3.2) => 4
round四舍五入(round 3.5) => 4
truncate截断(truncate 3.7) => 3
sqrt平方根(sqrt 16) => 4
expt(expt 2 3) => 8

列表

函数描述示例
cons构造点对(cons 1 '(2 3)) => (1 2 3)
car第一个元素(car '(1 2 3)) => 1
cdr剩余元素(cdr '(1 2 3)) => (2 3)
list创建列表(list 1 2 3) => (1 2 3)
length列表长度(length '(1 2 3)) => 3
append连接列表(append '(1 2) '(3 4)) => (1 2 3 4)
reverse反转列表(reverse '(1 2 3)) => (3 2 1)
map映射(map (lambda (x) (* x 2)) '(1 2 3)) => (2 4 6)
for-each遍历(for-each display '(1 2 3))
filter过滤(filter odd? '(1 2 3 4 5)) => (1 3 5)
assq查找(assq 'a '((a . 1) (b . 2))) => (a . 1)

更多函数

更多详细文档请参考 (liii base)

基于 Apache 2.0 许可发布