lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Sun, Feb 19, 2012 at 4:55 PM, steve donovan
<steve.j.donovan@gmail.com> wrote:
> On Sun, Feb 19, 2012 at 5:30 PM, Jay Carlson <nop@nop.com> wrote:
>> I suspect there's a translation to coroutines and pcall/error, but it does look like another example of pain by lack of macros and/or concise lambdas.
>
> Oh yes, I we had at least one war about the |x| x+1 syntax (Metalua
> and GSL). lhf suggested a more token-filter friendly \x(x+1) which has
> the advantage of making the expression unambiguous; that's in
> LuaMacro.

But Unix programmers are allergic to backslash being used that way.
Even though my brain says "yes, lots of languages write lambda as
backslash" my eyes say "control character".

> On Reddit today there is a discussion about a language called Julia
> which looks very much like Lua

They have strings as piles of bytes, but they have a more elegant way
of describing what I had in mind: string indexing is a partial
function from strings to characters.  That is, although s[1] may be
well-defined, s[3] may not be if it is interior to a multibyte UTF-8
sequence.

> and has LuaJIT-like speed ambitions and
> metalua-like syntax quoting

I dunno, metalua is sorta at the edge of the design win space for me.
I have a copy of the *Apple* Dylan book they mailed out on request way
back when, and I guess I'm not certain how they expect to do that much
better.

> With
> optional type annotations, which seems to be a popular meme in the
> programming language design game at the moment.

My favorite lombok-so-bad-it's-good trick is how their implicitly
typed Java "var s = new HashSet()" is syntactically legal. Because you
imported it, it parses as "lombok.var s = new HashSet()"; their
treewalker just replaces the type node in the AST with the deduced one
from the rhs....

Somehow Metalua is still Lua to me, but Lua-with-types isn't. Even
optional static typing all of a sudden makes dynamic languages much
heavier and seems to lead implementations down the path to madness
(see Dylan, for example.)

Jay