guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Syntax Parameters documentation for guile


From: Eli Barzilay
Subject: Re: Syntax Parameters documentation for guile
Date: Tue, 3 Jan 2012 19:33:01 -0500

An hour and a half ago, Ian Price wrote:
> Eli Barzilay <address@hidden> writes:
> 
> >> the macro is used. Examples include an 'if' form that binds the
> >> result of the test to an 'it' binding, or class macros that
> >> introduce a special 'self' binding.
> >
> > The `abort' example is also popular, probably even more than `it'.
> > I think that there are practical uses of that (eg, a function with
> > a `return' keyword), whereas anaphoric conditionals are more of an
> > academic exercise that I don't think gets used in practice (at
> > least in Schemes).
> I mentioned it mostly because it is a traditional example, but I've
> swapped it for the lambda with return.
> 
> I'm not sure how popular aif is in general (I prefer a clojure style
> if-let), but I do know it is in the popular miscmacros egg for
> chicken.

(I suspect that its popularity comes from these examples...)


> >> ** define-syntax-parameter keyword transformer [syntax]
> >> Binds keyword to the value obtained by evaluating transformer as
> >> a syntax-parameter.
> >
> > The keyword is bound to the value of the `transformer' expression.
> > (Evaluated at the syntax level, in Racket's case, I don't know if
> > Guile has separate phases yet...)  It's not evaluated as a syntax
> > parameter, just like parameters.
> This is a case of syntactic ambiguity in English, I meant it as 
> "Binds keyword to (the value obtained by evaluating transformer) as a
> syntax-parameter."

Yeah, I figured that.  It's generally pretty hard to describe such
things accurately because of natural language conventions.  I run into
such problems in my course very frequently.


> I've just dropped the "as a syntax-parameter" part.

That works fine.


> In case anyone else has any comments, the modified version is
> included below. Now I'm off to learn about texinfo :)

(Ugh, medieval programming...)

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!



reply via email to

[Prev in Thread] Current Thread [Next in Thread]