Racket:将休息参数映射到另一个过程

时间:2018-05-01 08:49:17

标签: plot scheme racket map-function

我正在尝试获取其余参数的列表并将它们映射到Racket中plot过程的参数列表,但由于某种原因我一直运气不佳。

(define (graph fn/1
               #:grid? [grid? true] 
               #:min [min -20] 
               #:max [max 20]
               . fns)
   (define plot-input 
           (list (axes)
                 (if grid? (tick-grid) empty)
                 (function identity #:style 'dot #:width 1.5 #:color 'gray)
                 (function fn/1)
                 ;; would like (function f) for each f in fns iff fns exists
   ))
   (plot plot-input
         #:x-min min
         #:x-max max
         #:y-min min
         #:y-max max))

1 个答案:

答案 0 :(得分:2)

只需使用map

   (define plot-input 
           (list* (axes)
                  (if grid? (tick-grid) empty)
                  (function identity #:style 'dot #:width 1.5 #:color 'gray)
                  (function fn/1)
                  ;; would like (function f) for each f in fns iff fns exists
                  (map function fns)
   ))

使用list*拼接map生成的结果列表,而不是原始list