設萬維讀者為首頁 廣告服務 技術服務 聯繫我們 關於萬維
簡體 繁體 手機版
分類廣告
版主:
萬維讀者網 > 靈機一動 > 帖子
剛才做了個有點難度的
送交者: 思良將 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: 不可數集合不存在(二)