Scheme

Continuation Continuation 表示一个表达式被求值之后,接下来要做的事情 call/cc(call一个continuation) call/cc必须passed一个有 一个参数 的pr
2016-07-28
5分钟阅读时长
Lambda形参表的三种形式 (lambda (x …) (func x …)) (define f (lambda (x y z) (x z y))) 等价于 (define (f x y z) (x z y)) ;; (f - 1 2) => (- 2 1) => 1 (lambda (x … . y) (func x … . y)) (define g (lambda (x . y) (list x y))) 等价
2016-07-28
1分钟阅读时长
Macro symbol和syntax 及define和define-syntax 的区别 symbol和syntax具有类似的行为 symbol (define x 10) 'x ;; => 'x (eval 'x) ;; => 10 syntax #'x ;; =>
2016-07-28
3分钟阅读时长
相关服务条款和隐私政策(?) 不动点组合子只是函数式编程的理论基础, 并没有什么实用性 该用循环的时候就用循环, 该用递归的时候就用递归(而不需要知道Y组合子
2016-07-28
6分钟阅读时长
不用letrec递归 由于 tail-calls 可以看做是一个简单的jumps 尾递归(tail recursion)会减少stack的使用 (letrec ([sum (lambda (ls) (if (null? ls) 0 (+ (car ls) (sum (cdr ls)))))]) (sum '(1 2 3
2016-07-28
2分钟阅读时长