Re:Java 21 VirtualThreads vs. Clojure Lazy Seqs (from Clojur...
by riku_iki on Saturday October 07, 2023 @01:02AM
(#37799127)
still need it for class members, unlike in some other languages.
[ Parent
| on HN ]
Re:Java 21 VirtualThreads vs. Clojure Lazy Seqs (from Clojur...
by kaba0 on Saturday October 07, 2023 @03:16AM
(#37799700)
Most languages don’t do type inference in “signatures” (function, but also class/struct members), as it would give you negligible benefit, a huge cost for the compiler and is commonly thought of as a bad practice.
Out of Scala, Rust, I believe even Kotlin, none do inference in these places. Even Haskell, which does infer function signatures as well, need explicit type annotation for `data` definitions.
Re:Java 21 VirtualThreads vs. Clojure Lazy Seqs (from Clojur...
by riku_iki on Saturday October 07, 2023 @03:24AM
(#37799736)
typescript does such inference.
I disagree with you about huge cost for the compiler and benefits are the same as in normal code block: reducing boilerplate.
Re:Java 21 VirtualThreads vs. Clojure Lazy Seqs (from Clojur...
by kaba0 on Saturday October 07, 2023 @03:41AM
(#37799827)
Typescript’s type system is deliberately not sound though.
In general, there is no type inference available for OOP type-hierarchies as opposed to a more Haskell-like type system, where Hindley-Milner works
Re:Java 21 VirtualThreads vs. Clojure Lazy Seqs (from Clojur...
by riku_iki on Saturday October 07, 2023 @02:39PM
(#37804332)
I don't have strong knowledge in types theory, but why
class C { a: int = 0; }
can't be replaced with
class C { a = 0; }
? what issues it brings?..