Gauche で RFC2822 (RFC822) 形式の日時文字列操作
メールヘッダなどで利用される RFC2822 (RFC822) 形式の日時文字列を Gauche の <date> オブジェクトに変換する方法。 (use rfc.822) (rfc822-date->date "Date: Sun, 28 Jun 2009 08:27:59 +0900") gosh> #<date 2009/06/28 08:2…続きを読む
メールヘッダなどで利用される RFC2822 (RFC822) 形式の日時文字列を Gauche の <date> オブジェクトに変換する方法。 (use rfc.822) (rfc822-date->date "Date: Sun, 28 Jun 2009 08:27:59 +0900") gosh> #<date 2009/06/28 08:2…続きを読む
<logger-generic> をカスタマイズして、ログ出力の on/off を切り替える。 (use srfi-1) (use gauche.time) (define-class <logger-generic> (<generic>) ((printlog :init-value #f) ; スロットにログ出力フラグを追加 ())) (define-me…続きを読む
text.tr モジュールを使って Gauche で "ひらがな<->カタカナ" の変換をする。 (use text.tr) (define (kana-translator from to) (define (translator str) (with-string-io str (lambda () (let ((ptr (tr from to))) (let …続きを読む
練習問題(p202) call-with-input-string と call-with-output-string を使って "13.3.2 オブジェクトを文字列に変換する(p176)" の write-to-string と read-from-string を実装する。 (call-with-input-string <文字列> <1引数の手続き>…続きを読む
文字列処理の各手続きを利用して、ユニコードエスケープ(unicode escape)処理をする手続きを作ってみる。 (use srfi-13) ;; for string-concatenate (define (char->unicode-escape char) (if (char>=? #\u007f char) ;; is ASCII ? (string char) (stri…続きを読む
delete-1 の定義を一箇所変更して、一致するものを全て取り除く delete を定義する。 (define (delete elt lis . options) (let-optionals* options ((cmp-fn equal?)) (define (loop lis) (cond ((null? lis) ‘()) ((cmp-fn elt (car lis)) (loop (…続きを読む
プログラミングGauche 練習問題(p101)を解く。 手続き any-pred と every-pred を自分で定義する。 any-pred ;; 最初に思いついた解答 (define (any-pred . preds) (define (iter preds x) (if (null? preds) #f (if ((car preds) x) #t (iter (cdr preds) …続きを読む
lambda 式内の a は letrec 内で b が呼び出される時に使われる。 (letrec ((a 1) (b (lambda (x) (+ a x)))) (b 4)) gosh> 5 (letrec ((a 1) (b (lambda (x) (+ a x)))) (set! a 2) (b 4)) gosh> 6 プログラミングGaucheの練習問題(p74)を解く。 (…続きを読む
プログラミングGaucheの練習問題(p68)を解く。 for-each-numbers (define (for-each-numbers proc lis) (for-each proc (filter number? lis))) (for-each-numbers print ‘(1 2 #f 3 4 #t)) gosh> 1 2 3 4 #<undef> map-num…続きを読む
処理の一番最後に再帰呼び出しをして、その結果がそのまま現在の処理の結果として返されるパターンを末尾再帰と呼びます。 (プログラミングGauche p57) プログラミングGauche posted with amazlet at 08.11.14 Kahuaプロジェクト オライリージャパン 売り上げランキング: 22775 Amazon.co.jp で詳細を見る reverse を末尾再帰で書き直…続きを読む