my ideas for array operations

dennis luehring dl.soluz at gmx.net
Fri Oct 5 15:04:25 PDT 2007


i have some ideas for array operation
hope they are "context free" and don't break any syntactic rules :-}

OP ==> + - / ~ * and all the others

#1 operator between (operator concatenated) array elements:

syntax: array ~OP

result-type: value-type of array

examples:

[1,2,3] ~+ ==> 1+2+3 = 6

[1,3,4] ~* ==> 1*3*4 = 12

["a","b","c"] ~~ ==> "abc"

#2 operator and "value" on each array element

syntax: array @OP value

value: array.value/applicable-type/function

result-type: typeof(array)

[1,2,3] @+ 10 ==> [1+10,2+10,3+10] = [11,12,13]

(maybe .+)

#3 operator between 2 arrays

syntax: array1 OP array2

result-type: typeof(array1)

precondition:
   array1.value/applicable-type == array2.value/applicable-type
   array1.dimension == array2.dimension

[a,b,c] + [d,e,f] ==> [a+d,b+e,c+f]

usage:

double v1[3] = [1,2,3]
double v2[3] = [3,4,5]

double norm = sqrt( ( v1 * v1 ) ~+ );
double dot_prod = ( v1 * v2 ) ~+ );
double mid = ( v1 ~+ ) / v1.length;




More information about the Digitalmars-d mailing list