나는 통해하고 있어요 당신에게 어떤 얼랑 알아보기 다음을 책과이 코드 :
-module(fridge).
%% API
-export([start/1]).
start(FoodList) -> spawn(?MODULE, fridge2, [FoodList]).
fridge2(FoodList) ->
receive
{From, {store, _Food}} ->
From ! {self(), ok},
fridge2([_Food|FoodList]);
{From, {take, Food}} ->
case lists:member(Food, FoodList) of
true ->
From ! {self(), {ok, Food}},
fridge2(lists:delete(Food, FoodList));
false ->
From ! {self(), not_found},
fridge2(FoodList)
end;
{terminate} ->
ok
end.
그러나 내 start()
함수 를 호출하려고 하면 다음 오류가 발생합니다.
36> c(fridge).
fridge.erl:8: Warning: function fridge2/1 is unused
{ok,fridge}
37> fridge:start([]).
<0.111.0>
=ERROR REPORT==== 10-Mar-2016::22:02:42 ===
Error in process <0.111.0> with exit value:
{undef,[{fridge,fridge2,[[]],[]}]}
내가 뭘 잘못하고 있는데 왜 기능이 존재하지 않는다고 말하는 것입니까?
spawn (모듈, 함수, 인수)-> pid ()
Module : Function을 Args에 적용하여 시작된 새 프로세스의 pid를 반환합니다.
따라서 함수 fridge2 / 1을 start / 1과 같은 API로 내 보내야합니다.
orelse 다음과 같이 작성하십시오.
start(FoodList) -> spawn(fun() -> fridge2(FoodList) end).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다