型と型クラス
import List -- Line型の宣言 data Line = Line { number :: Int, string :: String} deriving Show -- number部分だけ受け取って作る。string部分は"abc"で固定 line :: Int -> Line line x = Line x "abc" -- Lineのリストであるline' line' :: [Line] line' = line 2 : line 1 : line 3 : line 4 : [] -- Lineのリストをnumberで昇順ソート sortLines :: [Line] -> [Line] sortLines xs = sortBy (\x y -> (number x) `compare` (number y)) xs -- Lineリストを作成、numberで昇順にソートして、表示する。 main = do print line' print $ sortLines line' ここから下は実行結果 [Line {number = 2, string = "abc"},Line {number = 1, string = "abc"},Line {number = 3, string = "abc"},Line {number = 4, string = "abc"}] [Line {number = 1, string = "abc"},Line {number = 2, string = "abc"},Line {number = 3, string = "abc"},Line {number = 4, string = "abc"}] ここまで
ソースもたまには張ってみたくなったのでペタペタ。
んで、思ったの。
line'は変数なのか、関数なのか。
sortLinesは変数なのか、関数なのか。
まあ、引数がどうのってのはあるけど、
全部関数って考え方もできるし、変数って見方もできるわけか。
ちょい感動。