Skip to content

Latest commit

 

History

History
49 lines (37 loc) · 1.24 KB

README.md

File metadata and controls

49 lines (37 loc) · 1.24 KB

haskell-brainfuck

Interpreter for the brainfuck programming language

Build Status

haskel-brainfuck is distributed as a library, but it also includes an executable to run brainfuck programs. You can find haskell-brainfuck in Hackage

Usage

Library

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]

Executable

brainfuck fib.bf

Tests

You can run the test suite with

cabal test

Documentation

http://paraseba.github.io/haskell-brainfuck/