scheme

パスカルの三角形

コメント欄にてあいさんより質問を頂いたので挑戦してみました。 あい 『ちょっと質問なんですが、 パスカルの三角形で、 - m 0 1 2 3 4 ・・・ n 0 1 1 1 1 2 1 2 3 1 3 3 1 4 1 4 6 4 1 ・ ・ ・ - P(n,m)を求める関数を作るとき schemeでどう書いたらいい…

問題3.5 〜3.15

問題3.5 モンテカルロ積分 ちょっとイメージがつかめないのでスキップ 問題3.6 乱数を作成する関数を返すような手続き? ちょっとやり方がよく分からないのでスキップ 問題3.7 問題3.3 に別の名前とパスワードでもアクセスできるような手続きを定義する。 (d…

3.1〜3.4まで

id:higeponさんやg:sicp:id:hyukiさんなどとペースをあわせた方が問題意識が共有できて良いかと思われるのでちょっとすっ飛ばして3章から再開する。予想通り基礎の抜け落ちているオイラには厳しい…。 問題3.1 accumulatorを返す手続きを定義。accumulatorは…

問題1.7

; 平方根を求める手続き (define (sqrt x) (define (sqrt-iter guess prev-guess y) (if (good-enough? guess prev-guess) guess (sqrt-iter (improve guess y) guess y))) (define (good-enough? guess prev-guess) (< (abs (- guess prev-guess)) 0.001)) …

最初〜1.6まで

授業の合間とか暇な時間に読んではいるのだけど、読んでるだけでは今ひとつなので気が向いたときに写経しつつ問題を解くことにする。 問題1.2 scheme ;; 5 + 4 + (2 - (3 - (6 + 4/5))) ;; ----------------------------- を前置記法に翻訳せよ。 ;; 3(6-2)(…

Scheme演習 第3回 reverse

http://www-ui.is.s.u-tokyo.ac.jp/~hara2001/scheme/material/3/3.mtd.column.html#exより。(add-squares list)を書きました。 guile> (define (add-squares lst) ... (define (sum-iter sum-lst) ... (if (null? sum-lst) ... 0 ... (+ (car sum-lst) (sum…

Gauche-Readlineのインストール

Gaucheでは、ライブラリのインストールは gauche-package install URLで行なえるようだ。場所を見つけなきゃいけないのがあれだけど、まぁまぁ便利。ただし、Readlineモジュールは0.8.6以降と書いてあるが、Debian SargeのGaucheだと0.8.3なので、0.8.7を手…

カウンター

ホントにまだまだ基本的なところですが、少しでもわかってくるとなかなかSchemeも面白いですね。 (define (factorial x) (if (> x 0) (* x (factorial (- x 1))) 1)) (define (log-factorial x) (log (factorial x))) (define (count-down f x) (if (> x 0) …

Scheme処理系

とりあえずしばらくはGuileのほうを使ってみるかも。標準でreadlineが入ってるのとaptから入れられるのがでかい。難点は、リファレンスがあまり充実してないのと、日本語の情報があまりないこと。やっぱReadlineぐらい我慢してGauche使うべきか…。

Gaucheの初期設定

http://sicp.g.hatena.ne.jp/hyuki/20060430/promptのプロンプトの設定の成果を試しに.goshrcとかに書いてみたけど通らなかった*1。しょうがないのでgauche-init.scmの末尾に書き加えた。とりあえずはいい感じ。バックスペースが通らなかったり、履歴をさか…