映射值数组
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
考虑以下简单的 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