[Haskell-beginners] Basic "data" question
Brent Yorgey
byorgey at seas.upenn.edu
Thu Nov 24 15:56:48 CET 2011
On Thu, Nov 24, 2011 at 10:43:58AM +0000, Costello, Roger L. wrote:
> Hi Folks,
>
> I am trying to define a data type for this:
>
> A Lambda term is one of these:
> - Variable
> - Application of a Lambda term to a Lambda term
> - Abstraction of a Variable in a Lambda term
>
> Here's an example of a Lambda term:
>
> term = Abstraction (Variable X) (Application (Variable X) (Variable Y))
>
> Is there a way to define Lambda term?
>
> Here's an attempt at defining it:
>
> data Var = V | W | X | Y | Z
>
> data Lambda = Variable Var | Application Lambda Lambda | Abstraction
> (Variable Var) Lambda
The right way to do it would be
data Var = V | W | X | Y | Z
data Lambda = Variable Var | Application Lambda Lambda | Abstraction Var Lambda
However, I also note that it is a bit strange to use an enumeration
type for your variables; what if you need more than five?
-Brent
More information about the Beginners
mailing list