[erlang-questions] Spurious '100' in array:new

Luke Bakken luke@REDACTED
Mon Jan 28 16:36:51 CET 2019


Hi Donald -

I have never used the array data type, but I assume that the 100 is an
internal implementation detail.

https://github.com/erlang/otp/blob/OTP-21.2.4/lib/stdlib/src/array.erl#L151-L160

Notice that the last element in the array record is for "elements",
which are defined immediately above the record in the source code.
non_neg_integer() can be the sole element in your array, and is
determined by this code:

https://github.com/erlang/otp/blob/OTP-21.2.4/lib/stdlib/src/array.erl#L286-L298

In your case, the ?extend macro is evaluated and the result of 10 *
(NODESIZE * LEAFSIZE) is stored in the elements field of the record.

At least, I think this is the correct reading of this code :-)
Thanks,
Luke

On Sat, Jan 26, 2019 at 8:11 AM Donald Steven <t6sn7gt@REDACTED> wrote:
>
> When I declare a new fixed-size array (of 19 values) within a map, with the statement:
>
> Sound = #{
>
>     contourTag =>  SndContour   = array:new(19, {default,{0, unspecified, 0}}),
>     ...
>
> },
>
> and print it out using io:format and ~p, I get:
>
> Sound: #{contourTag => {array,19,0,{0,unspecified,0},100},
>
> ---
>
> Where is the '100' coming from?
>
> Thanks.
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions



More information about the erlang-questions mailing list