Chinaunix首页 | 论坛 | 博客
  • 博客访问: 31376
  • 博文数量: 8
  • 博客积分: 165
  • 博客等级: 入伍新兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-17 05:05
文章分类

全部博文(8)

文章存档

2013年(2)

2012年(6)

我的朋友

分类: LINUX

2012-10-07 00:22:35

都是用r5rs的标准写的... 所以cond和let什么的就不能用[]了。 
这个是求一个列表的数字的总和的函数,也蛮简单,小写的字母l代表list类型的参数。


点击(此处)折叠或打开

  1. (define (h l init)
  2.   (cond
  3.     ((null? l) init)
  4.     (else (h (cdr l) (+ init (car l))))))

  5. (h (quote (1 2 3 4)) 0)

  6. ;;;和上一篇写的生成列表的f相调用,求一下从1加到100
  7. (define (f x y l)
  8.   (cond
  9.     ((> x y) l)
  10.     (else (f (+ x 1) y (cons x l)))))

  11. (h (f 1 100 (quote ())) 0)

  12. ;;;其实从1加到100可以直接用这个函数:

  13. (define (sum start end temp)
  14.   (cond
  15.     ((> start end) temp)
  16.     (else (sum (+ 1 start) end (+ start temp)))))

  17. (sum 1 100 0)


阅读(811) | 评论(0) | 转发(0) |
0

上一篇:Scheme 初学(1)

下一篇:Scheme 初学(3)

给主人留下些什么吧!~~