Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
33
Task/Singleton/Erlang/singleton-1.erl
Normal file
33
Task/Singleton/Erlang/singleton-1.erl
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
-module(singleton).
|
||||
|
||||
-export([get/0, set/1, start/0]).
|
||||
|
||||
-export([loop/1]).
|
||||
|
||||
% spec singleton:get() -> {ok, Value::any()} | not_set
|
||||
get() ->
|
||||
?MODULE ! {get, self()},
|
||||
receive
|
||||
{ok, not_set} -> not_set;
|
||||
Answer -> Answer
|
||||
end.
|
||||
|
||||
% spec singleton:set(Value::any()) -> ok
|
||||
set(Value) ->
|
||||
?MODULE ! {set, self(), Value},
|
||||
receive
|
||||
ok -> ok
|
||||
end.
|
||||
|
||||
start() ->
|
||||
register(?MODULE, spawn(?MODULE, loop, [not_set])).
|
||||
|
||||
loop(Value) ->
|
||||
receive
|
||||
{get, From} ->
|
||||
From ! {ok, Value},
|
||||
loop(Value);
|
||||
{set, From, NewValue} ->
|
||||
From ! ok,
|
||||
loop(NewValue)
|
||||
end.
|
||||
14
Task/Singleton/Erlang/singleton-2.erl
Normal file
14
Task/Singleton/Erlang/singleton-2.erl
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
1> singleton:get().
|
||||
not_set
|
||||
2> singleton:set(apple).
|
||||
ok
|
||||
3> singleton:get().
|
||||
{ok,apple}
|
||||
4> singleton:set("Pear").
|
||||
ok
|
||||
5> singleton:get().
|
||||
{ok,"Pear"}
|
||||
6> singleton:set(42).
|
||||
ok
|
||||
7> singleton:get().
|
||||
{ok,42}
|
||||
Loading…
Add table
Add a link
Reference in a new issue