のびのびなHaskell日記

2006-07-16

昇順ソートと降順ソート

import List

list = [2,9,8,49,299,34,99,103,3]

main = do putStr "Orginal "
          print list
          putStr "ASC "
          print $ sortBy(\x y -> compare x y )list -- 昇順ソート
          putStr "DESC "
          print $ sortBy(\x y -> compare y x )list -- 降順ソート
  • 実行結果
D:\Development\PracticeHaskell\work20060715>runghc sample05.hs
Orginal [2,9,8,49,299,34,99,103,3]
ASC [2,3,8,9,34,49,99,103,299]
DESC [299,103,99,49,34,9,8,3,2]

6文字以上の文字列はどれとどれ?

リストの中に入っている文字列で、文字列の長さが6文字以上のものをリストに入れて返してもらう処理を書いてみました。

import List

list = ["Oasis","THE CRANBERRIES","Keane","Maroon 5","DEF LEPPARD"]

main = print $ filter isGreaterThan6Characters list

isGreaterThan6Characters x = (length x) >= 6 
import List

list = ["Oasis","THE CRANBERRIES","Keane","Maroon 5","DEF LEPPARD"]

main = print $ filter (\x -> (length x) >= 6) list
import List

list = ["Oasis","THE CRANBERRIES","Keane","Maroon 5","DEF LEPPARD"]

main = print $ filter ( ( >=6 ) . length) list
["THE CRANBERRIES","Maroon 5","DEF LEPPARD"]

__2006/07/18 02:26filter (not . null . drop 5)
無限リストでもOK

NobiNobiKotaNobiNobiKota2006/07/18 03:48filter (not . null . drop 5) ←これは思いつきませんでした(^_^;)

トラックバック - http://haskell.g.hatena.ne.jp/NobiNobiKota/20060716