タグ

ブックマーク / mayah.jp (3)

  • 考えることを減らせる様に書く — Scratch Leaf — MAYAH.JP

    ちょっと遅れたけど参戦するよ。 プログラミングテクニックのまとめ 中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント 優秀なプログラマは空気を読んで空気を描く 槍玉に挙がっているのは、次の3か条。 変数のスコープは小さく抑える Do Not Repeat Yourself (DRYの原則) 同じコードは2度書くな 言語を極めよ 何人かは「ケースバイケース」だと言ったし、それは間違ってない。しかしケースバイケースだと言うのは簡単だがこれは何にも指針を示してない。ケースバイケースだと言われた側は、結局そこから何も学ぶことが出来ない。納得はしちゃうかもしれないけどね。こういうエントリを読んだってことは何かを知りたかったわけだよね。だとしたら、何か曲がりなりにでも指針が示されるべきじゃないかな。というわけで僕なりの指針を示したいと思う。 さて、この中で Le

  • OCaml 基礎最速マスター — Scratch Leaf — MAYAH.JP

    OCaml は Haskell とは違って純粋でない関数型言語です。ML (Meta Language) という言語ファミリーの方言の一つで、フランスの INRIA という研究所で開発されています。速度を稼ぐために命令型のように書こうと思えば書けるし、遅延評価もデフォルトではしません。その分、practical なアプリケーションが書きやすくなっています。 他の言語をある程度知っている人はこれを読めば OCaml のとりあえずの基礎をマスターして OCaml を書くことができるようになります。多分。関数型言語の知識は仮定していません。C/C++ ぐらいの知識があれば読めると思います。元の Perl 基礎文法最速マスターではリファレンスぽい作りですが、チュートリアルぽくなってしまいました。 なお、読んでいると分かりますが、色々とめんどくさいことが多いように感じます。しかし、これをちゃんと書く

  • call/cc 入門 (Coroutine with call/cc) - MAYAH

    call/cc を使って簡単な Coroutine を作ります。call/cc 入門だと思ってもらえれば幸いです。 coroutine とは ここでは coroutine を「実行の途中でリターンでき、さらにそこ(実行の途中)から再開することが出来る何か」の意味で使用します。適当な疑似言語で書くと次の通り。関数の途中でのリターンを suspend(), 途中からの再開を resume() で表すことにします。 ここでは、これを scheme の call/cc を用いて表すことを目指します。 call/cc とは call/cc とは、call-with-current-continuation という scheme の関数で、「現在の継続(current continuation)を生成し、それを関数に渡してその関数を実行する」ものです。読者の殆どは「継続」についてよく知っているかもしれ

  • 1