学习笔记,仅供参考,有错必纠

参考自:Julia数据科学应用–Zacharias Voulgaris;​​官方文档​

使用Julia-1.1.1



函数组合及管道



函数组合



Julia中的函数可以通过组合或连接(链接)来组合。

函数组合是将函数组合在一起,并将后一个函数的结果作为前一个函数的参数。我们可以使用函数合成算子(​​∘​​​)来合成函数,所以​​(f ∘ g)(args...)​​​和​​f(g(args...))​​是一样的。

我们可以在REPL和适当配置的编辑器中使用​​\circ<tab>​​输入组合操作符。

例如,​​sqrt​​​和​​+​​函数可以这样组合:

julia> (sqrt ∘ +)(1, 3)
2.0

上面的代码先把数字加在一起,然后求相加结果的平方根。



下一个例子由三个函数组成,并将结果映射到字符串数组上:

map(first ∘ reverse ∘ uppercase, split("python matlab sas julia"))
#返回值
4-element Array{Char,1}:
'N'
'B'
'S'
'A'



管道



函数链接(有时称为“管道”或“使用管道”将前面函数的结果发送给后面的函数)是指将前一个函数的输出应用到后面的函数:

julia> 1:10 |> sum |> sqrt
7.416198487095663

其等效为:

julia> (sqrt ∘ sum)(1:10)
7.416198487095663



管道操作符还可以与广播一起使用,如用​​.|>​​提供管道点向量化语法的有用组合:

["a", "list", "of", "strings"] .|> [uppercase, reverse, titlecase, length]
#返回值
4-element Array{Any,1}:
"A"
"tsil"
"Of"
7