Rexx - Chức năng

Mã trong Rexx thường được chia thành Hàm và Chương trình con. Sử dụng các hàm giúp tách mã thành nhiều đơn vị hợp lý hơn. Hãy xem xét các chức năng này một cách chi tiết.

Xác định một chức năng

Cú pháp của một khai báo hàm như sau:

FunctionName: 
PARSE ARG arguement1, arguement2… arguementN 
Return value

Ở đâu,

  • FunctionName - Đây là tên được gán cho chức năng.

  • PARSE ARG - Đây là những từ khóa trong Rexx được sử dụng để đề cập rằng các tham số đang được truyền vào hàm.

  • arguement1, arguement2… arguementN - Đây là các đối số được truyền cho hàm.

  • Return value - Đây là giá trị được trả về bởi hàm.

Chương trình sau đây là một ví dụ đơn giản về cách các hàm được sử dụng trong Rexx.

/* Main program */ 
say add(5,6) 
exit 
add: 
PARSE ARG a,b 
return a + b

Những điều sau đây cần được lưu ý về chương trình trên:

  • Chúng ta đang định nghĩa một hàm có tên là add chấp nhận 2 tham số a và b.

  • Hàm sử dụng câu lệnh return để trả về tổng của a và b.

  • Câu lệnh exit phải được sử dụng để biểu thị sự kết thúc của chương trình chính.

Kết quả của chương trình trên sẽ như sau:

11

Làm việc với các đối số

Trong Rexx, có những hàm cụ thể có thể được thực hiện để làm việc với các đối số. Hãy xem xét một số lập luận như vậy.

tranh luận

Phương thức này được sử dụng để trả về số lượng đối số được xác định cho hàm.

Syntax -

arg()

Parameters - Không có

Return Value - Phương thức này trả về số lượng đối số được xác định cho hàm.

Example -

/* Main program */ 
say add(5,6) 
exit 
add: 
PARSE ARG a,b 

say arg() 
return a + b

Output - Khi chạy đoạn chương trình trên ta sẽ được kết quả như sau.

2 
11

arg (chỉ mục)

Phương thức này được sử dụng để trả về giá trị của đối số tại vị trí cụ thể.

Syntax -

arg(index)

Parameter -

  • Index - Vị trí chỉ mục của đối số được trả về.

Return Value - Phương thức này trả về giá trị của đối số tại vị trí cụ thể.

Example -

/* Main program */ 
say add(5,6) 
exit 
add: 
PARSE ARG a,b 

say arg(1) 
return a + b

Output - Khi chạy đoạn chương trình trên ta sẽ được kết quả như sau.

5 
11

Các hàm đệ quy

Một hàm hoặc quy trình đệ quy là một hàm hoặc thói quen gọi chính nó. Bất kỳ hàm đệ quy nào cũng có thể được mã hóa theo kiểu không đệ quy truyền thống (hoặc lặp lại), nhưng đôi khi đệ quy cung cấp một giải pháp vấn đề tốt hơn. Không phải tất cả các ngôn ngữ lập trình đều hỗ trợ đệ quy; Rexx thì có.

Hãy xem một ví dụ về chương trình giai thừa nổi tiếng sử dụng các hàm đệ quy trong Rexx.

/* Main program */ 
do n = 1 to 5 
say 'The factorial of' n 'is:' factorial( n ) 
end 
return  

/* Function to get factorial */ 
factorial : procedure 
n = arg(1) 
if n = 1 then 
return 1 
return n * factorial( n - 1 )

Kết quả của chương trình trên như sau:

The factorial of 1 is: 1
The factorial of 2 is: 2 
The factorial of 3 is: 6 
The factorial of 3 is: 24 
The factorial of 3 is: 120