タグ

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

  • 静的型付き言語プログラマから見た動的型付き言語 - あどけない話

    およそ20年前にAlan Kay の講演をきいたことがある。印象に残ったのは、彼が引き合いに出した McLuhan の言葉だ。 I don't know who discovered water, but it wasn't a fish. (拙訳)誰が水を発見したかは知らないが、発見者が魚でなかったことは確かだ。 誰しも信念という水の中を泳ぐ魚のような存在だ。思い切って飛び跳ね空気に触れてみなれば、自分が信念という水の中にいることに気付かない。 ある手法の利点を語るには、その手法の欠点や、他の手法の利点や欠点とできるだけ客観的に比較しなければ説得力がない。ただ、これを実践するのは難しい。この記事では、客観的になれているか自問自答しながら、動的型付き言語と静的型付き言語について比較してみようと思う。 僕は静的な C 言語から、動的な Perl、Lisp、JavaScript を経て、現在で

    静的型付き言語プログラマから見た動的型付き言語 - あどけない話
  • QAで学ぶMonad - あどけない話

    この記事は、Monad でつまづいた Haskeller のための Monad 再入門です。 Monadとは何ですか? Monad とは、単なる型クラスの一つです。難しいという風評もありますが、それ以上でもそれ以下でもありません。 この型クラスのメソッドは、return と >>= です。 class Monad m where (>>=) :: m a -> (a -> m b) -> m b return :: a -> m a つまり、以下を満たす型の集合が Monad です。 m a で表現できるように一つの型変数を格納するコンテナ型 >>= と return を実装 return は新しいコンテナを作り、>>= は二つのコンテナを合成します。 Monad のインスタンスは失敗系と状態系に大別できます。以下に代表的なインスタンスを示します。 失敗系: Maybe、[] (リスト)

    QAで学ぶMonad - あどけない話
  • すごいHaskellたのしく学ぼう! - あどけない話

    ゾウこと「Learn You a Haskell for Great Good!」の訳が、ついに発売されます。 Learn You a Haskell for Great Good!: A Beginner's Guide 作者: Miran Lipovaca出版社/メーカー: No Starch Press発売日: 2011/04/15メディア: ペーパーバック購入: 1人 クリック: 1,024回この商品を含むブログ (7件) を見る 訳のタイトルは、「すごいHaskellたのしく学ぼう!」です。 すごいHaskellたのしく学ぼう! 作者: Miran Lipovača,田中英行,村主崇行出版社/メーカー: オーム社発売日: 2012/05/23メディア: 単行(ソフトカバー)購入: 25人 クリック: 580回この商品を含むブログ (73件) を見る すごいタイトルですね!

    すごいHaskellたのしく学ぼう! - あどけない話
  • カリー化談義 - あどけない話

    最近、スタートHaskellで「カリー化された関数のメリットは何か?」という質問が出た。そのすぐ後に、kmizuさんがカリー化の誤用に対して警鐘を鳴らしてしていた。僕からするとkmizuさんの「カリー化の定義」も誤用に思えたので、調べるとともに考えたことのまとめ。 いろんな定義 「カリー化する」という用語は、すくなくとも以下の3つの意味で使われているようだ。 部分適用という意味 これは明らかに間違い 「複数の引数を取る関数」を「一引数を取る関数のチェインに直す」こと これはkmizuさんの定義。世間でもよく使われる。 「構造体を一つ取る関数」を「構造体のメンバーを複数の引数にばらし、一引数を取る関数のチェインに直す」こと これは僕の定義。というか、Haskellコミュニティの定義。 「部分適用」の意味で使うのは明らかに間違いのなで排除。定義2と3について議論する。あとで、部分適用とは何かに

    カリー化談義 - あどけない話
    nobyuki
    nobyuki 2011/09/06
  • 関数プログラミングの楽しみ - あどけない話

    レビューに参加した「関数プログラミングの楽しみ」が届きました。これは、関数プログラミングの入門書をいくつか読んだ人が、もっと高みを目指すためのです。 関数プログラミングの楽しみ 作者: Jeremy Gibbons and Oege de Moor,山下伸夫出版社/メーカー: オーム社発売日: 2010/06/23メディア: 単行(ソフトカバー)購入: 3人 クリック: 98回この商品を含むブログ (17件) を見る 目次 このは、関数プログラミングの父 Richard Bird が還暦を迎えることを記念して、著名人が各章を寄稿し、編集した構成となっています。コードはすべて Haskell で書かれています。目次は以下の通りです。 二分ヒープ木の楽しみ 仕様に基づくテスト -- QuickCheck を使って おりがみプログラミング Haskellで音楽を記述し解釈する 融合変換を自

    関数プログラミングの楽しみ - あどけない話
  • 制約プログラミングのススメ - あどけない話

    IIJ 社内でやったチュートリアル 純粋関数型言語Haskellの紹介 〜制約プログラミングのススメ〜 の資料を公開しました。

    制約プログラミングのススメ - あどけない話
  • 遅延評価と末尾再帰と余再帰 - あどけない話

    遅延評価では再帰の効率はどうなるかという問題です。Real World Haskell で、末尾再帰は重要だと言った後に、遅延評価では末尾再帰なんて気にするなとちゃぶ台を返しています。ようやく haskell-cafeで答えを見つけたので、Luke Palmer さんの許可を得て訳を公開します。 Luke Palmer さんの説明 私が Haskell でプログラミングするときは、通常関数を末尾再帰にはしません。(Int や Bool など)正格な値へ畳み込む場合、末尾再帰を使うのはよいことです。しかし帰納的な遅延構造を作成する場合、関係する用語は(私の記憶が正しければ)「余再帰」(corecursion)であり(訳注:mapは再帰かつ余再帰だそうですが、専門的すぎるので普通の再帰でいいと思います)、末尾再帰とはまったく異なります。 リストに対し末尾再帰で map する関数を例として考えま

    遅延評価と末尾再帰と余再帰 - あどけない話
  • Haskellerはプログラミング界の立川談志である - あどけない話

    昨日の Haskell ナイト用に作ったスライドがあったんですが、見せるタイミングがありませんでした。悔しいので、ここに書いちゃいます。 Haskellerはプログラミング界の立川談志である。 なぜなら、多くのプログラマーはLisperに憧れている(らしい)。 たとば、川合史朗さん。たとえば、和田英一先生。 これは、多くのお笑い芸人がビートたけしに憧れてることに似ている。 そのビートたけしは、立川談志に憧れている(らしい)。 多くの Lisper は Haskeller に憧れているから(要出典)、Haskeller はプログラミング界の立川談志である。 古典落語も新作落語もばっちり!

    Haskellerはプログラミング界の立川談志である - あどけない話
  • プログラマの壁 - あどけない話

    プログラマに向いている人と向いていない人がいるそうです。 Jeff Atwood さんの「どうしてプログラマに・・・プログラムが書けないのか?」: プログラムを書ける者とプログラムを書けない者の間にある大きな溝についてはよく知られているが、プログラマの職に応募してくる人間は、すでにこの溝を飛び越えているものだとばかり思っていた。明らかにこれは妥当な仮定ではないらしい。プログラムを書けないプログラマの面接で時間を無駄にしないために、FizzBuzzスタイルのふるい分けが必要ということだ。 どんなことでも向き不向きはあるでしょうから、これには納得いきます。しかし、プログラマになれる人の中にも、溝があるようです。 Joel Spolsk さんの「Javaスクールの危険」: 私のささやかな経験から言わせてもらうと、伝統的に大学のコンピュータサイエンスのカリキュラムで教えられているもので、多くの人が

    プログラマの壁 - あどけない話
  • 1