2009-05-18 118 views
2

我試圖打印功能的輸出只有當它是真實的,但迄今爲止所有的嘗試已經unsuccsessful。F#打印如果爲真

東西上的行:

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

b哪裏是一個布爾值和a是整數。 當我嘗試它,我得到:

val printFactor : 'a -> bool -> unit 

有什麼建議?

編輯:

擺在即時通訊方面的事情想與管道運營商使用。假設我有一個函數xyz,它輸出(int,bool)的列表。我喜歡在這些行上做點什麼:

xyz |> printFactor 

只打印真值。

+0

我不清楚你在問什麼,或者你在做什麼。 – Brian 2009-05-18 19:23:03

+0

這是您寫的函數的正確類型簽名。什麼是函數`print_any`呢?接下來看看那裏。 – nlucaroni 2009-05-18 19:33:40

回答

5

你可以做例如這

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) 

即先過濾,然後打印。