私はさまざまな計算を延期しようとしています。私は、次の形式の機能を持っている、関数の引数の複数の型
(defn a-fn [a b]
(let [a (if (fn? a)
a
#(identity a))
b (if (fn? b)
b
#(identity b))]
(+ (a) (b))))
これは値または値を返す関数、私は-FNを渡すことができ、
(a-fn 1 2)
(defn x [] 1)
(defn y [] 2)
(a-fn x y)
(a-fn x 2)
私がやっていることは関数のリストを構築しています(上記のように)いくつかのデータを操作する場合、fnsは他のfnを使って引数を取り出すこともあれば、場合によっては変更しないこともあり、引数として値が割り当てられます。私は、このような行動を起こすためのより良い方法があるのだろうかと疑問に思っていましたか?
ニース。遅延/力を忘れました。 –