开篇Higher-Order-Function – Map
许久不写了,这次重新捡起.作为开篇没有太多内容要说,以Higher-Order-Function中的map函数来做简单的说明.
map是一个接受一个函数并把这个函数作为一个functor应用于每一个元素的函数.如下图
下边看看各种语言的一个大概实现,代码的意思是对一个[1,5]的列表,对其每个元素➕1
Scala
1
2
|
val list = 1 to 5;
list.map(_ + 1).toList();
|
Ocaml
1
2
3
4
5
6
|
let plus = ( + );;
(* 这里是为了对此,可以使用List.range 1 6;; *)
let list = List.init 5 ~f:(plus 1);
list
|> List.map ~f: plus
|> List.map ~f: (fun fn -> fn 1);;
|
Rust
1
2
3
4
|
fn main(){
// 这里指定下类型
let list: Vec<_> = (1..5).map(|x| x + 1).collect();
}
|
Elixir
1
2
|
1..5
|> Enum.map(&(&1 + 1))
|
Dart
1
2
3
4
|
main(List<String> args) {
final list = [1, 2, 3, 4, 5];
list.map((x) => x + 1);
}
|
近期评论