;; ----------------------------------------------------------------------- ;; | FILE : extend-ff-star.rkt | ;; | AUTHOR : Eugene Wallingford | ;; | CREATION DATE : 2024/04/08 | ;; | DESCRIPTION : Extends the finite function interface to | ;; | support the addition of multiple bindings | ;; | at once. | ;; ----------------------------------------------------------------------- #lang racket (require "finite-function.rkt") (define (extend-ff* symbol-list value-list ff) ; symbol-list is a list of symbols ; value-list is a list of the same length (if (null? symbol-list) ff (extend-ff (first symbol-list) (first value-list) (extend-ff* (rest symbol-list) (rest value-list) ff)))) ;; > (apply-ff (extend-ff* '(foo bar baz) '(2 5 15) (empty-ff)) ;; 'baz) ;; 15 ;; ------------------------------------------------------------------------