辞書
前も書いた、Haskellでの拡張型辞書。
一応の検索機能、追加機能を実装し、version1.0は完成
あとはこれに、逆引き機能つけたり、文字列内検索付けたり、
あわよくばGUIにしたりできればいいんですが
上の二つの機能はすぐできるにしても、それ以上はまだ今の私ではできないので。
とりあえずソースコード
import IO main = do cs <- getContents search $ lines cs search :: [String] -> IO() search (w:ws)=do handle <- openFile "list.txt" ReadMode fs <- hGetContents handle search' w (maketouple $ words fs) hClose handle search ws where search' w []= putStrLn "No Data!\nAdd that word?\n\tYES:y\n\tNO:else\n" >> register (w:ws) search' w (list:lists) | w == "exit" = error("\r exit from program.....") | w == fst list = putStrLn ("]"++snd list) | otherwise = search' w lists register :: [String] -> IO() register (x:y:xs) | y == "y" = do appendFile "list.txt" (x++" "++(head xs)++"\n") putStrLn "-------finish to register!" search $ tail xs |otherwise = search xs maketouple :: [a] -> [(a,a)] maketouple [x,y] = [(x,y)] maketouple (x:y:xs) = (x,y):maketouple xs
これだけで一応の機能は備わっています
ただ、プログラムの終了条件に
error式
を使っているのもよくない。
プログラム終了関数があると思うけど、とりあえずこれで代用してしまっている。
しかし30行(Editraでは28行)
で一応の、使い道があるものが書けるというのは楽しいな