Julia:通过map()函数将关键字参数传递给函数

6
我正试图使用map()函数对一个由(n x 1)的字符串数组应用函数quandl,详情请见(http://quandljl.readthedocs.io/en/latest/get_data.html)。
然而,我希望将不仅字符串传递给该函数作为参数,也需要像from = Date1to = Date2这样的关键字参数。但我无法找到一种方式,在调用Date1Date2来下载数据的同时,使用map()函数对字符串数组应用该函数。
更一般的问题是:如何在调用函数时使用map()函数对多个元素执行操作,并向该函数传递其他参数?

2
请参考相关帖子https://dev59.com/DJnga4cB1Zd3GeqPcLBW#38853852。 - Michael Ohlrogge
1个回答

13

您需要创建一个匿名函数,使用适当的参数调用quandl并将其映射到您的数据上。由于我对您如何调用quandl还有点不清楚,我将使用一个虚构的例子。假设f接受两个位置参数和一个关键字参数k;假设您想将它应用于v的每个值,其中第二个参数为2k =“abc”。您可以这样做:

map(x -> f(x, 2, k = "abc"), v)

如果匿名函数的主体很大或者很复杂,您可能需要使用 Julia 的 do-block 语法,并像这样编写计算:
map(v) do x
    f(x, 2, k = "abc")
end

在这个例子中,这没有太多意义,但如果匿名函数有多行代码,那么这可能更可取。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接