映射值数组

Map an Array of Values

考虑以下简单的 JavaScript 函数,它将数字数组映射到字符串 number {number}:

function a(n){
  return `number ${n}`
}

[1,2,3].map(a);
// 'number 1', 'number 2', 'number 3'

PureScript 中的等效函数是什么?

通过示例搜索 Google 或 PureScript 以查找“数组映射”不会 return 任何片段或示例。

以 PureScript 片段的形式,与上述简单 JavaScript 函数等效的 PureScript 是什么?

PureScript 中用于映射数组的函数称为...(鼓声...)...map!惊喜!

(事实上,“地图”的概念,如今被认为是理所当然的,实际上 进入了 so-called “主流”语言,例如 JavaScript,来自函数式编程)

然而,在 PureScript 中,map 函数被泛化为适用于各种事物,而不仅仅是数组或列表。这在 Functor class 中表示。 class 和函数都是从 Prelude 导出的,所以不需要导入任何额外的东西。

a :: Int -> String
a n = "number " <> show n

arr = map a [1,2,3]
-- arr = ["number 1", "number 2", "number 3"]

map 函数还有两个运算符别名:<$> 用于前缀应用,<#> 用于后缀:

arr1 = a <$> [1,2,3]
arr2 = [1,2,3] <#> a

如果您不想给函数命名,后者特别方便:

arr3 = [1,2,3] <#> \n -> "number " <> show n