方法朱莉娅
问题描述:
链接
我读https://github.com/JuliaLang/julia/issues/5571这让我觉得我能打破这样的线路,由于一些评论:方法朱莉娅
a = [x*5 for x in 0:20 if x>4]
scale(y) = (x)-> y*x
filter(y) = x -> [z for z in x if z>y]
a|>(x->x/3)
|>scale(2)
|>filter(4)
|>println
但我得到的错误:
ERROR: LoadError: syntax: "|>" is not a unary operator
in include_from_node1(::String) at ./loading.jl:488
in process_options(::Base.JLOptions) at ./client.jl:265
in _start() at ./client.jl:321
我是*要使用a|>(x->x/3)|>scale(2)|>filter(4)|>println
?
答
您可以将|>
运营商移动到线两端:
julia> a|>(x->x/3)|>
scale(2)|>
filter(4)|>
println
此语法是因为分析器需要时,语句结束毫不含糊地决定。
(实际上,我自己问了一个关于这个问题的问题,并得到了很好的回答,请参见Why is `where` syntax in Julia sensitive to new-line?)