listで練習 その2

Haskellの標準ライブラリのリファレンスを探してます。

  • リバース2

(++)を使わないリバースは降参。思いつきません。

  • 挿入ソート
-- insert sort

myisort _ [] = []
myisort f (x:xs) = [y|y<-sorted, (not (f x y))] ++ (x:[y|y<-sorted, (f x y)])
                     where sorted = myisort f xs
  • リニアサーチ
-- linear search

mylsearch a [] = -1
mylsearch a (x:xs) = if a==x
                       then 0
                       else if( -1 < mylsearch a xs )
                               then 1 + mylsearch a xs
                               else -1