 
            
            
            
            
                9 Mar
                
                    2009
                
            
            
                9 Mar
                
                '09
                
            
            
            
        
    
                12:43 p.m.
            
        Am Montag, 9. März 2009 17:30 schrieb Peter Verswyvelen:
In Haskell, a data constructor can be used partially applied: data Pair a b = P a b
f = P 1
however, I cannot do "partial pattern matching", e.g
firstCoord (P x) = x
does not work.
I guess a very important reason must exist why this is the case?
For one, the type. If x :: a, then P x :: b -> Pair a b, so we'd have firstCoord :: (b -> Pair a b) -> a But you can pattern-match only on constructors of the appropriate type. P is not a constructor of (b -> Pair a b) (function types don't have constructors), so you can't match on a partially applied constructor.