2011-07-17 14 views
3

fとvの2つの関数があるとします。さらに、vが長さnのリストを返し、fがn個の引数を正確に受け取ると仮定します。 vによって返されたリストにfを適用する正しい構文を探しています別の関数から返された引数のリストにSchemeの関数を適用するにはどうすればよいですか?

(f (v v-arguments))の構文を使用すると、f個のexpecting n引数についてエラーが発生しますが、返されるリストは1つだけですvによって)。

(f . (v v-arguments))の構文を使用すると、問題が多すぎてfに渡されません。私はそこより良い方法でなければならないと私は何かアドバイスに感謝だろうと確信しています

(let ((output-of-v (v v-arguments))) 
    (f (car output-of-v) (cadr output-of-v))) 

(fは二つの引数を期待していたときにケースのために)私は何ができる最善のはこれです!

答えて

9

あなたがapplyを探しているようだ:

(apply f (v v-arguments)) 

としてはhereが効果的にその関数への位置引数として渡す、引数のリストに関数を適用apply機能を説明しました。

+0

はい、本当に!どうもありがとう! – alex

+1

@alex:この回答の横にあるチェックマークをクリックして、正しい回答として受け入れる必要があります。 – acfoltzer

関連する問題