| Paste number 64543: | manorboy |
| Pasted by: | roller |
| When: | 11 months, 1 day ago |
| Share: | Tweet this! | http://paste.lisp.org/+1DSV |
| Channel: | None |
| Paste contents: |
-module(manorboy).
-export([manorboy/0, manorboy/1]).
-import(string).
kloop(K) ->
receive
{get, Pid} ->
Pid ! K,
kloop(K);
decr ->
kloop(K-1);
done ->
ok
end.
a(KP1, X1, X2, X3, X4, X5) ->
KP1 ! {get, self()},
receive
K ->
if
K =< 0 ->
X4() + X5();
true ->
KP2 = spawn(fun() -> kloop(K) end),
B = fun (B) ->
KP2 ! decr,
a(KP2, fun() -> B(B) end, X1, X2, X3, X4)
end,
Bres = B(B),
KP2 ! done,
Bres
end
end.
manorboy(N) ->
Kproc = spawn(fun() -> kloop(N) end),
Res = a( Kproc,
fun() -> 1 end,
fun() -> -1 end,
fun() -> -1 end,
fun() -> 1 end,
fun() -> 0 end ),
Kproc ! done,
Res.
manorboy() ->
manorboy(10).
This paste has no annotations.