[SIMILAR] WITH 14841 arrows WITH 7748 kleisli WITH 7268 composition WITH 4557 のar WITH 3827 入部 WITH 2569 haskell WITH 1963 programming WITH 1873 合成 WITH 1589 身近 WITH 1491 関数 WITH 1142 ら入 WITH 952 理解 WITH 770 解し WITH 739 導入 WITH 496 チュ WITH 437 話題 WITH 367 部分 WITH 294 最後 WITH 280 トリ WITH 273 アル WITH 262 リア WITH 154 ュー WITH 139 ート WITH 54 ので WITH 1 [ WITH 1 ] WITH 1 with WITH 1 a WITH 1 -> WITH 1 m WITH 1 b WITH 1 の関 の検索結果 150 件中 1 - 10 件目 (0.078838388 秒)
a -> m bの関数を合成するKleisli Compositionから入るArrowsのチュートリアル。身近な話題から入っているので、私にとっては他のArrowsの話よりも導入部分がわかりやすいです。まだ最後まで読んでいないので、理解したわけではないですけど。 HXTのArrows APIはなんとなく使えはするものの、ちゃんと理解してい ...
import Data.List on :: (a -> a -> b) -> (c -> a) -> (c -> c -> b) f `on` g = \x y -> g x `f` g y のようなonを定義しておくと、 sortBy (compare `on` snd) [(1,2),(2,1),(1,3)] のように書くことができます。以下と同じですが、ちょっと読みやすげ。 sortBy (\ (_, x) (_, y) -> compare x y) [(1,2),(2 ...
# (スコア:1739)
一つの例をモナドを合成しながら拡張していくという形で説明されているので使い方のチュートリアルとしてはかなり分かりやすいと思います。最後に、モナドの型クラスの方(MonadReaderとかMonadStateなど)にも触れているとなお良かったかも。 ...
# (スコア:1653)
また本が出るようです。目次をざっと見たところでは、The Craft of Functional Programmingと同じような雰囲気? ...
# (スコア:1634)
by Brent Yorgey <first initial last name at cis.upenn.edu> 標準Haskellライブラリには、代数や圏論に裏打ちされた数多くの型クラスが用意されています。流暢なHaskellハッカーになるためには、これら全てに根本的に慣れ親しんでいる必要がありますが、慣れ親しむためには、しばしば山ほどのチュートリアルや ...
# (スコア:1633)
Invalid Textたとえば、HDBCを使うときに普通にIOモナドの中から直接扱うには、 f :: IO () f = bracket (connectODBC dsn) (disconnect) (\conn -> ...) のようにすればOKです。ところがこれをIOモナドを合成するモナドの中で扱うとすると、bracketの型がIO a -> (a -> IO b) -> (a -> IO c) -> IO cなのでbra ...
# (スコア:1606)
あちこちで紹介されているので読んでみました。全て理解したわけではないですが、今までなんとなくもやもやだったkindについては結構スッキリしました。 型推論に関しては、Types and Programming Languagesがあちこちで薦められていますが理解できるんだろうか… ...
# (スコア:1605)
初めて触れる人には、入門Haskellよりわかりやすいのではないかと。 関数型言語を全く知らない場合には、やはりHaskell: The Craft of Functional Programmingの方がお勧めかも。 ...
# (スコア:1553)
Rubyで関数プログラミングっぽく書くためのライブラリ。 ...
# (スコア:1501)
Invalid TextData Familiesは、型パラメータに依って実装を変えたいときに使えます。C++のテンプレートでの特殊化みたいなものでしょうか。 {-# LANGUAGE TypeFamilies #-} import qualified Data.Sequence as Seq data family Vector a -- BoolのVectorはリストで表現 data instance Vector Bool = BoolVector ...
# (スコア:1501)
# (スコア:10000)