Haskell

packageのインストールに関する備忘録

cabal install のリポジトリ http://hackage.haskell.org/trac/hackage/wiki/CabalInstall を見ればいいんだけど、おもいっきり間違えた。 cabal install の stable branche は http://darcs.haskell.org/cabal-branches/cabal-install-x.x である。 Setup c…

Befungeを見習って

f >>> g1 &&& (g2 >>> g3) >>> h1 *** h2 >>> first i >>> j1 ||| j2を、 f v v g2 v v g1 &&& v v v v g3 v v h2 j1 v * | * >>> | * | h1 >>>>>> i j2とか書けたら愉快ですね(monospaceなフォントで表示してください)。

Functor, Applicative, Foldable, Traversalの練習

class Functor f => Applicative f where pure :: a->f a <*> :: f (a->b)->f a->f b class Foldable t where foldr :: (a->b->b)->b->t a->b foldr f b = foldMap (`f` b) foldMap :: Monoid m => (a->m)->t a->m foldMap f = foldr (mappend . f) mempty c…

loopとfix

話とかは気が向いたら書く… decList x = x:if x == 0 then [] else decList (x - 1) fix $ \f x->x:if x == 0 then [] else f (x - 1) \f x->x:if x == 0 then [] else f (x - 1) fix :: (a->a)->a loop :: a (b, d) (c, d)->a b c fix f = f $ fix f loop f…

よく分からないなりに

{-# LANGUAGE MultiParamTypeClasses, TypeFamilies, FlexibleInstances #-} data Zero = Zero data Succ n = Succ n _0 = Zero _1 = Succ _0 _2 = Succ _1 _3 = Succ _2 _4 = Succ _3 _5 = Succ _4 type family NthParamType n a :: * type instance NthPar…

フィボナッチ数列をアレする

フィボナッチ数列 fib = 0:1:zipWith (+) fib (tail fib)で、これを新しい名前を作ることなく、かつ無名関数を書かずにやってみる。まずは関数の形になおす。 fib = let fib' x y = x:fib' y (x+y) in fib' 0 1fib'のパターンを書かないように変形する。 fib…

HAMA.jp 開催中です

人のいないところでマルチキャストしても意味ないけど、 http://atnd.org/events/1048 です!Haskellに興味のある型もない型(←わざと)も、ぜひご覧あれ!

会社での私を表してみる

work :: Maybe Programmer->Maybe Specification->Either SourceCode Garbage

ふつける読んでからというもの

ここのところ、ちらほらと「あーこれHaskellなら…」とか考えるようになった。しかし会社で例えば、 // 多分Maybeなコード using boost::optional; using boost::result_of; using boost::bind; // >>=は右結合で()書くのが面倒なので>=にした template<typename T, typename F> typen</typename>…

読み終わったので

12, 13章はwikiを作る内容だったので割と適当に読み流し。私の理解はPersecってSpirit。

ふつける現在11章ぐらい

なんだ、型クラスってConceptじゃないか?あとaliasとかtypedef(いずれもD的な意味で)とか。データ型はなんかstruct(C的)+union+enumみたいな。というかC++のFunctionalなあれやこれやを見たことある人ならそこまで突っかからずに理解できる感じ。ただ私はMo…

このあたりからか

ふつうのHaskell第5章。このへんから面白くなってきそうな感じ。

よく見たら

なんだあるじゃないか?「はじめてのyi」的なものが。http://nobugs.org/developer/yi/index.htmlここ。とりあえずここと他のHaskell解説サイトでも見ながらいじってみることにする。つーかデフォルトで文字小さすぎ。