我有这个函数定义,但是我想知道是否可以使用def和更高阶函数来执行此操作(我希望结果以相同的顺序获取args)
(defn f1
[a b c]
(f2
(partial f3 a)
b c))
f2和f3看起来像(保持参数相关命名):
(defn f2
[f b c]
(my-fn-using f b c))
(defn f3
[a x c]
(another-fn-using a x c))
答案 0 :(得分:0)
我不是100%肯定我明白你在问什么,但这是我对答案的看法。
将f1
转换为HOF可能需要修改它以接受参数[f g a b c]
并使用f
和g
作为my-fn-using
和{{1}来调用它}}
another-fn-using
然后你会把它称为:
(defn f1 [f g a b c]
(f (partial g a) b c))
将适用于:
(f1 my-fn-using another-fn-using a b c)
我不确定你是否正在寻找的原因是你提到“嵌套函数参数”,但我不知道它们在哪里。 (my-fn-using (partial another-fn-using a) b c)
的缺失参数来自another-fn-using
内部,当前者被调用时,后者直接得到它的参数。
例如:
my-fn-using