我想创建两个函数: 1)在list(int list list)中查找小于零的所有元素的函数,然后将这些元素作为(int list)类型的列表返回。
2)找到偶数列表中的所有数字的函数(浮点列表列表),然后将它们作为(int list)返回。
他们两个都应该使用至少一个lambda表达式(fun x - > ...)。
如何创建这些功能?说实话,我不知道。
let findnegative(d:int list list)=
//maybe List.map
let findeven (t:float list list) =
//something with List.filter (fun x -> x%2.0 = 0.0)
答案 0 :(得分:3)
我认为你正在寻找这样的东西:
let findnegative(d:int list list) =
d
|> List.map (fun x -> x |> List.filter (fun y -> y < 0))
|> List.collect id
let findeven (t:float list list) =
t
|> List.map (fun x -> x |> List.filter (fun y -> y % 2.0 = 0.0))
|> List.collect id
|> List.map int
这可以简化为:
let findnegative =
List.collect <| List.filter ((>)0)
let findeven =
List.collect <| List.filter (fun x -> x % 2. = 0.) >> List.map int