Hacker News new | ask | show | jobs
by tamana 3627 days ago
The Lua solution is clutter. Why return a boolean just to switch on it and then discard it?
1 comments

Why create a lambda just to execute it and then discard it?
The problem with the Boolean is rather that people mix up the two values all the time.

The lambda also has more type safety. A Boolean is always a Boolean, but the compiler (and in a dynamic language the runtime) can tell you when you are calling your passed functions with the wrong arguments, because you mixed them up.

Use an enum.
No need to stop there. Not only use an enum, but also make it bear different types of values for different cases, and you arrive at Algebraic Datatypes. Eg, for trees you can have:

    data Tree = Empty
              | Leaf Int
              | Node Tree Tree