|
@@ -79,12 +79,13 @@ switch(Switch, Map = [{_, Op1}|Rest]) ->
|
|
|
error:function_clause -> erlang:error(badarg, [Switch, Map])
|
|
|
end.
|
|
|
|
|
|
-loop(N, Op) ->
|
|
|
- {In, Out} = case {in_arity(Op)-N, out_arity(Op)-N} of
|
|
|
+loop(Init, Op) ->
|
|
|
+ S = out_arity(Init),
|
|
|
+ {In, Out} = case {in_arity(Op)-S, out_arity(Op)-S} of
|
|
|
{I, O} when I >= 0, O > 0 -> {I, O};
|
|
|
- {_, _} -> erlang:error(badarg, [N, Op])
|
|
|
+ {_, _} -> erlang:error(badarg, [Init, Op])
|
|
|
end,
|
|
|
- #loop{in=In, out=Out, size=N, op=Op}.
|
|
|
+ #loop{in=In, out=Out, init=Init, op=Op}.
|
|
|
|
|
|
%%%-----------------------------------------------------------------------------
|
|
|
%%% Operation querying
|