Haskell程序按字典序(词典顺序)排序元素


在本教程中,我们将讨论编写一个程序,以便在Haskell编程语言中按字典序排序元素。Haskell是一种声明式、强类型和函数式编程语言。Haskell中的计算是数学函数。

字典序是指词典顺序或字符ASCII值的顺序。

在本教程中,我们将看到两种在Haskell中实现按字典序排序元素的程序的不同方法。

  • 使用内置函数sort按字典序排序元素的程序。

  • 使用自定义排序函数按字典序排序元素的程序。

算法步骤

  • 声明或输入元素列表。

  • 实现程序以对元素进行排序。

  • 打印或显示排序后的元素。

示例1

使用函数sort按字典序排序元素的程序

import Data.List main = do -- declaring and initializing the list elements let list=["wel","bel","jel","keen","roll"] -- invoking the sort function and printing the returned result print ("The sorted List in lexicographical order is:") print (sort list)

输出

"The sorted List in lexicographical order is:"
["bel","jel","keen","roll","wel"]

在上面的程序中,我们从Data包中导入了**List**模块,以便在列表上使用一些实用函数。我们声明并初始化了一个包含一些字符串值(“bel”、“jel”、“keen”、“roll”、“wel”)的列表。我们调用了带有声明列表参数的**sort**函数。sort是List模块中的一个函数,它接受一个列表作为参数并返回排序后的列表。最后,我们打印了返回的排序列表。

示例2

使用自定义排序函数按字典序排序元素的程序

-- function declaration for function insert insert :: [[Char]]->[Char]->[[Char]] -- function definition for function insert -- base case insert [] y = [y] insert (x:xs) y = if y < x then [y]++[x]++xs else [x]++(insert xs y) -- function declaration for function insert sort :: [[Char]]->[[Char]] -- function definition for function insert -- base case sort [] = [] sort (x:xs) = insert (sort xs) x main = do -- declaring and initializing the list elements let list=["wel","bel","jel","keen","roll"] -- print ("The sorted List in lexicographical order is:") print (sort list)

输出

"The sorted List in lexicographical order is:"
["bel","jel","keen","roll","wel"]

在上面的程序中,

  • 我们声明了一个**insert**函数,它接受一个字符串数组和一个字符串作为输入,并返回一个字符串数组。在其函数定义中,我们正在获取两个参数列表模式**(x:xs)**和一个字符串y。我们正在将x(第一个参数中列表中的第一个字符串)与y进行比较。如果y在字典序上小于x,我们将返回列表[y]++[x]++xs。其中“++”是连接两个列表的操作符。如果y在字典序上大于x,我们将返回x与对函数本身的递归调用(带有剩余列表和y作为参数)连接的结果。

  • 即insert是一个实用函数,它将元素插入到排序列表中的正确位置。例如,对于此函数调用**insert [2,4,5] 3**,输出为**[2,3,4,5]**。

  • 我们声明了一个sort函数,它接受一个字符串列表作为输入并返回一个字符串列表。

  • 在其函数定义中,我们调用了insert,其中第一个参数是对自身本身的递归调用(带有剩余列表作为参数),第二个参数是列表中的第一个元素。在基本情况下,当参数为空列表时,我们返回一个空列表。此函数使用插入排序技术对列表中的元素进行排序。

  • 在主函数中,我们声明并初始化了一个包含一些字符串值的列表。我们调用了带有声明列表的sort函数,最后打印了返回的排序列表。

结论

在本教程中,我们讨论了在Haskell编程语言中实现一个程序以按字典序排序元素。

更新于:2022年11月24日

499次查看

开启你的职业生涯

通过完成课程获得认证

开始学习
广告