Итак, я хочу запустить определение из моего vecfn
, которое вызывает vecadd
, но когда оно вызывает, оно идет с #procedure:vecadd
.Также планирую сделать это с помощью других процедур, таких как -
и /
.
. Я попытался посмотреть, что такое #procedure, но это только дало мне арифметические примеры.Это не решает вопрос о том, почему #procedure
появляется.
(define (vecfn x list1 list2)
(if (eqv? x +)
vecadd
(if (eqv? x -)
vecsub
(if (eqv? x /)
vecdiv
'()))))
(define (vecadd list1 list2)
(cond ((and (pair? list1) (pair? list2))
(cons (+ (car list1) (car list2))
(vecadd (cdr list1) (cdr list2))))
((pair? list1) list1)
(else list2)))
Использование (vecfn + '(1 2 3) '(1 2 3))
даст мне (2 4 6), но вместо этого даст мне #procedure:vecadd