>>26
> もしかしてgucheも関数を定義する順番を考えないといけないということでしょうか

oplist自体は関数じゃないので、その定義の際には
定義式の (list f1 f2) が評価されねばならない。
しかし最初のだと、この式の評価の時点で f1, f2 は未定義だからエラーになる。

関数ならば定義の時点で本体式は評価されず、その中で参照している識別子が
定義済か否かは問わないので、次の2つはどちらもエラーにならず同じ結果になる。

(define (app-pair v) (list (f1 v) (f2 v))
(define (f1 v) (+ 0 v))
(define (f2 v) (- 0 v))

または

(define (f1 v) (+ 0 v))
(define (f2 v) (- 0 v))
(define (app-pair v) (list (f1 v) (f2 v))