
Hi all, Thanks for your comments Maybe I should clarify... For example, 5.2 FREE: ======== If E1 = \y.xy then x is free If E2 = \z.z then x is not even mentioned So E = E1 E2 = x (\z.z) and x is free as expected So E = E2 E1 = \y.xy and x is free as expected 5.3 BOUND: ========= If E1 = \x.xy then x is bound If E2 = \z.z then is not even mentioned So E = E1 E2 = (\x.xy)(\z.z) = (\z.z)y -- Error: x is not bound but should be by the rule of 5.3 So E = E2 E1 = (\z.z)(\x.xy) = (\x.xy) then x is bound. Where's my mistake in the second-to-last example? Shouldn't x be bound (somewhere/somehow)? Thanks, Mark On 30/12/2010, at 1:52 PM, Mark Spezzano wrote:
Duh, Sorry. Yes, there was a typo
the second one should read
If E is a combination E1 E2 then X is bound in E if and only if X is bound in E1 or is bound in E2.
Apologies for that oversight!
Mark
On 30/12/2010, at 1:21 PM, Antoine Latter wrote:
Was there a typo in your email? Because those two definitions appear identical. I could be missing something - I haven't read that book.
Antoine
On Wed, Dec 29, 2010 at 9:05 PM, Mark Spezzano
wrote: Hi,
Presently I am going through AJT Davie's text "An Introduction to Functional Programming Systems Using Haskell".
On page 84, regarding formal definitions of FREE and BOUND variables he gives Defn 5.2 as
The variable X is free in the expression E in the following cases
a) <omitted>
b) If E is a combination E1 E2 then X is free in E if and only if X is free in E1 or X is free in E2
c) <omitted>
Then in Defn 5.3 he states
The variable X is bound in the expression E in the following cases
a) <omitted>
b) If E is a combination E1 E2 then X is free in E if and only if X is free in E1 or X is free in E2.
c) <omitted>
Now, are these definitions correct? They seem to contradict each other....and they don't make much sense on their own either (try every combination of E1 and E2 for bound and free and you'll see what I mean). If it is correct then please give some examples of E1 and E2 showing exactly why. Personally I think that there's an error in the book.
You can see the full text on Google Books (page 84)
Thanks for reading!
Mark Spezzano
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe