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

时间:2016-08-11 22:01:18

标签: function arguments mapping julia

我正在尝试使用map()将函数quandl应用于(n x 1)个字符串数组。 (http://quandljl.readthedocs.io/en/latest/get_data.html

但是,我希望不仅仅将字符串作为函数的参数传递,例如from = Date1to = Date2。我似乎无法找到一种方法让map()在字符串数组上应用函数,同时传递关键字参数以将数据从Date1下载到Date2

更一般的问题是:如何使用map()在多个元素上应用函数,同时还将其他参数传递给此函数?

1 个答案:

答案 0 :(得分:13)

您希望创建一个匿名函数,该函数使用适当的参数调用quandl并将其映射到您的数据上。由于我对如何调用quandl有点不清楚,我只是使用一个简单的例子。假设f采用两个位置参数和一个关键字k;假设您要将v作为第二个参数2应用于k = "abc"的每个值。map(x -> f(x, 2, k = "abc"), v) 。你会这样做:

map(v) do x
    f(x, 2, k = "abc")
end

如果匿名函数体很大或很复杂,你可能想要使用Julia的do-block syntax并写下这样的计算:

SELECT
    COUNT(*)
FROM
    [User]
Where
    Username like '%m%' 

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