タグ

functional_programmingとHaskellに関するHashのブックマーク (3)

  • たのしい高階関数

    筑波大学計算機数学グループ春の館山合宿での講演「数学プログラムを
Haskell で書くべき6の理由」の発表資料。実際の講演映像は https://www.youtube.com/watch?v=S4_7KVNA-Ww

    たのしい高階関数
    Hash
    Hash 2012/11/28
    やさしいところを丁寧に解説してくれるプレゼン, 良い
  • Haskellの演算子について纏めてみた - 開発やプログラミングや家族や思考

    人が作ったHaskellのコードを読んでいると、記号の意味がわからなくて困ることが多々あったので纏めてみた。hrefでもGoogleでも検索できないしさ… Haskellの演算子で使える記号 !#$%&*+./<=>?@\^|-~ 及びUnicodeに含まれる記号(一覧が欲しい…けど√とか→とかもきっとそうだよね。) ただし「(),;[]`{}_:"'」は除く さらに、「:」で始まるのはデータコンストラクタで予約されているので演算子では使えない。 また、以下の記号列は予約されている 演算子 意味 .. リストの範囲指定。 : リストのcons。 :: 型指定 = 関数束縛。 \ ラムダ(無名関数)。 | パターンマッチのガード条件。data型enum定義。リスト内包表現。 <- リスト内包表現のジェネレータ。do記法での値束縛。 -> 関数の型定義。ラムダ(無名関数)定義。case式。 @

    Haskellの演算子について纏めてみた - 開発やプログラミングや家族や思考
  • 第3回 mapからモナドを理解する

    今回は「モナド(monad)」について説明します。モナドはHaskellの重要な特徴の一つなので,名前くらいは聞いたことがある人が多いでしょう。ただ,「モナドは難しい」という声もよく聞きます。 モナドとは一体なんでしょうか。前回,「HaskellはIOを取り扱うためにモナドと呼ばれる特別な仕組みを使用することで有名です」と書きました。Haskellは遅延評価を行うため,プログラマが処理の順番を確実に指定することができず,そのままでは入出力の処理には不向きです。モナドを使えば制御構造を導入できるため,この問題を解決できます。前回でいえば,(IO a -> IO a)にマッチする関数――finallyやprintThenAdd――を定義している部分がモナドに相当します。また,GHCiのプロンプトにもモナドが使われています。このように入出力操作を行うモナドの代表格が「IOモナド」です。ライブラリ

    第3回 mapからモナドを理解する
    Hash
    Hash 2010/12/22
    モナドって何だ。さっきわかんなかった遅延リストも入ってる。
  • 1