设万维读者为首页 广告服务 技术服务 联系我们 关于万维
简体 繁体 手机版
分类广告
版主:
万维读者网 > 灵机一动 > 帖子
刚才做了个有点难度的
送交者: 思良将 2013年06月05日19:16:44 于 [灵机一动] 发送悄悄话

(define c&c
  (lambda (expression s slst errvalue)
    (if (null? slst)
        errvalue
        (if (list? (car slst))
            (if (eq? errvalue
                     (c&c (cons 'car (list expression)) s (car slst) errvalue))
                (if (null? (cdr slst))
                    errvalue
                    (c&c (cons 'cdr (list expression)) s (cdr slst) errvalue))
                (c&c (cons 'car (list expression)) s (car slst) errvalue))
            (if (eq? s (car slst))
                (cons 'car (list expression))
                (c&c (cons 'cdr (list expression)) s (cdr slst) errvalue))))))
;Value: c&c

(define car&cdr
  (lambda (s slst errvalue)
    (if (eq? errvalue (c&c 'lst s slst errvalue))
        errvalue
        (list 'lambda '(lst) (c&c 'lst s slst errvalue)))))
;Value: car&cdr

(car&cdr 'a '(a b c) 'fail)
;Value 48: (lambda (lst) (car lst))

(car&cdr 'c '(a b c) 'fail)
;Value 49: (lambda (lst) (car (cdr (cdr lst))))

(car&cdr 'dog '(cat lion (fish dog) pig) 'fail)
;Value 50: (lambda (lst) (car (cdr (car (cdr (cdr lst))))))

(car&cdr 'dog '(cat lion (fish goose) (fish dog) pig) 'fail)
;Value 51: (lambda (lst) (car (cdr (car (cdr (cdr (cdr lst)))))))

(car&cdr 'doge '(cat lion (fish goose) (fish dog) pig) 'fail)
;Value: fail

(car&cdr 'a '(b c) 'fail)
;Value: fail

0%(0)
0%(0)
标 题 (必选项):
内 容 (选填项):
实用资讯
回国机票$360起 | 商务舱省$200 | 全球最佳航空公司出炉:海航获五星
海外华人福利!在线看陈建斌《三叉戟》热血归回 豪情筑梦 高清免费看 无地区限制
一周点击热帖 更多>>
一周回复热帖
历史上的今天:回复热帖
2012: 从三重门到六重门。。。。
2012: 一个《数字逻辑》上的灵机题:楼梯有一
2011: 金字塔和正四面体的简单解答(二)
2010: 短波收音机
2008: 柯西序列构造无理数
2008: 不可数集合不存在(二)