Lisp syntax for Go, like Fennel for Lua
|
|
||
|---|---|---|
| joe.janet | Handle imports | |
| readme.md | Handle imports | |
| test.janet | Handle imports | |
Joe
Joe dreams of being to Go as Fennel to Lua: lisp syntax on top of Go semantics allowing macros etc. on Go's relatively highly performant runtime with strong library support.
Questions:
- How to best handle non-go things like map?
- How to best utilize Lisp macros etc. into the generated code
- How will performance differ (e.g. for the verse reader)?
- How to handle types?
- How to handle CLI, having things in and out of main etc.? Namely, must handle imports properly (via add-boilerplate)
- How to test?
Points:
- Go
||redefined toor - source code files run like
janet joe.janet lol.jgoshould have direct s-expr(fmt.Println (map + (range 5)))without'[...] janet joe.janet "lol.jgo" -o "program"
Usage:
Given the file lol.jgo:
(:=items(range5))(fmt.Println"The items are:"items)(:=result(+10(*25)))(if(>result15)(fmt.Println"Big number!")(fmt.Println"Small number!"))we may:
janet joe.janet -r "lol.jgo"to run the codejanet joe.janet "lol.jgo" -o "program"to compile to a go binaryjanet joe.janet -s "lol.jgo"to print the go code