import Data.Char import Control.Applicative main = do s <- lines <$> readFile "/usr/share/dict/web2" putStr "enter length of word: " n <- read <$> getLine let words = filter (\x -> length x == n) s putStrLn (show(length words) " possibilites") putStr "enter first letter of word: " a <- head <$> getLine let words2 = filter (\x -> head x == a) words putStrLn (show(length words2) " possibilites") putStr "enter last letter of word: " b <- head <$> getLine let words3 = filter (\x -> last x == b) words2 putStrLn (show(length words3) " possibilites") isWord words3 0 isWord (w:ws) i = do putStr ("is the word " w "?: ") r <- toLower . head <$> getLine if (r == 'y') then putStrLn "HA! Told you I was smart!" else if (i == 10) then putStrLn "You outwitted me!" else isWord ws (i 1)