[racket] Language Toolkit Questions

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Wed Jul 20 08:26:37 EDT 2011

Also in the Guide they are mentioned:


You may find that a more useful place to start, depending on how
familiar you are with Racket, since the information nearby tends to
explain the more useful things in more detail (the link below is to
the reference, which is all about putting all of the information
instead of focusing on the more useful bits).


On Wed, Jul 20, 2011 at 7:05 AM, Sam Tobin-Hochstadt <samth at ccs.neu.edu> wrote:
> As an example of this, you can see my `lambda/prop' example here:
>  https://gist.github.com/935350
> The documentation for `prop:procedure' is here:
>  http://docs.racket-lang.org/reference/procedures.html?q=prop%3Aprocedure#%28def._%28%28lib._racket/private/base..rkt%29._prop~3aprocedure%29%29
> On Wed, Jul 20, 2011 at 7:50 AM, Robby Findler
> <robby at eecs.northwestern.edu> wrote:
>> Do you perhaps want prop:procedure?
>> Robby
>> On Tue, Jul 19, 2011 at 6:08 PM, Pavel Panchekha <pavpanchekha at gmail.com> wrote:
>>> I'm trying to port some code from MIT Scheme to Racket.  A large part of
>>> the MIT Scheme was a metacircular interpreter, and I'm hoping that I can
>>> use Racket's language definition capabilities to avoid that annoyance.
>>> But I've hit a snag.  One of the important parts of the MIT Scheme
>>> wrapped all objects in another structure.  It then distinguished between
>>> primitive functions, for which we would have to unwrap that structure
>>> and use a fallback, and functions defined in the guest Scheme, which
>>> expected wrapped objects and so we could use a smarter apply function.
>>> In Racket, I can override =%datum=, =lambda=, and similar, to produce
>>> these wrapped objects.  But I can't figure out what to do with =%app=.
>>> If there was some primitive for "defined outside this language", I could
>>> use that.  Or if there was a way of explicitly "tagging" objects (some
>>> sort of transparent metadata, as has e.g. Clojure), I could tag all of
>>> my non-primitive functions and use that.
>>> Do you know if anything like either of these options exist?  Or is there
>>> some clearer way in Racket to express what I want to do?
>>> --
>>>  Pavel Panchekha
>>> _________________________________________________
>>>  For list-related administrative tasks:
>>>  http://lists.racket-lang.org/listinfo/users
>> _________________________________________________
>>  For list-related administrative tasks:
>>  http://lists.racket-lang.org/listinfo/users
> --
> sam th
> samth at ccs.neu.edu

Posted on the users mailing list.