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