Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Erlang 0.78 KB | None | 0 0
  1. -module(kitchen).
  2. -compile(export_all).
  3.  
  4. fridge2(FoodList) ->
  5.   receive
  6.     {From, {store, Food}} ->
  7.       From ! {self(), ok},
  8.       fridge2([Food|FoodList]);
  9.     {From, {take, Food}} ->
  10.       case lists:member(Food, FoodList) of
  11.         true ->
  12.           From ! {self(), {ok, Food}},
  13.           fridge2(lists:delete(Food, FoodList));
  14.         false ->
  15.           From ! {self(), not_found},
  16.           fridge2(FoodList)
  17.       end;
  18.     terminate ->
  19.       ok
  20.   end.
  21.  
  22. store(PidOfFridge, Food) ->
  23.   PidOfFridge ! {self(), {store, Food}},
  24.   receive
  25.     {PidOfFridge, Msg} ->
  26.       Msg
  27.   end.
  28.  
  29. take(PidOfFridge, Food) ->
  30.   PidOfFridge ! {self(), {take, Food}},
  31.   receive
  32.     {PidOfFridge, Msg} ->
  33.       Msg
  34.   end.
  35.  
  36. start(FoodList) ->
  37.   spawn(?MODULE, fridge2, [FoodList]).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement