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
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
What I Wish I Knew When Learning Haskell Version 2.5 Version This is the fifth major draft of this document since 2009. HTML Version Screen PDF Printable PDF EPUB Version Kindle Version Pull requests are always accepted for changes and additional content. This is a living document. The only way this document will stay up to date is through the kindness of readers like you and community patches and
QuickCheckでテストに使われるランダムな値の設定とか。 QuickCheckを使うには Test.QuickCheck モジュールが必要。 参考: 本物のプログラマはHaskellを使う - 第17回 QuickCheckでデータ駆動型テストを行う:ITpro 本物のプログラマはHaskellを使う - 第18回 QuickCheckを使ってできることとできないこと:ITpro ランダムに値を生成するのに arbitrary を使って 生成される値をみるには sample を使う。 >>> sample (arbitrary :: Gen Int) -1 0 -1 0 13 -6 -71 105 535 -259 167 >>> sample (arbitrary :: Gen [Int]) [] [2] [4,4] [-5,0] [-17,-20,31,2] [-3,48,-31
Stream processing defines a pipeline of operators that transform, combine, or reduce (even to a single scalar) large amounts of data. Characteristically, data is accessed strictly linearly rather than randomly and repeatedly -- and processed uniformly. The upside of the limited expressiveness is the opportunity to process large amount of data efficiently, in constant and small space. Introduction
Six months ago I released the first "State of the Haskell Ecosystem", a collaborative wiki documenting the maturity of the Haskell language for various application domains: State of the Haskell Ecosystem The primary goals of this wiki are to: Advertise what areas the Haskell language and ecosystem excel at Warn newcomers about common pitfalls so they avoid unpleasant surprises Give new contributor
Inquiring minds on Quora want to know, is Haskell suitable for commercial software development? I’m looking for an alternative to Python mainly for reasons of Python having so much trouble with workable concurrency, and Go seemed great at first look (it’s still not bad, but indeed error handling and lack of generics are a few features cut away too far). This pretty much leaves Haskell as workable
はじめに Haskell には大小様々な Web フレームワークがあります.(yesod, scotty, spock, apiary, rest, 等々) API サーバを作りたいときは scotty を利用することが多かったのですが,つい最近 haskell-servant というパッケージ群を知りました. 小さな API サーバを書きたいときに便利そうだなと思い,使いつつ軽くコードを読んでみました*1. 環境 GHC 7.8.3 (64bit) haskell-servant 公式ページ 型を用いて API 仕様を定義するタイプのフレームワークで,クライアントコードやドキュメントも生成してくれます. API の型とそれに対応するハンドラを組み合わせることで WAI アプリケーションとして動作します. 現在の形になったのはつい最近なんでしょうか? → Rethinking webser
Haskell design patterns differ from mainstream design patterns in one important way: Conventional architecture: Combine a several components together of type A to generate a "network" or "topology" of type B Haskell architecture: Combine several components together of type A to generate a new component of the same type A, indistinguishable in character from its substituent parts This distinction a
Join me on my journey into statically typed functional languages. I’ve been living a pretty happily dynamic life so far. What’s the fuzz with all those types ? What do they give me in a real life scenario (aka is it worth using for work gigs) ? I need to make an effort and try to figure some of this out. This blog series is an attempt to document some of my experiences along the way through a prac
The continuation monad is one of the least appreciated monads and in this post I hope to motivate when to use it. This post will first motivate continuations in general and then motivate them in their specific capacity as monads. Continuations A Haskell continuation has the following type: newtype Cont r a = Cont { runCont :: (a -> r) -> r } A continuation takes a function of type (a -> r) and gen
ナウでヤングなHaskeller に絶賛定着中のstack, ついにv1.0.0がリリースされました! クリスマスプレゼント です! と、いうわけでタイミングよくネタを頂いたので私が初めてstackについて記事を書いた時からもりもり入った更新のうち、 私が気になったものをリリースノートから拾って取り上げたいと思います! 当時はまだv0.1.3.1だったんですね。 といってもまだたった3ヶ月しか経ってませんけど! 設定ファイルのディレクトリ構成が変わった (v0.1.6.0) 当時から使用している方にすれば恐らく一番重要な修正だと思うので一番最初に挙げます。 目的がより明確になるよう、設定ファイル・ディレクトリの名前が次のように変わりました。 ~/.stack/stack.yaml ~/.stack/config.yaml ~/.stack/global/ ~/.stack/global-p
by Phil Freeman on 2015/12/06 In Haskell and PureScript, we are familiar with certain standard hierarchies of type classes. For example, here are some of the type classes provided by the PureScript core libraries: Semigroup, Monoid Semiring, Ring, CommutativeRing, EuclideanRing, Field Functor, Apply, Applicative, Bind, Monad Extend, Comonad Alt, Plus, Alternative Semigroupoid, Category Profunctor,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く