(Pattern) Guards in lambdas

Claus Reinke claus.reinke at talk21.com
Tue Oct 17 10:48:50 EDT 2006

since Pattern Guards appear to be popular with the committee,
I suggest to revisit the decision to drop guards from lambdas:

(a) http://www.cse.unsw.edu.au/~dons/haskell-1990-2000/msg00353.html
(b) http://www.cse.unsw.edu.au/~dons/haskell-1990-2000/msg00382.html

1. I disagree that this was a simplification of Haskell

    the language became smaller (fewer valid programs), but
    that reduction in size was bought by breaking a symmetry
    (pattern matches are the same whereever they are used)
    and adding a restriction (no guards for patterns in lambdas),
    so the smaller language is actually more complicated.

2. adding guards to lambdas can only cause more program
    runs to fail (no chance of handling pattern-match/guard
    failure and fall through), so it is kind of understandable 
    that this feature was considered dubious. however,

    - adding a guard there is comparable to adding an
        assertion, a feature often considered valuable
    - with pattern guards, the guard is no longer restricted
        to filtering, and that added functionality is not
        currently accessible for lambda patterns

suggestion: undo removal of guards from lambdas, especially
(but not only) if pattern guards make it into the language.


ps. are there any notes regarding the discussion and
        stylistic grounds mentioned in (a)?

More information about the Haskell-prime mailing list