News for hackers. Stuff that matters.
Re:Civet: A Superset of TypeScript by chrismorgan on Tuesday October 22, 2024 @12:51PM (#41916198)
> implicit return combined with “everything is an expression”. You can have one of those, but not both.

Hang on, how can you have “everything is an expression” without implicit return? If I’m correctly understanding what you’re talking about, implicit return isn’t actually a thing—it’s just that the function body is an expression too.

(Never dealt with CoffeeScript, but I’ve been writing Rust for over a decade now, and learned to love expression-orientation there.)

Re:Civet: A Superset of TypeScript by int_19h on Tuesday October 22, 2024 @06:45PM (#41919486)
You do it by making sequential evaluation (i.e. the semicolon, which becomes an operator in "everything is an expression" world) always produce a void result. Then you introduce the notion of terminating evaluation early and yielding a value from the compound expression - this becomes `return` (and other similar constructs like `break` and `continue`).
Re:Civet: A Superset of TypeScript by chrismorgan on Tuesday October 22, 2024 @10:03PM (#41920995)
Ah yes, true, true, I had forgotten about the semicolon. Somehow. Yeah, I don’t think I’d like expression-orientation so much without it.