| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell98 |
Control.Monad.BrainFuck
- newtype BrainFuck a = BrainFuck (DataPointer -> ([Char], DataPointer, a))
- type DataPointer = Integer
- func :: BrainFuck f -> DataPointer -> ([Char], DataPointer, f)
- brainfuck :: BrainFuck f -> String
- next :: BrainFuck ()
- close :: BrainFuck ()
- open :: BrainFuck ()
- input :: BrainFuck ()
- output :: BrainFuck ()
- decr :: BrainFuck ()
- incr :: BrainFuck ()
- prev :: BrainFuck ()
- add :: Int -> BrainFuck ()
- sub :: Int -> BrainFuck ()
- cmd :: Char -> BrainFuck ()
- cmd' :: (DataPointer -> DataPointer) -> Char -> BrainFuck ()
- multi :: BrainFuck () -> Int -> BrainFuck ()
- addr :: BrainFuck DataPointer
- setAddr :: Integer -> BrainFuck ()
- loopUnless0 :: BrainFuck () -> BrainFuck ()
- data Constants
- brainfuckConstants :: (Constants -> BrainFuck a) -> String
- at :: Constants -> Integer -> BrainFuck ()
- loop :: Constants -> BrainFuck () -> BrainFuck ()
- forever :: Constants -> BrainFuck () -> BrainFuck ()
- demo :: String
Documentation
Constructors
| BrainFuck (DataPointer -> ([Char], DataPointer, a)) |
type DataPointer = Integer Source
func :: BrainFuck f -> DataPointer -> ([Char], DataPointer, f) Source
Retrieve the inner function
cmd :: Char -> BrainFuck () Source
Adds an arbitrary character to the program. Should not be used directly.
cmd' :: (DataPointer -> DataPointer) -> Char -> BrainFuck () Source
Adds an arbitrary character to the program, and updates the data pointer. Should not be used directly.
addr :: BrainFuck DataPointer Source
Gets the current address of the data pointer.
loopUnless0 :: BrainFuck () -> BrainFuck () Source
The loop is only entered if the byte at the data pointer is not zero.
On entry, the loop body is run, and then it loops when the byte at the data pointer is not zero.
brainfuckConstants :: (Constants -> BrainFuck a) -> String Source
Let's run programs with data cells 0-8 reserved to always contain the numbers 0 to 8.
These constants will make brainfuck quite a bit easier to use!
at :: Constants -> Integer -> BrainFuck () Source
Sets data pointer to point to one of the Constants.