タグ

algorithmとschemeに関するHashのブックマーク (2)

  • 再帰的な無名関数 - ヒビノキロク

    次の関数は再帰的な関数だ。 (define fact (lambda (n) (if (= n 0) 1 (* n (fact (- n 1)))))) この関数は内部で自分自身を呼び出しているので、普通の方法では無名関数として定義できない。 こういう場合、不動点オペレータというものを使うと以下のようにしてfactを定義することができる。(fact関数の中で直接factという名前を使っていない所がポイント) (define fact (let ((Y (lambda (F) ((lambda (s) (F (lambda (x) ((s s) x)))) (lambda (s) (F (lambda (x) ((s s) x)))))))) (Y (lambda (f) (lambda (n) (if (= n 0) 1 (* n (f (- n 1))))))))) ここで天下り的に出て

    再帰的な無名関数 - ヒビノキロク
  • Project EulerにGaucheで挑戦する話 - Qiita

    Lisp Advent Calendar 19日目担当の @naoya_t です。 「昨晩@g000001さんと回転寿司屋でLispについて話した」(※実話)とかでもいいんですが、予告通りProject Eulerの話を書こうと思います。 ちょっと投稿が遅くなりましたが、インド標準時(UTC+05:30;日時間より3時間半遅れています)でぎりぎり19日ということでお許しください。 はじめに 記事では、特定の問題の解答や、それを導くプログラムはProject Eulerの参加規約に抵触するため掲載しません。 Project Eulerとは 偉大な数学者レオンハルト・オイラーの名を冠するProject Eulerとはいったい何なのでしょうか? 英語WikipediaでProject Eulerを開いてみると Project Eulerは、コンピュータプログラムで解くことを意図した計算問題

    Project EulerにGaucheで挑戦する話 - Qiita
    Hash
    Hash 2012/12/20
    最近挑戦し始めたけど意外に難しい
  • 1