Update, a few months and commits later. The Math module now contains the following features not present in erlang's :math
- Integer exponentiation - Integer and float nth-root calculation - Integer square root (:math is float-only) - Greatest common denominator and least common multiple functions - Factorial calculation - k-combinations and k-permutations - mean/median/product functions when working with collections - Improved documentation I and 1,090 other people (according to hex.pm's download stats), have found this package useful. Additionally, I've seen other Elixir projects write their own implementations of functions contained in this package (especially integer exponentiation and integer square root). It looks like there's at least some demand for the Math module. Since your concern with the original proposal was that it was mostly `defdelegate`ing to erlang, I wanted to see if these additions and enhancements would be a reason to reconsider the inclusion of Math as a standard module. Hex package: https://hex.pm/packages/math Source code: https://github.com/folz/math Thank you for your consideration, Rodney https://twitter.com/rodneyfolz On Wednesday, February 17, 2016 at 10:36:09 PM UTC-8, José Valim wrote: > > Nice! Some notes: > > * The binary module is useful when you want to work with binary data or > other encodings. String is limited to UTF-8 encoded data only. > > * The erlang module is too large and we have added the time and > timer-related functions to System/Process modules, so I would skip both > erlang and timer. > > * We could mention io:format(...) too. > > > *José Valim* > www.plataformatec.com.br > Skype: jv.ptec > Founder and Director of R&D > > On Wed, Feb 17, 2016 at 11:59 PM, Tallak Tveide <[email protected] > <javascript:>> wrote: > >> Here is a first draft. I havent put much thought into the form yet, so >> any comments are welcome. >> >> I do perhaps think from the shortlist that a few things are missing; >> >> :erlang._ (for the time functions specifically) >> :timer._ >> :io_list.format (?) >> >> >> https://github.com/tallakt/elixir-lang.github.com/blob/getting_started_erlang_stdlibs/getting-started/erlang-libraries.markdown >> >> >> 2016-02-17 16:28 GMT+01:00 Augie De Blieck Jr. <[email protected] >> <javascript:>>: >> > Sounds like a great list for a series of blog articles... >> > >> > Please don't give me ideas... ;-) >> > >> > -Augie >> > >> > >> > >> > On Wed, Feb 17, 2016 at 3:45 AM, Adam Lindberg <[email protected] >> <javascript:>> wrote: >> >> There are a couple of modules in Elixir that overlap somewhat already >> (Map, String & Binary, List etc.). What is the policy there? Should >> overlapping functions be added to those modules or should the Erlang >> modules be referred to as well? >> >> >> >> Here are some modules I’d like to see included in such a list: >> >> >> >> • calendar >> >> • crypto >> >> • digraph >> >> • ets >> >> • gb_sets >> >> • gb_trees >> >> • lees >> >> • math >> >> • orddict >> >> • ordsets >> >> • queue >> >> • rand (and not random) >> >> • ssh >> >> • ssl >> >> • wx >> >> • xmerl >> >> • yecc >> >> • zip >> >> • lib >> >> >> >> Test and debugging relevant: >> >> • cprof >> >> • dbg >> >> • eprof >> >> • fprof >> >> • observer >> >> • percept >> >> >> >> >> >> Cheers, >> >> Adam >> >> >> >>> On 17 Feb 2016, at 08:11 , Tallak Tveide <[email protected] >> <javascript:>> wrote: >> >>> >> >>> I would like to look at this >> >>> >> >>> 2016-02-16 19:34 GMT+01:00 José Valim <[email protected] >> <javascript:>>: >> >>>> Would someone like to take a stab at a quick summary of relevant >> Erlang >> >>>> modules in Erlang's kernel and stdlib applications (i.e. no observer, >> >>>> parser, etc) to host it at our getting started docs? >> >>>> http://elixir-lang.org/getting-started/introduction.html >> >>>> >> >>>> >> >>>> >> >>>> José Valim >> >>>> www.plataformatec.com.br >> >>>> Skype: jv.ptec >> >>>> Founder and Director of R&D >> >>>> >> >>>> On Tue, Feb 16, 2016 at 7:24 PM, Tallak Tveide <[email protected] >> <javascript:>> wrote: >> >>>>> >> >>>>> I thought about the same thing today. I have read most of the >> Elixir docs, >> >>>>> but have spent little time exploring the aerlang docs. I believe an >> overview >> >>>>> of functionality existing in erlang libraries that should >> complement Elixir >> >>>>> stdlib could be very useful. >> >>>>> >> >>>>> On the other hand, i dont think we need to duplicate these documents >> >>>>> translated from Erlang to Elixir. I think it would be better to >> provide some >> >>>>> links. >> >>>>> >> >>>>> I could help in this matter if there were interest, unfortunately I >> dont >> >>>>> know much about which of the Erlang libraries that are actually >> useful >> >>>>> >> >>>>> -- >> >>>>> You received this message because you are subscribed to the Google >> Groups >> >>>>> "elixir-lang-core" group. >> >>>>> To unsubscribe from this group and stop receiving emails from it, >> send an >> >>>>> email to [email protected] <javascript:>. >> >>>>> To view this discussion on the web visit >> >>>>> >> https://groups.google.com/d/msgid/elixir-lang-core/34d10b76-1ab4-4fef-b369-1aed1441db3d%40googlegroups.com >> . >> >>>>> For more options, visit https://groups.google.com/d/optout. >> >>>> >> >>>> >> >>>> -- >> >>>> You received this message because you are subscribed to a topic in >> the >> >>>> Google Groups "elixir-lang-core" group. >> >>>> To unsubscribe from this topic, visit >> >>>> >> https://groups.google.com/d/topic/elixir-lang-core/5qxH1apXbzQ/unsubscribe >> . >> >>>> To unsubscribe from this group and all its topics, send an email to >> >>>> [email protected] <javascript:>. >> >>>> To view this discussion on the web visit >> >>>> >> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KCx7fg64LThSWyDAp6G6zkmihi40KSCCbOSK5nVELj9w%40mail.gmail.com >> . >> >>>> >> >>>> For more options, visit https://groups.google.com/d/optout. >> >>> >> >>> -- >> >>> You received this message because you are subscribed to the Google >> Groups "elixir-lang-core" group. >> >>> To unsubscribe from this group and stop receiving emails from it, >> send an email to [email protected] <javascript:>. >> >>> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/CAHfREDXue3KG%3Dp75vymXhPw%3DzSrPS9yvMQUXcSgyskCnS3DOSQ%40mail.gmail.com >> . >> >>> For more options, visit https://groups.google.com/d/optout. >> >> >> >> -- >> >> You received this message because you are subscribed to the Google >> Groups "elixir-lang-core" group. >> >> To unsubscribe from this group and stop receiving emails from it, send >> an email to [email protected] <javascript:>. >> >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/808B03CA-A4B4-423D-AAD6-D45E88C1F873%40alind.io >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > >> > -- >> > You received this message because you are subscribed to a topic in the >> Google Groups "elixir-lang-core" group. >> > To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/elixir-lang-core/5qxH1apXbzQ/unsubscribe >> . >> > To unsubscribe from this group and all its topics, send an email to >> [email protected] <javascript:>. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/CABYU8zizbbu66Ka2jorbi9XtoDbbhtheVF0D9ffFuc9ihTeXCg%40mail.gmail.com >> . >> > For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/CAHfREDU5UVe9fpZdskDwpooxxhZYNYs2HeN1to7CzjUsHo4QTA%40mail.gmail.com >> . >> For more options, visit https://groups.google.com/d/optout. >> > > On Wednesday, February 17, 2016 at 10:36:09 PM UTC-8, José Valim wrote: > > Nice! Some notes: > > * The binary module is useful when you want to work with binary data or > other encodings. String is limited to UTF-8 encoded data only. > > * The erlang module is too large and we have added the time and > timer-related functions to System/Process modules, so I would skip both > erlang and timer. > > * We could mention io:format(...) too. > > > *José Valim* > www.plataformatec.com.br > Skype: jv.ptec > Founder and Director of R&D > > On Wed, Feb 17, 2016 at 11:59 PM, Tallak Tveide <[email protected] > <javascript:>> wrote: > >> Here is a first draft. I havent put much thought into the form yet, so >> any comments are welcome. >> >> I do perhaps think from the shortlist that a few things are missing; >> >> :erlang._ (for the time functions specifically) >> :timer._ >> :io_list.format (?) >> >> >> https://github.com/tallakt/elixir-lang.github.com/blob/getting_started_erlang_stdlibs/getting-started/erlang-libraries.markdown >> >> >> 2016-02-17 16:28 GMT+01:00 Augie De Blieck Jr. <[email protected] >> <javascript:>>: >> > Sounds like a great list for a series of blog articles... >> > >> > Please don't give me ideas... ;-) >> > >> > -Augie >> > >> > >> > >> > On Wed, Feb 17, 2016 at 3:45 AM, Adam Lindberg <[email protected] >> <javascript:>> wrote: >> >> There are a couple of modules in Elixir that overlap somewhat already >> (Map, String & Binary, List etc.). What is the policy there? Should >> overlapping functions be added to those modules or should the Erlang >> modules be referred to as well? >> >> >> >> Here are some modules I’d like to see included in such a list: >> >> >> >> • calendar >> >> • crypto >> >> • digraph >> >> • ets >> >> • gb_sets >> >> • gb_trees >> >> • lees >> >> • math >> >> • orddict >> >> • ordsets >> >> • queue >> >> • rand (and not random) >> >> • ssh >> >> • ssl >> >> • wx >> >> • xmerl >> >> • yecc >> >> • zip >> >> • lib >> >> >> >> Test and debugging relevant: >> >> • cprof >> >> • dbg >> >> • eprof >> >> • fprof >> >> • observer >> >> • percept >> >> >> >> >> >> Cheers, >> >> Adam >> >> >> >>> On 17 Feb 2016, at 08:11 , Tallak Tveide <[email protected] >> <javascript:>> wrote: >> >>> >> >>> I would like to look at this >> >>> >> >>> 2016-02-16 19:34 GMT+01:00 José Valim <[email protected] >> <javascript:>>: >> >>>> Would someone like to take a stab at a quick summary of relevant >> Erlang >> >>>> modules in Erlang's kernel and stdlib applications (i.e. no observer, >> >>>> parser, etc) to host it at our getting started docs? >> >>>> http://elixir-lang.org/getting-started/introduction.html >> >>>> >> >>>> >> >>>> >> >>>> José Valim >> >>>> www.plataformatec.com.br >> >>>> Skype: jv.ptec >> >>>> Founder and Director of R&D >> >>>> >> >>>> On Tue, Feb 16, 2016 at 7:24 PM, Tallak Tveide <[email protected] >> <javascript:>> wrote: >> >>>>> >> >>>>> I thought about the same thing today. I have read most of the >> Elixir docs, >> >>>>> but have spent little time exploring the aerlang docs. I believe an >> overview >> >>>>> of functionality existing in erlang libraries that should >> complement Elixir >> >>>>> stdlib could be very useful. >> >>>>> >> >>>>> On the other hand, i dont think we need to duplicate these documents >> >>>>> translated from Erlang to Elixir. I think it would be better to >> provide some >> >>>>> links. >> >>>>> >> >>>>> I could help in this matter if there were interest, unfortunately I >> dont >> >>>>> know much about which of the Erlang libraries that are actually >> useful >> >>>>> >> >>>>> -- >> >>>>> You received this message because you are subscribed to the Google >> Groups >> >>>>> "elixir-lang-core" group. >> >>>>> To unsubscribe from this group and stop receiving emails from it, >> send an >> >>>>> email to [email protected] <javascript:>. >> >>>>> To view this discussion on the web visit >> >>>>> >> https://groups.google.com/d/msgid/elixir-lang-core/34d10b76-1ab4-4fef-b369-1aed1441db3d%40googlegroups.com >> . >> >>>>> For more options, visit https://groups.google.com/d/optout. >> >>>> >> >>>> >> >>>> -- >> >>>> You received this message because you are subscribed to a topic in >> the >> >>>> Google Groups "elixir-lang-core" group. >> >>>> To unsubscribe from this topic, visit >> >>>> >> https://groups.google.com/d/topic/elixir-lang-core/5qxH1apXbzQ/unsubscribe >> . >> >>>> To unsubscribe from this group and all its topics, send an email to >> >>>> [email protected] <javascript:>. >> >>>> To view this discussion on the web visit >> >>>> >> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KCx7fg64LThSWyDAp6G6zkmihi40KSCCbOSK5nVELj9w%40mail.gmail.com >> . >> >>>> >> >>>> For more options, visit https://groups.google.com/d/optout. >> >>> >> >>> -- >> >>> You received this message because you are subscribed to the Google >> Groups "elixir-lang-core" group. >> >>> To unsubscribe from this group and stop receiving emails from it, >> send an email to [email protected] <javascript:>. >> >>> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/CAHfREDXue3KG%3Dp75vymXhPw%3DzSrPS9yvMQUXcSgyskCnS3DOSQ%40mail.gmail.com >> . >> >>> For more options, visit https://groups.google.com/d/optout. >> >> >> >> -- >> >> You received this message because you are subscribed to the Google >> Groups "elixir-lang-core" group. >> >> To unsubscribe from this group and stop receiving emails from it, send >> an email to [email protected] <javascript:>. >> >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/808B03CA-A4B4-423D-AAD6-D45E88C1F873%40alind.io >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > >> > -- >> > You received this message because you are subscribed to a topic in the >> Google Groups "elixir-lang-core" group. >> > To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/elixir-lang-core/5qxH1apXbzQ/unsubscribe >> . >> > To unsubscribe from this group and all its topics, send an email to >> [email protected] <javascript:>. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/CABYU8zizbbu66Ka2jorbi9XtoDbbhtheVF0D9ffFuc9ihTeXCg%40mail.gmail.com >> . >> > For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/CAHfREDU5UVe9fpZdskDwpooxxhZYNYs2HeN1to7CzjUsHo4QTA%40mail.gmail.com >> . >> For more options, visit https://groups.google.com/d/optout. >> > > On Wednesday, February 17, 2016 at 10:36:09 PM UTC-8, José Valim wrote: > > Nice! Some notes: > > * The binary module is useful when you want to work with binary data or > other encodings. String is limited to UTF-8 encoded data only. > > * The erlang module is too large and we have added the time and > timer-related functions to System/Process modules, so I would skip both > erlang and timer. > > * We could mention io:format(...) too. > > > *José Valim* > www.plataformatec.com.br > Skype: jv.ptec > Founder and Director of R&D > > On Wed, Feb 17, 2016 at 11:59 PM, Tallak Tveide <[email protected] > <javascript:>> wrote: > >> Here is a first draft. I havent put much thought into the form yet, so >> any comments are welcome. >> >> I do perhaps think from the shortlist that a few things are missing; >> >> :erlang._ (for the time functions specifically) >> :timer._ >> :io_list.format (?) >> >> >> https://github.com/tallakt/elixir-lang.github.com/blob/getting_started_erlang_stdlibs/getting-started/erlang-libraries.markdown >> >> >> 2016-02-17 16:28 GMT+01:00 Augie De Blieck Jr. <[email protected] >> <javascript:>>: >> > Sounds like a great list for a series of blog articles... >> > >> > Please don't give me ideas... ;-) >> > >> > -Augie >> > >> > >> > >> > On Wed, Feb 17, 2016 at 3:45 AM, Adam Lindberg <[email protected] >> <javascript:>> wrote: >> >> There are a couple of modules in Elixir that overlap somewhat already >> (Map, String & Binary, List etc.). What is the policy there? Should >> overlapping functions be added to those modules or should the Erlang >> modules be referred to as well? >> >> >> >> Here are some modules I’d like to see included in such a list: >> >> >> >> • calendar >> >> • crypto >> >> • digraph >> >> • ets >> >> • gb_sets >> >> • gb_trees >> >> • lees >> >> • math >> >> • orddict >> >> • ordsets >> >> • queue >> >> • rand (and not random) >> >> • ssh >> >> • ssl >> >> • wx >> >> • xmerl >> >> • yecc >> >> • zip >> >> • lib >> >> >> >> Test and debugging relevant: >> >> • cprof >> >> • dbg >> >> • eprof >> >> • fprof >> >> • observer >> >> • percept >> >> >> >> >> >> Cheers, >> >> Adam >> >> >> >>> On 17 Feb 2016, at 08:11 , Tallak Tveide <[email protected] >> <javascript:>> wrote: >> >>> >> >>> I would like to look at this >> >>> >> >>> 2016-02-16 19:34 GMT+01:00 José Valim <[email protected] >> <javascript:>>: >> >>>> Would someone like to take a stab at a quick summary of relevant >> Erlang >> >>>> modules in Erlang's kernel and stdlib applications (i.e. no observer, >> >>>> parser, etc) to host it at our getting started docs? >> >>>> http://elixir-lang.org/getting-started/introduction.html >> >>>> >> >>>> >> >>>> >> >>>> José Valim >> >>>> www.plataformatec.com.br >> >>>> Skype: jv.ptec >> >>>> Founder and Director of R&D >> >>>> >> >>>> On Tue, Feb 16, 2016 at 7:24 PM, Tallak Tveide <[email protected] >> <javascript:>> wrote: >> >>>>> >> >>>>> I thought about the same thing today. I have read most of the >> Elixir docs, >> >>>>> but have spent little time exploring the aerlang docs. I believe an >> overview >> >>>>> of functionality existing in erlang libraries that should >> complement Elixir >> >>>>> stdlib could be very useful. >> >>>>> >> >>>>> On the other hand, i dont think we need to duplicate these documents >> >>>>> translated from Erlang to Elixir. I think it would be better to >> provide some >> >>>>> links. >> >>>>> >> >>>>> I could help in this matter if there were interest, unfortunately I >> dont >> >>>>> know much about which of the Erlang libraries that are actually >> useful >> >>>>> >> >>>>> -- >> >>>>> You received this message because you are subscribed to the Google >> Groups >> >>>>> "elixir-lang-core" group. >> >>>>> To unsubscribe from this group and stop receiving emails from it, >> send an >> >>>>> email to [email protected] <javascript:>. >> >>>>> To view this discussion on the web visit >> >>>>> >> https://groups.google.com/d/msgid/elixir-lang-core/34d10b76-1ab4-4fef-b369-1aed1441db3d%40googlegroups.com >> . >> >>>>> For more options, visit https://groups.google.com/d/optout. >> >>>> >> >>>> >> >>>> -- >> >>>> You received this message because you are subscribed to a topic in >> the >> >>>> Google Groups "elixir-lang-core" group. >> >>>> To unsubscribe from this topic, visit >> >>>> >> https://groups.google.com/d/topic/elixir-lang-core/5qxH1apXbzQ/unsubscribe >> . >> >>>> To unsubscribe from this group and all its topics, send an email to >> >>>> [email protected] <javascript:>. >> >>>> To view this discussion on the web visit >> >>>> >> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KCx7fg64LThSWyDAp6G6zkmihi40KSCCbOSK5nVELj9w%40mail.gmail.com >> . >> >>>> >> >>>> For more options, visit https://groups.google.com/d/optout. >> >>> >> >>> -- >> >>> You received this message because you are subscribed to the Google >> Groups "elixir-lang-core" group. >> >>> To unsubscribe from this group and stop receiving emails from it, >> send an email to [email protected] <javascript:>. >> >>> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/CAHfREDXue3KG%3Dp75vymXhPw%3DzSrPS9yvMQUXcSgyskCnS3DOSQ%40mail.gmail.com >> . >> >>> For more options, visit https://groups.google.com/d/optout. >> >> >> >> -- >> >> You received this message because you are subscribed to the Google >> Groups "elixir-lang-core" group. >> >> To unsubscribe from this group and stop receiving emails from it, send >> an email to [email protected] <javascript:>. >> >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/808B03CA-A4B4-423D-AAD6-D45E88C1F873%40alind.io >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > >> > -- >> > You received this message because you are subscribed to a topic in the >> Google Groups "elixir-lang-core" group. >> > To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/elixir-lang-core/5qxH1apXbzQ/unsubscribe >> . >> > To unsubscribe from this group and all its topics, send an email to >> [email protected] <javascript:>. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/CABYU8zizbbu66Ka2jorbi9XtoDbbhtheVF0D9ffFuc9ihTeXCg%40mail.gmail.com >> . >> > For more options, visit https://groups.google.com/d/optout. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/CAHfREDU5UVe9fpZdskDwpooxxhZYNYs2HeN1to7CzjUsHo4QTA%40mail.gmail.com >> . >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/08b434f1-4b18-4894-83b6-5cf25c581200%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
