Execute SNUSP/Haskell: Difference between revisions

Content added Content deleted
m (Grammar/spelling)
m (Eso link)
Line 1: Line 1:
{{implementation|SNUSP}}{{collection|RCSNUSP}}[[Category:Haskell]]
{{implementation|SNUSP}}{{collection|RCSNUSP}}[[Category:Haskell]]
This implementation supports commands from all the three SNUSP variants, as described on the [http://esolangs.org/wiki/SNUSP Esolang SNUSP page].
This implementation supports commands from all the three SNUSP variants, as described on the [[eso:SNUSP|Esolang SNUSP page]].


Threads and 2D-data makes a purely functional implementation difficult, so most of the code works in the IO-Monad. There is an immutable array ''c'' for the code, a global mutable hashtable ''d'' for the data, and each thread has an instruction pointer ''ip'', a memory pointer ''mp'', and a call stack ''stack''.
Threads and 2D-data makes a purely functional implementation difficult, so most of the code works in the IO-Monad. There is an immutable array ''c'' for the code, a global mutable hashtable ''d'' for the data, and each thread has an instruction pointer ''ip'', a memory pointer ''mp'', and a call stack ''stack''.