1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
/* ======================================================================== */
/* file: array.dem */
/* Indices problems */
SUBSCRMAP:TRUE$
/*
THIS BATCH FILE ILLUSTRATES VARIOUS NEW ARRAY CAPABILITIES AVAILABLE
WHICH ARE COMPLETELY COMPATIBLE WITH THE EXISTING SCHEME.
MAPPING IN THIS CONTEXT MEANS DISTRIBUTE THE NAME OVER THE STRUCTURE
INDICATED BY THE SUBSCRIPTS.
INCLUDED ARE IMPLIED MAPPING USING LISTS AS SUBSCRIPTS,
GENERALIZED ELEMENT EXTRACTION FROM LIST OR MATRIX STRUCTURES,
IMPLIED ASSIGNMENT MAPPING, AND RECURSIVE LIST STRUCTURES.
COMPATIBILITY WITH HASHED ARRAYS AND DECLARED ARRAYS IS SHOWN.
FIRST CONSIDER USING LIST STRUCTURES AS SUBSCRIPTS. A,B, AND C
BELOW CAN BE ARRAYS, HASHED ARRAYS, LIST STRUCTURES, MATRICES OR
UNDEFINED.
*/
(A[1]:FIRST,A[2]:SECOND);
A[[1,2]],EVAL;
L:[3,2,1];
L[3];
L[1];
''L[1];
L[1],EVAL;
MIDDLE&&MAT:MATRIX([Q,V],[W,U]);
MAT[1];
MAT[[1,2],[1,2]],EVAL;
MAT[[1,2]],EVAL;
/*
ASSIGNMENT MAPS CAN BE CARRIED OUT WITH "::" OR (''FOO):
*/
D[ [1,2] ]::99;
D[1];
(''MAT):0;
Q;
MAT;
LL[''L]::L;
LL[1];
/*
RECURSIVE LIST STRUCTURES:
*/
X:[X,Y];
Y:[Y,'X];
H['X,'Y];
%,EVAL;
%,EVAL;
%,EVAL;
/*
MAPPING A FUNCTION ON A LIST STRUCTURE
*/
FULLMAPL(FOO,[[A,B],[C,D]]);
FULLMAPL(FUNC,'[AA+BB,'[AA,BB],[AA,BB],[3,4]]);
DSL:'[AS+BS,[DS,ES],'[GS,HS],144];
F(X):=X**2;
FUNC:F$
FULLMAPL(FUNC,DSL);
/*
TO COME: SHAPING, GENERAL REDUCTION, GENERAL CONTRACTION OR EXPANSION
(INNER AND OUTER PRODUCTS), ARITHMETIC, THE WORLD, THE UNIVERSE
*/
FOOBAR;
|