2014-12-01から1ヶ月間の記事一覧

Haskell で線形探索(番兵)

同じように配列に対する線形探索を書いた。Haskell のリストをわざわざメモリ上に保存しなおしているという無駄があるがサンプルなので気にしないことにする。 linearSearch :: (Eq a, Storable a) => a -> [a] -> IO (Bool, Int) linearSearch target xs = …

Haskell でStackを(3)

今度はスタックのサイズは固定、要素もIntのみで、状態モナドを止めてみた。スタック自身でポインタを管理する。これで複数のスタックを使える。ほぼCの構造体になったと思うがわたしはCを書けないので自信なし。 import Foreign.Ptr import Foreign.Marshal…

Haskell でスタックを(2)

Haskell でスタックを書く、続き。スタックのサイズは固定のまま、スタックの要素を変更できるようにした。 スタックは Foreign.Marshal.Array.mallocArray で確保する。 確保した領域へのポインタは(グローバル変数の替わりに)状態モナドで管理する。 -- St…

Haskell でスタックを書く

Ptr, malloc の勉強のため Haskell でスタックを書いてみた。いろいろ間違っている可能性あり。 スタックは mallocBytes で確保する。 確保した領域へのポインタは(グローバル変数の替わりに)状態モナドで管理する。 -- Stack import Control.Monad.State im…