设万维读者为首页 广告服务 技术服务 联系我们 关于万维
简体 繁体 手机版
分类广告
版主:
万维读者网 > 灵机一动 > 跟帖
又做了一个,试了试。好啊
送交者: 思良将 2013月05月15日17:48:04 于 [灵机一动] 发送悄悄话
回  答: 花了一天搞懂的continuation passing st思良将 于 2013-05-15 01:17:16

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define num_args
  (lambda x
    (if (null? x)
        0
        (+ 1 (apply num_args (cdr x))))))


(define num_args-cps
  (lambda x
    (let n_args-cps ((x x) (k (lambda (x) x)))
        (if (null? x)
            (k 0)
            (n_args-cps (cdr x) (lambda (v)(k (+ 1 v))))))))
;Value: num_args-cps


(num_args-cps 1 2 3 4 5 6 7 8 9 0)
;Value: 10

(num_args-cps '(1 2 3 4 5 6 7 8 9 0))
;Value: 1

 

0%(0)
0%(0)
标  题 (必选项):
内  容 (选填项):
实用资讯
回国机票$360起 | 商务舱省$200 | 全球最佳航空公司出炉:海航获五星
海外华人福利!在线看陈建斌《三叉戟》热血归回 豪情筑梦 高清免费看 无地区限制
一周点击热帖 更多>>
一周回复热帖
历史上的今天:回复热帖
2012: 给各位蒙古数学家们出个五年级数学问题
2012: 我在宋江二中上学的时候,自己作过变压
2010: 怡然:心有多远,博客就能走多远