関数型プログラミング言語Haskell Part7
■ このスレッドは過去ログ倉庫に格納されています
0820デフォルトの名無しさん
2007/08/17(金) 23:52:32T型の値を変更する関数を書く代わりに、T型の値を受け取ってT型の値を返す関数を書くのが定石。
俺ならこんな感じで書く。
getRen :: IgoBoard -> Point -> Stone -> Set Point
getRen board point stone = augmentRen point empty
where
augmentRen :: Point -> Set Point -> Set Point
augmentRen (Point x y) ren
| stone == boardGetStone board && not (member point ren)
= augmentRen (Point x (y-1)) $
augmentRen (Point x (y+1)) $
augmentRen (Point (x-1) y) $
augmentRen (Point (x+1) y) $
insert point ren
| otherwise = ren
■ このスレッドは過去ログ倉庫に格納されています