gpt4 book ai didi

scala - 功能流水线scala

转载 作者:行者123 更新时间:2023-12-04 22:56:10 25 4
gpt4 key购买 nike

是否可以在scala中创建功能管道?我想通过|>运算符在F#中执行以下语法:

indexPairs |> Seq.iter (fun (i,j) -> parents.[j] <- Some nodes.[i])

我知道可以很容易地通过列表理解来做到这一点,但是这个想法是要做更复杂的事情,例如
indexPairs |> Seq.groupBy fst |> Seq.iter (fun (i, pairs) -> sons.[i] <- pairs |> Seq.map (fun (_,j) -> nodes.[j]) |> Seq.toList)

我认为这有助于提高代码的可读性。

最佳答案

虽然按照其他答案中的建议使用Scalaz这样做是完全合理的,但如果要避免添加外部库依赖项,则可以出于相同的目的添加简单的值类:

implicit class ChainOps[A](val value: A) extends AnyVal {
def |>[B](f: A => B): B = f(value)
}

def add(other: Int)(x: Int): Int = x + other
def mul(other: Int)(x: Int): Int = x * other
val value = 12
value |> add(9) |> mul(2) // 42

关于scala - 功能流水线scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45434948/

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