Haskell - Thêm về các chức năng

Cho đến bây giờ, chúng ta đã thảo luận về nhiều loại hàm Haskell và sử dụng các cách khác nhau để gọi các hàm đó. Trong chương này, chúng ta sẽ tìm hiểu về một số hàm cơ bản có thể dễ dàng sử dụng trong Haskell mà không cần nhập bất kỳ lớp Type đặc biệt nào. Hầu hết các chức năng này là một phần của các chức năng bậc cao khác.

Chức năng đầu (Head Function)

Chức năng Head hoạt động trên một Danh sách. Nó trả về đối số đầu tiên về cơ bản là một danh sách. Trong ví dụ sau, chúng tôi đang chuyển một danh sách có 10 giá trị và chúng tôi đang tạo phần tử đầu tiên của danh sách đó bằng cách sử dụng hàm head

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

Nó sẽ tạo ra kết quả sau:

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

Tail Function

Đuôi là chức năng bổ sung cho chức năng của đầu . Nó lấy một danh sách làm đầu vào và tạo ra toàn bộ danh sách mà không có phần đầu. Điều đó có nghĩa là, hàm tail trả về toàn bộ danh sách mà không có phần tử đầu tiên. Hãy xem ví dụ sau:

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

Nó sẽ tạo ra kết quả sau: Danh sách của chúng tôi là:

[1,2,3,4,5,6,7,8,9,10]
Phần cuối của danh sách của chúng tôi là:
[2,3,4,5,6,7,8,9,10]

Chức năng cuối cùng Last Function

Như tên cho thấy, nó mang lại phần tử cuối cùng của danh sách được cung cấp làm đầu vào. Kiểm tra ví dụ sau.

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

Nó sẽ tạo ra kết quả sau:

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

Chức năng Init Init Function

Init hoạt động hoàn toàn ngược lại với hàm tail . Nó lấy một danh sách làm đối số và trả về toàn bộ danh sách mà không có mục nhập cuối cùng

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

Bây giờ, hãy quan sát đầu ra của nó –

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]

Hàm Null Null Function

Null là một hàm kiểm tra Boolean hoạt động trên một Chuỗi và chỉ trả về True khi danh sách đã cho trống, nếu không, nó trả về False . Đoạn mã sau kiểm tra xem danh sách được cung cấp có trống hay không.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "Is our list empty?"  
   print (null x)
Nó sẽ tạo ra kết quả sau:
Our list is:
[1,2,3,4,5,6,7,8,9,10]
Is our list empty?
False

Chức năng Đảo ngược Reverse Function

Nó hoạt động trên đầu vào Chuỗi và chuyển toàn bộ đầu vào thành thứ tự ngược lại và kết quả là một đầu ra. Dưới đây là cơ sở mã cho chức năng này.

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

Nó sẽ tạo ra kết quả sau: Danh sách của chúng tôi là:

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]

Hàm chiều dài Length Function

Hàm này được sử dụng để tính toán độ dài của danh sách được đưa ra dưới dạng một đối số. Hãy xem ví dụ sau:

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

Chúng tôi có 10 phần tử trong danh sách của mình, do đó mã của chúng tôi sẽ mang lại 10 phần tử như đầu ra.

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

Thực hiện chức năng Take Function

Hàm Take được sử dụng để tạo một chuỗi con từ một Chuỗi khác. Đoạn mã sau đây cho thấy cách bạn có thể sử dụng hàm take trong Haskell:

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

Mã tạo một chuỗi con chứa 5 phần tử từ danh sách được cung cấp –

[1,2,3,4,5]

Chức năng Drop Function

Hàm này cũng được sử dụng để tạo một chuỗi con. Nó hoạt động như ngược lại với hàm lấy . Hãy xem đoạn mã sau:

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

Mã loại bỏ 5 phần tử đầu tiên khỏi danh sách được cung cấp và in 5 phần tử còn lại. Nó sẽ tạo ra kết quả sau:

[6,7,8,9,10]

Chức năng tối đa Maximum Function 

Hàm này được sử dụng để tìm phần tử có giá trị lớn nhất từ ​​danh sách được cung cấp. Hãy để chúng tôi xem cách sử dụng nó trong thực tế –

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

Đoạn mã trên sẽ tạo ra kết quả sau:

The maximum value element of the list is:

1245

Chức năng tối thiểu Minimum Function

Hàm này được sử dụng để tìm phần tử có giá trị nhỏ nhất từ ​​danh sách được cung cấp. Nó chỉ đối lập với chức năng tối đa

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

Đầu ra của đoạn mã trên là –

The minimum value element of the list is:

1

Hàm tính tổng Sum Function

Như tên cho thấy, hàm này trả về tổng của tất cả các phần tử có trong danh sách được cung cấp. Đoạn mã sau lấy danh sách 5 phần tử và trả về tổng kết của chúng dưới dạng đầu ra.

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

Nó sẽ tạo ra kết quả sau:

Danh sách của chúng tôi là:
[1,2,3,4,5]
Tổng của các phần tử danh sách là:
15

Chức năng sản phẩm Product Function

Bạn có thể sử dụng hàm này để nhân tất cả các phần tử trong danh sách và in giá trị của nó.

Nó sẽ tạo ra kết quả sau:
Danh sách của chúng tôi là:
[1,2,3,4,5]
Tổng của các phần tử danh sách là:
15
Chức năng sản phẩm Product Function

Bạn có thể sử dụng hàm này để nhân tất cả các phần tử trong danh sách và in giá trị của nó.
main = do 
   let x = [1..5] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The multiplication of the list elements is:" 
   print (product x)
     

Mã của chúng tôi sẽ tạo ra kết quả sau:

Our list is:

[1,2,3,4,5]

The multiplication of the list elements is:

120

Chức năng Elem Elem Function

Chức năng này được sử dụng để kiểm tra xem danh sách được cung cấp có chứa một phần tử cụ thể hay không. Theo đó, nó trả về true hoặc false .

Đoạn mã sau kiểm tra xem danh sách các phần tử được cung cấp có chứa giá trị 786 hay không.

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

Nó sẽ tạo ra kết quả sau:

Our list is:

[1,45,155,1785]

Does it contain 786?

False Sử dụng mã tương tự để kiểm tra xem danh sách được cung cấp có chứa giá trị 1785 hay không.

Haskell – Thành phần chức năng (xem thêm)

Trả lời