タグ

Haskellに関するgomi_ningenのブックマーク (6)

  • F-algebra と catamorphism を Haskell で理解する - らむだ畑でつかまえて (catcher in the λ)

    wikipedia の F-algebra のページ http://en.wikipedia.org/wiki/F-algebra 参照。 上記ページに集合圏から集合圏への関手F として F(X) = 1 + X という例がでてくるが 1 + X は Haskell では Maybe X である。 Maybe の定義 data Maybe a = Nothing | Just a の「Nothing」が「1」に、「|」が「+」に、「Just a」 が「X」にそれぞれ対応する。 F(f) は fmap f である。 F-algebra の説明にでてくる A を Bool、B を Int とし a :: Maybe Bool -> Bool a Nothing = False a (Just x) = x b :: Maybe Int -> Int b Nothing = 0 b (Just

    F-algebra と catamorphism を Haskell で理解する - らむだ畑でつかまえて (catcher in the λ)
    gomi_ningen
    gomi_ningen 2015/07/02
    F-algebra と catamorphism を Haskell で理解する
  • Functor(関手)ってなんですか? - Nao Minami's Blog

    どうもこんばんは、south37です。今日も引き続きHaskellネタでいこうと思います。Functorって概念を知ったので、ちょろっとまとめてみたいと思います。 そもそも、Functorってなんですか? さて、Functorって聞いて、ピンと来ますか? 僕は、全然ピンと来ませんでした。Wikipedia先生の定義を見ても、 関手(かんしゅ、functor)とは、圏の間の対応付けのことである。関手は対象関数と射関数の組からなる。 などと、何だかよくわからない感じで書かれています。 じゃあ一体なんなんだって話ですが、ポイントはどうやら「対応付け」って点のようです。「圏(と呼ばれるよく分からないモノ)」から「圏」への対応付けをしてくれるのが、Functorです。そうすると、今度は「圏」がなんなんだって話になる訳ですが、これもWikipedia先生によれば 数学における圏(けん、category

    Functor(関手)ってなんですか? - Nao Minami's Blog
  • Haskellでの多態 (多相) | Netsphere Laboratories

    (2009.1.3) Haskell での polymorphism について。 オブジェクト指向だと polymorphism (ポリモーフィズム) は「多態」と訳しますが、Haskell 界 (?) では「多相」というみたいです。 オブジェクト指向言語では、あるオブジェクトに対するメソッド呼び出しが、そのオブジェクト(の種類、クラス)によって異なる振る舞いをする、という意味で使われます。 Haskellにはパラメータ多相とアドホック多相があります。 パラメータ多相 Haskell は、静的に (=コンパイル時に) 型チェックしますが、型が違うだけで実装が共通化できることがよくあります。こういうとき、型をパラメータとします。このような多態をパラメータ多相 (parametric polymorphism) といいます。 次の例は、何かのリストの長さ(要素の数)を数えます。a は型変数で、

  • 圏論でアハ体験 - Bug Catharsis

    もう1週間以上前になりますが、Code2012という合宿イベントに参加してきました。いろいろな方との交流あり、温泉あり、クラウディアさんありと大変楽しかったので、ぜひ来年も参加したいです。 で、VBerのくせにそちらで「5分じゃわからないモナド - 圏論なんて華麗にスルー」というタイトルでLTをしてきました。なぜか、宴会の後にLTをやるという謎なタイムスケジュールとなっていたため、十分にアルコールが回った状態でお話をしました。時間通りにジャスト5分で話しきれたのは奇跡です。来年はそのあたり考慮してもらいたいかも...しれません。LTの後にいくつか質問をいただいて、モナドや圏やF#についてなんだか結構な時間追加でしゃべったような気がします。 LTの要点としましては、「モナドを使うのに圏論の知識は必要ない。」という意見はまったくそのとおりなのだけど、だからといって関数型言語を学ぶ人が圏論に触れ

    圏論でアハ体験 - Bug Catharsis
  • 「Haskell信者」にその素晴らしさを熱く語られたときの平和で適当なかわし方

    Haskellほど、ハマってる人と興味がない人との温度差が激しいものはないと言えるでしょう。 はまっている人の中には、「Haskell の素晴らしさをもっと広く伝えなければ!」と言う使命感を抱いて、 ことあるごとに啓蒙活動に励もうとする“信者”が少なくありません。 その博愛の気持ちは尊いといえば尊いのですが、勧められる側がさほど Haskellに興味がない場合は、 どう対処していいのか困ります。今日も全国各地で、 Haskell信者の熱い勧誘を受けて、 勧められる側が苦笑を浮かべているという構図が繰り広げられていることでしょう。 Haskellに興味がない側のあなたが、 そういう災難にあったときはどう対処すればいいのか。 信者の勧誘に対する平和で適当なかわし方を考えてみましょう。 「Haskell様」を否定するのは危険 程度の差こそあれ、「Haskell」を熱く勧めたがる信者の皆さんは、

  • 本物のプログラマはHaskellを使う:ITpro

    筆者 shelarcy Haskellは,関数型プログラミングというジャンルに属する言語です。Haskellや関数型プログラミングを題材に物事を見ていくことで,今まで思いもよらなかったような未知の世界を知ることができるでしょう。 プログラミング言語を学ぶという行為には, 言語の基的な文法や考え方を理解する 言語の文化圏で広く使われている考え方に親しんでその言語らしい書き方を習得する 単に言語を使ってできること以上の知恵を学ぶ の3段階があります。この連載では,三つ目の段階を目標に,Haskellプログラミングの世界を一つひとつ丁寧に紹介していきます。 更新は毎月第1水曜日(1月のみ第2水曜日)

    本物のプログラマはHaskellを使う:ITpro
  • 1