SICPで種まき
出張でパンパンになっていたかばんががらりと空いたので、思わず、むかしむかし買った
- 作者: ジェラルド・ジェイサスマン,ジュリーサスマン,ハロルドエイブルソン,Gerald Jay Sussman,Julie Sussman,Harold Abelson,和田英一
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/02
- メディア: 単行本
- 購入: 35人 クリック: 1,149回
- この商品を含むブログ (493件) を見る
以下は a に abs(b) を加える Scheme プログラムのサンプル。
(define (a-plus-abs-b a b) ((if (> b 0) + -) a b)) ;; 大事なのはここまで (display (a-plus-abs-b 1 2)) (newline) (display (a-plus-abs-b 2 -3)) (newline)
- 関数 a-plus-abs-b は引数 a b を取ります
- if(> b 0) [最近の言語では if(b > 0) に相当] の結果
- b > 0 なら + を返す
- b > 0 でなければ - を返す
- ので (+ a b) か (- a b) [最近の言語では (a+b) か (a-b) に相当]が評価
というわけで実行してみましょう。
最初の a-plus-abs-b は 1+2=3 を返し、次のは 2-(-3)=5 を返すはずです。
ksh% gosh hoge.scm 3 5 ksh%
if の結果で後段の処理の演算子まで変えられます…。なんでもありですか?
オレ言語作る気がかなり失せました。
あのー、SICP すげえ重いのですが、これを通勤で読めと?
…読みます。
※いっぱいTYPOがあったのを修正
あと、業務連絡です。私の友人の酒屋の濱田屋さんのネットショップのサイトが DDoS 食らってる(?)らしく URL が変更になりました。
神戸・地酒とワインの濱田屋
いつもこちらの集まりで美味しいワインを飲んで騒いで幸せになっております。
ワインおよび日本酒で「そのスジ」な一本をお求めな方は、いっちょ覗いてみてください。
なお、本情報の掲載にあたっては濱田屋さんから URL 変更のお知らせを受けただけで、広告という点は一切ないことを書き添えておきます。