Erlang - Vòng lặp
Erlang là một ngôn ngữ lập trình chức năng và điều cần nhớ về tất cả các ngôn ngữ lập trình chức năng là chúng không cung cấp bất kỳ cấu trúc nào cho các vòng lặp. Thay vào đó, lập trình hàm phụ thuộc vào một khái niệm gọi là đệ quy.
trong khi Thực hiện Tuyên bố
Vì không có câu lệnh while trực tiếp có sẵn trong Erlang, người ta phải sử dụng các kỹ thuật đệ quy có sẵn trong Erlang để thực hiện việc triển khai câu lệnh while.
Chúng tôi sẽ cố gắng làm theo cách triển khai tương tự của vòng lặp while như sau trong các ngôn ngữ lập trình khác. Sau đây là quy trình chung sẽ được theo sau.
Hãy xem một ví dụ về cách chúng ta có thể sử dụng đệ quy để triển khai while vòng lặp trong Erlang.
Thí dụ
-module(helloworld).
-export([while/1,while/2, start/0]).
while(L) -> while(L,0).
while([], Acc) -> Acc;
while([_|T], Acc) ->
io:fwrite("~w~n",[Acc]),
while(T,Acc+1).
start() ->
X = [1,2,3,4],
while(X).
Những điểm chính sau đây cần được lưu ý về chương trình trên:
Định nghĩa một hàm đệ quy được gọi là while sẽ mô phỏng việc thực hiện vòng lặp while của chúng ta.
Nhập danh sách các giá trị được xác định trong biến X vào hàm while của chúng tôi làm ví dụ.
Hàm while nhận từng giá trị danh sách và lưu giá trị trung gian trong biến 'Acc'.
Sau đó, vòng lặp while được gọi đệ quy cho mỗi giá trị trong danh sách.
Đầu ra của đoạn mã trên sẽ là:
Đầu ra
0
1
2
3
cho Tuyên bố
Vì không có trực tiếp for câu lệnh có sẵn trong Erlang, người ta phải sử dụng các kỹ thuật đệ quy có sẵn trong Erlang để thực hiện for thực hiện tuyên bố.
Chúng tôi sẽ cố gắng thực hiện theo cùng một cách triển khai fornhư sau trong các ngôn ngữ lập trình khác. Sau đây là quy trình chung cần được tuân thủ.
Hãy xem một ví dụ về cách chúng ta có thể sử dụng đệ quy để triển khai for vòng lặp trong Erlang.
Thí dụ
-module(helloworld).
-export([for/2,start/0]).
for(0,_) ->
[];
for(N,Term) when N > 0 ->
io:fwrite("Hello~n"),
[Term|for(N-1,Term)].
start() ->
for(5,1).
Những điểm chính sau đây cần được lưu ý về chương trình trên:
Chúng tôi đang xác định một hàm đệ quy sẽ mô phỏng việc triển khai for loop.
Chúng tôi đang sử dụng một bảo vệ trong hàm 'for' để đảm bảo rằng giá trị của N hoặc giới hạn là một giá trị dương.
Chúng ta gọi một cách đệ quy hàm for, bằng cách giảm giá trị của N tại mỗi lần đệ quy.
Đầu ra của đoạn mã trên sẽ là:
Đầu ra
Hello
Hello
Hello
Hello
Hello