I&#39;ve added a sentence to the docs pointing out the use of write-special and a silly example at the end too.<div><br></div><div>I tried to make a silly example using &#39;plot&#39;, something like this, but it isn&#39;t that great. If others have suggestions, I think it would be nice to show plot here ...</div>
<div><br></div><div><div>#lang racket</div><div>(require redex 2htdp/image</div><div>         (only-in plot plot </div><div>                  function</div><div>                  parametric))</div><div><br></div><div>(define/contract (unpair z)</div>
<div>  (-&gt; exact-nonnegative-integer? </div><div>      (list/c exact-nonnegative-integer? exact-nonnegative-integer?))</div><div>  (define i (integer-sqrt z))</div><div>  (define i2 (* i i))</div><div>  (cond</div><div>
    [(&lt; (- z i2) i)</div><div>     (list (- z i2) i)]</div><div>    [else </div><div>     (list i (- z i2 i))]))</div><div><br></div><div>(define/contract (pair x y)</div><div>  (-&gt; exact-nonnegative-integer? exact-nonnegative-integer?</div>
<div>      exact-nonnegative-integer?)</div><div>  (if (= x (max x y))</div><div>      (+ (* x x) x y)</div><div>      (+ (* y y) x)))</div><div><br></div><div>(define-language L (n ::= natural))</div><div>(define red</div>
<div>  (reduction-relation</div><div>   L</div><div>   (--&gt; (n_1 n_2)</div><div>        ,(unpair (+ 1 (pair (term n_1) </div><div>                            (term n_2)))))))</div><div>(traces red (term (0 0)))</div><div>
<br></div><div>(define (plot-as-poly term)</div><div>  (plot</div><div>   (function (λ (x) (+ (expt x (list-ref term 0))</div><div>                       (expt x (list-ref term 1)))))</div><div>   #:x-min -10</div><div>   #:x-max 10</div>
<div>   #:y-min -100</div><div>   #:y-max 100))</div><div><br></div><div>(define (plot-parametric-thingy term)</div><div>  (plot (parametric (λ (t) (vector (expt (cos t) (+ (list-ref term 0) 1))</div><div>                                   (expt (sin t) (+ (list-ref term 0) 1))))</div>
<div>                    0 (* 2 pi))</div><div>        #:x-min -2 #:x-max 2</div><div>        #:y-min -2 #:y-max 2))</div><div>  </div><div><br></div><div>(traces red </div><div>        (term (0 0))</div><div>        #:pp</div>
<div>        (λ (term port w txt)</div><div>          (write-special </div><div>           (plot-as-poly term)</div><div>           port)))</div><div><br></div><div>(traces red </div><div>        (term (0 0))</div><div>        #:pp</div>
<div>        (λ (term port w txt)</div><div>          (write-special </div><div>           (plot-parametric-thingy term)</div><div>           port)))</div><div><br></div></div><div><br></div><div>Robby<br><div><br>On Tuesday, May 7, 2013, Robby Findler  wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Yes, sure:<div><br></div><div><div>#lang racket</div><div>(require redex 2htdp/image)</div><div>(define-language L </div>
<div>  (t ::= RED  YELLOW GREEN))</div><div><br></div><div>(define RED    (circle 14 &quot;solid&quot; &quot;red&quot;))</div>
<div>(define YELLOW (circle 14 &quot;solid&quot; &quot;yellow&quot;))</div><div>(define GREEN  (circle 14 &quot;solid&quot; &quot;green&quot;))</div><div><br></div><div>(define R</div><div>  (reduction-relation</div><div>

   L</div><div>   (--&gt; RED GREEN)</div><div>   (--&gt; YELLOW RED)</div><div>   (--&gt; GREEN YELLOW)))</div><div><br></div><div>(traces R (term RED)</div><div>        #:pp</div><div>        (λ (term port w txt)</div>
<div>
          (write-special</div><div>           (case term</div><div>             [(RED) RED]</div><div>             [(GREEN) GREEN]</div><div>             [(YELLOW) YELLOW])</div><div>           port)))</div></div><div><br>

</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, May 7, 2013 at 12:25 AM, David Van Horn <span dir="ltr">&lt;<a href="javascript:_e({}, &#39;cvml&#39;, &#39;dvanhorn@ccs.neu.edu&#39;);" target="_blank">dvanhorn@ccs.neu.edu</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Is it possible to render snips in redex traces?<br>
<br>
For example, here&#39;s something I&#39;d like to write and have it result in a pretty traces window:<br>
<br>
#lang racket<br>
;; Traffic lights as redex model<br>
(require redex 2htdp/image)<br>
(define-language L)<br>
<br>
(define RED    (circle 14 &quot;solid&quot; &quot;red&quot;))<br>
(define YELLOW (circle 14 &quot;solid&quot; &quot;yellow&quot;))<br>
(define GREEN  (circle 14 &quot;solid&quot; &quot;green&quot;))<br>
<br>
(define R<br>
  (reduction-relation<br>
   L<br>
   (--&gt; (side-condition any_l (equal? (term any_l) RED))    ,GREEN)<br>
   (--&gt; (side-condition any_l (equal? (term any_l) YELLOW)) ,RED)<br>
   (--&gt; (side-condition any_l (equal? (term any_l) GREEN))  ,YELLOW)))<br>
<br>
(traces R (term ,RED))<br>
<br>
I&#39;d also be happy if I could write a Term -&gt; Snip function to supply as a pretty printer.<br>
<br>
David<br>
____________________<br>
 Racket Users list:<br>
 <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/<u></u>users</a><br>
</blockquote></div><br></div>
</blockquote></div></div>