On 05/03/2013 10:49 AM, Albert Graef wrote:
> Well, you could easily define some operators like, say, push, pop,
> drop, rot etc. and overload the +, -, * etc. operators if you wanted
> to program in that style in Pure. Is that what you mean?
I feel it's more in the general terms, like what do you generally think
of the stack-based languages and concatenative approaches in general.
I personally think there's not that much usefulness of a stack-based
approach without being able to manipulate the dictionary of words
dynamically.
IE, you can essentially perform anything parameter-less by manipulating
an implicit stack/parameter/state in any language. In functional
languages in particular, I find there's a fine line, IMHO, between
partial application and monads - with the mayor difference that in
stack-based languages the state is always global, and manipulated
explicitly.
What actually makes concatenative languages different, though, is that
you are essentially on a stack-based virtual machine which also happens
to run the interpreter itself, which makes it very akin to lisp, minus
the homoiconicity.
I find it fascinating, given how simple concatenative languages can be
and are implemented. But they also lead to systems which are incredibly
hard to optimize, and sometimes _understand_.
I know this doesn't answer your question or necessarily mean anything
for pure ;)