| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-12-21 17:23:56 +0100 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-12-21 17:23:56 +0100 | 
| commit | a81ff643a823dde57ebd0ed5da8a91fb75d32267 (patch) | |
| tree | dc7dd9e17bb380d05d446b10e7630db340c5998e /src/shared | |
| parent | c69fe90821bba84c70b020a2504fe4ed63072158 (diff) | |
Removes any use of arrays.
Diffstat (limited to 'src/shared')
| -rw-r--r-- | src/shared/struct/shr_tile.erl.m4 | 2 | ||||
| -rw-r--r-- | src/shared/util/shr_array_util.erl | 152 | ||||
| -rw-r--r-- | src/shared/util/shr_lists_util.erl | 32 | 
3 files changed, 34 insertions, 152 deletions
| diff --git a/src/shared/struct/shr_tile.erl.m4 b/src/shared/struct/shr_tile.erl.m4 index c963b0b..dc99b50 100644 --- a/src/shared/struct/shr_tile.erl.m4 +++ b/src/shared/struct/shr_tile.erl.m4 @@ -5,6 +5,7 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -type class_id() :: binary().  -type variant_id() :: binary(). +-type instances_tuple() :: tuple().  -record  ( @@ -25,6 +26,7 @@  -opaque type() :: #tile{}.  -export_type([type/0, class_id/0, variant_id/0, instance/0, border/0]). +-export_type([instances_tuple/0]).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/shared/util/shr_array_util.erl b/src/shared/util/shr_array_util.erl deleted file mode 100644 index 0faff99..0000000 --- a/src/shared/util/shr_array_util.erl +++ /dev/null @@ -1,152 +0,0 @@ --module(shr_array_util). -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export -( -   [ -      any/2, -      any_indexed/2, -      none/2, -      all/2, - -      first/2, - -      mapiff/3 -   ] -). -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec any_internals -   ( -      fun((any()) -> boolean()), -      array:array(any()), -      non_neg_integer() -   ) -   -> boolean(). -any_internals (_, _, 0) -> -   false; -any_internals (Fun, Array, PrevIX) -> -   IX = (PrevIX - 1), -   case Fun(array:get(IX, Array)) of -      true -> true; -      _ -> any_internals(Fun, Array, IX) -   end. - --spec first_internals -   ( -      fun((any()) -> boolean()), -      array:array(any()), -      non_neg_integer() -   ) -   -> integer(). -first_internals (_, _, 0) -> -   -1; -first_internals (Fun, Array, PrevIX) -> -   IX = (PrevIX - 1), -   case Fun(array:get(IX, Array)) of -      true -> IX; -      _ -> first_internals(Fun, Array, IX) -   end. - --spec any_indexed_internals -   ( -      fun((non_neg_integer(), any()) -> boolean()), -      array:array(any()), -      non_neg_integer() -   ) -   -> boolean(). -any_indexed_internals (_, _, 0) -> -   false; -any_indexed_internals (Fun, Array, PrevIX) -> -   IX = (PrevIX - 1), -   case Fun(IX, array:get(IX, Array)) of -      true -> true; -      _ -> any_indexed_internals(Fun, Array, IX) -   end. - --spec all_internals -   ( -      fun((any()) -> boolean()), -      array:array(any()), -      non_neg_integer() -   ) -   -> boolean(). -all_internals (_, _, 0) -> -   true; -all_internals (Fun, Array, PrevIX) -> -   IX = (PrevIX - 1), -   case Fun(array:get(IX, Array)) of -      true -> any_internals(Fun, Array, IX); -      _ -> false -   end. - --spec mapiff_internals -   ( -      fun((any()) -> boolean()), -      fun((any()) -> any()), -      array:array(any()), -      list(non_neg_integer()), -      non_neg_integer() -   ) -   -> {array:array(any()), list(non_neg_integer())}. -mapiff_internals (_, _, Array, IXList, 0) -> -   {Array, IXList}; -mapiff_internals (Cond, Map, Array, IXList, PrevIX) -> -   IX = (PrevIX - 1), -   Elem = array:get(IX, Array), - -   case Cond(Elem) of -      false -> mapiff_internals(Cond, Map, Array, IXList, IX); -      _ -> -         mapiff_internals -         ( -            Cond, -            Map, -            array:set(IX, Map(Elem), Array), -            [IX|IXList], -            IX -         ) -   end. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --spec any (fun((any()) -> boolean()), array:array(any())) -> boolean(). -any (Fun, Array) -> -   any_internals(Fun, Array, array:size(Array)). - --spec first (fun((any()) -> boolean()), array:array(any())) -> integer(). -first (Fun, Array) -> -   first_internals(Fun, Array, array:size(Array)). - --spec any_indexed -   ( -      fun((non_neg_integer(), any()) -> boolean()), -      array:array(any()) -   ) -> boolean(). -any_indexed (Fun, Array) -> -   any_indexed_internals(Fun, Array, array:size(Array)). - --spec all (fun((any()) -> boolean()), array:array(any())) -> boolean(). -all (Fun, Array) -> -   all_internals(Fun, Array, array:size(Array)). - --spec none (fun((any()) -> boolean()), array:array(any())) -> boolean(). -none (Fun, Array) -> -   not any(Fun, Array). - --spec mapiff -   ( -      fun((any()) -> boolean()), -      fun((any()) -> any()), -      array:array(any()) -   ) -   -> {array:array(any()), list(non_neg_integer())}. -mapiff (Cond, Map, Array) -> -   mapiff_internals(Cond, Map, Array, [], array:size(Array)). diff --git a/src/shared/util/shr_lists_util.erl b/src/shared/util/shr_lists_util.erl new file mode 100644 index 0000000..0568692 --- /dev/null +++ b/src/shared/util/shr_lists_util.erl @@ -0,0 +1,32 @@ +-module(shr_lists_util). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-export +( +   [ +      %%% Gentoo hasn't marked Erlang/OTP 21 as stable yet, but I'd like to +      %%% use this function. +      %%% TODO: remove once lists:search/2 is available.  +      search/2 +   ] +). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Copy/pasted from the Erlang OTP's source code... +search (Pred, [Hd|Tail]) -> +   case Pred(Hd) of +      true -> {value, Hd}; +      false -> search(Pred, Tail) +   end; +search (Pred, []) when is_function(Pred, 1) -> +   false. | 


