Advertisement
Guest User

aplbrainfuck

a guest
Jul 23rd, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. step←{
  2. ⎕IO←0
  3. cmd←⍵.insts[⍵.ip]
  4. d←{⍵.tape[⍵.dp]←(⍵.tape[⍵.dp]+⍺) ⋄ ⍵.ip←(⍵.ip+1)}
  5. nip←{⍵.ip←(⍵.ip+1)}
  6. mov_ptr←{⍺.dp←((⍴⍺.tape)-1)⌊0⌈((⍺.dp)+⍵)}
  7. cmd='+':1 d ⍵
  8. cmd='-':¯1 d ⍵
  9. cmd='>':{⍵ mov_ptr 1 ⋄ nip ⍵}⍵
  10. cmd='<':{⍵ mov_ptr ¯1 ⋄ nip ⍵}⍵
  11. ((cmd='[')∧(⍵.tape[⍵.dp]=0)):⍵.ip←1+⍵.ip+((⍵.ip)↓⍵.insts)⍳']'
  12. ((cmd='[')∧(⍵.tape[⍵.dp]≠0)):nip ⍵
  13. ((cmd=']')∧(⍵.tape[⍵.dp]≠0)):⍵.ip←¯1+(⍴⍵.insts)-(⌽⍵.insts)⍳'['
  14. ((cmd=']')∧(⍵.tape[⍵.dp]=0)):nip ⍵
  15. cmd='.':{⍞←⍵.tape[⍵.dp] ⋄ nip ⍵}⍵
  16. cmd=',':{⍵.tape[⍵.dp]←⍞}
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement