タグ

★とHaskellに関するl-_-llのブックマーク (7)

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

    日経クロステック Special What's New ベネッセホールディングスが標準機として選んだレッツノート 専門家が斬る日の意識と対策の現状は? 神田れいみと学ぶ「ネットワーク活用白書」 ゼロトラスト成功の秘訣を神田れいみと探る 地域創生で重要になる「事業化」の視点とは 3つのペルソナで、働き方に合わせたPC選び ERPプロジェクトIT人財の必須条件は 経営 地域創生で重要になる「事業化」の視点とは ERPプロジェクトIT人財の必須条件は 先進都市対談>生成AIは行政DXの切札? 多様化する地域の課題解決に向けて議論 地域×テクノロジーでミライを共創する 脱レガシー案件≫SIerに必要な人財像は 役所文化の変革!奈良市のデジタル市役所 3段階で考える、DXで企業力を高める方法 イノベーションの起爆剤 石戸氏に聞く。生成AI教育で使うには 東芝が描くDXの道筋とその先の未来とは

    本物のプログラマはHaskellを使う
  • Haskellの文法(分岐編) - あどけない話

    僕が Haskell を学び始めた頃、Haskell の文法はすんなりとは頭に入ってきませんでした。もともと僕はプログラミング言語の学習能力が低いので、僕だけかもしれませんが、「はじめからこう言ってもらえれば分かったのにぃ」ということを書きます。 はじめの一歩 分岐は case で書きます。以下に Maybe a に対する例を書きます。 case mx of Just x -> ... Nothing -> ... 念のため、Maybe a の定義も見てみましょう。 data Maybe a = Nothing | Just a 列挙されているデータ構成子を case に列挙できることが分かるでしょう。このように、case でマッチできるのは、データ構成子で表現されたパターンになります。 ワイルドカード たとえば、以下のような型を定義したとします。 data Foo = A | B | C

    Haskellの文法(分岐編) - あどけない話
  • QAで学ぶMonad - あどけない話

    この記事は、Monad でつまづいた Haskeller のための Monad 再入門です。 Monadとは何ですか? Monad とは、単なる型クラスの一つです。難しいという風評もありますが、それ以上でもそれ以下でもありません。 この型クラスのメソッドは、return と >>= です。 class Monad m where (>>=) :: m a -> (a -> m b) -> m b return :: a -> m a つまり、以下を満たす型の集合が Monad です。 m a で表現できるように一つの型変数を格納するコンテナ型 >>= と return を実装 return は新しいコンテナを作り、>>= は二つのコンテナを合成します。 Monad のインスタンスは失敗系と状態系に大別できます。以下に代表的なインスタンスを示します。 失敗系: Maybe、[] (リスト)

    QAで学ぶMonad - あどけない話
    l-_-ll
    l-_-ll 2019/08/22
    "(+1) <$> は、(+1) という文脈非依存の関数を Maybe という文脈に持ち上げているのです。(略)「失敗しない関数を失敗するかもしれない関数に変更している」と考えてもよいでしょう"
  • モナド (プログラミング) - Wikipedia

    関数型プログラミングにおいて、モナドはプログラムを構造化するための汎用的な抽象概念である。対応したプログラム言語では、ボイラープレート的なコードでもモナドを使って除去することが可能となる。これはモナドが、特定の形をした計算を表すデータ型と、それに関する生成と合成の2つの手続きを提供することによって実現されている。生成は任意の基型の値をモナドに包んでモナド値を生成する手続きであり、合成はモナド値を返す関数(モナド関数)たちを合成する手続きである。[1] 広い範囲の問題をモナドを使うことで単純化できる。例えば、Maybeモナドを使えば未定義値への対処が簡単になり、Listモナドを使えばリストに入った値を柔軟に扱うことができる。複雑に組み合わさった関数は、モナドを使えば、補助データの管理や制御構造や副作用を除去した簡単なパイプライン構造に置き換えることができる[1][2]。 モナドの概念や用語

  • What is a monad?

    First: The term monad is a bit vacuous if you are not a mathematician. An alternative term is computation builder which is a bit more descriptive of what they are actually useful for. They are a pattern for chaining operations. It looks a bit like method chaining in object-oriented languages, but the mechanism is slightly different. The pattern is mostly used in functional languages (especially Ha

    What is a monad?
    l-_-ll
    l-_-ll 2017/05/19
    #71697 モナドの易しい説明
  • 絶対に理解出来ないモナドチュートリアル - konn-san.com

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

    l-_-ll
    l-_-ll 2016/04/25
    函数型プログラミングの目的。それは合成可能性、モジュラリティだ。その為に、函数型言語の基本は「函数の合成」に置かれている。函数合成こそ、函数型プログラミングの本質だ。
  • Haskell の Monad とは言語内DSLのフレームワークである - あどけない話

    この記事は、Haskellを勉強してある程度分かったけど、Monadで挫折した人のための記事です。10分間で、Monadに対する納得感を得ることを目的としています。他の言語でいう「モナド」にも通用する内容ですが、Haskell の文法や用語を用いますので、他の言語の利用者に分かるかは不明です。 Haskellを勉強したのですから、 代数データ型 型クラス は分かっていることにします。Monad は、単なる型クラスの一つで、それ以上でもそれ以下でもありませんから、この二つが分かってないと話になりません。 また、言語内DSL(以下、DSLと略記)という考え方を知っていることも仮定します。Monad とは、DSLのフレームワークという直感を与えるのが、この記事の主眼ですからね。 さらに、構造化定理をいう単語を聞いてもビビらない人を想定しています。逐次、反復、分岐があれば、計算しうる計算はすべて記

    Haskell の Monad とは言語内DSLのフレームワークである - あどけない話
  • 1