Haskellやる!

Real World Haskell―実戦で学ぶ関数型言語プログラミング が研究室に入ったので、本格的に Haskell やってみようかと。

とりあえず、3章まで読んだ。
目指せリア充!
(注:「Real World Haskell充」の略)

> let (+++) a b c = a + b + c
> 2 +++ 4 $ 5
11

(第一項) (演算子) (第二項) $ (第三項) 的な。

myFact n = fact n primes
 where
  primes = primes' [2..]
  primes' (x:xs) = x : (primes' $ filter (\a -> mod a x /= 0) xs) 
  fact n (pn:pns)
   | n == 1 = [] 
   | (floor $ sqrt $ fromInteger n) < pn = [n] 
   | mod n pn == 0 = pn : (fact (div n pn) (pn:pns)) 
   | otherwise = fact n pns 

where かっけぇ!
参考:Haskell vs Ruby: Netsphere Laboratories