タグ

Haskellに関するihagのブックマーク (3)

  • 制約プログラミングのススメ - あどけない話

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

    制約プログラミングのススメ - あどけない話
    ihag
    ihag 2010/01/15
  • はじめての Haskell - あどけない話

    昨日、友達にこんなことを話しました。 Haskell でプログラミングするときは、とりあえず効率のことは忘れる。 メモリーは無限にあると考え、コンパイラーと遅延評価が頑張ってくれると信じる。 Haskell では what を記述する。 効率を考えている時点で、how である。 what と how は、同一視されがちであり、区別するには訓練が必要。 変数は初期化できるが、再代入できない。 だから、インデックスが必要な for はない。 繰り返しが質なら、再帰で書く。 単にリストを走査したいなら map を使う。 リスト処理が得意なので、なんでもリストに落とし込む。 もう一度言うけれど、メモリーは無限にあると考えるから、リストが大きくても気にしない。 行を数えてみる ファイルの行数を数えるプログラムを考えるとします。命令型の頭で考えると、一行ずつ読み込みながらファイルの終わりまでループを

    はじめての Haskell - あどけない話
    ihag
    ihag 2008/02/16
  • 第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro

    Haskellというプログラミング言語を知っていますか? 全く聞いたことがないという人が多いかもしれません。そういう名前の言語があるのは知っているけど,どんな言語かは知らないという人もいるかもしれませんね。でも最近では,一部の先進的なソフトウエア開発者の間で,一種のブームと言えるほど熱狂的に受け入れられています。 なぜならば,Haskellは様々な優れた特徴を持っているからです。最初に,他の言語にはあまり見られない際だった特長を一つだけ紹介してみましょう。「遅延評価(lazy evaluation,怠惰評価ともいう)」です。 遅延評価とは,与えられた値を必要になるまで評価(計算)しないということです。この性質により,不必要な計算が行われる無駄をなくすことができます。また,「潜在的に無限の大きさを持つデータ構造」といった通常のプログラミング言語では扱いの難しいものを直接扱えるため,より直接的

    第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro
  • 1