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=falseflag… (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.modfile.
- and so far I don't like very much what they did with
- Join for Bloated SNUSP?