Haskell其他函數

到目前為止,我們已經討論了許多類型的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


上一篇: Haskell函數 下一篇: Haskell函數組合