my ideas for array operations

Bill Baxter dnewsgroup at billbaxter.com
Fri Oct 5 17:33:24 PDT 2007


dennis luehring wrote:
> 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;
> 

-1

Write some templates that use the existing operators.

--bb



More information about the Digitalmars-d mailing list