Avelon: Turing complete, functional language with concatenative combinators(github.com)
github.com
Avelon: Turing complete, functional language with concatenative combinators
https://github.com/dmbarbour/wikilon/blob/master/docs/AwelonLang.md
8 comments
The build-up-from-little-pieces style of Forth meets the terseness of the APL family in this functional, programming language. That's my impression. I don't use any of those, though. I recognize author from Lambda the Ultimate. I emailed him to see if he wants to tell us more about this.
A comparison with [Factor] would be very welcome.
[Factor]: https://factorcode.org/
[Factor]: https://factorcode.org/
Make sure to checkout the blog https://awelonblue.wordpress.com/about/
It has been a source of much inspiration to me for many years.
So, as a complete noob with stuff like Forth and other concatenative stuff, can someone explain why they'd use it, and how something like Avelon would be cool?
I've read a bit about being able to avoid generating garbage, but I have to admit a bit of ignorance to what that actually means.
I've read a bit about being able to avoid generating garbage, but I have to admit a bit of ignorance to what that actually means.
Reminds me a bit of Joy[1]
[1] https://en.wikipedia.org/wiki/Joy_(programming_language)
[1] https://en.wikipedia.org/wiki/Joy_(programming_language)
Could someone please inform me...under what domain does such abstract esoteric language make programming either easier or more efficient?
Concatenative languages are really not esoteric. I mean assembly language is a concatenative language, and it really ought not to qualify as esoteric.
Assembly is pretty esoteric these days... I mean, most every platform no matter how resource constrained has at least a C compiler, and must of 'em probably have a Python interpreter.
> assembly language is a concatenative language
Are most? I've always considered them more procedural than anything else. Variables and gotos.
Are most? I've always considered them more procedural than anything else. Variables and gotos.
Concatenative just means that concatenating two programs yields a new program and that is the major method of program construction. Most Forth dialects also support variables, gotos and procedures; but it's all in a concatenative way.
Is that so? According to: https://en.m.wikipedia.org/wiki/Concatenative_programming_la... there's a little more to it.
I suppose if you squint a bit, any push-jump-ret-pop sequence is concatenative - but I'm not sure if I agree that the main way to go from a few general assembly language programs that each read from a file, count words, and sums integers - to a program that counts words in a file is to simply concatenate them?
I suppose if you squint a bit, any push-jump-ret-pop sequence is concatenative - but I'm not sure if I agree that the main way to go from a few general assembly language programs that each read from a file, count words, and sums integers - to a program that counts words in a file is to simply concatenate them?
Once you understand the documentation, other language's documentation becomes easier to understand.
Awelon, not Avelon.