Scheme
仕事では、XMLを扱うことが多いのです。『プログラミングGauche』を写経し始めたばかりで、まだまだへっぽこな私ですが、早速、日頃の業務に使ってみようかなぁと思っています。そこで手習いとして、GaucheでXMLを扱った処理をいくつか書いてみます。最初は…
すぐ忘れるのでメモ。 ;lengthを書き換えた (define (length lst) (if (null? lst) 0 (+ 1 (length (cdr lst))))) ;元の組み込みlengthで定義しなおす(『プログラミングGauche』のP49より) (define length (with-module gauche length)) 元に戻す方法がわ…
each-of-numbersを定義する (define (for-each-numbers proc lst) (for-each proc (filter number? lst)))gosh> (for-each-numbers print '(1 #t 2 "hoge" 3)) 1 2 3 #<undef> map-numbersを定義する (define (map-numbers proc lst) (map proc (filter number? lst</undef>…
foldを使わず、lengthを定義する こう? (define (length lst) (if (null? lst) 0 (+ 1 (length (cdr lst)))))gosh> (length '()) 0 gosh> (length '(1 2 3)) 3できたみたい。 deep-copy-listを定義する (define (deep-copy-list lst) (if (pair? lst) (cons…
「プログラミングGauche」を買ってきた。Scheme(に限らず、関数型言語全般)に触れるのは初めて。早速写経します。