Re: [racket-users] Possible bug in SEwPR, Exercise 15.1
> On the other hand, it would be a real stress test. So if you’re up to > it, try to use the binding mechanism and post on the list how you’re > doing. — Matthias That's my plan as soon as I finish reading SEwPR. I'll let you know how it goes. Thanks a lot to you all for all the kind advice. Best. -- Leandro Facchinettihttps://www.leafac.com GPG key: 3DF3D583 -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] Possible bug in SEwPR, Exercise 15.1
On the other hand, it would be a real stress test. So if you’re up to it, try to use the binding mechanism and post on the list how you’re doing. — Matthias > On Jun 2, 2016, at 7:49 AM, Robby Findlerwrote: > > It is designed for lexical scope, yes. If you have a language with > it's own interesting, non-standard notion of scope, you will probably > have to (and, indeed, want to) model it explicitly. > > Robby > > > On Thu, Jun 2, 2016 at 5:59 AM, Leandro Facchinetti wrote: >>> Woah, cool! >>> >>> Since the book was written, we have added support for binding >>> specifications to Redex. It's documentation is still in the process of >>> being improved, but you might have some interest in checking it out >>> (it is the part after #:binding-forms). >> >> I read the documentation and this feature is really impressive. In >> particular, I liked that Redex is able to recognize that two terms are >> alpha-equivalent! >> >> The way I understood from my first reading, it seems like the binding >> feature handles well lexical scoping. Would it be able to support a >> language with dynamic scoping? >> >> I ask that because I'm currently working on a language which notion of >> scoping is something in between lexical and dynamic. >> >>> Bugs in substitution functions are the worst. >> >> Indeed :) >> -- >> Leandro Facchinetti >> https://www.leafac.com >> GPG key: 3DF3D583 > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] Possible bug in SEwPR, Exercise 15.1
It is designed for lexical scope, yes. If you have a language with it's own interesting, non-standard notion of scope, you will probably have to (and, indeed, want to) model it explicitly. Robby On Thu, Jun 2, 2016 at 5:59 AM, Leandro Facchinettiwrote: >> Woah, cool! >> >> Since the book was written, we have added support for binding >> specifications to Redex. It's documentation is still in the process of >> being improved, but you might have some interest in checking it out >> (it is the part after #:binding-forms). > > I read the documentation and this feature is really impressive. In > particular, I liked that Redex is able to recognize that two terms are > alpha-equivalent! > > The way I understood from my first reading, it seems like the binding > feature handles well lexical scoping. Would it be able to support a > language with dynamic scoping? > > I ask that because I'm currently working on a language which notion of > scoping is something in between lexical and dynamic. > >> Bugs in substitution functions are the worst. > > Indeed :) > -- > Leandro Facchinetti > https://www.leafac.com > GPG key: 3DF3D583 -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] Possible bug in SEwPR, Exercise 15.1
> Woah, cool! > > Since the book was written, we have added support for binding > specifications to Redex. It's documentation is still in the process of > being improved, but you might have some interest in checking it out > (it is the part after #:binding-forms). I read the documentation and this feature is really impressive. In particular, I liked that Redex is able to recognize that two terms are alpha-equivalent! The way I understood from my first reading, it seems like the binding feature handles well lexical scoping. Would it be able to support a language with dynamic scoping? I ask that because I'm currently working on a language which notion of scoping is something in between lexical and dynamic. > Bugs in substitution functions are the worst. Indeed :) -- Leandro Facchinettihttps://www.leafac.com GPG key: 3DF3D583 -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] Possible bug in SEwPR, Exercise 15.1
Woah, cool! Since the book was written, we have added support for binding specifications to Redex. It's documentation is still in the process of being improved, but you might have some interest in checking it out (it is the part after #:binding-forms). Bugs in substitution functions are the worst. Robby On Wed, Jun 1, 2016 at 5:07 PM,wrote: > Thanks for adding the entry to the errata. > > It was fun finding the bug in my version: I forgot to /unfreeze/ (call) the > function that represents the branches of the `if' statement. I used > DrRacket's visual tools—the stepper, the tracer and the debugger—to figure > the issue. > > Not only that, but I used that find a nasty, nasty bug I introduced while > (mistakenly) copying the `subst' meta-function from the book. I was able to > go through 3 chapters before finding out that I wrote `X_3' in place of a > `X_2'. > > That was a hard one, it drove me crazy for an hour :) > > And, of course, DrRacket was indispensable! > > Best. > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] Possible bug in SEwPR, Exercise 15.1
Thanks for adding the entry to the errata. It was fun finding the bug in my version: I forgot to /unfreeze/ (call) the function that represents the branches of the `if' statement. I used DrRacket's visual tools—the stepper, the tracer and the debugger—to figure the issue. Not only that, but I used that find a nasty, nasty bug I introduced while (mistakenly) copying the `subst' meta-function from the book. I was able to go through 3 chapters before finding out that I wrote `X_3' in place of a `X_2'. That was a hard one, it drove me crazy for an hour :) And, of course, DrRacket was indispensable! Best. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] Possible bug in SEwPR, Exercise 15.1
Thank you. I've pushed a fix. (The example upthread wasn't quite right; maybe fun to try to find the error by working thru the exercise? :) Robby On Wed, Jun 1, 2016 at 10:20 AM, Matthias Felleisenwrote: > > The fix will shortly appear here: http://redex.racket-lang.org/errata.html > > >> On Jun 1, 2016, at 8:29 AM, lfacc...@jhu.edu wrote: >> >> Thanks for the blazing fast response and for clarifying it for me. Also, >> thanks for acknowledgment; my name is Leandro Facchinetti. > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] Possible bug in SEwPR, Exercise 15.1
The fix will shortly appear here: http://redex.racket-lang.org/errata.html > On Jun 1, 2016, at 8:29 AM, lfacc...@jhu.edu wrote: > > Thanks for the blazing fast response and for clarifying it for me. Also, > thanks for acknowledgment; my name is Leandro Facchinetti. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] Possible bug in SEwPR, Exercise 15.1
Thanks for the blazing fast response and for clarifying it for me. Also, thanks for acknowledgment; my name is Leandro Facchinetti. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [racket-users] Possible bug in SEwPR, Exercise 15.1
> On Jun 1, 2016, at 7:22 AM, lfacc...@jhu.edu wrote: > > Hi, all, and authors of SEwPR in particular. > > I believe Exercise 15.1 has the following problems: > > 1. The function passed to the Y combinator should have an parameter > before `x' called `tri'. > > 2. `ifz' is not a construct in ISWIM as presented in the previous > chapters. I could extend the language to support it, of course, but I > think this does not contribute to the goal of the exercise. Instead, > I think it should use `iszero'. > > Summing up the previous two points, the code looks like: > >((Y (λ tri (λ x > (((iszero x) > (λ y 0)) > (λ y (+ x (tri (- x 1 > 3) You’re absolutely correct. Surprisingly, this part of the book is actually constructed in such a way that when ‘make’ is run, it runs almost every fragment of code in the source to make sure it’s working Redex code. I fail to understand why this isn’t done here, but I can’t say until we investigate the source. Thanks for the report. We will post this on our errata page. What name should we use to acknowledge you? — Matthias > > - > > Let me take the opportunity to thank the authors for the book, PLT Redex > and Racket. The more I learn, the more I appreciate the effort you put > into them. > > Best. > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.