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.