trusted
69
edits
Miraheze>Adám Brudzewsky (convert moinmoin markup) |
m (→Rotate ⌽ ⊖) |
||
(8 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[[File:FinnAPL.jpg|thumb|The original FinnAPL idiom library]] | [[File:FinnAPL.jpg|thumb|The original FinnAPL idiom library]] | ||
The '''[[FinnAPL]] idiom library''' | The '''[[FinnAPL]] idiom library''' contains a collection of over 700 one-line APL idioms to accomplish a large variety of tasks. It was first presented at the 1984 [[APL conference]] in Helsinki, Finland. The huge contribution of the Finnish APL Association is gratefully acknowledged. | ||
This listing mainly suffers from two issues: | This listing mainly suffers from two issues: | ||
* Due to its age, it | * Due to its age, it doesn't make use of modern APL features which can provide a simpler solution. (However, a simple-looking expression which uses [[nested arrays]] might be far more computationally expensive than a longer, more involved solution which only uses simple arrays.) | ||
* It can be hard to find what one is looking for, both because computing terminology has changed, and because pinpointing the exact term can be difficult. | * It can be hard to find what one is looking for, both because computing terminology has changed, and because pinpointing the exact term can be difficult. | ||
[[APLcart]] includes all of the below library, updated to use the latest language features, and in an easily searchable format that includes modern day synonyms. | [[APLcart]] includes all of the below library, updated to use the latest language features, and in an easily searchable format that includes modern day synonyms. | ||
Line 80: | Line 80: | ||
|rowspan=2| 6. || Test if X and Y are permutations of each other ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←D1</source> | |rowspan=2| 6. || Test if X and Y are permutations of each other ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←D1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>Y[⍋Y] | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>Y[⍋Y]∧.=X[⍋X]</source> | ||
|- | |- | ||
|rowspan=2| 7. || Test if X is a permutation vector ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | |rowspan=2| 7. || Test if X is a permutation vector ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X∧.=⍋⍋X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 8. || Grade up (<source lang=apl inline>⍋</source>) for sorting subvectors of Y having lengths X ||style="text-align: right;"|<source lang=apl inline>Y←D1; X←I1; (⍴Y) ←→ +/X</source> | |rowspan=2| 8. || Grade up (<source lang=apl inline>⍋</source>) for sorting subvectors of Y having lengths X ||style="text-align: right;"|<source lang=apl inline>Y←D1; X←I1; (⍴Y) ←→ +/X</source> | ||
Line 172: | Line 172: | ||
|rowspan=2| 29. || Test if X is a permutation vector ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | |rowspan=2| 29. || Test if X is a permutation vector ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X[⍋X] | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X[⍋X]∧.=⍳⍴X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 30. || Sorting a matrix into lexicographic order ||style="text-align: right;"|<source lang=apl inline>X←D2</source> | |rowspan=2| 30. || Sorting a matrix into lexicographic order ||style="text-align: right;"|<source lang=apl inline>X←D2</source> | ||
Line 198: | Line 198: | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(X,'*')[(⎕IO+⍴X)⌊⍋(⍳⍴X),(Y×⍴G)⍴G]</source> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(X,'*')[(⎕IO+⍴X)⌊⍋(⍳⍴X),(Y×⍴G)⍴G]</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 36. || Median ||style="text-align: right;"|<source lang=apl inline>X←D1</source> | |rowspan=2| 36. || Median<ref>Note: it doesn't average the middle two elements as per median's definition. A more correct idiomatic expression is <source lang=apl inline>0.5×+/X[(⍋X)[|⌈¯0.5 0.5×1+⍴X]]</source></ref> ||style="text-align: right;"|<source lang=apl inline>X←D1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>X[(⍋X)[⌈.5×⍴X]]</source> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>X[(⍋X)[⌈.5×⍴X]]</source> | ||
Line 345: | Line 345: | ||
|rowspan=2| 73. || Removing duplicate rows ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | |rowspan=2| 73. || Removing duplicate rows ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((A⍳A)= | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((A⍳A)=⍳⍴A←2⊥X∧.=⍉X)⌿X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 74. || Conversion from hexadecimal to decimal ||style="text-align: right;"|<source lang=apl inline>X←C</source> | |rowspan=2| 74. || Conversion from hexadecimal to decimal ||style="text-align: right;"|<source lang=apl inline>X←C</source> | ||
Line 464: | Line 464: | ||
|rowspan=2| 101. || Index pairs of saddle points ||style="text-align: right;"|<source lang=apl inline>X←D2</source> | |rowspan=2| 101. || Index pairs of saddle points ||style="text-align: right;"|<source lang=apl inline>X←D2</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⎕IO+(⍴X)⊤-⎕IO-(,(X=(⍴X)⍴⌈⌿X) | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⎕IO+(⍴X)⊤-⎕IO-(,(X=(⍴X)⍴⌈⌿X)∧X=⍉(⌽⍴X)⍴⌊/X)/⍳×/⍴X</source> | ||
|- | |- | ||
|rowspan=2| 102. || Changing connectivity matrix X to a connectivity list ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | |rowspan=2| 102. || Changing connectivity matrix X to a connectivity list ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | ||
Line 546: | Line 546: | ||
|rowspan=2| 120. || Forming a transitive closure ||style="text-align: right;"|<source lang=apl inline>X←B2</source> | |rowspan=2| 120. || Forming a transitive closure ||style="text-align: right;"|<source lang=apl inline>X←B2</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>→⎕LC⌈⍳∨/,(X←X∨X∨. | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>→⎕LC⌈⍳∨/,(X←X∨X∨.∧X)≠+X</source> | ||
|- | |- | ||
|rowspan=2| 121. || Case structure with integer switch ||style="text-align: right;"|<source lang=apl inline>X←I0; Y←I1</source> | |rowspan=2| 121. || Case structure with integer switch ||style="text-align: right;"|<source lang=apl inline>X←I0; Y←I1</source> | ||
Line 589: | Line 589: | ||
|rowspan=2|132. || Test for symmetricity of matrix X ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | |rowspan=2|132. || Test for symmetricity of matrix X ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⍎⍎'1','↑↓'[⎕IO+ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⍎⍎'1','↑↓'[⎕IO+∧/(⍴X)=⌽⍴X],'''0~0∊X=⍉X'''</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 133. || Using a variable named according to X ||style="text-align: right;"|<source lang=apl inline>X←A0; Y←A</source> | |rowspan=2| 133. || Using a variable named according to X ||style="text-align: right;"|<source lang=apl inline>X←A0; Y←A</source> | ||
Line 617: | Line 617: | ||
|rowspan=2| 139. || Test for symmetricity of matrix X ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | |rowspan=2| 139. || Test for symmetricity of matrix X ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍎(¯7* | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍎(¯7*A∧.=⌽A←⍴X)↑'0~0∊X=⍉X'</source> | ||
|- | |- | ||
|rowspan=2| 140. || Execution of expression X with default value Y ||style="text-align: right;"|<source lang=apl inline>X←D1</source> | |rowspan=2| 140. || Execution of expression X with default value Y ||style="text-align: right;"|<source lang=apl inline>X←D1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⍎(( | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⍎((X∧.=' ')/'Y'),X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 141. || Changing X if a new input value is given ||style="text-align: right;"|<source lang=apl inline>X←A</source> | |rowspan=2| 141. || Changing X if a new input value is given ||style="text-align: right;"|<source lang=apl inline>X←A</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>X←⍎,((2↑'X'),' ',[.5]A)[⎕IO+~' ' | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>X←⍎,((2↑'X'),' ',[.5]A)[⎕IO+~' '∧.=A←⍞;]</source> | ||
|- | |- | ||
|rowspan=2| 142. || Definite integral of F(X) in range Y with G steps ('X'∊F) ||style="text-align: right;"|<source lang=apl inline>F←A1; G←D0; Y←D1; ⍴Y ←→ 2</source> | |rowspan=2| 142. || Definite integral of F(X) in range Y with G steps ('X'∊F) ||style="text-align: right;"|<source lang=apl inline>F←A1; G←D0; Y←D1; ⍴Y ←→ 2</source> | ||
Line 633: | Line 633: | ||
|rowspan=2| 143. || Test if numeric and conversion to numeric form ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | |rowspan=2| 143. || Test if numeric and conversion to numeric form ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>1↓⍎'0 ',( | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>1↓⍎'0 ',(∧/X∊' 0123456789')/X</source> | ||
|- | |- | ||
|rowspan=2| 144. || Tests the social security number (Finnish) ||style="text-align: right;"|<source lang=apl inline>Y←'01...9ABC...Z'; 10=⍴X</source> | |rowspan=2| 144. || Tests the social security number (Finnish) ||style="text-align: right;"|<source lang=apl inline>Y←'01...9ABC...Z'; 10=⍴X</source> | ||
Line 804: | Line 804: | ||
|rowspan=2| 184. || First occurrence of string X in string Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | |rowspan=2| 184. || First occurrence of string X in string Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>( | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(∧⌿(¯1+⍳⍴X)⌽X∘.=Y)⍳1</source> | ||
|- | |- | ||
|rowspan=2| 185. || Removing duplicate rows ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | |rowspan=2| 185. || Removing duplicate rows ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((A⍳A)=⍳⍴A←⎕IO++ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((A⍳A)=⍳⍴A←⎕IO++⌿∧⍀X∨.≠⍉X)⌿X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 186. || First occurrence of string X in matrix Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A2; ¯1↑⍴Y←→⍴X</source> | |rowspan=2| 186. || First occurrence of string X in matrix Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A2; ¯1↑⍴Y←→⍴X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>( | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(Y∧.=X)⍳1</source> | ||
|- | |- | ||
|rowspan=2| 187. || Indices of ones in logical vector X ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | |rowspan=2| 187. || Indices of ones in logical vector X ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | ||
Line 836: | Line 836: | ||
|rowspan=2| 192. || Test if each element of X occurs only once ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | |rowspan=2| 192. || Test if each element of X occurs only once ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/(X⍳X)=⍳⍴X</source> | ||
|- | |- | ||
|rowspan=2| 193. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | |rowspan=2| 193. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>∧/⎕IO=X⍳X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 194. || Interpretation of roman numbers ||style="text-align: right;"|<source lang=apl inline>X←A</source> | |rowspan=2| 194. || Interpretation of roman numbers ||style="text-align: right;"|<source lang=apl inline>X←A</source> | ||
Line 955: | Line 955: | ||
|rowspan=2| 222. || Greatest common divisor of elements of X ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | |rowspan=2| 222. || Greatest common divisor of elements of X ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⌈/( | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⌈/(∧/0=A∘.|X)/A←⍳⌊/X</source> | ||
|- | |- | ||
|rowspan=2| 223. || Divisibility table ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | |rowspan=2| 223. || Divisibility table ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | ||
Line 1,006: | Line 1,006: | ||
|rowspan=2| 235. || Occurrences of string X in string Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | |rowspan=2| 235. || Occurrences of string X in string Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(Y[A∘.+¯1+⍳⍴X] | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(Y[A∘.+¯1+⍳⍴X]∧.=X)/A←(A=1↑X)/⍳⍴A←(1-⍴X)↓Y</source> | ||
|- | |- | ||
|rowspan=2| 236. || Sum of common parts of matrices (matrix sum) ||style="text-align: right;"|<source lang=apl inline>X←D2; Y←D2</source> | |rowspan=2| 236. || Sum of common parts of matrices (matrix sum) ||style="text-align: right;"|<source lang=apl inline>X←D2; Y←D2</source> | ||
Line 1,061: | Line 1,061: | ||
|rowspan=2| 249. || Distribution of X into intervals between Y ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D1</source> | |rowspan=2| 249. || Distribution of X into intervals between Y ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>+/((¯1↓Y)∘.≤X) | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>+/((¯1↓Y)∘.≤X)∧(1↓Y)∘.>X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 250. || Histogram (distribution barchart; down the page) ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | |rowspan=2| 250. || Histogram (distribution barchart; down the page) ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | ||
Line 1,073: | Line 1,073: | ||
|rowspan=2| 252. || Test if X is an upper triangular matrix ||style="text-align: right;"|<source lang=apl inline>X←D2</source> | |rowspan=2| 252. || Test if X is an upper triangular matrix ||style="text-align: right;"|<source lang=apl inline>X←D2</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/,(0≠X)≤A∘.≤A←⍳1↑⍴X</source> | ||
|- | |- | ||
|rowspan=2| 253. || Number of ?s intersecting ?s (X=starts, Y=stops) ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←D1</source> | |rowspan=2| 253. || Number of ?s intersecting ?s (X=starts, Y=stops) ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←D1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>+/ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>+/A∧⍉A←X∘.≤Y</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 254. || Contour levels Y at points with altitudes X ||style="text-align: right;"|<source lang=apl inline>X←D0; Y←D1</source> | |rowspan=2| 254. || Contour levels Y at points with altitudes X ||style="text-align: right;"|<source lang=apl inline>X←D0; Y←D1</source> | ||
Line 1,113: | Line 1,113: | ||
|rowspan=2| 263. || Test if X is a lower triangular matrix ||style="text-align: right;"|<source lang=apl inline>X←D2</source> | |rowspan=2| 263. || Test if X is a lower triangular matrix ||style="text-align: right;"|<source lang=apl inline>X←D2</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/,(0≠X)≤A∘.≥A←⍳1↑⍴X</source> | ||
|- | |- | ||
|rowspan=2| 264. || Test if X is within range [ Y[1],Y[2] ) ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D1</source> | |rowspan=2| 264. || Test if X is within range [ Y[1],Y[2] ) ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D1</source> | ||
Line 1,148: | Line 1,148: | ||
|rowspan=2|271. || Indices of elements of Y in corr. rows of X (<source lang=apl inline>X[i;]⍳Y[i;]</source>) ||style="text-align: right;"|<source lang=apl inline>X←A2; Y←A2</source> | |rowspan=2|271. || Indices of elements of Y in corr. rows of X (<source lang=apl inline>X[i;]⍳Y[i;]</source>) ||style="text-align: right;"|<source lang=apl inline>X←A2; Y←A2</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>1++/ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>1++/∧\1 2 1 3⍉Y∘.≠X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 273. || Indicating equal elements of X as a logical matrix ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | |rowspan=2| 273. || Indicating equal elements of X as a logical matrix ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | ||
Line 1,172: | Line 1,172: | ||
|rowspan=2| 279. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | |rowspan=2| 279. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>∨/ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>∨/∧/0 1∘.=X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 280. || Test if elements of X belong to corr. row of Y (<source lang=apl inline>X[i;]∊Y[i;]</source>) ||style="text-align: right;"|<source lang=apl inline>X←A2; Y←A2; 1↑⍴X←→1↑⍴Y</source> | |rowspan=2| 280. || Test if elements of X belong to corr. row of Y (<source lang=apl inline>X[i;]∊Y[i;]</source>) ||style="text-align: right;"|<source lang=apl inline>X←A2; Y←A2; 1↑⍴X←→1↑⍴Y</source> | ||
Line 1,180: | Line 1,180: | ||
|rowspan=2| 281. || Test if X is a permutation vector ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | |rowspan=2| 281. || Test if X is a permutation vector ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>∧/1=+⌿X∘.=⍳⍴X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 282. || Occurrences of string X in string Y ||style="text-align: right;"|<source lang=apl inline>X←C1; Y←C1</source> | |rowspan=2| 282. || Occurrences of string X in string Y ||style="text-align: right;"|<source lang=apl inline>X←C1; Y←C1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>( | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(∧⌿(¯1+⍳⍴X)⌽(X∘.=Y),0)/⍳1+⍴Y</source> | ||
|- | |- | ||
|rowspan=2| 283. || Division to Y classes with width H, minimum G ||style="text-align: right;"|<source lang=apl inline>X←D; Y←I0; G←D0; H←D0</source> | |rowspan=2| 283. || Division to Y classes with width H, minimum G ||style="text-align: right;"|<source lang=apl inline>X←D; Y←I0; G←D0; H←D0</source> | ||
Line 1,192: | Line 1,192: | ||
|rowspan=2| 285. || Repeat matrix ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | |rowspan=2| 285. || Repeat matrix ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(((¯1⌽~A) | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(((¯1⌽~A)∧A←(¯1↓X=1⌽X),0)/Y)∘.=Y</source> | ||
|- | |- | ||
|rowspan=2| 286. || X×X identity matrix ||style="text-align: right;"|<source lang=apl inline>X←I0</source> | |rowspan=2| 286. || X×X identity matrix ||style="text-align: right;"|<source lang=apl inline>X←I0</source> | ||
Line 1,242: | Line 1,242: | ||
|} | |} | ||
=== Inner Product <source lang=apl inline>∨. | === Inner Product <source lang=apl inline>∨.∧</source> <source lang=apl inline><.<</source> <source lang=apl inline><.≤</source> <source lang=apl inline><.≥</source> <source lang=apl inline>≤.≥</source> <source lang=apl inline>>.></source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|298. || Extending a transitive binary relation ||style="text-align: right;"|<source lang=apl inline>X←B2</source> | |rowspan=2|298. || Extending a transitive binary relation ||style="text-align: right;"|<source lang=apl inline>X←B2</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X←X∨. | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X←X∨.∧X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 299. || Test if X is within range [ Y[1;],Y[2;] ) ||style="text-align: right;"|<source lang=apl inline>X←D0; Y←D2; 1↑⍴Y ←→ 2</source> | |rowspan=2| 299. || Test if X is within range [ Y[1;],Y[2;] ) ||style="text-align: right;"|<source lang=apl inline>X←D0; Y←D2; 1↑⍴Y ←→ 2</source> | ||
Line 1,273: | Line 1,273: | ||
|} | |} | ||
=== Inner Product <source lang=apl inline>∨.≠</source> <source lang=apl inline> | === Inner Product <source lang=apl inline>∨.≠</source> <source lang=apl inline>∧.=</source> <source lang=apl inline>+.≠</source> <source lang=apl inline>+.=</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|306. || Removing trailing blank columns ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | |rowspan=2|306. || Removing trailing blank columns ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | ||
Line 1,289: | Line 1,289: | ||
|rowspan=2| 309. || Index of first occurrences of rows of X as rows of Y ||style="text-align: right;"|<source lang=apl inline>X←A, Y←A2</source> | |rowspan=2| 309. || Index of first occurrences of rows of X as rows of Y ||style="text-align: right;"|<source lang=apl inline>X←A, Y←A2</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⎕IO++ | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⎕IO++⌿∧⍀Y∨.≠⍉X</source> | ||
|- | |- | ||
|rowspan=2| 310. || <source lang=apl inline>X⍳Y</source> for rows of matrices ||style="text-align: right;"|<source lang=apl inline>X←A2; Y←A2</source> | |rowspan=2| 310. || <source lang=apl inline>X⍳Y</source> for rows of matrices ||style="text-align: right;"|<source lang=apl inline>X←A2; Y←A2</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⎕IO++ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⎕IO++⌿∧⍀X∨.≠⍉Y</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 311. || Removing duplicate blank rows ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | |rowspan=2| 311. || Removing duplicate blank rows ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | ||
Line 1,317: | Line 1,317: | ||
|rowspan=2| 316. || Removing trailing blank rows ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | |rowspan=2| 316. || Removing trailing blank rows ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(-2↑+/ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(-2↑+/∧\⌽X∧.=' ')↓X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 317. || Removing duplicate rows ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | |rowspan=2| 317. || Removing duplicate rows ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(∨⌿<\ | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(∨⌿<\X∧.=⍉X)⌿X</source> | ||
|- | |- | ||
|rowspan=2| 318. || Removing duplicate rows ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | |rowspan=2| 318. || Removing duplicate rows ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(1 1⍉<\ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(1 1⍉<\X∧.=⍉X)⌿X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 319. || Test if circular lists are equal (excluding phase) ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | |rowspan=2| 319. || Test if circular lists are equal (excluding phase) ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∨/ | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∨/Y∧.=⍉(⍳⍴X)⌽(2⍴⍴X)⍴X</source> | ||
|- | |- | ||
|rowspan=2| 320. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | |rowspan=2| 320. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X∧.=∨/X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 321. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | |rowspan=2| 321. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>X∧.=∧/X</source> | ||
|- | |- | ||
|rowspan=2| 322. || Rows of matrix X starting with string Y ||style="text-align: right;"|<source lang=apl inline>X←A2; Y←A1</source> | |rowspan=2| 322. || Rows of matrix X starting with string Y ||style="text-align: right;"|<source lang=apl inline>X←A2; Y←A1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((((1↑⍴X),⍴Y)↑X) | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((((1↑⍴X),⍴Y)↑X)∧.=Y)⌿X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 323. || Occurrences of string X in string Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | |rowspan=2| 323. || Occurrences of string X in string Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>((-A) | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>((-A)↓X∧.=(A,1+⍴Y)⍴Y)/⍳(⍴Y)+1-A←⍴X</source> | ||
|- | |- | ||
|rowspan=2| 324. || Test if vector Y is a row of array X ||style="text-align: right;"|<source lang=apl inline>X←A; Y←A1</source> | |rowspan=2| 324. || Test if vector Y is a row of array X ||style="text-align: right;"|<source lang=apl inline>X←A; Y←A1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>1∊X∧.=Y</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 325. || Comparing vector Y with rows of array X ||style="text-align: right;"|<source lang=apl inline>X←A; Y←A1</source> | |rowspan=2| 325. || Comparing vector Y with rows of array X ||style="text-align: right;"|<source lang=apl inline>X←A; Y←A1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>X∧.=Y</source> | ||
|- | |- | ||
|rowspan=2| 326. || Word lengths of words in list X ||style="text-align: right;"|<source lang=apl inline>X←C</source> | |rowspan=2| 326. || Word lengths of words in list X ||style="text-align: right;"|<source lang=apl inline>X←C</source> | ||
Line 1,407: | Line 1,407: | ||
|} | |} | ||
=== Scan ⌈\ ⌊\ ×\ -\ === | === Scan <source lang=apl inline>⌈\</source> <source lang=apl inline>⌊\</source> <source lang=apl inline>×\</source> <source lang=apl inline>-\</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|338. || Groups of ones in Y pointed to by X (or trailing parts) ||style="text-align: right;"|<source lang=apl inline>X←B; Y←B</source> | |rowspan=2|338. || Groups of ones in Y pointed to by X (or trailing parts) ||style="text-align: right;"|<source lang=apl inline>X←B; Y←B</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>Y∧A=⌈\X×A←+\Y>¯1↓0,Y</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 339. || Test if X is in ascending order along direction Y ||style="text-align: right;"|<source lang=apl inline>X←D; Y←I0</source> | |rowspan=2| 339. || Test if X is in ascending order along direction Y ||style="text-align: right;"|<source lang=apl inline>X←D; Y←I0</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/[Y]X=⌈\[Y]X</source> | ||
|- | |- | ||
|rowspan=2| 340. || Duplicating element of X belonging to <source lang=apl inline>Y,1↑X</source> until next found ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←B1</source> | |rowspan=2| 340. || Duplicating element of X belonging to <source lang=apl inline>Y,1↑X</source> until next found ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←B1</source> | ||
Line 1,423: | Line 1,423: | ||
|rowspan=2| 341. || Test if X is in descending order along direction Y ||style="text-align: right;"|<source lang=apl inline>X←D; Y←I0</source> | |rowspan=2| 341. || Test if X is in descending order along direction Y ||style="text-align: right;"|<source lang=apl inline>X←D; Y←I0</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/[Y]X=⌊\[Y]X</source> | ||
|- | |- | ||
|rowspan=2| 342. || Value of Taylor series with coefficients Y at point X ||style="text-align: right;"|<source lang=apl inline>X←D0; Y←D1</source> | |rowspan=2| 342. || Value of Taylor series with coefficients Y at point X ||style="text-align: right;"|<source lang=apl inline>X←D0; Y←D1</source> | ||
Line 1,434: | Line 1,434: | ||
|} | |} | ||
=== Scan ⍲\ <\ ≤\ ≠\ === | === Scan <source lang=apl inline>⍲\</source> <source lang=apl inline><\</source> <source lang=apl inline>≤\</source> <source lang=apl inline>≠\</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|346. || Value of saddle point ||style="text-align: right;"|<source lang=apl inline>X←D2</source> | |rowspan=2|346. || Value of saddle point ||style="text-align: right;"|<source lang=apl inline>X←D2</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(<\,(X=(⍴X)⍴⌈⌿X) | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(<\,(X=(⍴X)⍴⌈⌿X)∧X=⍉(⌽⍴X)⍴⌊/X)/,X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 348. || First one (turn off all ones after first one) ||style="text-align: right;"|<source lang=apl inline>X←B</source> | |rowspan=2| 348. || First one (turn off all ones after first one) ||style="text-align: right;"|<source lang=apl inline>X←B</source> | ||
Line 1,460: | Line 1,460: | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>≠\(Y∨X)\A≠¯1↓0,A←(Y∨X)/Y</source> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>≠\(Y∨X)\A≠¯1↓0,A←(Y∨X)/Y</source> | ||
|- | |- | ||
|rowspan=2| 354. || Leading ones (<source lang=apl inline> | |rowspan=2| 354. || Leading ones (<source lang=apl inline>∧\</source>) in each subvector of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>~≠\(Y≤X)\A≠¯1↓0,A←~(Y≤X)/Y</source> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>~≠\(Y≤X)\A≠¯1↓0,A←~(Y≤X)/Y</source> | ||
Line 1,470: | Line 1,470: | ||
|rowspan=2| 356. || Locations of texts between quotes ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | |rowspan=2| 356. || Locations of texts between quotes ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>A∧¯1↓0,A←≠\X=''''</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 357. || Joining pairs of ones ||style="text-align: right;"|<source lang=apl inline>X←B</source> | |rowspan=2| 357. || Joining pairs of ones ||style="text-align: right;"|<source lang=apl inline>X←B</source> | ||
Line 1,478: | Line 1,478: | ||
|rowspan=2| 358. || Places between pairs of ones ||style="text-align: right;"|<source lang=apl inline>X←B</source> | |rowspan=2| 358. || Places between pairs of ones ||style="text-align: right;"|<source lang=apl inline>X←B</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(~X) | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(~X)∧≠\X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 359. || Running parity ||style="text-align: right;"|<source lang=apl inline>X←B</source> | |rowspan=2| 359. || Running parity ||style="text-align: right;"|<source lang=apl inline>X←B</source> | ||
Line 1,485: | Line 1,485: | ||
|} | |} | ||
=== Scan ∨\ | === Scan <source lang=apl inline>∨\</source> <source lang=apl inline>∧\</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|360. || Removing leading and trailing blanks ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | |rowspan=2|360. || Removing leading and trailing blanks ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((⌽∨\⌽A) | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((⌽∨\⌽A)∧∨\A←' '≠X)/X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 361. || First group of ones ||style="text-align: right;"|<source lang=apl inline>X←B</source> | |rowspan=2| 361. || First group of ones ||style="text-align: right;"|<source lang=apl inline>X←B</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>X∧∧\X=∨\X</source> | ||
|- | |- | ||
|rowspan=2| 362. || Removing trailing blank columns ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | |rowspan=2| 362. || Removing trailing blank columns ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | ||
Line 1,513: | Line 1,513: | ||
|rowspan=2| 366. || Centering character array X with ragged edges ||style="text-align: right;"|<source lang=apl inline>X←C</source> | |rowspan=2| 366. || Centering character array X with ragged edges ||style="text-align: right;"|<source lang=apl inline>X←C</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(A-⌊0.5×(A←+/ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(A-⌊0.5×(A←+/∧\⌽A)++/∧\A←' '=⌽X)⌽X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 367. || Decommenting a matrix representation of a function (<source lang=apl inline>⎕CR</source>) ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | |rowspan=2| 367. || Decommenting a matrix representation of a function (<source lang=apl inline>⎕CR</source>) ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(∨/A)⌿(⍴X)⍴(,A)\(, | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(∨/A)⌿(⍴X)⍴(,A)\(,A←∧\('⍝'≠X)∨≠\X='''')/,X</source> | ||
|- | |- | ||
|rowspan=2| 369. || Centering character array X with only right edge ragged ||style="text-align: right;"|<source lang=apl inline>X←C</source> | |rowspan=2| 369. || Centering character array X with only right edge ragged ||style="text-align: right;"|<source lang=apl inline>X←C</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(-⌊0.5×+/ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(-⌊0.5×+/∧\' '=⌽X)⌽X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 370. || Justifying right ||style="text-align: right;"|<source lang=apl inline>X←C</source> | |rowspan=2| 370. || Justifying right ||style="text-align: right;"|<source lang=apl inline>X←C</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(-+/ | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(-+/∧\⌽' '=X)⌽X</source> | ||
|- | |- | ||
|rowspan=2| 371. || Removing trailing blanks ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | |rowspan=2| 371. || Removing trailing blanks ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(-+/ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(-+/∧\⌽' '=X)↓X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 372. || Justifying left ||style="text-align: right;"|<source lang=apl inline>X←C</source> | |rowspan=2| 372. || Justifying left ||style="text-align: right;"|<source lang=apl inline>X←C</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(+/ | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(+/∧\' '=X)⌽X</source> | ||
|- | |- | ||
|rowspan=2| 373. || Editing X with Y '-wise ||style="text-align: right;"|<source lang=apl inline>X←C1; Y←C1</source> | |rowspan=2| 373. || Editing X with Y '-wise ||style="text-align: right;"|<source lang=apl inline>X←C1; Y←C1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((~(⍴A↑X)↑'/'=Y)/A↑X),(1↓A↓Y),(A←+/ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((~(⍴A↑X)↑'/'=Y)/A↑X),(1↓A↓Y),(A←+/∧\Y≠',')↓X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 374. || Removing leading blanks ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | |rowspan=2| 374. || Removing leading blanks ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(+/ | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(+/∧\' '=X)↓X</source> | ||
|- | |- | ||
|rowspan=2| 375. || Indices of first blanks in rows of array X ||style="text-align: right;"|<source lang=apl inline>X←C</source> | |rowspan=2| 375. || Indices of first blanks in rows of array X ||style="text-align: right;"|<source lang=apl inline>X←C</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⎕IO++/ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⎕IO++/∧\' '≠X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 377. || Leading ones (turn off all ones after first zero) ||style="text-align: right;"|<source lang=apl inline>X←B</source> | |rowspan=2| 377. || Leading ones (turn off all ones after first zero) ||style="text-align: right;"|<source lang=apl inline>X←B</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧\X</source> | ||
|} | |} | ||
=== Scan +\ === | === Scan <source lang=apl inline>+\</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|378. || Vector (<source lang=apl inline>X[1]⍴1),(Y[1]⍴0),(X[2]⍴1),...</source> ||style="text-align: right;"|<source lang=apl inline>X←I1; Y←I1</source> | |rowspan=2|378. || Vector (<source lang=apl inline>X[1]⍴1),(Y[1]⍴0),(X[2]⍴1),...</source> ||style="text-align: right;"|<source lang=apl inline>X←I1; Y←I1</source> | ||
Line 1,628: | Line 1,628: | ||
|rowspan=2| 397. || Locations of texts between quotes ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | |rowspan=2| 397. || Locations of texts between quotes ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>A∧¯1↓0,A←2|+\X=''''</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 398. || X:th subvector of Y (subvectors separated by Y[1]) ||style="text-align: right;"|<source lang=apl inline>Y←A1; X←I0</source> | |rowspan=2| 398. || X:th subvector of Y (subvectors separated by Y[1]) ||style="text-align: right;"|<source lang=apl inline>Y←A1; X←I0</source> | ||
Line 1,644: | Line 1,644: | ||
|rowspan=2| 401. || Groups of ones in Y pointed to by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source> | |rowspan=2| 401. || Groups of ones in Y pointed to by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>Y∧A∊(X∧Y)/A←+\Y>¯1↓0,Y</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 402. || ith starting indicators X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source> | |rowspan=2| 402. || ith starting indicators X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source> | ||
Line 1,683: | Line 1,683: | ||
|} | |} | ||
=== Reduction ○/ ÷/ -/ ×/ === | === Reduction <source lang=apl inline>○/</source> <source lang=apl inline>÷/</source> <source lang=apl inline>-/</source> <source lang=apl inline>×/</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|411. || Complementary angle (arccos sin X) ||style="text-align: right;"|<source lang=apl inline>X←D0</source> | |rowspan=2|411. || Complementary angle (arccos sin X) ||style="text-align: right;"|<source lang=apl inline>X←D0</source> | ||
Line 1,742: | Line 1,742: | ||
|} | |} | ||
=== Reduction ⌈/ ⌊/ === | === Reduction <source lang=apl inline>⌈/</source> <source lang=apl inline>⌊/</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|425. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←D1</source> | |rowspan=2|425. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←D1</source> | ||
Line 1,789: | Line 1,789: | ||
|} | |} | ||
=== Reduction ∨/ ⍲/ ≠/ === | === Reduction <source lang=apl inline>∨/</source> <source lang=apl inline>⍲/</source> <source lang=apl inline>≠/</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|436. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | |rowspan=2|436. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | ||
Line 1,797: | Line 1,797: | ||
|rowspan=2| 437. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | |rowspan=2| 437. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>( | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(∧/X)∨~∨/X</source> | ||
|- | |- | ||
|rowspan=2| 438. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | |rowspan=2| 438. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>( | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(∧/X)=∨/X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 439. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | |rowspan=2| 439. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/X÷∨/X</source> | ||
|- | |- | ||
|rowspan=2| 440. || Removing duplicate rows from ordered matrix X ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | |rowspan=2| 440. || Removing duplicate rows from ordered matrix X ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | ||
Line 1,836: | Line 1,836: | ||
|} | |} | ||
=== Reduction | === Reduction <source lang=apl inline>∧/</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|447. || Number of areas intersecting areas in X ||style="text-align: right;"|<source lang=apl inline>X←D3 (n × 2 × dim)</source> | |rowspan=2|447. || Number of areas intersecting areas in X ||style="text-align: right;"|<source lang=apl inline>X←D3 (n × 2 × dim)</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>+/ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>+/A∧⍉A←∧/X[;A⍴1;]≤2 1 3⍉X[;(A←1↑⍴X)⍴2;]</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 448. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | |rowspan=2| 448. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/X/1⌽X</source> | ||
|- | |- | ||
|rowspan=2| 449. || Comparison of successive rows ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | |rowspan=2| 449. || Comparison of successive rows ||style="text-align: right;"|<source lang=apl inline>X←A2</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>∧/X=1⊖X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 450. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | |rowspan=2| 450. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/X=1⌽X</source> | ||
|- | |- | ||
|rowspan=2| 451. || Test if X is a valid APL name ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | |rowspan=2| 451. || Test if X is a valid APL name ||style="text-align: right;"|<source lang=apl inline>X←C1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>∧/((1↑X)∊10↓A),X∊A←'0..9A..Za..z'</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 452. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | |rowspan=2| 452. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/X=1↑X</source> | ||
|- | |- | ||
|rowspan=2| 453. || Identity of two sets ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | |rowspan=2| 453. || Identity of two sets ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>∧/(X∊Y),Y∊X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 454. || Test if X is a permutation vector ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | |rowspan=2| 454. || Test if X is a permutation vector ||style="text-align: right;"|<source lang=apl inline>X←I1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/(⍳⍴X)∊X</source> | ||
|- | |- | ||
|rowspan=2| 455. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | |rowspan=2| 455. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>~ | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>~∧/X∊~X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 456. || Test if X is boolean ||style="text-align: right;"|<source lang=apl inline>X←A</source> | |rowspan=2| 456. || Test if X is boolean ||style="text-align: right;"|<source lang=apl inline>X←A</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/,X∊0 1</source> | ||
|- | |- | ||
|rowspan=2| 457. || Test if Y is a subset of X (<source lang=apl inline>Y ⊂ X</source>) ||style="text-align: right;"|<source lang=apl inline>X←A; Y←A1</source> | |rowspan=2| 457. || Test if Y is a subset of X (<source lang=apl inline>Y ⊂ X</source>) ||style="text-align: right;"|<source lang=apl inline>X←A; Y←A1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>∧/Y∊X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 458. || Test if arrays of equal shape are identical ||style="text-align: right;"|<source lang=apl inline>X←A; Y←A; ⍴X ←→ ⍴Y</source> | |rowspan=2| 458. || Test if arrays of equal shape are identical ||style="text-align: right;"|<source lang=apl inline>X←A; Y←A; ⍴X ←→ ⍴Y</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/,X=Y</source> | ||
|- | |- | ||
|rowspan=2| 459. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | |rowspan=2| 459. || Test if all elements of vector X are equal ||style="text-align: right;"|<source lang=apl inline>X←A1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>∧/X=X[1]</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 460. || Blank rows ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | |rowspan=2| 460. || Blank rows ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∧/' '=X</source> | ||
|- | |- | ||
|rowspan=2| 461. || All, both ||style="text-align: right;"|<source lang=apl inline>X←B</source> | |rowspan=2| 461. || All, both ||style="text-align: right;"|<source lang=apl inline>X←B</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>∧/X</source> | ||
|} | |} | ||
=== Reduction +/ === | === Reduction <source lang=apl inline>+/</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|462. || Standard deviation of X ||style="text-align: right;"|<source lang=apl inline>X←D1</source> | |rowspan=2|462. || Standard deviation of X ||style="text-align: right;"|<source lang=apl inline>X←D1</source> | ||
Line 1,966: | Line 1,966: | ||
|} | |} | ||
=== Reverse ⌽ <source lang=apl inline>⊖</source> === | === Reverse <source lang=apl inline>⌽</source> <source lang=apl inline>⊖</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|478. || Scan from end with function <source lang=apl inline>⍺</source> ||style="text-align: right;"|<source lang=apl inline>X←A</source> | |rowspan=2|478. || Scan from end with function <source lang=apl inline>⍺</source> ||style="text-align: right;"|<source lang=apl inline>X←A</source> | ||
Line 2,005: | Line 2,005: | ||
|} | |} | ||
=== Rotate ⌽ <source lang=apl inline>⊖</source> === | === Rotate <source lang=apl inline>⌽</source> <source lang=apl inline>⊖</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|488. || Vector (cross) product of vectors ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D</source> | |rowspan=2|488. || Vector (cross) product of vectors ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D</source> | ||
Line 2,019: | Line 2,019: | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(¯1⌽1↓(X≠¯1⌽X),1)/X</source> | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(¯1⌽1↓(X≠¯1⌽X),1)/X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 491. || An expression giving itself ||style="text-align: right;"|<source lang=apl inline></source> | |rowspan=2| 491. || [[Quine|An expression giving itself]] ||style="text-align: right;"|<source lang=apl inline></source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>1⌽22⍴11⍴'''1⌽22⍴11⍴'''</source> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>1⌽22⍴11⍴'''1⌽22⍴11⍴'''</source> | ||
Line 2,031: | Line 2,031: | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(X/Y)≥A/1⌽A←(Y∨X)/X</source> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(X/Y)≥A/1⌽A←(Y∨X)/X</source> | ||
|- | |- | ||
|rowspan=2| 494. || All elements true (<source lang=apl inline> | |rowspan=2| 494. || All elements true (<source lang=apl inline>∧/</source>) on each subvector of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(X/Y) | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(X/Y)∧A/1⌽A←(Y≤X)/X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 495. || Removing leading, multiple and trailing Y's ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A0</source> | |rowspan=2| 495. || Removing leading, multiple and trailing Y's ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A0</source> | ||
Line 2,135: | Line 2,135: | ||
|} | |} | ||
=== Maximum ⌈ Minimum <source lang=apl inline>⌊</source> === | === Maximum <source lang=apl inline>⌈</source> Minimum <source lang=apl inline>⌊</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|520. || Limiting X between Y[1] and Y[2], inclusive ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D1</source> | |rowspan=2|520. || Limiting X between Y[1] and Y[2], inclusive ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D1</source> | ||
Line 2,166: | Line 2,166: | ||
|} | |} | ||
=== Ceiling ⌈ Floor <source lang=apl inline>⌊</source> === | === Ceiling <source lang=apl inline>⌈</source> Floor <source lang=apl inline>⌊</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|527. || Reshaping X into a matrix of width Y ||style="text-align: right;"|<source lang=apl inline>X←D, Y←I0</source> | |rowspan=2|527. || Reshaping X into a matrix of width Y ||style="text-align: right;"|<source lang=apl inline>X←D, Y←I0</source> | ||
Line 2,225: | Line 2,225: | ||
|rowspan=2|540. || Test if X is a leap year ||style="text-align: right;"|<source lang=apl inline>X←I</source> | |rowspan=2|540. || Test if X is a leap year ||style="text-align: right;"|<source lang=apl inline>X←I</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(0=400|X)∨(0≠100|X) | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(0=400|X)∨(0≠100|X)∧0=4|X</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 541. || Framing ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | |rowspan=2| 541. || Framing ||style="text-align: right;"|<source lang=apl inline>X←C2</source> | ||
Line 2,280: | Line 2,280: | ||
|} | |} | ||
=== Magnitude |, Signum <source lang=apl inline>×</source> === | === Magnitude <source lang=apl inline>|</source>, Signum <source lang=apl inline>×</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|554. || Increasing absolute value without change of sign ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D</source> | |rowspan=2|554. || Increasing absolute value without change of sign ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D</source> | ||
Line 2,299: | Line 2,299: | ||
|} | |} | ||
=== Expand \ <source lang=apl inline>⍀</source> === | === Expand <source lang=apl inline>\</source> <source lang=apl inline>⍀</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|558. || Not first zero (≤\) in each subvector of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source> | |rowspan=2|558. || Not first zero (≤\) in each subvector of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>~( | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>~(B∧X)∨(B∨X)\A>¯1↓0,A←(B∨X)/B←~Y</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 559. || First one (<\) in each subvector of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source> | |rowspan=2| 559. || First one (<\) in each subvector of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>( | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(Y∧X)∨(Y∨X)\A>¯1↓0,A←(Y∨X)/Y</source> | ||
|- | |- | ||
|rowspan=2| 560. || Replacing elements of X in set Y with blanks/zeroes ||style="text-align: right;"|<source lang=apl inline>X←A0; Y←A1</source> | |rowspan=2| 560. || Replacing elements of X in set Y with blanks/zeroes ||style="text-align: right;"|<source lang=apl inline>X←A0; Y←A1</source> | ||
Line 2,350: | Line 2,350: | ||
|} | |} | ||
=== Compress / <source lang=apl inline>⌿</source> === | === Compress <source lang=apl inline>/</source> <source lang=apl inline>⌿</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|570. || Lengths of groups of ones in X ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | |rowspan=2|570. || Lengths of groups of ones in X ||style="text-align: right;"|<source lang=apl inline>X←B1</source> | ||
Line 2,717: | Line 2,717: | ||
|} | |} | ||
=== Logical Functions ~ ∨ | === Logical Functions <source lang=apl inline>~</source> <source lang=apl inline>∨</source> <source lang=apl inline>∧</source> <source lang=apl inline>⍱</source> <source lang=apl inline>⍲</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|661. || Demote non-boolean representations to booleans ||style="text-align: right;"|<source lang=apl inline>X←B</source> | |rowspan=2|661. || Demote non-boolean representations to booleans ||style="text-align: right;"|<source lang=apl inline>X←B</source> | ||
Line 2,725: | Line 2,725: | ||
|rowspan=2| 662. || Test if X is within range ( Y[1],Y[2] ) ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D1</source> | |rowspan=2| 662. || Test if X is within range ( Y[1],Y[2] ) ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D1</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(Y[1]<X) | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(Y[1]<X)∧X<Y[2]</source> | ||
|- | |- | ||
|rowspan=2| 663. || Test if X is within range [ Y[1],Y[2] ] ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D1; 2=⍴Y</source> | |rowspan=2| 663. || Test if X is within range [ Y[1],Y[2] ] ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D1; 2=⍴Y</source> | ||
|- | |- | ||
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(Y[1]≤X) | |colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(Y[1]≤X)∧(X≤Y[2])</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|rowspan=2| 664. || Zeroing all boolean values ||style="text-align: right;"|<source lang=apl inline>X←B</source> | |rowspan=2| 664. || Zeroing all boolean values ||style="text-align: right;"|<source lang=apl inline>X←B</source> | ||
|- style="background-color: #FFFFFF" | |- style="background-color: #FFFFFF" | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>0∧X</source> | ||
|- | |- | ||
|rowspan=2| 666. || Selection of elements of X and Y depending on condition G ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D; G←B</source> | |rowspan=2| 666. || Selection of elements of X and Y depending on condition G ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D; G←B</source> | ||
Line 2,748: | Line 2,748: | ||
|} | |} | ||
=== Comparison <≤> <source lang=apl inline>≠</source> === | === Comparison <source lang=apl inline><≤></source> <source lang=apl inline>≠</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|669. || X implies Y ||style="text-align: right;"|<source lang=apl inline>X←B; Y←B</source> | |rowspan=2|669. || X implies Y ||style="text-align: right;"|<source lang=apl inline>X←B; Y←B</source> | ||
Line 2,885: | Line 2,885: | ||
|} | |} | ||
=== Indexing | === Indexing <source lang=apl inline>[ ]</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|702. || Value of fixed-degree polynomial Y at points X ||style="text-align: right;"|<source lang=apl inline>Y←D1; X←D</source> | |rowspan=2|702. || Value of fixed-degree polynomial Y at points X ||style="text-align: right;"|<source lang=apl inline>Y←D1; X←D</source> | ||
Line 2,974: | Line 2,974: | ||
|} | |} | ||
=== Arithmetic + - × <source lang=apl inline>÷</source> === | === Arithmetic <source lang=apl inline>+</source> <source lang=apl inline>-</source> <source lang=apl inline>×</source> <source lang=apl inline>÷</source> === | ||
{|class=wikitable style="background-color: #EBEBEB" | {|class=wikitable style="background-color: #EBEBEB" | ||
|rowspan=2|724. || Continued fraction ||style="text-align: right;"|<source lang=apl inline></source> | |rowspan=2|724. || Continued fraction ||style="text-align: right;"|<source lang=apl inline></source> | ||
Line 3,039: | Line 3,039: | ||
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍎⊖⍕⊃⊂|⌊-*+○⌈×÷!⌽⍉⌹~⍴⍋⍒,⍟?⍳0</source> | |colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍎⊖⍕⊃⊂|⌊-*+○⌈×÷!⌽⍉⌹~⍴⍋⍒,⍟?⍳0</source> | ||
|} | |} | ||
== Notes == | |||
<references/> | |||
[[Category:Lists]][[Category:Publications]] |