gpt4 book ai didi

pipe - 如何在 Julia 中使用带有元组和匿名函数的管道运算符?

转载 作者:行者123 更新时间:2023-12-01 15:21:17 24 4
gpt4 key购买 nike

我正在尝试将元组与管道运算符 |> 以及匿名函数一起使用,例如

(1,2) |> (x,y) -> x^2 + y^2

但收到错误消息:

wrong number of arguments
while loading In[59], in expression starting on line 1

in anonymous at In[59]:1
in |> at operators.jl:178

显然,(1,2) 元组没有映射到 (x,y)

经过一些尝试,我意识到我可以通过以下方式规避这个问题

(1,2) |> x -> x[1]^2 + x[2]^2

但后者在某些情况下不如第一种方式优雅。如果我想以第一种 F# 方式将 (1,2) 映射到 (x,y),语法应该是什么样子?

最佳答案

如果没有流水线,您将在这种情况下使用 splat 运算符

((x,y) -> x^2 + y^2)((1,2)...)

流水线

julia> (1,2)...  |>  (x,y) -> x^2 + y^2
ERROR: MethodError: `|>` has no method matching |>(::Int32, ::Int32, ::Function)

所以你可以扩展 |> 来处理两个参数

import Base.|>
|>(x,y,f) = f(x,y)

julia> (1,2)...  |>  (x,y) -> x^2 + y^2
5

关于pipe - 如何在 Julia 中使用带有元组和匿名函数的管道运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32276896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com