2009-05-18 6 views
2

私は関数の出力を真であるが、これまでのところすべての試みが不成功であったときだけ印刷しようとしています。ライン上F#trueならば印刷します。

何か:

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

bがブール値であるとaは整数です。 私はそれを試してみると、私は得る:

val printFactor : 'a -> bool -> unit 

何か提案がありますか?

EDIT:

パイプ演算子でこれを使用しようとしてコンテキストイムで物事を置くために。 (int、bool)のリストを出力する関数xyzがあるとします。 ID:

xyz |> printFactor 

実際の値のみを印刷するには、次の行で何かをしてください。

+0

私はあなたが何を求めているのか、何をしようとしているのか不明です。 – Brian

+0

これは、書いた関数の正しい型シグネチャです。 'print_any'関数は何ですか?次に見てください。 – nlucaroni

答えて

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) 

つまり、最初にフィルターをかけて印刷します。

+0

をフィルタリングして印刷し、印刷がうまくいった。ありがとう – Marcom

関連する問題