Shen Programming Language for Android
Chris Double ported Shen to Wasp Lisp, which is a very interesting combination. Wasp and MOSREF (a secure remote injection framework) are something I have been playing with over the years, and having Shen in there makes for an interesting combination [1]. He also ported Wasp Lisp to Android [2].
[1] https://github.com/doublec/shen-wasp [2] https://bluishcoder.co.nz/2013/05/09/building-wasp-lisp-and-mosref-for-android.htmlShen is a genuinely interesting Lisp that is implemented using around 46 primitive functions - porting Shen then just requires the implementation of this 46 function substrate in whatever programming language you are using.
In addition to a built-in Prolog and also optional type checker it also uses pattern-matching like other modern functional programming languages. This is unlike Clojure which to my mind wrongly downgrades pattern-matching to simply an optional library. (Apparently Rich Hickey isn't keen on pattern-matching).
Shen is certainly worth investigating if you have an interest in Lisp.
Just tried building shen-c[1]; it seems my gcc (5.4.0) doesn't like the code with -std=c99 and prefers the -lgc at the end of the line.
[1] https://github.com/otabat/shen-c
diff --git a/Makefile b/Makefile index 3ae5a55..458200d 100644 --- a/Makefile +++ b/Makefile @@ -26,5 +26,6 @@ ${TARGET}: ${SRC_OBJS} # cc -g -O3 -std=c99 -lgc -lprofiler -Wl,-no_pie -o $@ $^ - cc -O3 -std=c99 -lgc -o $@ $^ +# cc -O3 -std=c99 -lgc -o $@ $^ # gcc-6 -g -O3 -std=c99 -L /usr/local/lib -lgc -lprofiler -Wl,-no_pie -o $@ $^ # gcc-6 -O3 -std=c99 -L /usr/local/lib -lgc -o $@ $^ + gcc -O3 -o $@ $^ -lgc @@ -34,5 +35,6 @@ ${OBJ_ROOT}/%.o: $(SRC_ROOT)/%.c # cc -O2 -std=c99 -fno-optimize-sibling-calls -c -o $@ $< - cc -O3 -std=c99 -fno-optimize-sibling-calls -c -o $@ $< +# cc -O3 -std=c99 -fno-optimize-sibling-calls -c -o $@ $< # gcc-6 -g -O3 -std=c99 -fno-optimize-sibling-calls -Wall -I /usr/local/include/gc -c -o $@ $< # gcc-6 -O3 -std=c99 -fno-optimize-sibling-calls -Wall -I /usr/local/include/gc -c -o $@ $< + gcc -O3 -fno-optimize-sibling-calls -c -o $@ $<Presumably some readers bought the book when Shen appeared on the frontpage because its price on Amazon has risen from 40 usd to 230 usd: https://www.amazon.com/dp/B01K3JCGGI
Every time I hear about Shen I think about this talk: https://www.youtube.com/watch?v=lMcRBdSdO_U
Pretty cool language but there's no way to save your work in the app.