Arrays in LC [was: Re: [TAO] value() to obtain pointer functionality]

Alex Tweedly alex at tweedly.net
Tue Aug 19 20:35:52 EDT 2014


On 20/08/2014 00:58, Peter Haworth wrote:
> There's also the matrixMultiply command. It only works on 
> numerically-keyed, single dimension arrays. Not sure why there isn't a 
> matrixAdd/Subtract/Divide/etc but there's no mention of them in the 
> dictionary. 

But you get them (I think) just with "add", etc.

Dictionary says (with me trimming out the unnecessary parts)
>
> add {number | array} to arrayContainer
>
> Example:
> add qty * price to last line of myOrder
>
> Description:
> Use the add command to add a number to a container or a portion of a 
> container, or to add two arrays containing numbers.
>
> Parameters:
> The number is an expression that evaluates to a number.
> The container is a field, button, or variable, or the message box.
> The arrayContainer is an array variable each of whose elements is a 
> number.
>
> Comments:
> If a number is added to an arrayContainer, the number is added to each 
> element. If an array is added to an arrayContainer, both arrays must 
> have the same number of elements and the same dimension, and each 
> element in the array is added to the corresponding element of the 
> arrayContainer.
>
> If the container or an element of the arrayContainer is empty, the add 
> command treats its contents as zero.
> If container is a field or button, the format of the sum is determined 
> by the numberFormat property.
>


> The dictionary also lists a transpose command but I honestly can;t 
> figure out what use it is and since it causes a runtime error when 
> I've tried to play with I haven't bothered to check it out. 

Haven't used it, or even played with it - but the thing to note is that 
it was included since v1.1, when we didn't have true multi-dm arrays, so 
it expects pseudo- 2D array, where the keys are in the form 
[number,number], and every element must exist - i.e. you'd be hard 
pressed to find a useful use for it today.

We really should have a transpose (and come to think of it a 
matrixMultiply, etc.) command that work on modern 2-D arrays, i.e.
A[1][2], etc. rather than A[1,2]

-- Alex.




More information about the use-livecode mailing list