I'm in the literal camp even in Ruby, but it's good to see some less
debateable reasoning for it in Elixir, thanks.

On 24 August 2016 at 15:05, Martin Svalin <[email protected]> wrote:

> I think there's a stronger argument to be made for literal true / false,
> not just truthy / falsy in Elixir than Ruby.
>
> In Ruby, the return value might be used in an if-condition. Semantically,
> it shouldn't matter if the value is literal true or simply truthy.
> Something like `if method? == true` would be considered bad code.
>
> In Elixir, you might also use the value in pattern matching. Matching on
> literal `true` would be considered completely reasonable. Example:
>
>     def entrypoint(data), do: handle(data, valid?(data))
>
>     def handle(data, true), do: something(data)
>     def handle(data, false), do: something_else(data)
>
> Returning truthy / falsy values would hobble this sort of pattern
> matching. It would be even worse if I only did a literal match on false,
> and ignored the in the true case, which would then be run for the falsy
> value nil.
>
> Another consideration is that a truthy value could potentially be large,
> and could then be sent off in a message to another process in the
> expectation that it's small.
>
> So please, return literal true / false from your predicate functions.
>
> - Martin
>
> ons 24 aug. 2016 kl 15:28 skrev Michał Muskała <[email protected]>:
>
>>
>> > On 24 Aug 2016, at 15:24, Elliot Crosby-McCullough <[email protected]>
>> wrote:
>> >
>> > Follow-up question; there's debate in Ruby as to whether methods ending
>> in `?` are supposed to return actual booleans or just "truthy" and "falsy"
>> values.
>> >
>> > Is there a similar debate in Elixir or has it been more strictly
>> defined?
>>
>> I've heard José state, that if it were possible, it would be an error for
>> a ? function to return a non-boolean. I am equally of conviction that only
>> strictly boolean values make sense in this context.
>>
>> Michał.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "elixir-lang-talk" 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-talk/DE691B14-076D-4FE1-B9B6-9E76FC7890A0%40muskala.eu.
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-talk" 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-talk/CAAHw6C%2B2mL7zHOyVsFJ1UzSg9wVFrjcbc7s
> WGeEY%2B%3D9987nDpw%40mail.gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-talk/CAAHw6C%2B2mL7zHOyVsFJ1UzSg9wVFrjcbc7sWGeEY%2B%3D9987nDpw%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-talk" 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-talk/CAD2T2cgbPiKzX9ZbVpPWVngaqwsphW2mPX1ytkwa0Bso0T1i0A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to