
Avelon: Turing complete, functional language with concatenative combinators - jxub
https://github.com/dmbarbour/wikilon/blob/master/docs/AwelonLang.md
======
nickpsecurity
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.

------
nine_k
A comparison with [Factor] would be very welcome.

[Factor]: [https://factorcode.org/](https://factorcode.org/)

------
CuriousSkeptic
Make sure to checkout the blog
[https://awelonblue.wordpress.com/about/](https://awelonblue.wordpress.com/about/)
It has been a source of much inspiration to me for many years.

------
tombert
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.

------
rhacker
The github page seems to be calling it Awelon not Avelon

~~~
jxub
Yep, sorry for the typo... It's impossible to edit by now though :/

------
carapace
Reminds me a bit of Joy[1]

[1]
[https://en.wikipedia.org/wiki/Joy_(programming_language)](https://en.wikipedia.org/wiki/Joy_\(programming_language\))

------
cubano
Could someone please inform me...under what domain does such abstract esoteric
language make programming either easier or more efficient?

~~~
tathougies
Concatenative languages are really not esoteric. I mean assembly language is a
concatenative language, and it really ought not to qualify as esoteric.

~~~
e12e
> assembly language is a concatenative language

Are most? I've always considered them more procedural than anything else.
Variables and gotos.

~~~
yorwba
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.

~~~
e12e
Is that so? According to:
[https://en.m.wikipedia.org/wiki/Concatenative_programming_la...](https://en.m.wikipedia.org/wiki/Concatenative_programming_language)
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?

------
jameskegel
Awelon, not Avelon.

