Parameterized modules rule! On Mon, Mar 14, 2011 at 6:42 PM, Jordan Wilberding <[email protected]>wrote:
> So far, I have yet to find a reason to not like it. Things look good to me, > but I want to mull it over some more. Once we get this finalized, it may not > hurt to send it to the main erlang-questions list for some feedback. > > Thanks! > Jordan Wilberding > > > On Mon, Mar 14, 2011 at 7:23 PM, Eric Merritt <[email protected]>wrote: > >> I am working on a set of extensable types for Erlang using behaviours >> and Paramaterized modules (feel free to ask why paramaterized >> modules) for erlware_commons. In doing this I realized that the API is >> going to be very important, since it will serve as the basis for many >> other types. To that end I decided to put the API out for comment. I >> will do this as a set of specs and docs. >> >> -opaque map(_KeyT, _ValueT) :: term(). >> >> %% @doc empties the map. >> -spec clear() -> map(). >> >> %% @doc returns a boolean indicating if this map has the specified key >> -spec has(term()) -> boolean(). >> >> %% @doc check to see if the specified value exists in the map >> -spec has_value(Term()) -> boolean(). >> >> %% @doc return the key value pairs as a set of {key, value} pairs >> -spec as_set() -> set(). >> >> %% @doc get the item from the may >> -spec get(term()) -> term(). >> >> %% @doc return all keys in the map as a set >> -spec keys(term()) -> set(). >> >> %% @doc Add a value to the map >> -spec put(term(), term()) -> map(). >> >> %% @doc remove a value from the map >> -spec remove(term()) -> map(). >> >> %% @doc get the current number of key value pairs in the map >> -spec size() -> number(). >> >> %% @doc get all the values in the map as a sequence >> -spec values() -> sequence(). >> >> As you can tell from the specs I am going to define sets and sequences >> very quickly as well. >> >> -- >> Eric Merritt >> Erlang & OTP in Action (Manning) http://manning.com/logan >> http://twitter.com/ericbmerritt >> http://erlware.org >> >> -- >> You received this message because you are subscribed to the Google Groups >> "erlware-dev" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/erlware-dev?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "erlware-dev" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/erlware-dev?hl=en. > -- You received this message because you are subscribed to the Google Groups "erlware-dev" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/erlware-dev?hl=en.
