欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-03 16:32:22
...

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

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