I find the explanation at [0] a little more detailed and informative (8th European Lisp Symposium 2015). Worth checking out if you are interested.
[0] http://epsilonwiki.free.fr/alphawiki_2/?view=lambdatalk_slid...
I find the explanation at [0] a little more detailed and informative (8th European Lisp Symposium 2015). Worth checking out if you are interested.
[0] http://epsilonwiki.free.fr/alphawiki_2/?view=lambdatalk_slid...
Because we are in a wiki context where text is 95% of the content. I want to be able to write (Hello World) without triggering any evaluation, trying to apply Hello to World. Usually, other languages (except HTML) evaluate every words in code except quoted sentences - called strings - like this "Hello World". Lambdatalk inverts this process: everything is unevaluated out of curly braces. For instance this expression 1+2 is equal to {+ 1 2} should be written in Javascript like this: "1+2 is equal to " + (1+2). I think that it's the main point of lambdatalk, this inverted process. You could have a look to these links: "curl | latex | LML | PDF | skribe | SXML" in the page http://epsilonwiki.free.fr/lambdaway/?view=curl.
I found the console[1] and started using it. I was trying to expand a list of things into LI elements; at some point I wrote this:
{def lis| {lambda {:x} {li :x}}}
The bar represents the cursor just before I hit backspace. After I hit backspace, I entered an infinite recursive evaluation which eventually stopped with stack overflow.
Maybe evaluating the code after each keypress is not ideal. Or maybe you could add a timeout, a custom depth limit or something else ;-)Also, being accustomized to syntax coloring, completion, indentation, warnings, etc., I find the environment particularly dry, especially when you consider your target audience. On the one hand, beginners who want to learn will be able to explore and find their way through trial and errors anyway, but on the other hand, a little bit of feedback can help when they are blocked. For example, when forms are badly formed the output is "ooops": this is better than nothing, obviously, but still a little terse. I looked at the teaching[2] section and this is a good introduction, and I am not telling you to be more like Scratch either, but there might some way to bring a little bit more interactive help.
Overall, this is a nice project and it brings a lot of different things together (maths, svg, javascript). I could be useful as a richer Markdown and I find it more readable than the typical Wiki syntax.
[0] http://epsilonwiki.free.fr/alphawiki_2/meca/JS.js [1] http://epsilonwiki.free.fr/lambdaway/meca/ [2] http://epsilonwiki.free.fr/lambdaway/?view=teaching
About {def lis| {lambda {:x} {li :x}}}, I wrote this expression in http://epsilonwiki.free.fr/lambdaway/?view=sandbox and I didn't see any infinite loop. Click on the top-left "+" in the frameview and then on edit to inspect the code.
OK, the error messages are terse, there is no syntax colorization in the textarea. There is a timeout for each keypress but it has to be improved.
It's a work in progres, I'm alone and I need help.
I understand this is hard work. I hope you find time and maybe someone to help you develop this project.