-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAOPA.html
123 lines (123 loc) · 6.17 KB
/
AOPA.html
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type"
content="text/html; charset=UTF-8">
<meta name="description"
content="sweave generated">
</head><body><font face="Sorts Mill Goudy">
<p align="justify"><font face="Sorts Mill Goudy">
<h1>AOPA - Apply Infix Operator to Array</h1>
</font></p>
<p align="justify"><font face="Sorts Mill Goudy">
<font face="Source Code Pro">AOPA(A1,OP,A2)</font> will apply the infix operator <font face="Source Code Pro">OP</font> to
corresponding pairs of <font face="Source Code Pro">A1</font> and <font face="Source Code Pro">A2</font>, returning an array unless
both are scalars.
</font></p>
<p align="justify"><font face="Sorts Mill Goudy">
For example, <font face="Source Code Pro">AOPA(A,'+',1)</font> will add <font face="Source Code Pro">1</font> to each element of <font face="Source Code Pro">A</font>.
</font></p>
<p align="justify"><font face="Sorts Mill Goudy">
<font face="Source Code Pro">AOPA()</font> has four cases: array operation array, array operation
scalar, scalar operation array, and finally scalar operation scalar.
</font></p>
<p align="justify"><font face="Sorts Mill Goudy">
<h2>Uses</h2>
<a href="SEQ.html">SEQ</a><br>
</font></p>
<div style="background-image: url(greenbar.gif)">
<pre><font face="Source Code Pro">
<b>«INCLUDES»≡</b>
-INCLUDE 'SEQ.INC'
<b>@</b>
</font></pre></div>
<div style="background-image: url(greenbar.gif)">
<pre><font face="Source Code Pro">
<b>«AOPA»≡</b>
-PUBLIC AOPA()
<font color="#818181"><i>*</i></font>
DEFINE('AOPA(A1,OP,A2)S1,I,S2,S') <b>:(AOPA_END)</b>
<font color="#818181"><i>*</i></font>
AOPA IDENT(DATATYPE(A1), 'ARRAY') <b>:S(AOPA_1)</b>
IDENT(DATATYPE(A2), 'ARRAY') <b>:S(AOPA_2)</b>
AOPA = EVAL('A1 ' OP ' A2') <b>:(RETURN)</b>
AOPA_1 S1 = '<I>'
S2 = IDENT(DATATYPE(A2), 'ARRAY') '<I>'
AOPA = ARRAY(PROTOTYPE(A1)) <b>:(AOPA_COMMON)</b>
AOPA_2 S2 = '<I>'
AOPA = ARRAY(PROTOTYPE(A2))
AOPA_COMMON
S = ' AOPA<I> = A1' S1 ' ' OP ' A2' S2
SEQ(S, .I) <b>:(RETURN)</b>
<font color="#818181"><i>*</i></font>
AOPA_END
<b>@</b>
</font></pre></div>
<div style="background-image: url(greenbar.gif)">
<pre><font face="Source Code Pro">
<b>«unit_test»≡</b>
<font color="#818181"><i>#!/usr/bin/bash</i></font>
exec "snobol4" "-b" "$0" "$@"
-INCLUDE 'AOPA.INC'
-INCLUDE 'CRACK.INC'
&CODE = 1
A = %'1,2,3'
B = %'10,20,30'
<font color="#818181"><i>* ARRAY OPERATION ARRAY</i></font>
C = AOPA(A, '+', B)
EQ(C<1>, 11) <b>:F(END)</b>
EQ(C<2>, 22) <b>:F(END)</b>
EQ(C<3>, 33) <b>:F(END)</b>
<font color="#818181"><i>* ARRAY OPERATION SCALAR</i></font>
C = AOPA(A, '-', 1)
EQ(C<1>, 0) <b>:F(END)</b>
EQ(C<2>, 1) <b>:F(END)</b>
EQ(C<3>, 2) <b>:F(END)</b>
<font color="#818181"><i>* SCALAR OPERATION SCALAR</i></font>
C = AOPA(3, '*', B)
EQ(C<1>, 30) <b>:F(END)</b>
EQ(C<2>, 60) <b>:F(END)</b>
EQ(C<3>, 90) <b>:F(END)</b>
<font color="#818181"><i>* SCALAR OPERATION SCALAR</i></font>
EQ(AOPA(6, '/', 3), 2) <b>:F(END)</b>
&CODE = 0
END
<b>@</b>
</font></pre></div>
<div style="background-image: url(greenbar.gif)">
<pre><font face="Source Code Pro">
<b>«»≡</b>
-MODULE AOPA
<b>«INCLUDES»</b>
-IN72
-STITL AOPA
-EJECT
<font color="#818181"><i>*</i></font>
<font color="#818181"><i>************************************************************************</i></font>
<font color="#818181"><i>* *</i></font>
<font color="#818181"><i>* # ####### ###### # *</i></font>
<font color="#818181"><i>* # # # # # # # # *</i></font>
<font color="#818181"><i>* # # # # # # # # *</i></font>
<font color="#818181"><i>* # # # # ###### # # *</i></font>
<font color="#818181"><i>* ####### # # # ####### *</i></font>
<font color="#818181"><i>* # # # # # # # *</i></font>
<font color="#818181"><i>* # # ####### # # # *</i></font>
<font color="#818181"><i>* *</i></font>
<font color="#818181"><i>* AOPA APPLY OPERATOR TO ARRAY *</i></font>
<font color="#818181"><i>* *</i></font>
<font color="#818181"><i>************************************************************************</i></font>
<font color="#818181"><i>*</i></font>
<font color="#818181"><i>* AOPA.lss</i></font>
<font color="#818181"><i>*</i></font>
<b>«AOPA»</b>
<font color="#818181"><i>*</i></font>
<font color="#818181"><i>* CE: .MSNOBOL4;</i></font>
<b>@</b>
</font></pre></div>
<footer><hr><table width="100%" border="0">
<tr><td><p align=left>
Produced by <code>sweave</code>
</p></td><td><p align=center>
Sun Aug 31 15:19:19 EDT 2014</p></td><td><p align=right>
Return to <a href="index.html">index</a>
</p></td></table></footer>
</font></body></html>