Good for returning after a Boolean value is passed, but will also return for things that evaluate as true or false. At any level higher than 8, I'd suggest the test should probably be written to reject this solution, but it definitely fulfills the test criteria.
So clean and simple. Need to learn more for sure. Pretty inspired though
How right you are, thanks!
You should escape the dot in your regex otherwise it matches any character.
isLockNessMonster('3950') // => true
This is tail recursive. However, Haskell doesn't need tail recursion to make its execution more memory-saving, due to its non-strict evaluation.
This comment is hidden because it contains spoiler information about the solution
How is using reduce writing your own reduce ?
You need a pair of () around the expression (in the solution they are from the method call). It's similar to the  in a list comprehension.
"The syntax requires that a generator expression always needs to be directly inside a set of parentheses and cannot have a comma on either side."
It's a generator expression, which is basically a lazy list comprehension, but instead of  it needs to be enclosed in ().
Could someone explain to me how does it even work? I can't understand why the expression in parentheses doesn't throw any error
@cybspace Most modern browsers no longer do this, but as recently as IE8 this can be an issue.