I would like revisit this issue. The issue was last discussed 5 years ago. Much has changed in that time. The given solution was to use a double-negative (!!) to convert a given value to a pure boolean.
Here are the problems with the suggested solution: 1. I believe this solution is a hack that is not intuitive to beginners. It's rarely seen by mid and senior developers, meaning they have to pause to interpret what !! means. 2. A double negative can't be part of an Elixir pipeline. 3. The Credo package warns about double negatives: "Double boolean negation found". Linters in other languages have a similar warning. Other languages have a built-in function (JavaScript has Boolean()) to convert to boolean. 4. The alternative to double-negative is verbose: "if expr, do: true, else: false", or the less readable "expr && true || false" I would be happy to submit a PR to add Kernel.to_boolean/1. On Sunday, November 1, 2015 at 5:48:28 AM UTC-8 José Valim wrote: > Not necessarily , but the ones in Kernel are. :) > > -- > > > *José Valim* > www.plataformatec.com.br > Skype: jv.ptec > Founder and Director of R&D > -- 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 elixir-lang-core+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/45dc9a7b-1657-4d02-933b-fe8fe182c2bcn%40googlegroups.com.