5 ms·
Are you sure that Haskell thing is dynamic? I was under the impression that the type you have there is resolved statically by finding a type class for a
by CuriousSkeptic 7y ago
Are you sure that Haskell thing is dynamic? I was under the impression that the type you have there is resolved statically by finding a type class for a
- uryga 7y agoexistential types allow you to make it dynamic. see https://wiki.haskell.org/Existential_type https://wiki.haskell.org/Existential_type, there's a section comparing it to OOP-style dynamic dispatch simple example copied from the linked article: data Obj = forall a. (Show a) => Obj a xs :: [Obj] xs = [Obj 1, Obj "foo", Obj 'c'] doShow :: [Obj] -> String doShow [] = "" doShow ((Obj x):xs) = show x ++ doShow xs we can have a "heterogenous" list of `Obj`s, like a java `ArrayList<IPrintable>`. each `Obj` is basically a pointer to the actual value of some type T and a pointer to T's Show dictionary (vtable). Which is afaik analogous to how OOP languages do it