【发布时间】:2013-06-07 20:22:07
【问题描述】:
我有一个带有两个参数的函数,例如:
let f a b = a = b
然后我有第二个函数返回一个元组:
let g = (a, b)
我想将元组中的 a 和 b 作为参数从 g 传递给 f 一行。我可以在两个语句中执行此操作,但我想这样做的原因是我的调用函数执行 or 并且我宁愿不调用 f 除非第一种情况为 false,以节省不必要的处理。
let calling =
someboolean ||
f g // want to split result of g to parameters for f without calling g twice
关于如何做到这一点的任何提示?我知道我可以让 f 取一个元组,但我想保留柯里化的选项。
我希望我解释得足够好。 :)
【问题讨论】:
-
Here's 一个很好的、有组织的 F# 符号和运算符的参考列表,如果您需要有关其他答案的更多信息
-
如果可以的话,我会标记几个答案,但我选择了我认为对特定问题最优雅的解决方案。也就是说,我认为 Thomas 关于重构 f 和 g 调用的建议可能是最“正确”的。谢谢大家!
标签: f#