On 12/21/12 9:41 PM, Cristian Esquivias wrote:
I'm trying to replace a function with another using parameterize.
For example, when I try:
(define (add2 n)
(add1 (add1 n)))
(parameterize ([add1 (λ [n] (+ n 2))])
(add2 2))
I get an error:
parameterize: contract violation
expected: parameter?
received: #<procedure:add1>
How do I re-bind functions in Racket?
You can only use parameterize with names bound to parameter values.
Here's an example:
#lang racket
(define padd1 (make-parameter add1))
((padd1) 4)
(parameterize ([padd1 (λ (n) (+ 2 n))])
((padd1) 4))
David
____________________
Racket Users list:
http://lists.racket-lang.org/users