タグ

haskellに関するinoueyuworksのブックマーク (5)

  • モナドの六つの系統[Functor x Functor] - モナドとわたしとコモナド

    モナドは「アクション」を表す抽象的な構造である。モナドは、Haskellにさまざまな概念に対する記述能力をもたらす。 モナドの基礎 return :: a -> m a: 純粋な値をモナドで包む。 m >>= f :: m a -> (a -> m b) -> m b: モナドmに包まれた値をfに渡し、その結果として現れたモナドを結合する。 固有アクション: それぞれのモナドに固有の方法でモナドを生み出す。 実行: モナドに包まれた値を、より根源的な形に還元する。 モナド則 モナドに以下の三つの制約を課すことによって、最低限度の記述能力を保証している。 return a >>= k == k a m >>= return == m m >>= (\x -> k x >>= h) == (m >>= k) >>= h より強い制約は、より強い力を生み出す。 モナドの分類 モナドは、以下の6つ

    モナドの六つの系統[Functor x Functor] - モナドとわたしとコモナド
    inoueyuworks
    inoueyuworks 2020/12/25
    よくある Haskell モナドの6分類
  • 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

    inoueyuworks
    inoueyuworks 2019/01/11
    real world haskell が読めるっぽい。
  • Low latency, large working set, and GHC’s garbage collector: pick two of three | Pusher blog

    Low latency, large working set, and GHC’s garbage collector: pick two of three Pusher makes it easy for developers to reliably deliver data at scale. A few features we are working on required a rewrite of our internal message bus, but we knew anything we build has to perform as reliably as the existing platform. Our chosen language for this job was Haskell, compiled with GHC. Haskell, unusually \[

    Low latency, large working set, and GHC’s garbage collector: pick two of three | Pusher blog
    inoueyuworks
    inoueyuworks 2019/01/11
    worst latency をチューニングするのは無理ゲー。
  • Reducing garbage-collection pause time in a Haskell program

    We are developing a program which receives and forwards "messages", while keeping a temporary history of those messages, so that it can tell you the message history if requested. Messages are identified numerically, are typically around 1 kilobyte in size, and we need to keep hundreds of thousands of these messages. We wish to optimize this program for latency: the time between sending and receivi

    Reducing garbage-collection pause time in a Haskell program
    inoueyuworks
    inoueyuworks 2019/01/11
    GC の latency のパフォーマンスは、メモリ量に対して線形であり、割とどうしようもない。
  • 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog

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

    経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた - camlspotter’s blog
  • 1