落書きノート

ふと自分が気になった事を書いてます

Haskellで問題を解く

普通にインタプリタでやるとできなかったので、テキストファイルに書いてから読み込ませると出来ました。これ以外にやり方がわからないのでわかる方、教えてください。後、面倒なので、このブログではLinuxmacOSHaskellコードと混ぜて書いてます。バージョンが違うと若干違うので…。

問題掲載サイト

99 questions/1 to 10 - HaskellWiki

q7.hs

data NestedList a = Elem a | List [NestedList a]
 
flatten :: NestedList a -> [a]
flatten (Elem x) = [x]
flatten (List x) = concatMap flatten x
-- q7
Prelude> :load q7.hs
[1 of 1] Compiling Main             ( q7.hs, interpreted )
Ok, modules loaded: Main.
*Main> flatten (Elem 5)
[5]
*Main> flatten (List [Elem 1, List [Elem 2, List [Elem 3, Elem 4], Elem 5]])
[1,2,3,4,5]
*Main> flatten (List [])
[]