タグ

ブックマーク / www.ice.nuie.nagoya-u.ac.jp/~h003149b (3)

  • ミラー・ラビン(Miller-Rabin)テストの説明

    もともとは、values、call-with-valuesを むりやり使うという趣旨だったので、 色々変かも。 valuesを使った関数の例 自然数nは必ず、 n = (2^k)*q ; qは奇数 という形に書く事ができる(例えば、80 = (2^4)*5、246 = (2^1)*123)。 自然数をこのような形に表す事を、 とりあえず「kq分解」とか「偶奇分解」とか呼ぶ事にする (実際には、そんな言葉は無い)。 このkとqを求める関数は、valuesを使って次のように書ける。 (define (k&q n) (let loop ((k 0) (q n)) (if (even? q) (loop (+ k 1) (/ q 2)) (values k q)))) この関数を使って、ミラー・ラビンテストを行なう関数を作る。 フェルマー(Fermat)テスト nが素数の場合、1<=a<nとなるa

  • SchemeとActor理論

    この言語は、MITの二人の聰明な人間がしていた大きな論争にはじまります。 それは、私がMITに学生として来るちょっと前のことでした。 この論争というのは、Carl Hewittと、 新しく学生として入ったGerry Sussmanの間に起こったものです。 Guy L. Steele Jr.「Scheme 過去・現在・未来 前編」 (bit vol.28,No.4 1996 4月号) あれは玉突きだね。.....いや、というよりはキャッチボールだ 北村薫「六の宮の姫君」 Actorに基づく言語 メッセージ送信 アクターにメッセージを送る。 メッセージを受け取ったアクターは、別のアクターにメッセージを送る。 以下同様。 例えば「1と2と3からなるメッセージをアクターaに送る」という事を [a 1 2 3] と書く事にする。 アクターaはメッセージを受け取ると、別のアクターにメッセージを送る。

    yhara
    yhara 2007/11/29
  • Scheme、Common Lisp、Emacs Lispの比較

    「王女アテー姫を含めてハザールの男女は、 この能力によって朝ごと変身を済ませ、 そのたびに、見たこともない斬新な顔で立ち現れる。 だから近親者同士でさえ見分けがつかないほどだ。 旅行者の見聞はこれとはまったく異なり、ハザールの顔つきはどれもそっくりで、 しかも歳を重ねても容貌が変わらない。それゆえ人違いの混乱や厄介が絶えない。 どちらにせよ、結果は同じことで、ハザール族の顔はまず覚えられないし、 覚えても無益となる。」 ミロラド・パヴィチ「ハザール事典」 Lispには数限りないほどの方言がある (例えば、 http://dreamsongs.com/NewFiles/Hopl2Slides.pdf とか参照)。 そのなかで普及している Lispというと、 Scheme、Common Lisp、Emacs Lispの3つだろう。 ユーザの多さでいうと、多い順に Emacs Lisp、Comm

  • 1