Execute Brain****/OCaml: Difference between revisions

Content added Content deleted
m (Fixed syntax highlighting.)
 
Line 10: Line 10:
A more efficient implementation could for example only admit well-bracketed brainfuck programs, and parse bracket blocks first, to replace the ''match_left'' and ''match_right'' which need linear time.
A more efficient implementation could for example only admit well-bracketed brainfuck programs, and parse bracket blocks first, to replace the ''match_left'' and ''match_right'' which need linear time.


<lang ocaml>let move_left (x::l, r) = (l, x::r)
<syntaxhighlight lang="ocaml">let move_left (x::l, r) = (l, x::r)
let move_right (l, x::r) = (x::l, r)
let move_right (l, x::r) = (x::l, r)


Line 66: Line 66:
exec (match_left (move_left p)) d
exec (match_left (move_left p)) d


let run s = exec ([], s) ([0], [0])</lang>
let run s = exec ([], s) ([0], [0])</syntaxhighlight>


Example output:
Example output: