wvogel日記

自分用の技術備忘録が多めです.

挿入

今日は久しぶりにHaskellに触りました。
大分ブランクができてしまって反省。この春休みに、データ構造をCとHaskell両方で、また授業が始まるまでに復習しておこうと考えています。
で、スタックとかキューについてのHaskellでの実装について考えていたのですが。
あれ、これっていらないんじゃない?と思ってしまった。
いやね、考え方が必要なのはわかるんですが、わざわざ実装方法なんて考えないでも、Haskellの場合リストがあるから、あとはその要素へのアクセス方法を変えるだけだということに気がついた。
..........なんて気付くのが遅いんだろう。我ながらあほらしい。



今日は、Haskellでの、リスト要素追加を書いてみた。
もしかしたらもっと簡単な方法があるのかもしれませんが。
データが昇順(ないし降順)で並んでいるときの追加法です。

main = print $ ins 7 [2,3,5,9,21]

ins :: Int -> [Int] -> [Int]
ins n x = (fst $ins' n x) ++ [n] ++ (snd $ ins' n x)

ins' :: Int -> [Int] -> ([Int],[Int])
ins' n x = span (< n) x

しかし最近、C++をまったくいじってないなあ
DXライブラリで作りかけのものも放置しっ放しだ....よろしくない。
が、マイコンで作ってみたいものもあったり。