タグ

ブックマーク / www.sampou.org (10)

  • All About Monads モナドのすべて

    モナドのすべて Haskell におけるモナドプログラミングの理論と実践に関する包括的ガイド Version 1.1.0 このチュートリアルは、モナドの概念とその関数プログラミングにおける応用に ついて、初中級の Haskell プログラマにわかりやすく、利用価値があるような 解説をすることを旨としています。読者は Haskell になれていることを前提と しますが、モナドに関する経験は要求していません。このチュートリアルは、多 くの題材をカバーしています。後半のセクションでは、前半の題材をよく理解し ていることを前提とします。順をおって、モナドプログラミングを例示するため のサンプルコードがたくさん用意されています。一読で、すべての題材を吸収し ようというのはお勧めできません。 このチュートリアルは 3 つの部分で構成されています。最初の部分は、 関数プログラミングにおけるモナドの基

  • モナド変換子

    モナド変換子 変換子の型構築子 もちあげ モナド変換子はモナドの合成を容易にする、標準モナドの特別版です。 モナド変換子の型構築子はモナド型構築子に関してパラメータ化されており 合成されたモナドの型を生成します。 変換子の型構築子 型構築子は Haskell のモナドでは基盤としての役割をはたします。 Reader r a が 内部の型が a で、 r という型の環境をもつ Reader モナドの値の型であことを 思い出してください。型構築子 Reader r は、 Monad クラスのインスタンスで、 runReader::(r->a) 関数はその Readerモナドの計算を実行し、 型 a の結果を返します。 ReaderT とよばれるReader モナドの変換子版 が存在して、 追加パラメータとしてモナド型構築子が付け加わります。 ReaderT r m a は Reader が ベ

  • haskell-jp:535

    mnru
    mnru 2012/12/03
    以前の Haskell Platform 2009.2.0.2 βからの大きな変更として、GHC 6.12.1 の変更に従って editline が削除されました。ですが、一方で GHCi の実装に使われている haskeline も、今回 のリリースでは収録されていません。
  • A Gentle Introduction to Haskell: Classes

    やさしい Haskell 入門 ( バージョン 98 ) back next top 5  型クラスと多重定義 最後に他のプログラミング言語とは違う Haskell の型システムの特徴について 説明しましょう。すでに述べてきた多相は、パラメータ ( parametric )多相とよばれるものです。このほかに アドホック多相とよばれる種類のものもあります。これは 多重定義( overloading )という呼びかたのほうがよく知られ ているかもしれません。アドホック多相の例をいくつかあげると、 1、2 などのリテラルは、固定長の整数と任意長の整数の両 方でつかわれることが多い。 + のような数値演算子は何種類もの数値上で定義されることが多い。 同値演算子( Haskell では == )はふつう数値とその他多く(すべてで はない)の型の上で動作することが多い。 こうした多重定義されたものの振

  • Meet the Monads

    モナドに触れる 型構築子 Maybe というモナド 例 リストもモナド 要約 この章をつうじて、Maybe 型構築子を使うので、先にすすむ前に Maybe の使いかたと定義になれておかなければなりません。 型構築子 Haskell のモナドを理解するためには、型構築子の扱いになじんでいる必要があ ります。型構築子 は多相型をもちいたパラメータ化された型定義です。 Haskell では、一つ以上の具体的な型にたいして、型構築子を適用すると 新しい具体的な型を構築できます。Maybe の定義は、 data Maybe a = Nothing | Just a です。Maybe は型構築子で Nothing および Just はデータ構築子です。Just データ構築子を ある値に適用してデータ値を構成できます。 country = Just "China" 同様に、Maybe 型構築子をある型に

  • A Gentle Introduction to Haskell, Version 98

    Paul Hudak, Yale University John Peterson, Yale University Joseph Fasel, Los Alamos National Laboratory September 28, 1999 翻訳:山下 伸夫 <nobsun@sampou.org> これは、「やさしい Haskell 入門 (バージョン98)」のHTMLバージョンです。 目次要約 イントロダクション 値、型、その他の有用な概念 関数 case 式とパターン照合 型クラスとオーバローディング 再び、型について 入出力 標準の Haskell クラス モナド 数 モジュール 型付けの落し穴 配列 この先の学習 参考文献 目次 このHaskell Tutorialのマスター文書は、 haskell.orgにあります。このレポー トの訂正や変更はすべてそこに反映されるようになっ

    mnru
    mnru 2012/07/28
  • IPSJ: Haskell Programming

    「連載: Haskellプログラミング」のプログラム $Date: 2006/06/09 15:06:12 $ 記事は情報処理学会のページ http://www.ipsj.or.jp/magazine/promenade.html で見ることができます.

  • なぜ関数プログラミングは重要か

    John Hughes, Institutionen för Datavetenskap, Chalmers Tekniska Högskola, 41296 Göteborg, SWEDEN. rjmh@cs.chalmers.se この日語訳は原著者の承諾を得て山下がここに公開するものです。 この訳文についての、御指摘などは山下伸夫(nobsun .at. sampou.org)までおねがい いたします。 翻訳最終更新日 : 2011-09-17 原文 "Why Functional Programming Matters" 日語訳PostScript この論文は1984年以来何年ものあいだChalmers大学のメモとして回覧された。 1989年と1990年に幾分か改訂をしたのが[Hug89]と [Hug90]である。この版はもとのChalmer大学のメモ のnroff原稿をもとに

  • A Gentle Introduction to Haskell, Version 98

    Paul Hudak, Yale University John Peterson, Yale University Joseph Fasel, Los Alamos National Laboratory September 28, 1999 翻訳:山下 伸夫 <nobsun@sampou.org> これは、「やさしい Haskell 入門 (バージョン98)」のHTMLバージョンです。 目次要約 イントロダクション 値、型、その他の有用な概念 関数 case 式とパターン照合 型クラスとオーバローディング 再び、型について 入出力 標準の Haskell クラス モナド 数 モジュール 型付けの落し穴 配列 この先の学習 参考文献 目次 このHaskell Tutorialのマスター文書は、 haskell.orgにあります。このレポー トの訂正や変更はすべてそこに反映されるようになっ

    mnru
    mnru 2010/08/03
  • Haskell 98 字句構造

    | や [...] のような超論理的構文と(タイプライタフォ ントで与えられた) | や [...] のような具象終端構文を 区別しなければならない。しかし、これらの区別はふつうは文脈から明かなも のである。 Haskell では Unicode [11] 文字集 合を使う。しかしながら、ソースプログラムは現時点では Haskell の過去の バージョンで使用されていた ASCII 文字集合であるものに偏っている。 この構文は Unicode コンソーシアムが定義した Unicode 文字の性質に依存す る。Haskell コンパイラは利用可能な Unicode の新しいバージョンを使うこ とが推奨されている。 2.2  字句上のプログラム構造

    mnru
    mnru 2010/07/01
  • 1