Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 根据haskell或purescript中另一种/不同类型的数组对数组进行排序_Arrays_Sorting_Haskell_Functional Programming_Purescript - Fatal编程技术网

Arrays 根据haskell或purescript中另一种/不同类型的数组对数组进行排序

Arrays 根据haskell或purescript中另一种/不同类型的数组对数组进行排序,arrays,sorting,haskell,functional-programming,purescript,Arrays,Sorting,Haskell,Functional Programming,Purescript,我有两个不同类型的数组,1)比如说moduleinfoarray,它包含每个类型的元素 {name::String,pack::String} 和2)字符串数组。简单的String数组包含与moduleinfo的name字段类似的元素,即String。简单的字符串数组已排序,但模块信息数组未排序 如何编写一个函数,根据简单String数组的顺序对moduleinfo数组进行排序。假设moduleinfo中的name字段将与简单的String数组元素匹配 该函数应返回一个已排序的moduleinf

我有两个不同类型的数组,1)比如说
moduleinfo
array,它包含每个类型的元素

{name::String,pack::String}

和2)
字符串
数组。简单的
String
数组包含与
moduleinfo
name
字段类似的元素,即
String
。简单的
字符串
数组已排序,但
模块信息
数组未排序

如何编写一个函数,根据简单
String
数组的顺序对
moduleinfo
数组进行排序。假设
moduleinfo
中的
name
字段将与简单的
String
数组元素匹配


该函数应返回一个已排序的
moduleinfo
类型数组。

我建议您直接对
moduleinfo
进行排序:

sortedModuleInfo = sortWith (\(Module name1 pack1) (Module name2 pack2) -> compare name1 name2) moduleinfo

在这里,我假设您已经声明了一个名为
Module
的类型,其中包含您在问题中显示的
name
pack
元素。

如果
name
s中的一个不在
String
s的排序列表中,该怎么办?我建议您直接对
moduleinfo
进行排序。注意您应该发布将要编译的完整代码。特别是,
{name::String,pack::String}
会导致编译器错误,因为您缺少
数据和数据类型的名称。使用排序数组在排序数组中创建从模块名称到索引的哈希映射或triemap。