[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 03/27 08:34 / Filesize : 205 KB / Number-of Response : 769
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Emacs Lisp 3



108 名前:デフォルトの名無しさん mailto:sage [2008/12/03(水) 17:02:51 ]
;; >>106 エスパーして作ってみた
(mapc 'require (cl el-expectations))

(defun co (x lst &optional acc)
(assert (listp lst))
(macrolet
((recur (&rest lst) `(co ,@lst)))
(let ((cur (car lst)))
(cond ((null cur) nil)
((and (atom cur)) (if (eq x cur) (cons 'car acc)
(recur x (cdr lst) (cons 'cdr acc))))
((listp cur) (or (recur x (car lst) (cons 'car acc))
(recur x (cdr lst) (cons 'cdr acc))))
(t (error "unexpected lst: %s" cur))))))
;; test cases
(expectations
(error (co 'a '()))
(expect (co 'not-found '()))
(expect (co 'a '(a)) '(car))
(expect (co 'b '(a b c)) '(car cdr))
(expect (co 'c '(a b c)) '(car cdr cdr))
(expect (co 'x '((x) a b c)) '(car car))
(expect (co 'x '((a b c x) d e f)) '(car cdr cdr cdr car))
(expect (co 'x '(a b (c x d) e f)) '(car cdr car cdr cdr)))






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<205KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef