2009-06-03から1日間の記事一覧

自殺関数

c

どうでもいいことかもだけど、 クロージャーがサポートされている言語でこれが出来るのはそれほど驚かない。が、Cでも出来てしまう。久しぶりにCodePadのお世話に。 これは間違い。単に *point = NULL; がコード領域なので書き込み違反になっているだけ。実…

9 集合

member gosh> (define (my-member elm lst . options) (let-optionals* options ((pred equal?)) (cond ((null? lst) #f) ((pred elm (car lst)) lst) (else (my-member elm (cdr lst) pred))))) my-member gosh> (my-member 'ration '(cookie dagger ration…

and-let*

gosh> (define (ccar lst) (if (pair? lst) (car lst) #f)) ccar gosh> (and-let* ((a '(("reach!"))) (b (ccar a)) (c (ccar b)) (d (ccar c))) d) #f gosh> (and-let* ((a '((("reach!")))) (b (ccar a)) (c (ccar b)) (d (ccar c))) d) "reach!" モナドっ…

#

gosh> (if (if (= 1 0) #t) "true" "false") "true" そか、やっぱりundefって#fじゃあ無いのか。

練習問題p101

gosh> (define (my-any-pred . preds) (lambda (x) (any (lambda (p) (p x)) preds))) my-any-pred gosh> (define sym-or-string? (my-any-pred symbol? string?)) sym-or-string? gosh> (sym-or-string? "hoge") #t gosh> (sym-or-string? 10) #f gosh> (sy…

勉強再開

そういえば去年の10月ごろからこちら、全然 lispって無かったので頭から放電される寸前。まさにDynamic脳。リフレッシュしよう。 とりあえずプログラミング Gaucheをパラパラと見ていく。どこまでやったっけ、、、とか考えてみるんだけど、本当に放電してる…