Eval in a function

my problem is this code works in Guile , in a file:

(define (foo p) p)

(define + (foo +))

but not in a Racket file:

+: undefined;
cannot reference an identifier before its definition

any idea to force the Guile behavior?