[erlang-questions] Maps
Chris King
colanderman@REDACTED
Wed May 15 16:27:43 CEST 2013
On Wed, 15 May 2013 04:20:20 -0400, Jesper Louis Andersen
<jesper.louis.andersen@REDACTED> wrote:
>
> On May 14, 2013, at 7:37 PM, Chris King <colanderman@REDACTED> wrote:
>
>> Static structure does not preclude subtyping. OCaml's functional
>> objects capture this notion perfectly -- an object has a set of
>> methods which are known at compile time (hence static). However any
>> given function need only be aware of the presence of the subset of
>> methods in which it is interested. Note that this does not preclude a
>> function from creating a copy of said object with only those methods
>> modified!
>
> This is often called "structural subtyping" in contrast to "nominal
> subtyping". The difference is that the structural variant is implicit
> whereas the nominal variant is explicit. You have to explicitly define
> the relationsship in the nominal case, which is common in Java, C++, …
>
> Google Go is another language with structural subtyping in its interface
> model. There is also some structurality in the Standard ML module system
> w.r.t. signature checks.
Yes, I know.
> I agree we need something which is better than records at some point,
> with static guarantee of the contents. But currently, the thing we are
> missing is a fast map implementation which is functional, so we can
> avoid ETS tables for purposes they aren't designed for.
I understand that. But why must (a) this new fast map implementation have
an associated syntax, and (b) this syntax displace the syntax which *is*
needed to implement pattern-matching of frames?
If anything you can get an *even faster* map implementation if you ignore
the use case of extensible records.
More information about the erlang-questions
mailing list