On Oct 2, 2012, at 1:41 PM, Asumu Takikawa wrote:

> Hi all,
> 
> In PL papers, you often see grammars like the following:
> 
>  e ::= ... | λx.e | (e e)
>  x ∈ Var
> 
> In particular, variables are typeset as elements of some set. Often,
> there are other sets that might represent labels, locations, tags, and
> so on.
> 
> I don't see an obvious way to do this kind of typesetting in Redex. My
> first thought was to override the typesetting of forms like
> `variable-prefix` that I use for variables, but this doesn't work since
> I can't change the "::=" in the grammar.
> 
> Is my best option to manually build picts for these cases?


[[ Not an answer:

I consider the use of '::=' bad.  It is notation by people who don't understand 
mathematics. 

In mathematics '=' is used for both definitions, as in "let f(x) = x + 2", and 
equations, as in "find an x_0 st f(x_0) = 1". Indeed, you could argue that the 
first use is a second kind and you're solving for f and you get { (0,2), (1,3), 
... } and you can replace all uses of f with this set. 

For grammars, e = x | (e e) has the same meaning. It's a (n inductive) 
definition of a set. Of if you so will, find the smallest fix point.

(I suggested the token for the in-code grammar as a compromise so that we could 
list several meta-vars on the left at once.) 

]] 
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to