Thanks, José.  I plan to open a PR soon.

On Saturday, August 13, 2016 at 11:59:33 AM UTC-7, José Valim wrote:
>
> Btw, if you don't have time to send a PR, please open up an issue and 
> someone will certainly grab it. :)
>
>
>
> *José Valim*
> www.plataformatec.com.br
> Skype: jv.ptec
> Founder and Director of R&D
>
> On Thu, Aug 11, 2016 at 8:25 PM, José Valim <[email protected] 
> <javascript:>> wrote:
>
>> I am +1 for the function based function because we can argue that the 
>> default function raises Enum.EmptyError. So we keep backwards compatibility 
>> and get a feature out of it. :)
>>
>>
>>
>> *José Valim*
>> www.plataformatec.com.br
>> Skype: jv.ptec
>> Founder and Director of R&D
>>
>> On Thu, Aug 11, 2016 at 7:59 PM, Myron Marston <[email protected] 
>> <javascript:>> wrote:
>>
>>> When using Enum’s min/max/min_max functions, I frequently have to 
>>> provide special case logic to deal with an empty collection, such as this:
>>>
>>> def date_range_from(all_time_slices) do
>>>   case all_time_slices do
>>>     [] -> {nil, nil}
>>>     [_ | _] -> Enum.min_max(all_time_slices)
>>>   endend
>>>
>>> It would be nice if there was a 2-arity version of these functions that 
>>> you could pass to determine what to do with an empty collection. For this 
>>> case, I’m imagining:
>>>
>>> def date_range_from(all_time_slices) do
>>>   Enum.min_max(all_time_slices, {nil, nil})end
>>>
>>> This aligns with functions like Map.get/3 that allow you to pass a 
>>> default. Alternately, I could see an argument for requiring the 2nd 
>>> argument to be a function:
>>>
>>> def date_range_from(all_time_slices) do
>>>   Enum.min_max(all_time_slices, fn -> {nil, nil} end)end
>>>
>>> Then the 1-arity version of these functions could just call the 2-arity 
>>> version with a function that raises an Enum.EmptyError. That said, I 
>>> think I prefer the version that allows you to pass a default return value 
>>> w/ no need to wrap it in a function.
>>>
>>> Thoughts?
>>> Myron
>>> ​
>>>
>>> -- 
>>> 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/CADUxQmvSuQrudQ07U9Tvbwek-KRL_c9r9eW_P-RQ%2BbGM07do4A%40mail.gmail.com
>>>  
>>> <https://groups.google.com/d/msgid/elixir-lang-core/CADUxQmvSuQrudQ07U9Tvbwek-KRL_c9r9eW_P-RQ%2BbGM07do4A%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>> 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/24a4b35d-c335-4e50-83b4-c18e4fce39d6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to