I'm quite new to racket, so please pardon me if this is a dumb question. I'm working my way through the first tutorial in Beautiful Racket <https://beautifulracket.com/stacker/intro.html>, and want to extend it. He only provides + and * as operators. I added support for others.
The problem is that I need to specify the operators I support in two places, first where they are used in the handle function (see the highlighted line)... (define <http://docs.racket-lang.org/reference/define.html#(form._((lib._racket/private/base..rkt)._define))> (handle [arg #f]) (cond <http://docs.racket-lang.org/reference/if.html#(form._((lib._racket/private/letstx-scheme..rkt)._cond))> [(number? <http://docs.racket-lang.org/reference/number-types.html#(def._((quote._~23~25kernel)._number~3f))> arg) (push-stack! arg)] * [(or <http://docs.racket-lang.org/reference/if.html#(form._((lib._racket/private/letstx-scheme..rkt)._or))> (equal? <http://docs.racket-lang.org/reference/Equality.html#(def._((quote._~23~25kernel)._equal~3f))> * <http://docs.racket-lang.org/reference/generic-numbers.html#(def._((quote._~23~25kernel)._*))> arg) (equal? <http://docs.racket-lang.org/reference/Equality.html#(def._((quote._~23~25kernel)._equal~3f))> + <http://docs.racket-lang.org/reference/generic-numbers.html#(def._((quote._~23~25kernel)._+))> arg))* (define <http://docs.racket-lang.org/reference/define.html#(form._((lib._racket/private/base..rkt)._define))> op-result (arg (pop-stack!) (pop-stack!))) (push-stack! op-result)])) ..and then again when they are provided... (provide <http://docs.racket-lang.org/reference/require.html#(form._((lib._racket/private/base..rkt)._provide))> + <http://docs.racket-lang.org/reference/generic-numbers.html#(def._((quote._~23~25kernel)._+))> * <http://docs.racket-lang.org/reference/generic-numbers.html#(def._((quote._~23~25kernel)._*))> ) I was wondering if it would be possible to specify the supported operators in a list... (define my-funs '(f1 f2)) ...which could be used in handle, and then provide the functions in the list. You can't simple do... (provide my-funs) ...as this is a list of symbols. Equally you can't iterate the list and call provide on each member, as provide has to be a top-level function. So, is there any way to provide the functions in the list? Thanks -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/b0db39c6-1c57-423f-9386-64ef5c9dc921n%40googlegroups.com.

