【发布时间】:2017-10-15 19:44:36
【问题描述】:
我很难理解函数式编程背后的逻辑。所以,这应该很容易,但不适合我。
我想做的是:
一个带有参数列表的函数,一个列表是这样的:[[1,2,3], [5,7,8,12,34], [2,4,6,8]]
首先我应该删除小于 6 的值,然后删除所有少于 2 个元素的列表。我的代码是这样的:
f11 :: [[Int]] -> [[Int]]
f11 xs = ( filter (\s -> if a <= 6 a then True else False )) (map (filter (\x -> length x <= 2)) xs)
【问题讨论】:
-
小风格注释:可以避免反模式
if condition then True else False,可以简化为condition。例如,可以写filter (\x -> x>=6) [1..10]。