Hacker News new | past | comments | ask | show | jobs | submit login

> Saying that statically typed languages cannot be expressive is pure FUD.

Could you, please, show us an example from the rosettacode.org website? Generic Quicksort, perhaps?




Take a look at OCaml, or any ML variant language (aside from Rust, which is more C++ than ML in my opinion anyway) for that matter, for a static typed language with a good implementation of generic types.


Would you mind elaborating why you think that Rust doesn't have a good implementation of generic types?


The signatures can get really unwieldy compared to generics in other languages. As I understand it, the Rust team is working on this.


I think you're comparing Rust to a language with ad-hoc polymorphism like C++ (where you pay for the somewhat simpler signatures with confusing template instantiation errors), and I'm very glad we didn't follow the C++ route. Rust's generics are very similar to those of Haskell.

The only major generics-related issue that is getting some significant thought is the ability to have the automatically derive the return type on top-level functions, which is not something that is common in other statically typed languages (only C++ and those with whole program type inference, which has its own set of drawbacks).


I took the Dan Grossman's PL course, so I appreciate how good Standard ML is.)


No idea what you're looking for, but just for the record:

  import List(partition)

  qs [] = []
  qs (pivot:rest) = qs smaller ++ pivot : qs larger
      where (smaller,larger) = partition (< pivot) rest
Haskell 98, the (polymorphic) type is "Ord a => [a] -> [a]"


Haskell is an exception. Haskell is two distinct languages in one - one for defining types, and one for expressions.)




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: