F# I want to filter my output -
i have problem have simplified purpose of question.
let's have 2 lists. first actually represents list of classes but purpose, let's represents list of ints (2,4,6,8,10). have list of ints represents flags, indicating if wish include/exclude corresponding values first set.
(it's not best example should suffice helping me solve real problem.)
let set1 = [2;4;6;8;10] let set2 = [1;0;0;1;1] my desired output set is:
[2;8;10] this code:
let solution = list.map2 (fun b -> match b | 1 -> | _ -> 0 ) set1 set2 this renders following output:
val solution : int list = [2; 0; 0; 8; 10] how can filter out these undesired zeros?
instead of | _ -> 0 ideally want return null , filter out nulls.
your appreciated!
this 1 seems reasonable easy:
let filterwith set2 set1 = list.zip set1 set2 |> list.filter (fun (_,x) -> x=1) |> list.map fst usage:
let set1 = [2;4;6;8;10] let set2 = [1;0;0;1;1] set1 |> filterwith set1 if choose use list of bools set2 bit nicer:
let filterwith set2 set1 = list.zip set1 set2 |> list.filter snd |> list.map fst usage:
let set1 = [2;4;6;8;10] let set2 = [true;false;false;true;true] set1 |> filterwith set1
Comments
Post a Comment