list标准函数的模拟
2013-10-28 14:16
148 查看
;反序 (1 2 3) -> (3 2 1) (define (rvs x) (let recur ((x x)(res '())) (if (null? x) res (recur (cdr x) (cons (car x) res))))) ;长度 (1 2 3) -> 3 (define (len x) (let recur ((x x)(y 0)) (if (null? x) y (recur (cdr x) (+ y 1))))) ;合并列表 (x ...) (y ...) -> (x ... y ...) (define (apd x y) (let recur ((x x)) (if (null? x) y (cons (car x) (recur (cdr x)))))) ;切割教程版 (define (tail x n) (if (zero? n) x (tail (cdr x) (- n 1)))) ;引用 (1 2 3 4) 2 -> 3 (define (ref x n) (if (= 0 n) (car x) (ref (cdr x) (- n 1)))) ;成员查询 2 (1 2 2 3) -> (2 2 3) (define (mem i x) (let recur ((x x)) (if (null? x) #f (if (equal? (car x) i) x (recur (cdr x)))))) ;类字典查询 k2 ((k1 v1)(k2 v2)(k3 v3)...) ->(k2 v2) (define (asq k x) (let recur ((x x)) (if (null? x) #f (if (equal? (caar x) k) (car x) (recur (cdr x)))))) (define x '(1 2 3 4)) (define y '(5 6 7 8)) (append x y) (apd x y) (length x) (len x) (reverse x) (rvs x) (list-tail '(1 2 3) 1) (tail '(1 2 3) 1) (list-ref '(1 2 3) 2) (ref '(1 2 3) 2) (member 2 '(1 2 3 4)) (mem 2 '(1 2 3 4)) (assv 5 '((2 3) (5 7) (11 13))) (asq 5 '((2 3) (5 7) (11 13)))
结果:
(1 2 3 4 5 6 7 8) (1 2 3 4 5 6 7 8) 4 4 (4 3 2 1) (4 3 2 1) (2 3) (2 3) 3 3 (2 3 4) (2 3 4) (5 7) (5 7) >
相关文章推荐
- linux下如何模拟按键输入和模拟鼠标
- 使用泛型集合模拟双色球开奖C#代码
- jQuery模拟Select下拉框
- 从模拟MMU设计一个路由表的失败到DxR的回归
- 模拟购物网站商品放大镜实现
- Mockito:一个强大的用于Java开发的模拟测试框架
- 蓝桥杯-魔方(模拟-二阶xyz顺时针旋转)
- 【HNOI2016模拟4.10】线性代数与逻辑
- JZOJ 5489. 【清华集训2017模拟11.28】海明距离
- 数字图像攻击模拟系统(1)
- GDI+模拟电子时钟全解析
- 用Linux的iptables和Python模拟广域网
- POJ 1782/ ZOJ 2240 : Run Length Encoding - 字符串处理(模拟)
- 随机漫步模拟
- POJ2456(复赛模拟试题) 好斗的奶牛 解题报告
- MySql模拟数据测试数据库性能
- 【GDKOI2012模拟02.01】数字(找规律&&数论)
- python爬虫 使用selenium+phontomjs 模拟点击输入 获取东航加载后的源码 机票价格
- 求高手帮忙做ATM模拟系统代码,最好是用MyEclipse 或者C# ····
- HttpClient 模拟登录手机版新浪微博