On 2015-02-21 at 11:51, Kagamin wrote:
---
void (*f)(); // C
void (*)() f; // Loci

int (*f)(); // C
int (*)() f; // Loci

int (*f)(int, int); // C
*(int)(int, int) f; // Loci
---

Ehh? Why the last declaration is so different?

Yeah, everything was fine, but when I got to this part, I almost fell off my 
chair. What the hell?! I hope it is just a bug in the documentation. Other than 
that, the documentation looks quite nice, except for the angle braces, or this 
eyesore:

    lval<const int> value_lval<const int> i = lval<const int>(value_lval<const 
int>(0));

Moving on, I'm a bit baffled by what their default string type is - 
http://loci-lang.org/Strings.html - and if it is worth the trouble and complexity, 
when compared D's default (linear & immutable + cost-less slicing).

The most interesting part is that they don't use mangling and function 
overloading but instead have templates and this: 
http://loci-lang.org/TemplateGenerators.html to not have to instantiate for 
every permutation of types encountered. Indeed, it can help make stable APIs, 
but we'll have to see if it can be optimized to achieve performance. Well, 
gonna check again how things turn out for Loci in a couple of years.

Reply via email to