[racket] How to view source code of procedures? MIT scheme "pp" equivalent?

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Fri Dec 27 21:44:26 EST 2013

Matthias has good points about why the base Racket language does not do 
this, but if you want to do language experiments, or if you have really 
unusual practical requirements, you can still use Racket as a language 
platform...

You could define your own "#lang" variant of Racket that stores the 
source syntax with the definition, so that you could do the dynamic 
"normalize" at times but still use Racket's evaluator.

Neil V.

Scott Klarenbach wrote at 12/27/2013 06:27 PM:
> I noticed that MIT Scheme has the "pp" procedure which prints the 
> source code of a given function.  Is there an equivalent way to do 
> this in Racket?
>
> More generally, I'm looking to normalize nested procedures to their 
> most rudimentary expressions.
>
> For example:
>
> (define (something? x) (> x 3))
> (define (something-else? x) (< x 10))
> (define (combined x) (and (something? x) (something-else? x)))
>
> (normalize combined) =>
> '(lambda (x) (and (> x 3) (< x 10)))
>
> ((normalize combined) 7) => #t
>
> I'm sure it's not so simple and a robust general solution involves 
> some type of beta reduction and/or argument constraints, but I'm just 
> looking for a nudge in the right direction.
>
> Thanks.
>
>
>
>
> -- 
> Talk to you soon,
>
> Scott Klarenbach
>
> PointyHat Software Corp.
> www.pointyhat.ca <http://www.pointyhat.ca>
> p 604-568-4280
> e scott at pointyhat.ca <mailto:scott at pointyhat.ca>
> 200-1575 W. Georgia
> Vancouver, BC V6G2V3
>
> _______________________________________
> To iterate is human; to recur, divine
>
>
> ____________________
>    Racket Users list:
>    http://lists.racket-lang.org/users
>    
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20131227/ca1e2ee7/attachment-0001.html>

Posted on the users mailing list.