Interpreter for the brainfuck programming language
haskel-brainfuck is distributed as a library, but it also includes an executable to run brainfuck programs. You can find haskell-brainfuck in Hackage
import HaskBF.Eval
import qualified Data.ByteString.Lazy as BS
import Control.Monad.State
main = do
-- The following will evaluate the file using stdin and stdout for I/O.
-- Evaluation results in an EvalResult
file <- BS.readFile "/path/to/file.bf"
(EvalSuccess _) <- evalBS defaultIOMachine file
print "ok"
-- The following will evaluate the file using the State monad and input
-- provided by input
let input = []
output = []
result = execState (evalStr simulatorMachine "+.>-.") (SimState input output)
print $ simStateOutput result == [1, -1]
brainfuck fib.bf
You can run the test suite with
cabal test