[SIMILAR] WITH 5138 haskell WITH 2215 数名 WITH 1829 引数 WITH 1491 関数 WITH 1338 ィタ WITH 1073 順番 WITH 1068 エデ WITH 725 検索 WITH 594 認識 WITH 535 便利 WITH 265 面白 WITH 218 ディ WITH 202 が出 WITH 202 出て WITH 64 す。 WITH 1 [ WITH 1 ] WITH 1 hoogle WITH 1 api WITH 1 の検 WITH 1 索が WITH 1 がで WITH 1 でき WITH 1 きま WITH 1 ます WITH 1 。関 WITH 1 名は WITH 1 はも WITH 1 もち WITH 1 ちろ WITH 1 ろん WITH 1 ん型 の検索結果 425 件中 1 - 10 件目 (0.211440753 秒)
Haskell APIの検索ができます。関数名はもちろん型からも検索できるのが面白いです。 Ord a => [a] -> [a] と入れるとsortなどが出てきます。引数の順番が変わっていても認識するので、 [a] -> (a -> b) -> [b] でもmapが出てきます。 XML-RPCなどで呼び出せるようにして、エディタから引けるようにすると便利そ ...
by Brent Yorgey <first initial last name at cis.upenn.edu> 標準Haskellライブラリには、代数や圏論に裏打ちされた数多くの型クラスが用意されています。流暢なHaskellハッカーになるためには、これら全てに根本的に慣れ親しんでいる必要がありますが、慣れ親しむためには、しばしば山ほどのチュートリアルや ...
# (スコア:8223)
初めて触れる人には、入門Haskellよりわかりやすいのではないかと。 関数型言語を全く知らない場合には、やはりHaskell: The Craft of Functional Programmingの方がお勧めかも。 ...
# (スコア:8144)
Invalid Text次はSynonym Families。引数の型によって関連づけられた型を変えたいときに使います。C++でいうところの、特殊化されたテンプレートの中のtypedefとでも言えるでしょうか。 ありがちな例としては、コレクションクラスがあります。 class Collection a where type Elem a empty :: a add :: Elem a ...
# (スコア:8064)
Rubyで関数プログラミングっぽく書くためのライブラリ。 ...
# (スコア:7981)
a -> m bの関数を合成するKleisli Compositionから入るArrowsのチュートリアル。身近な話題から入っているので、私にとっては他のArrowsの話よりも導入部分がわかりやすいです。まだ最後まで読んでいないので、理解したわけではないですけど。 HXTのArrows APIはなんとなく使えはするものの、ちゃんと理解してい ...
# (スコア:7981)
Invalid TextData Familiesは、型パラメータに依って実装を変えたいときに使えます。C++のテンプレートでの特殊化みたいなものでしょうか。 {-# LANGUAGE TypeFamilies #-} import qualified Data.Sequence as Seq data family Vector a -- BoolのVectorはリストで表現 data instance Vector Bool = BoolVector ...
# (スコア:7981)
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 ...
# (スコア:7935)
ご指摘ありがとうございます。二番目を除いてほとんどそのまま反映させました。 二番目は、「Haskellは同等の数式を定義するのに、joinの代わりに(>>=)を使用します。これは、その方が便利なためです。」にしてみました。"equivalent formulation"が、圏論においてモナドを定義する式と同等な式(つまりMonadの ...
# (スコア:7899)
キーと値からなる設定ファイルをパースするとします。設定ファイルはこんな感じです。 name=Test value=5 マップなどで値を持つという方法もありますが、ちゃんと型付けするために専用の型を用意することにします。そうするとパースするコードはこんな感じでしょうか。 import Control.Monad import Data.Maybe ...
# (スコア:7897)
# (スコア:10000)