関数型プログラミング言語Haskell Part21
■ このスレッドは過去ログ倉庫に格納されています
0121デフォルトの名無しさん
2013/02/13(水) 07:14:39.41reverseList :: [a] -> [a]
reverseList list = case (list) of
[]-> []
(x:xs)-> reverseList xs ++ [x]
isPalindrome :: (Eq a) => [a] -> Bool
isPalindrome list
| (list == (reverseList list))= True
| otherwise= False
のisPalindromeは(Eq a)=>を入れないと(==)のテストが出来ないことが分かりました。しかし、
isSum :: [a] -> Int
isSum [] = 0
isSum (x:xs) = 1 + isSum xs は (Num a) =>が無しでも動きます。
どう言う時に"()=>"を使用すればいいのしょうか?また、全ての関数にこの"()=>"を付けた方がよりいいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています