全民Scheme(2):来自星星的你
一门编程语言,假设不能对你思考编程的方式产生影响。就不值得去学习。—— Alan Perlis
(define rember*
(lambda (a list)
(cond
((null? list) '())
((atom? (car list)) (cond
((eq? a (car list)) (rember* a (cdr list)))
(else (cons (car list) (rember* a (cdr list))))))
(else (cons (rember* a (car list)) (rember* a (cdr list)))))))
(rember* 'cup '((coffee) cup ((tea) cup) (and (hick)) cup))
(define insertR*
(lambda (new old l)
(cond
((null? l) '())
((atom?
(car l)) (cond
((eq?
(car l) old) (cons old (cons new (cdr l))))
(else (cons (car l) (insertR* new old (cdr l))))))
(else (cons (insertR* new old (car l)) (insertR* new old (cdr l)))))))
(insertR* 'roast 'chuck '((how much (wood))
could
((a (wood) chuck))
(((chuck)))
(if (a) ((wood chuck)))
could chuck wood))
(define occur*
(lambda (a l)
(cond
((null?
l) 0)
((atom?
(car l)) (cond ((eq? a (car l)) (+ 1 (occur* a (cdr l))))
(else (occur* a (cdr l)))))
(else (+ (occur* a (car l)) (occur* a (cdr l)))))))
(occur* 'banana '((banana) (split ((((banana ice)))
(cream (banana))
sherbet))
(banana)
(bread)
(banana brandy)))
(define subst*
(lambda (new old l)
(cond
((null? l) '())
((atom? (car l)) (cond
((eq? old (car l)) (cons new (subst* new old (cdr l))))
(else (cons (car l) (subst* new old (cdr l))))))
(else (cons (subst* new old (car l)) (subst* new old (cdr l)))))))
(subst* 'orange 'banana '((banana) (split ((((banana ice)))
(cream (banana))
sherbet))
(banana)
(bread)
(banana brandy)))
(define insertL*
(lambda (new old l)
(cond
((null? l) '())
((atom?
(car l)) (cond
((eq?
old (car l)) (cons new (cons old (insertL* new old (cdr l)))))
(else (cons (car l) (insertL* new old (cdr l))))
))
(else (cons (insertL* new old (car l)) (insertL* new old (cdr l)))))))
(insertL* 'pecker 'chuck '((how much (wood))
could
((a (wood) chuck))
(((chunck)))
(if (a) ((wood chuck)))
(could chuck wood)))
(define member*
(lambda (a l)
(cond
((null? l) #f)
((atom? (car l)) (cond
((eq?
(car l) a) #t)
(else (member* a (cdr l)))))
(else (or (member* a (car l))
(member* a (cdr l)))))))
(member* 'chips '((potato) (chips ((with) fish)(chips))))
最新文章
- S3C2440UART之FIFO
- Qt编程之mapx组件编程
- ES6 变量的解构赋值
- mysqli连接数据库的模板
- WPF 颜色转换
- Linux ubuntu 10.10安装OpenCv
- android属性
- Mybatis 学习
- springMVC工作原理图
- Sql解锁 数据库死锁检测
- BZOJ 1627: [Usaco2007 Dec]穿越泥地( BFS )
- perl学习(8) 控制:unless,until,next,redo,last
- HDU 4288 Coder (线段树)
- ABP .Net Core API和Angular前端APP集成部署
- Request和Response
- [Swift]LeetCode842. 将数组拆分成斐波那契序列 | Split Array into Fibonacci Sequence
- 我的第一个python web开发框架(25)——定制ORM(一)
- Ubuntu基于zsh自定义设置shell主题
- 从头配置,开发 cocos2dx 3.14.1
- Python 时间获取