探索Julia(part12)--函数组合及管道

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

参考自: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

猜你喜欢

转载自blog.csdn.net/m0_37422217/article/details/107402689