标题: Scheme 函数式编程:基本符号 [打印本页]
作者: 老刘1号 时间: 2024-3-16 21:42 标题: Scheme 函数式编程:基本符号
本帖最后由 老刘1号 于 2024-3-16 21:52 编辑
《函数程序设计算法》读书笔记。
简单值复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
算术函数复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
Lambda 表达式- (lambda (x y)
- (/ (+ x y) 2))
复制代码
复制代码
- ((lambda (x y)
- (/ (+ x y) 2)) 3/5 11/3)
复制代码
复制代码
变元过程- (lambda nums
- (/ (apply + nums) (apply * nums)))
复制代码
复制代码
- ((lambda nums
- (/ (apply + nums) (apply * nums))) 3 5 8 2 6)
复制代码
复制代码
- (lambda nums
- (apply + 23 14 6 nums))
复制代码
复制代码
- ((lambda (x y z . others)
- (* (+ x y z) (apply + others))) 1 2 3 3 4 5)
复制代码
复制代码
构造列表复制代码
复制代码
复制代码
复制代码
返回多个值复制代码
复制代码
- (lambda nums
- (values (apply + nums) (apply * nums)))
复制代码
复制代码
- ((lambda nums
- (values (apply + nums) (apply * nums))) 1 2 3 4 5)
复制代码
复制代码
复制代码
- (define delist (lambda (ls)
- (apply values ls)))
复制代码
- (delist (list 1 2 3 4 5))
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
谓词复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
- (procedure? (lambda (x) (+ x 1)))
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
- (equal? (lambda (x) x) (lambda (x) x))
复制代码
复制代码
- (values zero? positive? negative? even? odd?)
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
条件类型表达式- (if (= (+ 1 1) 2) 'eq 'neq)
复制代码
复制代码
- (if (= (+ 1 1) 3) 'eq 'neq)
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
定义复制代码
- (define inches-in-a-mile (* 12 5280))
复制代码
复制代码
复制代码
复制代码
复制代码
- (define (arithmetic-mean x y)
- (/ (+ x y) 2))
复制代码
复制代码
复制代码
- (define lesser (lambda (l r)
- (if (< l r) l r)))
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
复制代码
- (define (multi-arg . args) args)
复制代码
复制代码
复制代码
- (define (multi-arg2 x y . args) (values (+ x y) args))
复制代码
复制代码
复制代码
复制代码
- (define (factorial n)
- (if (= n 0)
- 1
- (* n (factorial (- n 1)))))
复制代码
复制代码
复制代码
局部绑定- (let ((hours-in-a-day 24)
- (seconds-in-an-hour (* 60 60)))
- (* hours-in-a-day seconds-in-an-hour))
复制代码
复制代码
- (let ((double (lambda (x) (* x 2))))
- (* (double 7) (double 12)))
复制代码
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |