Functional programming 如何将函数直接应用于F中匹配表达式的值

Functional programming 如何将函数直接应用于F中匹配表达式的值,functional-programming,f#,match,Functional Programming,F#,Match,假设我有 let someFunction someVar = let x = match someVar with | Value1 -> 10 | Value2 -> 20 anotherFunction x 有没有一种方法可以在不使用辅助x变量的情况下直接将另一个函数应用于匹配表达式的返回?是的,您可以直接应用它 let someFunction someVar = anotherFunction( match so

假设我有

let someFunction someVar =
  let x = 
    match someVar with
    | Value1 -> 10
    | Value2 -> 20
  anotherFunction x

有没有一种方法可以在不使用辅助x变量的情况下直接将另一个函数应用于匹配表达式的返回?

是的,您可以直接应用它

let someFunction someVar =
    anotherFunction( 
        match someVar with
        | Value1 -> 10
        | Value2 -> 20)

与F中的大多数其他内容一样,匹配块是可以内联使用的表达式,如果您认为它可以改进代码的话。不过,我不认为在这种情况下它更可取。

是的,您可以直接应用它

let someFunction someVar =
    anotherFunction( 
        match someVar with
        | Value1 -> 10
        | Value2 -> 20)
与F中的大多数其他内容一样,匹配块是可以内联使用的表达式,如果您认为它可以改进代码的话。不过,我不认为在这种情况下更可取。

如果someVar的名称不重要,您可以使用函数组合作为表示函数的方式:

let someFunction =
    function
    | Value1 -> 10
    | Value2 -> 20
    >> anotherFunction
该函数关键字是语法糖为乐趣x->匹配x与。。。 >>运算符获取一个函数并将其应用于另一个函数。

如果someVar的名称不重要,则可以使用函数组合来表示函数:

let someFunction =
    function
    | Value1 -> 10
    | Value2 -> 20
    >> anotherFunction
该函数关键字是语法糖为乐趣x->匹配x与。。。
>>运算符获取一个函数并将其应用于另一个函数。

现有的答案会告诉您如何执行所需操作,但如果我正在编写代码,我只会在匹配中重复函数调用-我更喜欢这样,因为它将小表达式函数调用放在大表达式模式匹配中。另一种情况是,在一个小表达式中包含一个大表达式,这使得语法在我看来不那么清晰

如果您还使用函数来避免someVar,它将成为一个整洁的三行程序:

let someFunction = function
  | Value1 -> anotherFunction 10
  | Value2 -> anotherFunction 20

现有的答案向您展示了如何做您想要的事情,但是如果我正在编写代码,我只会在匹配中重复函数调用-我更喜欢这样,因为它将小表达式函数调用放置在大表达式模式匹配中。另一种情况是,在一个小表达式中包含一个大表达式,这使得语法在我看来不那么清晰

如果您还使用函数来避免someVar,它将成为一个整洁的三行程序:

let someFunction = function
  | Value1 -> anotherFunction 10
  | Value2 -> anotherFunction 20