Scheme

everyがツンな件について

リストの中身が全部整数なことを確認しようとしてて気づかされた。 (every integer? `()) => #t 「だって整数じゃない人はひとりも居なかったもん」

最近見た動画

その1 Scheme 関係 Scheme 初心者としてはこれが参考になりました。 「アロケーションは重い」「アロケーションがあれば GC もある。GC も重い」「Lisper は、inner loop ではアロケーションしないように書くというのが定石」 ということは、入力 port から…

Scheme は目に優しいか

毎日ちょっとづつ Scheme をいじっていて、「Scheme って目に優しいかも」と思った。主に、Perl と比べて、だけど。 「さあ昨日の続きを書こう」と思ってエディタでファイルを開いたときに目に飛び込んでくる characters の種類によって、精神に与えるダメー…

call/cc まだつかめず。

今日の発見。 これは処理が戻らなくなる。 %gosh gosh> (define x #f) x gosh> x #f gosh> (begin (print "a") (call/cc (lambda(z) (set! x z))) (x #t)) a"a" を表示したっきり、黙り込むゴーシュ。豪酒。剛手。拷首。 書き直すと、 (define x #f) (begin …

円周率

id:Jagdpanther さんが Gauche で円周率を計算しているのをみて、私もやってみる。 ガウチェ・モンテール円周率 - Jagdpantherの日記 http://d.hatena.ne.jp/Jagdpanther/20090126/1232921485 id:Jagdpanther さんは Gauche に標準で付いてくる Mersenne Twi…

Scheme の練習。100 個の乱数のリスト。

Scheme の練習中。 やりたいこと: 100 個の要素を持つリストを作りたい。 各要素は、0 から 99 までの整数から、ランダムに選んだやつにしたい。 とりあえず書いてみた(正しく動かない版) random100.scm #! /usr/local/bin/gosh (use srfi-27) (define (m…

Scheme の練習。x の n 乗を計算する power。

Scheme の練習として、x の n 乗を計算する power を書いてみた。 あ、そうだ。一応言っときますけど、たいていの Scheme 処理系には、expt という手続きが用意されているはずなので、ここで示す power なんて手続きを用意する必要はないです。以下はあくま…

Project Euler の 15 番目を Scheme で

Project Euler の 15 番目 (Problem 15) を Scheme で書いてみたのだけど、ぜんぜん処理が帰ってこない。 処理に無駄が多すぎるプログラムだってのはわかってるんだけどさ。 Project Euler http://projecteuler.net/ (define f (lambda (x y) (if (or (zero?…

a は 4 つまで。

; car_test (define words '(((((ajax) binary) code) dump) emacs)) (display words) (newline) (newline) (display (car words)) (newline) (display (caar words)) (newline) (display (caaar words)) (newline) (display (caaaar words)) (newline) (dis…

The Little Schemer

The Little Schemer (The MIT Press)作者: Daniel P. Friedman,Matthias Felleisen出版社/メーカー: The MIT Press発売日: 1995/12/21メディア: ペーパーバック購入: 10人 クリック: 137回この商品を含むブログ (91件) を見る 英語の本だけど、長くて難しい…

Scheme のお勉強

なぜか Scheme のお勉強。末尾再起(まつびさいき)を意識して、コラッツ予想を。 コラッツの予想とは、「与えられた正の整数 n に対して、 n が偶数なら 2 で割る n が奇数なら 3 倍して 1 足す という処理を繰り返すと、最後には全部 1 になるんじゃね?」…