[Haskell-cafe] Recursion in Haskell

Brandon S. Allbery KF8NH allbery at ece.cmu.edu
Sun Feb 18 21:54:45 EST 2007

On Feb 18, 2007, at 21:44 , Michael Vanier wrote:

> I think what you're asking here is why you need the parens around  
> (x:y) in the second case.  Function application doesn't use  
> parentheses

Function application never applies to pattern matching.

> The usual answer to this is "category theory" which is an extremely  
> abstract branch of mathematics.  But you

Actually, no; my understanding is that category theory as applied to  
Haskell is a retcon introduced when the notion of monads was imported  
from category theory, and the original theoretical foundation of  
Haskell came from a different branch of mathematics.

Lambda calculus is pretty fundamental to Haskell or any functional  
programming language, as is type theory (although that you really  
don't have to understand in detail unless you're hacking the type  
system; most of us leave that to Oleg :) and the Curry-Howard  
isomorphism (simply stated:  computer programs can be converted into  
mathematical proofs, and vice versa; this is most clearly  
demonstrated when the programs are described in terms of the lambda  
calculus, which is where the original formulation of Curry-Howard  
came from).

brandon s. allbery    [linux,solaris,freebsd,perl]     allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university    KF8NH

More information about the Haskell-Cafe mailing list