创建一个带有两个参数的函数,一个整数和一个五元素的整数元组,如果元组的任何三个元素的总和大于第一个参数,则返回true,否则为false。
let func el tupl =
match tupl with
|(a,b,c,d,e) when (a+b+c) > el || (a+d+e) > el || (b+c+d)> el || (b+c+e) > el -> true
| _-> false
答案 0 :(得分:12)
在这种情况下使用显式public ActionResult Member(string sortOrder, string filter, string searchString, int? page, **bool? condition = false**)
表达式并没有什么优势,您可以使用match
警卫来解决问题,正如您在问题中所建议的那样但是它传达了很多想法对你负担。
这是另一种选择:
when
注意:我创建了函数let inline func el (a,b,c,d,e) =
let sum3 =
[a; b; c; d; e] // create a list of elements
|> List.sortDescending // sort list by descending
|> List.take 3 // take the 3 largest elements
|> List.sum // sum them
sum3 > el // if not true for 3 largest, it's not true for any
,因此它适用于支持inline
和comparison
的任何类型。您可以删除+
并接受,例如inline
。