【问题标题】:F# Print if trueF# 如果为真则打印
【发布时间】:2015-04-10 02:49:56
【问题描述】:

我正在尝试仅在函数为 true 时打印输出,但到目前为止所有尝试均未成功。

以下内容:

let printFactor a b =  if b then print_any((a,b)) 

其中b 是布尔值,a 是整数。 当我尝试时,我得到:

val printFactor : 'a -> bool -> unit

有什么建议吗?

编辑:

为了将事情放在上下文中,我试图将它与管道运算符一起使用。假设我有一个函数xyz,它输出一个(int,bool)列表。我想在这些方面做点什么:

xyz |> printFactor

仅打印真实值。

【问题讨论】:

  • 我不清楚你在问什么或你想做什么。
  • 这是您编写的函数的正确类型签名。 print_any 的功能是什么?接下来看看那里。

标签: f# functional-programming


【解决方案1】:

你可以做例如这个

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

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

xyz() |> List.iter printFactor

但这样做可能会更惯用,例如这个

xyz() 
|> List.filter (fun (i,b) -> b) 
|> List.iter (fun (i,b) -> printfn "%d" i)

即先过滤,再打印。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    相关资源
    最近更新 更多