タグ

ブックマーク / kazu-yamamoto.hatenablog.jp (7)

  • 2011年に Haskell を始める人のために - あどけない話

    適切な一歩を踏み出すか否かは、大きな違いを生みます。この記事では、2011年に Haskell を始める人のために、著者が考える最適な入門方法を示します。 Haskell Platform をインストールする 昔人気のあった Hugs は、もう保守されていません。現在は、GHC の時代です。GHC とライブラリをパッケージ化した Haskell Platform をインストールして下さい。 インタープリタが使いたい場合は、付いてくる ghci を使います。 コンパイラ -- ghc インタプリタ -- ghci スクリプト -- runghc GHC マニュアルの日語訳もあります。 プログラミングHaskell 次に、プログラミングHaskellを読んで関数プログラミングの「こころ」を理解しましょう。 プログラミングHaskell 作者: Graham Hutton,山和彦出版社/メー

    2011年に Haskell を始める人のために - あどけない話
  • Haskellの開発ツール (2011年版) - あどけない話

    Haskell開発に関係するツールをとりとめもなく列挙してみます。 エディタ/IDE 僕は、Emacs と haskell-mode と ghc-mod を組み合わせて使っています。haskell-mode は、行頭揃えの機能がしょぼいので、作り直したいと思っています。 IDE のバックエンドとしては、scionがありますが、使ったことがないので説明できません。(僕は ghc-mod で十分だと思っているので。) Leksah とか yi とかも聞きますが、使ったことがないので知りません。(いや、yi はちょっと使ったことがありますけど。) 興味のある人は自分で調べて下さい。 マニュアル 関数のマニュアルが読みたくなったら、GHCについてくるモジュールの一覧とhackageDBから探して下さい。ghc-mod を使っていれば、一発でブラウザに表示できます。 探すのが面倒なら、google

    Haskellの開発ツール (2011年版) - あどけない話
  • 祝 「Scheme 手習い」復刻 - あどけない話

    めでたい! 「Scheme 手習い」が復刻しました。正確に言うと、復刻ではなく、新しい版に基づいた新しい訳です。 Scheme手習い 作者: Daniel P. Friedman,Matthias Felleisen,元吉文男,横山晶一出版社/メーカー: オーム社発売日: 2010/10/22メディア: 単行(ソフトカバー)購入: 5人 クリック: 129回この商品を含むブログ (34件) を見る 以前、マグロウヒル出版から出版されていた「Scheme手習い―直感で学ぶLisp」は、"The Little Lisper" の訳です。内容が、Common Lisp でもなく、Scheme でもない Lisp の方言によって書かれているのに、邦題に Scheme が入っていたのは、このの唯一の欠点だと僕は感じていました。 今回は、"The Little Schemer" の訳です。原書も訳

    祝 「Scheme 手習い」復刻 - あどけない話
  • 珠玉のリスト・プログラミング - あどけない話

    僕は Haskell を知るまで、再帰に関しては、もう学ぶべきことはないと思っていました。しかし、繰り返しさえ再帰で実現しなければならない純粋関数型言語に触れてはじめて、再帰の深淵を見た気分になりました。 以下、Programming in Haskell から 3 つ問題を出します。あなたには、実装できるでしょうか? 問題 以下の関数を実装しなさい。 与えられたリストのすべての部分リストを生成する関数 subs 第一引数を第二引数のリストへ挿入したすべてのリストを生成する関数 interleave 与えられたリストの順列を生成する関数 perms 言葉だけではよく分らないと思いますので、実行例を示します。 subs [1,2,3] → [[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]] interleave 1 [2,3,4] → [[1,2,3,4],

    珠玉のリスト・プログラミング - あどけない話
  • 偉大な習慣 - あどけない話

    「僕は、偉大なプログラマなんかじゃない。偉大な習慣を身につけたプログラマなんだ。」 --- Kent Beck 僕の信じた伝説 この一年間、あまりコードを書かずに、たくさんのを読み、勉強ばかりしていました。そして、自分がかなり時代に取り残されたプログラマであることが身に染みて分りました。 僕の信じていたプログラミングの伝説は、こんな感じです。 初期工程で完全な仕様を作れ 実際問題、完全な仕様なんて作れるはずがありません。仕様は変わります。また、時代の変化やユーザの要望の変化により、要求も変わります。ですから、仕様が変わってもよいように、実装に柔軟性を持たせないといけません。 効率第一 大切なのは、コードの分りやすさです。効率はよいが分りにくい大きな関数を書くのではなく、効率はやや悪いが分りやすい小さな関数を書くべきです。関数呼び出しは遅いという伝説もありますが、最近のコンピュータは高速で

    偉大な習慣 - あどけない話
  • Haskellには副作用がないのか? - あどけない話

    ある人は、Haskell には副作用がないと言う。また、別のある人は Haskell には副作用があると言う。Haskell を学ぶ者にとって、こういった意見のい違いが、Haskell を得体の知れない言語にし、学習の障壁となっているかもしれない。そこで、この記事では、なぜこのような意見の相違が生まれるのかについて説明したいと思う。 向心力か遠心力か? 僕は高校三年になって受験勉強をするまで、物理の運動方程式が得体の知れないものに思えていた。 例として円運動を考えよう。ある説明では、円運動をしている物体には向心力が働いていると説明されている。また別の説明では、遠心力が働くと説明されている。一体、どういうことだろう? 受験勉強でたくさんの問題を解いて、ようやく分かった。これらの説明はどちらも正しい。すなわち、観測者がどこにいるかによって、説明の仕方が異なるのだと。 観測者が円運動をする物体

    Haskellには副作用がないのか? - あどけない話
  • 文章の書き方 - あどけない話

    2006年に IIJ の新人研修で「文章の書き方」という講義を担当しました。そのときの資料を何人もの人に個別に差し上げていたのですが、それも面倒になってきました。新人研修の担当者に問い合わせたところ、公開しても問題ないとのことでしたので、資料を公開します。 「文章の書き方」の資料

    文章の書き方 - あどけない話
  • 1