タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

arrowに関するnorisuke3のブックマーク (8)

  • ArrowによるHaskellプログラミングの基礎。…パイプ感覚で順次/分岐/繰返し - よくわかりません

    Programming with Arrowsを読んで理解したつもりのメモ。誤りなど乞うご指摘。 (復習)Arrowってなに? と思って以前調べたメモが"3分で解るHaskellのArrowの基メモ - よくわかりません"。それにちょっと補足というか観点を変えてまず感覚の整理。 Monadに色んな種類があるように、Arrowも色んな種類がある。 Monad: IO、Maybe、… Arrow: 関数そのまんま(->)、Kleisli m、… ある種類のMonadに色んな型の色んな値を入れられるように、ある種類のArrowに色んな型の色んな関数を入れられる。 Monad: Maybeの例→ 「Maybe Int」 にreturn 0もreturn 777もOK。「Maybe Char」 にreturn 'a'もreturn ' 'もOK。 Arrow: (->)の例→ 「Int -> In

    ArrowによるHaskellプログラミングの基礎。…パイプ感覚で順次/分岐/繰返し - よくわかりません
  • Haskell/Understanding arrows - Wikibooks, open books for an open world

    We have permission to import material from the Haskell arrows page. See the talk page for details. Arrows, like monads, express computations that happen within a context. However, they are a more general abstraction than monads, and thus allow for contexts beyond what the Monad class makes possible. The essential difference between the abstractions can be summed up thus: Just as we think of a mona

  • Arrowの話をしよう (1)ArrowとArrow記法 - haxis_fxの日記

    Q: そんなタイトルで大丈夫か? A: 大丈夫だ、問題ない。 Q: Arrowってなに? A: あれは今から36万…いや、1万4千年前だったか…まぁいい、私にとってはつい昨日の出来事だが、君たちにとっては多分明日の出来事だ。彼には72通りの名前があるから、なんて呼べばいいのか…確か最初に会ったときは、Morphism… ... こめんなさい…今のは真っ赤な嘘です… http://www.haskell.org/arrows/ から引用: Arrows are a new abstract view of computation, defined by John Hughes [Hug00]. They serve much the same purpose as monads -- providing a common structure for libraries -- but are

    Arrowの話をしよう (1)ArrowとArrow記法 - haxis_fxの日記
  • アローの取っ掛かり - Qiita

    Haskellの実験メモです。 アローの取っ掛かりをつかむため、次の記事のサンプルをアローなしで書き換えてみました。 Programming with Arrows 読解 1 : tnomuraのブログ 今回の記事で書き換えを試みているのは、アローを使わずに済ませるためではなく、感覚をつかむために既知の概念と比較したいからです。 F#のパイプライン演算子や関数合成と似ているので、F#とも比較します。 準備 2つのテキストファイルを用意します。

    アローの取っ掛かり - Qiita
  • Programming with Arrows 読解 1 | tnomuraのブログ

    このエントリーからしばらく 『Programming with Arrows』 の解読をやっていこうと思う。リンクからダウンロードすればPDFで読むことができる。 1 Introduction 1.1 Point-free programming Haskell では引数を省略した関数を . 演算子で合成関数をつくることで関数を定義する point-free style がある。次のプログラム count w は point-free style で書かれたプログラムの例だ。文字列の中で、w と一致する単語がいくつ現れるかを計算する。 Prelude> let count w = length . filter (==w) . words 実行例 Prelude> count "a" "Consider this simple Haskell definition, of a functi

    Programming with Arrows 読解 1 | tnomuraのブログ
  • Haskell/Arrows - Wikibooks

    Introduction[編集] Arrow は Monads の一般化だと考えることができる。全てのMonadはArrowに変換することができるが、ArrowはMonadに変換できない場合がある。Arrow型を導入する目的はMonadを使う目的と同じであり、ライブラリ向けに標準的な型を用意することである。しかし、Arrow型はMonadより広範囲の概念をサポートする。Arrow型では、部分的に静的な計算(出力の一部が入力に依存しない計算)や、複数の引数を取る計算を表すことができる。Monadで上手くいくならMonadだけを使えばよいのだが、Monadが使えそうだが使えない対象に対しては、Arrowを使うべきかもしれない。 procとarrowの根[編集] まずArrowを使った記法に馴れることから始めよう。ここでは、簡単のため、最もシンプルな関数を表すArrowと、小さなサンプルプログラ

  • Arrow を理解する (まとめ) - Qiita

    頭が悪くてずっと理解できなかった Haskell の Arrow をこのたびやっと理解し始めたので,その過程をまとめました. Arrow について勉強したい人の理解の一助になればと思います. 多価関数と Category 綱渡りと Category (と,Kleisli) (>>=) を (>=>) に書き換える Category から Arrow へ (未完) 間違いの指摘,疑問やツッコミなどあればコメントでお願いします. Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with s

    Arrow を理解する (まとめ) - Qiita
  • Arrow化pipeはFRPの夢を見るか? - Qiita

    askP = P.constructT P.kleisli0 $ do lift $ putStrLn "情報を入力して下さい" forever $ do lbl <- P.await lift $ putStr (lbl ++ ": ") ct <- lift $ getLine P.yield (lbl, ct) registerP = do r <- runKleisli (P.run askP) ["Zip code", "Address", "Name"] print r ほとんど間違い探しのレベルですね。真似して作ったので仕方ない。machinecell側にだけkleisliという見慣れない名前が見えますが、これは型合わせだと思って無視して頂いてOKです。 上のコードは、ちょっと変則的ですが、pipe系の汎用性をデモするために「データの中間加工時に副作用を起こす処理」を実装して

    Arrow化pipeはFRPの夢を見るか? - Qiita
  • 1