我在f(x, y, z)
中定义了一个函数Julia
,我希望为f
的多个值平行计算x
,保持y
和{{1}修复了。什么是最佳实践"使用z
?
如果它像pmap
那样会很好,这就是pmap(f, x, y = 5, z = 8)
系列在apply
处理固定参数的方式,但它看起来并不简单就是这样。我已经设计出了解决方案,但我发现它们不够优雅,我怀疑它们会为我的目的很好地概括。
R
包裹在f
的{{1}}函数中。然后我只需致电g
。这比我想要的要简约。g(x) = f(x, y = 5, z = 8)
时将5和8设置为pmap(g, x)
和y
的默认值,然后调用z
。如果我想将f
修改为某个变量pmap(f, x)
的值,这会让我感到不舒服,其中y
(有充分理由)在{{{{}时没有定义1}}已定义,但将在调用时a
。它有效,但有点让我感到害怕。 答案 0 :(得分:7)
一个很好的解决方案,将你明显不灵活的第一个选项转变为灵活的选择,就是使用匿名功能,例如
g(y, z) = x -> f(x, y, z)
pmap(g(5, 8), x)
或只是
pmap(x -> f(x, 5, 8), x)
在Julia 0.4中,匿名函数会有性能损失,但这将在0.5中消失。