第8章 列表
函数式编程与列表处理有很深的渊源。列表是最基础,也是使用最普遍的复合数据类型。作为最早出现的函数式编程语言之一,Lisp【注:它的名称就来源于“列表处理器”(LISt Processor)】用函数参数和递归的方式来处理列表,既展示了列表的灵活性和表现力,又体现了函数式编程的优美和强大,影响了后续的很多编程语言。本章就来探讨JavaScript中的列表和函数式编程。
8.1 处理列表
8.1.1 函数的三种写法
8.1.2 处理列表的高阶函数
8.2 函数式编程的列表接口
8.2.1 没有副作用的方法
8.2.2 有副作用的方法
8.2.3 列表接口中的其他函数
列表是函数式编程最常使用的复合类型,除了数组方法对应的那些函数,函数式编程还发展出许多常用的列表函数,再配合高阶函数、柯里化和复合等技术,让列表的操作异常灵活,反过来又让列表的应用更加普及。这样的函数很多,下面介绍几个较常用的。
get和set:读写列表指定索引处的元素。列表是对象,读写列表元素只是读写对象属性的一种特例,所以get和set等其他读写对象的纯函数也是列表接口的成员。
drop:抛弃列表开头指定数目的元素,返回一个包含剩余元素的新列表。
export function drop(num, indexed) {
return slice(num, indexed.length, indexed);
}