Re: [racket-users] Possible bug in SEwPR, Exercise 15.1

2016-06-02 Thread Leandro Facchinetti
> 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 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

2016-06-02 Thread Matthias Felleisen

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 Findler  wrote:
> 
> 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

2016-06-02 Thread Robby Findler
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.


Re: [racket-users] Possible bug in SEwPR, Exercise 15.1

2016-06-02 Thread Leandro Facchinetti
> 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

2016-06-01 Thread Robby Findler
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

2016-06-01 Thread lfacchi2
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

2016-06-01 Thread Robby Findler
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 Felleisen
 wrote:
>
> 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

2016-06-01 Thread Matthias Felleisen

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

2016-06-01 Thread lfacchi2
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

2016-06-01 Thread Matthias Felleisen


> 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.