2009-02-09から1日間の記事一覧

購読者

先日、tophatenarなるサイトを知った。 で、さっそく自分のはてダ見てみたら、なんと購読者が7人もいるじゃないですか。 思わず飲んでたカフェオレ吹きそうになった。 読んでくれる人が居るのは励みになりますなぁ。 大したことは書けませんが、今後ともよろ…

7章4節の練習問題

可変長引数関数の定義の仕方を参考に組み込みのlist関数を自分で実装しろ、と。 gosh> (define MyList (lambda arg arg)) MyList gosh> (MyList) () gosh> (MyList 1) (1) gosh> (MyList 1 2) (1 2) gosh> (MyList 1 2 3 4 5) (1 2 3 4 5) あまりにも簡単な…

可変長引数をとる関数の定義法

2個以上の引数を要求する関数 (lambda (a b . c) 定義) 使ってみる gosh> (define func (lambda (a b . c) (print "a=" a " b=" b " c=" c))) func gosh> (func 1 2) a=1 b=2 c=() gosh> (func 1 2 3) a=1 b=2 c=(3) gosh> (func 1 2 3 4) a=1 b=2 c=(3 4) g…

ローカル変数

let let* letrec の3つのタイプがあるそうだ。 使い方は全部同じで (let族 ((変数1 変数1を初期化するS式) (変数2 変数2を初期化するS式) ... (変数n 変数nを初期化するS式)) let族の値となるS式) ってな感じ。 「let族の値となるS式」の中で「変数1」〜「変…