【问题标题】:How to make more compact this F# code如何使这个 F# 代码更紧凑
【发布时间】:2015-01-26 17:15:21
【问题描述】:

我想从:

let a = fun x ->
        x
        |> f
        |> g

到这样的事情:

let a = |> f
        |> g

我试过了:

let a = (<|)  f 
              |> g

和类似的

【问题讨论】:

  • 当然这不是真正的代码,我不是在寻找代码审查,而是寻找某种模式。

标签: f# pipe composition


【解决方案1】:
let a = fun x -> x |> f |> g

等价于

let a x = x |> f |> g

您似乎想组合两个函数fg 来创建一个新函数a。您可以使用&gt;&gt; 运算符来组合函数。你可以写:

let a = f >> g

如果fg 是泛型函数,则由于F# value restrictions 将无法编译。在这种情况下,您需要添加类型注释:

let a<'a> : ('a -> 'a) = f >> g

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-04-17
  • 2018-05-20
  • 2019-06-29
  • 1970-01-01
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多