Re: Type Specification of net:getnameinfo()
Nicolas Martyanoff <[email protected]>
| Newsgroups | gmane.comp.lang.erlang.general |
|---|---|
| Message-ID | <YBBEvBt+wdpa6P1i@valhala> |
On 2021-01-26 21:46, Nalin Ranjan wrote: > 2. In this particular case of type specification, the only difference is in > one of the parameters of the function. I was also wondering if we could > have used a union instead to write the same type spec, it would have been > simpler? > For example, > Instead of writing a type spec like this > > -ifdef(SOME_PRAGMA_CONDITION) > SomeVar :: xxx_type(). > -else > SomeVar :: yyy_type(). > > We could specify the same type spec as: > SomeVar :: xxx_type() | yyy_type(). > > Any reason we preferred the former over the latter? If Erlang is compiled without socket support, some types will not exist at all. Using the preprocessor[1] makes it possible to provide specifications with types which actually exist, with or without socket support. [1] https://erlang.org/doc/reference_manual/macros.html -- Nicolas Martyanoff http://snowsyn.net [email protected]