[erlang-questions] Help please with list syntax

Donald Steven <>
Fri Oct 14 19:48:49 CEST 2016


Hi all,

I'm sorry to ask such a simple question, but "I've tried everything" and 
I'm still getting nowhere.

----------------------------------------------------------------------------------

The intent is simply at create a list 'L' of (MIDI) velocities, of 
length 'Events'.  The calling function is:

VelocityL = makeVelocityL(Events, SoftestNote, LoudestNote, []),

which should return something like (if 'Events' were to equal 3): [40, 
42, 91]

I'm testing this by following the above line of code with:

io:format("VelocityL ~p~n", [VelocityL]),

but this produces nonsense like: "(*["  (including the double quotes at 
either end

----------------------------------------------------------------------------------

The function that is called is:

makeVelocityL(     0,           _,           _, L) -> lists:reverse(L);
makeVelocityL(Events, SoftestNote, LoudestNote, L) ->

     io:format("(for testing purposes) Events: ~p, SoftestNote: ~p, 
LoudestNote: ~p, L: ~p~n", [Events, SoftestNote, LoudestNote, L]),
     Velocity = trunc(rand:uniform() * (LoudestNote - SoftestNote)) + 
SoftestNote,
     io:format("(For testing purposes) Velocity: ~p~n", [Velocity]),
     makeVelocityL(Events - 1, SoftestNote, LoudestNote, [Velocity | L]).

and the output of the io:format statements is:

(for testing purposes) Events: 3, SoftestNote: 36, LoudestNote: 96, L: []
(For testing purposes) Velocity: 40
(for testing purposes) Events: 2, SoftestNote: 36, LoudestNote: 96, L: "("
(For testing purposes) Velocity: 42
(for testing purposes) Events: 1, SoftestNote: 36, LoudestNote: 96, L: "*("
(For testing purposes) Velocity: 91

so clearly the values are OK but 'L' is nonsense.  So, the problem must 
be in the recursion statement:

     makeVelocityL(Events - 1, SoftestNote, LoudestNote, [Velocity | L]).

but I've tried every combination and order of | and ++ to no avail.

----------------------------------------------------------------------------------

Your help would be greatly appreciated.

Thanks.

Don



More information about the erlang-questions mailing list