函数式编程经常通过 map、filter 和 fold 等操作处理列表。本题要求你理解这些操作的含义,并自己实现它们。
任务说明
实现基本列表操作。
函数式语言常用 length、map、reduce 等操作。请自行实现,不使用已有同类函数。
为避免与现有名称冲突,不同语言课程的具体名称与数量可能不同,主要包括:
append:把第二个列表全部追加到第一个末尾。concatenate:把一组列表展平为单一列表。filter:按谓词保留满足predicate(item)的元素。length:返回元素总数。map:对每项应用函数,返回结果列表。foldl:从左向右把元素归约到初始累加器。foldr:从右向左归约到初始累加器。reverse:返回顺序相反、元素相同的列表。
注意,foldl、foldr 中调用归约函数时,参数顺序非常重要。