-module(prac).
-export([len/1]).
len([]) ->
0;
len([_|T]) ->
1 + len(T).
所以我有這樣的代碼和它的作品,但我不知道如何正確地模擬。循環仿真如何工作?
-module(prac).
-export([len/1]).
len([]) ->
0;
len([_|T]) ->
1 + len(T).
所以我有這樣的代碼和它的作品,但我不知道如何正確地模擬。循環仿真如何工作?
好吧,如果你正在尋找的,爲什麼代碼工作方式是這樣的解釋,它是這樣的。考慮下面的代碼:
len([]) -> 0;
len([_|T]) -> 1 + len(T).
如果你打電話給len/1
像len([a,b,c])
,那麼你可以把它像執行:
len([a,b,c])
[a,b,c]
比賽[]
?沒有[a,b,c]
比賽[_|T]
?是的,產生_ = a
和T = [b,c]
len([b,c])
[b,c]
比賽[]
?沒有[b,c]
比賽[_|T]
?是的,產生_ = b
和T = [c]
len([c])
[c]
比賽[]
?沒有[c]
比賽[_|T]
?是的,產生_ = c
和T = []
len([])
[]
比賽[]
?是len([])
返回0len([c])
返回1 + 0len([b,c])
返回1 + 1len([a,b,c])
返回1 + 2這是否有意義?
是的,它現在有意義。謝謝你解釋。 –
二郎有一個調試器調用im()
嘗試使用它
您可以定義由「模擬」是什麼意思? –
我的意思是我不知道它是如何工作的。 –
對不起,但我無法理解你的問題。你能用不同的詞來表達嗎? –