当前位置: 首页 > 教程 > Haskell >

Haskell其他函数

精华
小牛编辑
93浏览
2023-03-14

到目前为止,我们已经讨论了许多类型的Haskell函数,并使用了不同的方式来调用这些函数。在本章中,将学习一些可以在Haskell中轻松使用的基本函数,而无需导入任何特殊的Type类。这些函数大多数都是其他高阶功能的一部分。

1. head函数

Head函数适用于列表。它返回输入参数的第一个,参数基本上是一个列表。在下面的示例中,我们传递一个包含10个值的列表,并使用head函数返回列表的第一个元素。

示例代码:

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The first element of the list is:" 
   print (head x)

执行上面示例代码,得到以下结果:

Our list is: 
[1,2,3,4,5,6,7,8,9,10]
The first element of the list is:
1

2. tail函数

tail函数是对head函数的补充。它以列表作为输入参数,并产生不带头部的整个列表。tail函数将返回没有第一个元素的整个列表。看下面的例子 -


main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The tail of our list is:" 
   print (tail x)

执行上面示例代码,得到以下结果:

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The tail of our list is:
[2,3,4,5,6,7,8,9,10]

3. last函数

顾名思义,last函数获取列表的最后一个元素。查看以下示例:


main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The last element of our list is:" 
   print (last x)

执行上面示例代码,得到以下结果:

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The last element of our list is:
10

4. init函数

init函数与tail函数的作用完全相反。它使用一个列表作为参数,并返回整个列表,但是不包含最后一个条目。

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "Our list without the last entry:"  
   print (init x)

执行上面示例代码,得到以下结果:

Our list is:
[1,2,3,4,5,6,7,8,9,10]
Our list without the last entry:
[1,2,3,4,5,6,7,8,9]

5. null函数

Null函数是布尔检查的函数,它对字符串起作用,并且仅在给定列表为空时才返回True,否则返回False。以下代码检查提供的列表是否为空。

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "Is our list empty?"  
   print (null x)

执行上面示例代码,得到以下结果:

Our list is:
[1,2,3,4,5,6,7,8,9,10]
Is our list empty?
False

6. reverse函数

它对字符串输入起作用,并将整个输入转换为相反的顺序,并反转后的输出。以下是此函数的示例代码:


main = do 
   let x = [1..10]  
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The list in Reverse Order is:" 
   print (reverse x)

执行上面示例代码,得到以下结果:

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The list in Reverse Order is:
[10,9,8,7,6,5,4,3,2,1]

7. length函数

此函数用于计算参数的长度。看下面的例子-

main = do 
   let x = [1..10]   
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The length of this list is:" 
   print (length x)

执行上面示例代码,得到以下结果:

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The length of this list is:
10

8. take函数

take函数用于从一个字符串创建子字符串。以下代码显示了如何在Haskell中使用take函数-

main = print(take 5 ([1 .. 10]))

执行上面示例代码,得到以下结果:

[1,2,3,4,5]

9. drop函数

drop函数还用于生成子字符串。它的功能与take函数相反。看下面的代码 -

main = print(drop 5 ([1 .. 10]))

上面代码删除列表中前5个元素,并打印其余5个元素。它将产生以下输出-

[6,7,8,9,10]

10. maximum函数

maximum函数用于从提供的列表中查找最大值的元素。看看如何在代码中使用它-

main = do 
   let x = [1,45,565,1245,02,2]   
   putStrLn "The maximum value element of the list is:"  
   print (maximum x)

执行上面示例代码,得到以下结果:

The maximum value element of the list is:
1245

11. minmum函数

minmum函数用于从提供的列表中查找最小值的元素。看看如何在代码中使用它-


main = do 
   let x = [1,45,565,1245,02,2]   
   putStrLn "The minimum value element of the list is:"  
   print (minimum x)

执行上面示例代码,得到以下结果:

The minimum value element of the list is:
1

12. sum函数

顾名思义,此函数返回提供的列表中存在的所有元素的总和。以下代码获取5个元素的列表,并将其总和作为输出返回。

main = do 
   let x = [1..5] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The summation of the list elements is:" 
   print (sum x)

执行上面示例代码,得到以下结果:

Our list is:
[1,2,3,4,5]
The summation of the list elements is:
15

13. product函数

可以使用此函数将列表中的所有元素相乘并打印其值。参考以下示例代码:

main = do 
   let x = [1..5] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The multiplication of the list elements is:" 
   print (product x)

执行上面示例代码,得到以下结果:

Our list is:
[1,2,3,4,5]
The multiplication of the list elements is: 
120

1. elem函数

elem函数用于检查列表是否包含特定元素。如果包含则返回true,否则返回false。以下代码检查所提供的元素列表是否包含值786

Live Demo
main = do 
   let x = [1,45,155,1785] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "Does it contain 786?" 
   print (elem 786 (x))

执行上面示例代码,得到以下结果:

Our list is:
[1,45,155,1785]
Does it contain 786?
False

练习:使用相同的代码检查提供的列表中是否包含值1785