
Golo – a lightweight dynamic language for the JVM - Immortalin
http://golo-lang.org/
======
mimg
Interesting language. The comprehensions are a neat feature and similar to
Python in syntax. No support for ternary or assignment operators. The lambda
syntax is not very intuitive if you have no arguments and more than one
statement to execute.

    
    
      let e1 = {
        return "e1 called!"
      }
    
      let e2 = -> {
        return "e2 called!"
      }
    

e1() has expected behavior but e2() does not and e2()() has expected behavior.
Not sure why?

~~~
david-given
Just from looking at your example here, and not looking at the docs, I'd say
that `{x}` and `-> x` both return a function which evaluates `x` and returns
the result; so `-> {x}` is equivalent to `{{x}}`, i.e. it returns a function
which returns a function which returns `x`.

------
theaustinseven
I understand that there was a specific intention in using the term
lightweight, but the proper term would have been small. This is a small
language, but it is most certainly not lightweight. There really isn't such
thing as a "lightweight language for the JVM" and that isn't the fault of the
language, but rather the JVM. Lua, for example, is a lightweight language.

