如何在函数体中使用谓词函数参数?
How can I use a predicate function parameter in the function body?
我正在尝试解决 exercism 上的 'strain' 练习。
该函数应该接受谓词函数作为参数。
let keep pred xs =
function body
当代码为:
[1;2;3;4] |> Seq.keep (fun x -> x % 2 = 0)
如何在正文中使用谓词?
要回答具体问题 - 如何在正文中使用谓词 - 假设我们想做一些更简单的事情。我们想要编写一个函数,它接受一个谓词 pred
和一个值 v
,如果谓词对给定值成立,它只是 returns“OK”,如果不成立,则为“Nope” .
为此,您可以这样写:
let okIfHolds pred v =
if pred v then "OK" else "Nope"
要调用谓词,你只需要说pred v
。这与您在调用 sqrt 2.0
或 List.sum [1;2;3]
等 built-in 函数时看到的相同 F# 函数应用程序语法 - 只需指定函数及其参数。
我正在尝试解决 exercism 上的 'strain' 练习。 该函数应该接受谓词函数作为参数。
let keep pred xs =
function body
当代码为:
[1;2;3;4] |> Seq.keep (fun x -> x % 2 = 0)
如何在正文中使用谓词?
要回答具体问题 - 如何在正文中使用谓词 - 假设我们想做一些更简单的事情。我们想要编写一个函数,它接受一个谓词 pred
和一个值 v
,如果谓词对给定值成立,它只是 returns“OK”,如果不成立,则为“Nope” .
为此,您可以这样写:
let okIfHolds pred v =
if pred v then "OK" else "Nope"
要调用谓词,你只需要说pred v
。这与您在调用 sqrt 2.0
或 List.sum [1;2;3]
等 built-in 函数时看到的相同 F# 函数应用程序语法 - 只需指定函数及其参数。