2011/11/24 <beginners-request@haskell.org>
Send Beginners mailing list submissions to
       beginners@haskell.org

To subscribe or unsubscribe via the World Wide Web, visit
       http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
       beginners-request@haskell.org

You can reach the person managing the list at
       beginners-owner@haskell.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."


Today's Topics:

  1.  Basic "data" question (Costello, Roger L.)


----------------------------------------------------------------------

Message: 1
Date: Thu, 24 Nov 2011 10:43:58 +0000
From: "Costello, Roger L." <costello@mitre.org>
Subject: [Haskell-beginners] Basic "data" question
To: "beginners@haskell.org" <beginners@haskell.org>
Message-ID:
       <B5FEE00B53CF054AA8439027E8FE1775181911E9@IMCMBX04.MITRE.ORG>
Content-Type: text/plain; charset="us-ascii"

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

But that yields the following error:

test.hs:5:71: Not in scope: type constructor or class 'Variable'

Any suggestions would be much appreciated.

/Roger



------------------------------

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners


End of Beginners Digest, Vol 41, Issue 33
*****************************************
value constructor  followed by types.  And (Variable Var)  

belong to Lambda type.


Could define like this:
data Lambda var= Variable var | Application (Lambda var) (Lambda var)

var be any types