Rename *ll* and *ul* to ll and ul in easy-subs
[maxima.git] / share / misc / arrfun.mac
blob2c59861ff604a93a868047b8621c393b69c9bed4
1 /*-*-Macsyma-*-*/
3 /* DEFAR(FOO,[X,Y],X+Y) Defines a function FOO and an array FOO.
4    This allows you more flexibility than you get with straight
5    macsym array functions. It is possible to reset the array
6    without killing the function.  
7     
8    -GJC 8:54am  Friday, 5 September 1980 
12 /* commented out of DOE MACSYMA
13 EVAL_WHEN([translate,batch,demo],
14           IF GET('MACRO1,'VERSION) = FALSE
15              THEN LOADFILE(MACRO1,FASL,DSK,SHARE),
16           IF GET('SUBMAC,'VERSION) = FALSE
17              THEN LOADFILE(SUBMAC,FASL,DSK,SHARE2))$ */
18 load("defm.mac")$
20 /* commented out of DOE MACSYMA
21 EVAL_WHEN(TRANSLATE,PACKAGEFILE:TRUE,SAVEDEF:FALSE)$ */
23 defar('name,'argl,'body)=>
24  (name(splice(argl)):=
25   block([%_val:block([?evarrp:true],name[splice(argl)])],
26         if %_val='?notexist then 
27            (%_val:body,name[splice(argl)]:%_val,%_val)
28          else %_val),
29  /* kludge to init the array, (as a hashed array). */
30    name[splice(argl)]:'?notexist,
31    name:'name);
33 eval_when(demo,
35 defar(legend,[n],((2*n-1)*'x*legend(n-1)-(n-1)*legend(n-2))/n),
37 (legend[0]:rat(1), legend[1]:rat('x)));
39 eval_when(demo,legend(5));