S.F. Page

Programming,Music,etc...

Haskell

Haskell(8)

今日はリストを扱うプログラム(2)をさらっと見ました。 やはり驚くべきはクイックソートですね。 qSort :: [Int] -> [Int] qSort = qSort (x:xs) = qSort [ y | y ++ qSort [ y | y x ] これをHug98に読ませ、コマンドラインから実行すると感動します。 テス…

Haskell(7)

Haskellを勉強してちょっとよかったのは、Boost::MPLが関数プログラミングを意識したライブラリであることを実感できたことでしょうか。 今後ですが、Haskellの自習のペースは落としつつ、S.F.Trackerの作成ペースを少しづつ上げていきます。

Haskell(6)

関数合成です。 (.) :: (b->c) -> (a->b) -> (a->c) f . g = \ x -> f (g x) 「.」という中置演算子は、(bという型の引数をとりcという型を返値とする関数)型の引数と、(aというの引数をとりbという型を返値とする関数)型の引数をとり、(aというの引数…

Haskell(5)

今日はリストからです。 リストの内包表現の部分が面白いですね。

Haskell(4)

再帰と組を勉強し始めています。 fact :: Int -> Int fact n | n == 0 = 1 | n > 0 = fact (n-1) * n こういうの見ても意味がわかるようになってきました。

Haskell(3)

とりあえず、ここの3.までを完了。下記のエラーの意味が理解できるようになる。 Prelude> foldr1 (++) ['a','b','c','d','e'] ERROR - Type error in application *** Expression : foldr1 (++) ['a','b','c','d','e'] *** Term : (++) *** Type : [a] -> [a…

Haskell(2)

今日はHaskellのインタプリタHugsをインストールしました。 そのあと、ここのサイトを見て自習します。

Haskell

関数プログラミングというパラダイムがイマイチ理解できないのです。 なのでMPLやらなにやら関数プログラミングの考え方を取り入れたライブラリは???です。 というわけでHaskellという関数型言語を少しかじってみようかなとHaskell関連のホームページをチ…