SNUSP is a “two-dimensional” esolanguage.
This code implement a Core, Modular and Bloated SNUSP interpreter in the Go programming language.
Updated to use the new (and sick, I daresay) go.mod
thing.
Github.io page could contain a reference, in case you won't take a look at the given links (why not?)… Actually the page is just a test, and likely it will stay as it is forever (but never say never — though there's not tooo much to say about SNUSP you can't find elsewhere, and written better…)
From inside the src
directory, as simple as
go build -o gosnusp
The go.mod
states the Go version must be 1.20
, but any version with the go.mod
system should work fine.
The repository contains also examples taken here and there. Other useful links or alike:
- SNUSP on c2 Wiki
- Implementation of SNUSP interpreters on RosettaCode. The C interpreter should be mine; cfr. also snuspi on sourceforge (but moved here on GitHub)
- Examples on RosettaCode
- John Bauman's esoteric language page talks of SNUSP; he claims he has written the first complete full Bloated SNUSP interpreter — currently, following the link raises a server error. It should be this one
- not fully tested (yet?)
- Modular SNUSP (which is the default) comes in two “flavours”; I call the second flavour twisted — which is now the default. If a modular SNUSP code does not work, try
-twist=false
flag… (examples in the SNUSP page on esolangs.org are all “twisted”). If the code does not work anyway, you have found a bug — it would be nice if you let me know.- The difference between twisted and untwisted Modular SNUSP is in how the Enter (
@
) and Leave (#
) command behave. Details in the code (sorry) and explicative example on the blog.
- The difference between twisted and untwisted Modular SNUSP is in how the Enter (
- current memory cell value should be given as program return code? It is not so (yet?)
- I am a Go absolute beginner
- and so far I don't like very much what they did with
go.mod
; maybe a simple project like this can be organized so that the new module system won't bother you? Anyway I dislike how it works, and how I can't immediately refer to local packages inside the very same project without going through thatgo.mod
file.
- and so far I don't like very much what they did with
- Join for Bloated SNUSP?