module BottlesOfBeer import StdEnv Start = [(fst_line x +++ "\n" +++ snd_line x +++ "\n\n") \\ x <- [99,98..0]] fst_line :: Int -> String fst_line n = btl n True +++ wall +++ ", " +++ btl n False +++ " of beer." snd_line :: Int -> String snd_line 0 = "Go to the store and buy some more, " +++ btl 99 False +++ wall +++ "." snd_line n = "Take one down and pass it around, " +++ btl (n-1) False +++ wall +++ "." btl :: Int Bool -> String btl 0 True = "No more bottles" btl 0 False = "no more bottles" btl 1 b = "1 bottle" btl n b = toString n +++ " bottles" wall :: String wall = " of beer on the wall"