Hacker News new | ask | show | jobs
by silverdemon 2467 days ago
At first I thought this was some reference to the well-known Z specification language (https://en.wikipedia.org/wiki/Z_notation). Come on guys, pick a name that a) doesn't clash with a language that has been around since the 1970s, and b) can realistically be found in a web search.

The language itself looks decent enough, but what's the compelling reason for using this rather than one of the many other languages? I'm sure there must be one, scratching a personal itch aside, but at least tell us about the rationale.

2 comments

> doesn't clash with a language that has been around since the 1970s

I don't think 1970 is much of a filter.

That's pretty much the same as saying "doesn't clash with a language since the beginning of time".

To my knowledge, the 70s are mostly not the beginning of time.
In software, it almost is.

It's literally the "beginning" of Unix time, which most systems use.

Yes, I was wondering if I should add "(except timestamps)" where I made my previous post.
> what's the compelling reason for using this rather than one of the many other languages?

vs JavaScript (which it transpiles to) the intro teases more functional programming features like lambdas, but that's the only reference in the doc. The intro to functions section does not mention strict lambdas, only anonymous functions, so it's not clear if they can still access globals.

I would welcome lambda syntax in JS, you can sort of just be strict with yourself, but it takes more effort to _read_ when something is a lambda but you have to manually parse it to be sure.

Yes I use arrow functions all the time but I was under the impression expressions must be strictly closed to be true lambdas? although to be honest i can't find any definitive info on this, so now I suspect my definition might be too strict...

I find it very useful to know that all variables in the expression are bound, expressions with free variable can be more complex to reason about, which is fine, but it would be nice to be able to easily differentiate without having to carefully parse each expression first - so a separate syntax just for that purpose would be nice - I thought that's what true lambda functions were (disallowing free variables), but it looks like i'm wrong, i guess that feature doesn't exist.