Hello Racket friends, I was playing with the plot module (which is very nice, btw) and discovered that the parameter plot-decorations? is ignored when plotting to a new window.
The file plot3d.rkt (plot\plot-gui-lib\plot\private\gui) is where plot-new-window? makes a distinction of the cases and this is where I got rather confused. Inside plot3d.rkt, the function plot3d-snip has an internal helper function make-bm, preceded by curious step that stores the values of the plot-parameters in a variable that the helper function then uses to recall them. This is the gist of it: (define (plot3d-snip renderer-tree ...) ... (parameterize ([plot-title title] ...) (define saved-plot-parameters (plot-parameters)) ; <- store parameters ... (define (make-bm anim? ...) (parameterize/group ([plot-parameters saved-plot-parameters] ; <- recall parameters, why? ...) ...)) ...) The function for plotting into a frame did not have such a step but has the same structure with make-snip as the helper function so I added the store/recall step, and with it, plot does respect the value of the parameter. (define (plot3d-frame renderer-tree ...) ... (define saved-plot-parameters (plot-parameters)) ; <- store parameters (define (make-snip width height) (parameterize/group ([plot-parameters saved-plot-parameters]) ;<- recall parameters (plot3d-snip renderer-tree ...)) ) A quick printf also showed that the parameters have a different value between the outside and the inside of the helper functions. Now, this behavior is expected, otherwise the solution would not have been present in the same file; my question is why is it behaving this way? how is the helper function seeing the value of the parameter from the initial definition and not the one being set before invoking plot3d? To add to my confusion, I made this simple test in which I tried to copy the previous behavior, and it behaves as I expect, but differently to the plot3d case. #lang racket (module m racket (provide (all-defined-out)) (define test-param (make-parameter #t)) (define (f) (define (g) (test-param)) (g))) (require 'm) (f) (test-param #f) (f) ----- #t #f Thanks for reaching the end of this long question :) Carlos -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.