タグ

Haskellに関するfumi1のブックマーク (11)

  • Generalised algebraic datatype - HaskellWiki

    Papers See also research papers on type systems. A short description on generalised algebraic datatypes here as GHC language features. Another description with links on the archived Haskell' wiki. First-Class Phantom Types by James Cheney and Ralf Hinze Stratified type inference for generalized algebraic data types by François Pottier and Yann Régis-Gianas. It contains also a lot of links to other

  • モナドとはモナドである - モナドとわたしとコモナド

    この記事を読む前に、絶対に理解出来ないモナドチュートリアルに一度目を通してみてほしい。モナドを理解していく上で、とても重要なことが書かれている。 改めて言おう、モナドはモナドだ。コンテナだとかプログラマブルセミコロンだという説明では、モナドのすべてを正確に表せるとは言い難い。では、モナドを過不足なく説明できる、モナド以外の言葉はあるのか? 実は、モナドを表現し、かつモナドで表現される言葉は存在する。その一つは手続きである。手続き型言語の「手続き」だ。 手続きとは何か 手続きは結果を持つ おおよそすべての手続きは何らかの結果を持つ。Haskellの()、C言語のvoid、PythonのNone、Rubyのnilなども結果の一種だ。結果が出ないとしたら、そのプログラムは停止しないか、途中で異常終了するだろう。 手続きには最小単位が存在する 処理系が扱っている以上、手続きが際限なく分解できるとい

    モナドとはモナドである - モナドとわたしとコモナド
  • 絶対に理解出来ないモナドチュートリアル - konn-san.com

    世の中には、恐しい数のモナドチュートリアルがあって、それぞれモナドは象だとか、いや接ぎ木だ とか、プログラマブル・コンテナだとか、プログラム可能なセミコロンだとか、色々な説明がなされている。「モナド チュートリアル」で検索すれば、他にも色々に絵解きされた有象無象のモナドが大量に引っ掛かる。そうそう、モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?なんてのもあったな。 この記事の目的は別に、こうした既存のモナドチュートリアルを「間違ってる!」とか「わかるわけねーよ!」といって貶そうという訳ではない。実際、既に幾多書かれているチュートリアルの中でも、僕の云いたいことと殆んど同じようなことが書かれているものは沢山ある。 では、上の膨大なリストの末尾にまた一つ「わかりやすい比喩」を付け足そうというのか?というとそういう訳でもない。そうそう、モナドは比喩ではないというチュートリアル

  • Escape From the Ivory Tower: The Haskell Journey, From 1990 to 2011 - Eventer

    Haskell is my first baby, born slightly before my son Michael, who is now at university. From somewhat academic beginnings as a remorselessly pure functional programming language, Haskell has evolved into a practical tool used for real applications and, amazingly, is still in a state of furious innovation. Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. After

  • swish

    Swish is a framework, written in the purely functional programming language Haskell, for performing deductions in RDF data using a variety of techniques. Swish is conceived as a toolkit for experimenting with RDF inference, and for implementing stand-alone RDF file processors (usable in similar style to CWM, but with a view to being extensible in declarative style through added Haskell function an

  • IIJ IIの山本和彦さんによる、関数型言語(Haskell)勉強会開催のお知らせ:プログラマー社長のブログ:オルタナティブ・ブログ

    急ですが、6月8日(水)16時から、WIDEプロジェクトやMew,KAMEなどで有名な、(株) IIJ イノベーションインスティテュート 主幹研究員の山和彦さんを講師としてお招きし、当社地下会議室にて関数型言語の勉強会を開催することになりました。 言語としては、Haskellの話題になる予定です。 きっかけは、先日内定を出した学生さんが関数型言語が大好きで、「それなら就職に関して山さんに一度相談してみたら?」「今会っても,緊張しすぎて,何も話せないと思います」という感じで、「まあ、それなら当社でも関数型言語に興味があるメンバーはいるので、勉強会でも開催して、交流しましょうか?」ということになり、早速やることになりました。 当社メンバーだけではもったいないので、もし興味ある方がいれば、是非一緒にいかがでしょう?地下の会議室はそれほど広くはないのですが、10人くらいは余裕ですので。 タイ

    IIJ IIの山本和彦さんによる、関数型言語(Haskell)勉強会開催のお知らせ:プログラマー社長のブログ:オルタナティブ・ブログ
  • 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog

    今の会社に移って半年経ちました。めでたく試用期間終了です。といっても別に試用期間中に密かに首を切られるような事をしたとか、逆に試用期間が終わったからと言ってこれで定年までのうのうと働ける、という訳ではありません。未来は全く判りません。まあとにかく、一つ区切りがやってきました。 金融を知らないQuantsの仕事 私の職業の肩書きには Quantitatitatitatitative という単語がくっついて超カッコよさそう。普通は Quant というと、金融工学や統計数理に詳しい夜もブイブイいわしている超イケメン20代を想像しますが、私は金融とか全然知らないアラフォーお父さんです。それでも Quant です。お願いですから、私に何を買ったらいいかとか、聞かないでください。金融商品とか買った事ないし。というか、逆に教えて欲しいです。 私のチームは、当の Quant さん達が開発した、金融派生商

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
  • Route 477 - gemcutterの使い方まとめ (2009年秋)

    ■ [haskell] モナドって結局なんなの 社内勉強会でモナドについて発表しました。分かった気がするたびにすぐに手からすりぬけてしまう、それがモナド…! 追記: モナドそのものが何なのかとか考えないほうがいいんじゃないですかね! [Twitter / いーぐるとまとより引用] まさにその通りだと思います(笑)。IOの使い方、Maybeの使い方、Stateの使い方などを押さえておけば、 中がどうなってるかなんて知らなくても大丈夫。 でも、モナドの持つ「なんか秘技がありそうな感じ」が、中を覗いてみたくさせるんですよね。 この、どこまで掘っても自分の知らないことが出てくる感じがHaskellの魅力なのかも。 Haskell の当にすごいところは、「なぜなに」を問いかけることでいつまでもプログラマが成長できるところにある。 [ふぁぼったー / ikegami__より引用] 一問一答 Q. モ

    Route 477 - gemcutterの使い方まとめ (2009年秋)
  • Haskell の構文に惑わされているね - 檜山正幸のキマイラ飼育記 (はてなBlog)

    2月21日に、rst76さんからトラックバックをいただきました。 「技術者/プログラマのためのラムダ計算、論理、圏」セミナー第2回 だいぶ遅くなってしまいましたが、口語体、つうかオシャベリ体でお応えします。 こりゃカリー化つうより、コンビネータの利用じゃね rst76さん曰く: Prelude> let g a b x = a * x + b Prelude> g 3 5 7 26 Prelude> let g1 a b = (+ b) . (* a) Prelude> g1 3 5 7 26 んーんと、これはカリー化(ラムダ抽象)と関係ないなー。確かに関数の変数(引数)が減っているように見えるんだけど、それは単にgとg1で違う書き方をした、ってだけ。g1がgのカリー化(ラムダ抽象)ということではない。 これはむしろコンビネータに関係するかな。コンビネータを使うとラムダ変数(束縛変数)を減

    Haskell の構文に惑わされているね - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Page Redirection

    If you are not redirected automatically, follow the link to example

    Page Redirection
  • Real World Haskell

    Why functional programming? Why Haskell? 1. Getting started 2. Types and functions 3. Defining types, streamlining functions 4. Functional programming 5. Writing a library: working with JSON data 6. Using typeclasses 7. Input and output 8. Efficient file processing, regular expressions, and file name matching 9. I/O case study: a library for searching the filesystem 10. Code case study: parsing a

  • 1