Annotation of OpenXM/src/kan96xx/Doc/tu1.sm1, Revision 1.1.1.1
1.1 maekawa 1: %%% tu1.sm1, 1998, 11/3
2: %%% A sample program for authors of packages.
3:
4: %%% global variables for bfunction
5: %%% bfunction.*
6: /bfunction.v [(x) (y) (z)] def %% default value of v (variables).
7: /bfunction.s (s) def %% default value of s.
8: /bfunction.verbose 0 def
9:
10: /bfunction {
11: /arg1 set
12: [/in-bfunction /aa /typev /setarg /f /s /v] pushVariables
13: [(CurrentRingp) (KanGBmessage)] pushEnv %% push current global environment.
14: [
15:
16: /aa arg1 def
17: aa isArray { } { (array bfunction) message error } ifelse
18: /setarg 0 def
19: aa { tag } map /typev set
20: typev [ StringP ] eq
21: { /f aa 0 get def
22: /v bfunction.v def
23: /s bfunction.s def
24: /setarg 1 def
25: } { } ifelse
26: typev [StringP StringP] eq
27: { /f aa 0 get def
28: /v [ aa 1 get to_records pop ] def
29: /s bfunction.s def
30: /setarg 1 def
31: } { } ifelse
32: typev [StringP ArrayP] eq
33: { /f aa 0 get def
34: /v aa 1 get def
35: /s bfunction.s def
36: /setarg 1 def
37: } { } ifelse
38: setarg { } { (Argument mismatch) message error } ifelse
39:
40: [(KanGBmessage) bfunction.verbose] system_variable
41:
42:
43: %%% PROGRAM BODY
44:
45: /arg1 [f v s] def
46: ] pop
47: popEnv
48: popVariables
49: arg1
50: } def
51:
52: %% Auxiliary function for bfunction.
53: %% bfunction.*
54: /bfunction.foo1 {
55:
56: } def
57:
58:
59: %% Write usages as follows.
60: [(bfunction)
61: [( a bfunction b)
62: (array a; poly b;)
63: (a : [f] ; string f ;)
64: (a : [f v] ; string f,v; )
65: (b is the bfunction of the polynomial f given as a string.)
66: $Example [(x^3-y^2) (x,y)] bfunction :: $
67: ]
68: ] putUsages
69: (bfunction ) messagen
70:
71: ;
72:
73:
74:
75:
76:
77:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>