F#打印如果为真

Mar*_*com 3 f# functional-programming

我只是在它是真的时才尝试打印函数的输出,但到目前为止所有的尝试都是不合理的.

有点像:

let printFactor a b =  if b then print_any((a,b)) 
Run Code Online (Sandbox Code Playgroud)

b布尔值在哪里,a是一个整数.当我尝试它时,我得到:

val printFactor : 'a -> bool -> unit
Run Code Online (Sandbox Code Playgroud)

有什么建议?

编辑:

把事情放在上下文中我试图用管道操作符来使用它.假设我有一个xyz输出(int,bool)列表的函数.我喜欢在这些方面做点什么:

xyz |> printFactor
Run Code Online (Sandbox Code Playgroud)

仅打印真实值.

Bri*_*ian 6

你可以这样做

let xyz() = [ (1,true); (2,false) ]

let printFactor (i,b) = 
    if b then
        printfn "%A" i

xyz() |> List.iter printFactor
Run Code Online (Sandbox Code Playgroud)

但这可能是更惯用的,例如这个

xyz() 
|> List.filter (fun (i,b) -> b) 
|> List.iter (fun (i,b) -> printfn "%d" i)
Run Code Online (Sandbox Code Playgroud)

也就是说,首先过滤,然后打印.