Erlang 循環(huán)語(yǔ)句

Erlang是一種函數(shù)式編程語(yǔ)言,所有函數(shù)式編程語(yǔ)言都需要記住的是它們不提供任何循環(huán)構(gòu)造。取而代之的是,函數(shù)式編程依賴于稱為遞歸的概念。

while語(yǔ)句實(shí)現(xiàn)

由于Erlang中沒有直接的while語(yǔ)句,因此必須使用Erlang中可用的遞歸技術(shù)來(lái)執(zhí)行while語(yǔ)句的實(shí)現(xiàn)。

我們將嘗試遵循與其他編程語(yǔ)言相同的while循環(huán)實(shí)現(xiàn)。以下是將遵循的一般流程。

同時(shí)執(zhí)行語(yǔ)句

讓我們看一個(gè)如何使用遞歸在Erlang中實(shí)現(xiàn)while循環(huán)的示例。

實(shí)例

-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).

關(guān)于上述程序,需要注意以下要點(diǎn)-

  • 定義一個(gè)稱為 while 的遞歸函數(shù),該函數(shù)將模擬 while 循環(huán)的實(shí)現(xiàn)。

  • 作為示例,將變量 X 中定義的值列表輸入到我們的 while 函數(shù)中。

  • while函數(shù)獲取每個(gè)列表值,并將中間值存儲(chǔ)在變量“ Acc”中。

  • 然后針對(duì)列表中的每個(gè)值遞歸調(diào)用while循環(huán)。

上面的代碼的輸出將是-

輸出

0
1
2
3

for語(yǔ)句

由于 Erlang 沒有直接 for 語(yǔ)句,因此必須使用 Erlang 的遞歸技術(shù)來(lái)實(shí)現(xiàn) for 語(yǔ)句。

我們將嘗試按照其他編程語(yǔ)言所遵循的相同的 for 循環(huán)實(shí)現(xiàn)。以下是應(yīng)遵循的一般流程。

聲明

讓我們來(lái)看一個(gè)在 Erlang 使用遞歸實(shí)現(xiàn) for 循環(huán)的實(shí)例。

實(shí)例

-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).

關(guān)于上述程序,需要注意以下要點(diǎn)-

  • 我們正在定義一個(gè)遞歸函數(shù),該函數(shù)將模擬我們的的實(shí)現(xiàn)for循環(huán)。

  • 我們?cè)凇?for”函數(shù)中使用了保護(hù)措施,以確保N的值或極限為正值。

  • 我們通過在每次遞歸中減小N的值來(lái)遞歸調(diào)用for函數(shù)。

上面的代碼的輸出將是:

輸出

Hello
Hello
Hello
Hello
Hello
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清