Haskell has always been a bit difficult for me to understand, but thanks to this guide, I learned quite a bit. It took me about fifteen minutes, but I have my first Haskell program running!
import System.RandomIt's a pretty silly little thing that just asks you if you want to roll and returns some value. I learned quite a bit about monads with both this and the guide, too.
parseAnswer :: String -> IO Bool
parseAnswer "y" = return True
parseAnswer a = return False
testLuck :: (RandomGen g) => g -> Bool -> Int -> IO Int
testLuck seed True x =
do let (addition, newseed) = randomR (-4, 4) seed
mainloop newseed (x + addition)
testLuck seed False x = return x
mainloop :: (RandomGen g) => g -> Int -> IO Int
mainloop seed x =
do printf "Would you like to roll? You currently have: %d\n" x
rolled <- getLine >>= parseAnswer
testLuck seed rolled x
do putStrLn "Welcome to herpaderp."
seed <- newStdGen
mainloop seed 0 >>= printf "You ended up with: %d\n"