在R(感谢magrittr/ dplyr)你现在可以调用没有括号的函数,但你可以管它们.
这意味着不是编码:
> as.character((sqrt(12)^2)
> as.Date("2014-01-01")
Run Code Online (Sandbox Code Playgroud)
你也可以这样做:
> 12 %>% sqrt %>% .^2 %>% as.character
> "2014-01-01" %>% as.Date
Run Code Online (Sandbox Code Playgroud)
R广泛使用它来编辑数据帧.除了数据帧之外,我觉得这种语法对于创建功能脚本非常易读且功能强大.
朱莉亚语言是否支持类似的东西?
Iai*_*ing 19
是的,从两个方面来说.
首先|>,例如,有
12 |> sqrt |> x->x^2 |> string # 11.999999999999998
using Dates # needed in 0.3, baked in to 0.4
"2014-01-1" |> d->Date(d,"yyyy-mm-dd") |> year |> iseven # true
Run Code Online (Sandbox Code Playgroud)
我不会说它非常惯用的朱莉娅(或者R,除了在数据帧上进行操作dplyr).有关于增强此类事物并使语法更好的讨论.你现在可以用Lazy.jl做很多简洁的事情了!
特别是对于其在制品,但DataFrames DataFramesMeta.jl联合Lazy.jl,它可以让你做这样的事情dplyr,并LINQ如(从他们的自述拍摄):
x_thread = @> begin
df
@transform(y = 10 * :x)
@where(:a .> 2)
@by(:b, meanX = mean(:x), meanY = mean(:y))
@orderby(:meanX)
@select(:meanX, :meanY, var = :b)
end
Run Code Online (Sandbox Code Playgroud)