Comment by darkest_ruby

2 years ago

I would strongly recommend to only go with one syntax, and not differentiate between regular functions and lambda statement

I disagree - allowing for type inference on the closures will make for a much more pleasant language, whereas requiring type annotations on top level functions makes sense for lots of reasons.

  • > allowing for type inference on the closures

    You can still have your type inference without forcing the unnecessary requirement that local functions be `fn` while top functions be `func`.

    • I agree with this, I'm designing a similar language and have gone with this approach. Same syntax for all functions, but top-level functions require explicit type annotations (purely for documentation/sanity more so than a technical requirement).

    • agreed, but there's still differentiation in syntax, and I was responding to someone asking for no differentiation.