Elm - Chức năng

Các hàm là các khối xây dựng của một chương trình Elm. Hàm là một tập hợp các câu lệnh để thực hiện một nhiệm vụ cụ thể.

Các hàm tổ chức chương trình thành các khối mã logic. Sau khi được xác định, các hàm có thể được gọi để truy cập mã. Điều này làm cho mã có thể được sử dụng lại. Hơn nữa, các hàm giúp bạn dễ dàng đọc và duy trì mã của chương trình.

Các bước sử dụng một hàm

Có ba bước để sử dụng một hàm:

Khai báo hàm

Một khai báo hàm cho trình biên dịch biết về tên, kiểu trả về và các tham số của hàm. Cú pháp để khai báo một hàm được đưa ra dưới đây:

fn_name:data_type_of_the_parameters ->return_type

Khai báo hàm chỉ định như sau:

  • Tên của hàm.

  • Kiểu dữ liệu của các tham số. Đây là tùy chọn vì một hàm có thể có hoặc không có tham số.

  • Kiểu dữ liệu của giá trị mà hàm sẽ trả về. Các hàm trong Elm phải luôn trả về một giá trị vì Elm là một ngôn ngữ lập trình hàm. Không giống như các hàm trong các ngôn ngữ lập trình khác, các hàm Elm không sử dụng từ khóa return để trả về một giá trị.

Định nghĩa chức năng hoặc thực hiện chức năng

Một định nghĩa hàm cung cấp nội dung thực tế của hàm. Một định nghĩa hàm chỉ định cách một nhiệm vụ cụ thể sẽ được thực hiện. Cú pháp để xác định một hàm như dưới đây:

fn_name parameter1 parameter2 = statements

Gọi hoặc gọi một chức năng

Một hàm phải được gọi để thực thi nó. Cú pháp để gọi một hàm được đưa ra dưới đây:

fn_name parameter1 parameter2

Hình minh họa

Đoạn mã sau định nghĩa một hàm chào. Hàm trả về một chuỗi "Hello".

> greet = \
| if True then \
| "Hello" \
| else \
| "GoodBye"
"Hello" : String
> greet
"Hello" : String

Các chức năng được tham số hóa

Tham số là một cơ chế để truyền các giá trị cho một hàm. Giá trị của các tham số được chuyển đến hàm tại thời điểm gọi hàm.

Minh họa 1

Ví dụ sau định nghĩa một hàm fn_add . Hàm nhận hai số làm tham số và trả về tổng của chúng. Hãy thử những điều sau đây trong elm REPL -

> fn_add x y = x+y
<function> : number -> number -> number
> fn_add 10 20
30 : number

Minh họa 2

Ví dụ sau định nghĩa một hàm sayHello. Hàm sayHello chấp nhận và trả về một giá trị Chuỗi làm tham số và trả về một Chuỗi.

> sayHello name = "Hello "++ name
<function> : String -> String
> sayHello "Tutorialspoint"
"Hello Tutorialspoint" : String
>

Nhà điều hành đường ống

Để hiểu toán tử pipe |>, chúng ta hãy xem xét một ví dụ trong đó chúng ta có một danh sách các chuỗi khác nhau ["a", "b", "c"] . Bây giờ chúng ta cần một chuỗi đơn, được phân tách bằng -

Ví dụ sau cho thấy cách thực hiện điều đó với String.join

> String.join "-" ["a","b","c","d","e","f"]
"a-b-c-d-e-f" : String

Hành động tương tự có thể được thực hiện bằng cách sử dụng toán tử ống |>. Toán tử đường ống có thể được sử dụng để xâu chuỗi nhiều lệnh gọi hàm.

> ["a","b","c","d","e","f"] |> String.join "-"
"a-b-c-d-e-f" : String
> ["a","b","c","d","e","f"] |> List.reverse |> String.join "-"
"f-e-d-c-b-a" : String

Trong ví dụ đầu tiên, chúng tôi đang xâu chuỗi danh sách để tham gia phương thức. Trong trường hợp thứ hai, danh sách tương tự được chuyển sang chức năng đảo ngược và sau đó được chuyển sang đường nối. Vì vậy, danh sách được hiển thị trong đảo ngược và nối.