FinnAPL idiom library: Difference between revisions

Jump to navigation Jump to search
5,099 bytes added ,  06:10, 14 August 2020
m
Miraheze>Adám Brudzewsky
No edit summary
(10 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''' is a very valuable resource for APL programmers. It contains a collection of over 700 one-line APL idioms to achieve 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.
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 don't make use of modern APL features which can provide a simpler solution. (However, simple-looking expression which uses [[nested arrays]] can be much more computationally expensive than a longer, more involved solution which only uses simple arrays.)
* 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 56: Line 56:
== Idiom Library Listing ==
== Idiom Library Listing ==


=== Grade Up <code>⍋</code> ===
=== Grade Up <source lang=apl inline>⍋</source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|1. || Progressive index of (without replacement) ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source>
|rowspan=2|1. || Progressive index of (without replacement) ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source>
Line 66: Line 66:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⌊.5×(⍋⍋X)+⌽⍋⍋⌽X</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⌊.5×(⍋⍋X)+⌽⍋⍋⌽X</source>
|-
|-
|rowspan=2| 3. || Cumulative maxima (`⌈\`) of subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←D1</source>
|rowspan=2| 3. || Cumulative maxima (<source lang=apl inline>⌈\</source>) of subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←D1</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>Y[A⍳⌈\A←⍋A[⍋(+\X)[A←⍋Y]]]</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>Y[A⍳⌈\A←⍋A[⍋(+\X)[A←⍋Y]]]</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 4. || Cumulative minima (`⌊\`) of subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←D1</source>
|rowspan=2| 4. || Cumulative minima (<source lang=apl inline>⌊\</source>) of subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←D1</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>Y[A⍳⌈\A←⍋A[⍋(+\X)[A←⍒Y]]]</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>Y[A⍳⌈\A←⍋A[⍋(+\X)[A←⍒Y]]]</source>
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]^.=X[⍋X]</source>
|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>X^.=⍋⍋X</source>
|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 (``) 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>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>A[⍋(+\(⍳⍴Y)∊+\⎕IO,X)[A←⍋Y]]</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>A[⍋(+\(⍳⍴Y)∊+\⎕IO,X)[A←⍋Y]]</source>
Line 98: Line 98:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>Y[A[X/⍋(+\X)[A←⍋Y]]]</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>Y[A[X/⍋(+\X)[A←⍋Y]]]</source>
|-
|-
|rowspan=2| 11. || Grade up (``) for sorting subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←D1</source>
|rowspan=2| 11. || Grade up (<source lang=apl inline></source>) for sorting subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←D1</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>A[⍋(+\X)[A←⍋Y]]</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>A[⍋(+\X)[A←⍋Y]]</source>
Line 134: Line 134:
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⍋⍋X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⍋⍋X</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 20. || Grade down (``) 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| 20. || Grade down (<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>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>A[⍋(+\(⍳⍴Y)∊+\⎕IO,X)[A←⍒Y]]</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>A[⍋(+\(⍳⍴Y)∊+\⎕IO,X)[A←⍒Y]]</source>
Line 142: Line 142:
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>Y[A[X/⍋(+\X)[A←⍒Y]]]</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>Y[A[X/⍋(+\X)[A←⍒Y]]]</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 22. || Grade down (``) for sorting subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←D1</source>
|rowspan=2| 22. || Grade down (<source lang=apl inline></source>) for sorting subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←D1</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>A[⍋(+\X)[A←⍒Y]]</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>A[⍋(+\X)[A←⍒Y]]</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]^.=⍳⍴X</source>
|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 186: Line 186:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>A[(B/C)-⍴Y]←B/+\~B←(⍴Y)<C←⍋Y,X+A←0×X ⋄ A</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>A[(B/C)-⍴Y]←B/+\~B←(⍴Y)<C←⍋Y,X+A←0×X ⋄ A</source>
|-
|-
|rowspan=2| 33. || Rotate first elements (`1⌽`) of subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←A1</source>
|rowspan=2| 33. || Rotate first elements (<source lang=apl inline>1⌽</source>) of subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←A1</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>Y[⍋X++\X]</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>Y[⍋X++\X]</source>
Line 194: Line 194:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(X,'''')[(⎕IO+⍴X)⌊⍋(⍳⍴X),(''''=X)/⍳⍴X]</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(X,'''')[(⎕IO+⍴X)⌊⍋(⍳⍴X),(''''=X)/⍳⍴X]</source>
|-
|-
|rowspan=2| 35. || Inserting Y `*`'s into vector X after indices G ||style="text-align: right;"|<source lang=apl inline>X←C1; Y←I0; G←I1</source>
|rowspan=2| 35. || Inserting Y <source lang=apl inline>*</source>'s into vector X after indices G ||style="text-align: right;"|<source lang=apl inline>X←C1; Y←I0; G←I1</source>
|-
|-
|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 251: Line 251:
|}
|}


=== Grade Down ⍒ ===
=== Grade Down <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|49. || Reverse vector X on condition Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←B0</source>
|rowspan=2|49. || Reverse vector X on condition Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←B0</source>
Line 261: Line 261:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>X[⍒+⌿A<.-⍉A←X,0;]</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>X[⍒+⌿A<.-⍉A←X,0;]</source>
|-
|-
|rowspan=2| 52. || Reversal (``) of subvectors of X having lengths Y ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←I1</source>
|rowspan=2| 52. || Reversal (<source lang=apl inline></source>) of subvectors of X having lengths Y ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←I1</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X[⌽⍒+\(⍳⍴X)∊+\⎕IO,Y]</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X[⌽⍒+\(⍳⍴X)∊+\⎕IO,Y]</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 53. || Reversal (``) of subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←A1</source>
|rowspan=2| 53. || Reversal (<source lang=apl inline></source>) of subvectors of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←A1</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>Y[⌽⍒+\X]</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>Y[⌽⍒+\X]</source>
Line 290: Line 290:
|}
|}


=== Matrix Inversion / Matrix Division ⌹ ===
=== Matrix Inversion / Matrix Division <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|60. || Interpolated value of series (X,Y) at G ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←D1; G←D0</source>
|rowspan=2|60. || Interpolated value of series (X,Y) at G ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←D1; G←D0</source>
Line 317: Line 317:
|}
|}


=== Decode ⊥ ===
=== Decode <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|66. || Binary format of decimal number X ||style="text-align: right;"|<source lang=apl inline>X←I0</source>
|rowspan=2|66. || Binary format of decimal number X ||style="text-align: right;"|<source lang=apl inline>X←I0</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)=⍳⍴A←2⊥X^.=⍉X)⌿X</source>
|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 428: Line 428:
|}
|}


=== Encode ⊤ ===
=== Encode <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=4|94. || Conversion from decimal to hexadecimal (`X=1..255`) ||style="text-align: right;"|<source lang=apl inline>X←I</source>
|rowspan=4|94. || Conversion from decimal to hexadecimal (<source lang=apl inline>X=1..255</source>) ||style="text-align: right;"|<source lang=apl inline>X←I</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⍉'0123456789ABCDEF'[⎕IO+((⌈⌈/16⍟,X)⍴16)⊤X]</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⍉'0123456789ABCDEF'[⎕IO+((⌈⌈/16⍟,X)⍴16)⊤X]</source>
Line 454: Line 454:
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>1 0⍕10 10⊤1-⎕IO-⍳X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>1 0⍕10 10⊤1-⎕IO-⍳X</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 99. || Conversion of characters to hexadecimal representation (`⎕AV`) ||style="text-align: right;"|<source lang=apl inline>X←C1</source>
|rowspan=2| 99. || Conversion of characters to hexadecimal representation (<source lang=apl inline>⎕AV</source>) ||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>,' ',⍉'0123456789ABCDEF'[⎕IO+16 16⊤-⎕IO-⎕AV⍳X]</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>,' ',⍉'0123456789ABCDEF'[⎕IO+16 16⊤-⎕IO-⎕AV⍳X]</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)^X=⍉(⌽⍴X)⍴⌊/X)/⍳×/⍴X</source>
|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 482: Line 482:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⎕IO+(⍴X)⊤(-⎕IO)+(,X∊Y)/⍳⍴,X</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⎕IO+(⍴X)⊤(-⎕IO)+(,X∊Y)/⍳⍴,X</source>
|-
|-
|rowspan=2| 106. || All pairs of elements of `⍳X` and `⍳Y` ||style="text-align: right;"|<source lang=apl inline>X←I0; Y←I0</source>
|rowspan=2| 106. || All pairs of elements of <source lang=apl inline>⍳X</source> and <source lang=apl inline>⍳Y</source> ||style="text-align: right;"|<source lang=apl inline>X←I0; Y←I0</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⎕IO+(X,Y)⊤(⍳X×Y)-⎕IO</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⎕IO+(X,Y)⊤(⍳X×Y)-⎕IO</source>
Line 507: Line 507:
|}
|}


=== Logarithm ⍟ ===
=== Logarithm <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|112. || Number of decimals of elements of X ||style="text-align: right;"|<source lang=apl inline>X←D1</source>
|rowspan=2|112. || Number of decimals of elements of X ||style="text-align: right;"|<source lang=apl inline>X←D1</source>
Line 513: Line 513:
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⌊10⍟(⍎('.'≠A)/A←⍕X)÷X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⌊10⍟(⍎('.'≠A)/A←⍕X)÷X</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 113. || Number of sortable columns at a time using `` and alphabet X ||style="text-align: right;"|<source lang=apl inline>X←C1</source>
|rowspan=2| 113. || Number of sortable columns at a time using <source lang=apl inline></source> and alphabet X ||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+⍴X)⍟2*(A=¯1+A←2*⍳128)⍳1</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⌊(1+⍴X)⍟2*(A=¯1+A←2*⍳128)⍳1</source>
Line 538: Line 538:
|}
|}


=== Branch → ===
=== Branch <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|119. || Case structure according to key vector G ||style="text-align: right;"|<source lang=apl inline>X←A0; Y←I1; G←A1</source>
|rowspan=2|119. || Case structure according to key vector G ||style="text-align: right;"|<source lang=apl inline>X←A0; Y←I1; G←A1</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∨.^X)≠+X</source>
|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 585: Line 585:
|}
|}


=== Execute ⍎ ===
=== Execute <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|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+^/(⍴X)=⌽⍴X],'''0~0∊X=⍉X'''</source>
|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 595: Line 595:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍎'VAR',(⍕X),'←Y'</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍎'VAR',(⍕X),'←Y'</source>
|-
|-
|rowspan=2| 134. || Rounding to `⎕PP` precision ||style="text-align: right;"|<source lang=apl inline>X←D1</source>
|rowspan=2| 134. || Rounding to <source lang=apl inline>⎕PP</source> precision ||style="text-align: right;"|<source lang=apl inline>X←D1</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⍎⍕X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⍎⍕X</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*A^.=⌽A←⍴X)↑'0~0∊X=⍉X'</source>
|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>⍎((X^.=' ')/'Y'),X</source>
|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+~' '^.=A←⍞;]</source>
|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 ',(^/X∊' 0123456789')/X</source>
|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 676: Line 676:
|}
|}


=== Format ⍕ ===
=== Format <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|154. || Numeric headers (elements of X) for rows of table Y ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←A2</source>
|rowspan=2|154. || Numeric headers (elements of X) for rows of table Y ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←A2</source>
Line 698: Line 698:
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(⍴A)⍴B\(B←,('0'≠A)∨' '≠¯1⌽A)/,A←' ',⍕X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(⍴A)⍴B\(B←,('0'≠A)∨' '≠¯1⌽A)/,A←' ',⍕X</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 159. || Number of digit positions in scalar X (depends on `⎕PP`) ||style="text-align: right;"|<source lang=apl inline>X←D0</source>
|rowspan=2| 159. || Number of digit positions in scalar X (depends on <source lang=apl inline>⎕PP</source>) ||style="text-align: right;"|<source lang=apl inline>X←D0</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍴⍕X</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍴⍕X</source>
Line 715: Line 715:
|}
|}


=== Roll / Deal ? ===
=== Roll / Deal <source lang=apl inline>?</source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|164. || Y-shaped array of random numbers within ( X[1],X[2] ] ||style="text-align: right;"|<source lang=apl inline>X←I1; Y←I1</source>
|rowspan=2|164. || Y-shaped array of random numbers within ( X[1],X[2] ] ||style="text-align: right;"|<source lang=apl inline>X←I1; Y←I1</source>
Line 725: Line 725:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(~X∊' .,:;?''')/X</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(~X∊' .,:;?''')/X</source>
|-
|-
|rowspan=2| 166. || Choosing Y objects out of `⍳X` with replacement (roll) ||style="text-align: right;"|<source lang=apl inline>Y←I; X←I</source>
|rowspan=2| 166. || Choosing Y objects out of <source lang=apl inline>⍳X</source> with replacement (roll) ||style="text-align: right;"|<source lang=apl inline>Y←I; X←I</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>?Y⍴X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>?Y⍴X</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 167. || Choosing Y objects out of `⍳X` without replacement (deal) ||style="text-align: right;"|<source lang=apl inline>X←I0; Y←I0</source>
|rowspan=2| 167. || Choosing Y objects out of <source lang=apl inline>⍳X</source> without replacement (deal) ||style="text-align: right;"|<source lang=apl inline>X←I0; Y←I0</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>Y?X</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>Y?X</source>
|}
|}


=== Geometrical Functions ○ ===
=== Geometrical Functions <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|168. || Arctan Y÷X ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D</source>
|rowspan=2|168. || Arctan Y÷X ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D</source>
Line 753: Line 753:
|}
|}


=== Factorial / Binomial ! ===
=== Factorial / Binomial <source lang=apl inline>!</source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|172. || Number of permutations of X objects taken Y at a time ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D</source>
|rowspan=2|172. || Number of permutations of X objects taken Y at a time ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D</source>
Line 788: Line 788:
|}
|}


=== Index Of ⍳ ===
=== Index Of <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|180. || Removing elements Y from beginning and end of vector X ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A</source>
|rowspan=2|180. || Removing elements Y from beginning and end of vector X ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A</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>(^⌿(¯1+⍳⍴X)⌽X∘.=Y)⍳1</source>
|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++⌿^⍀X∨.≠⍉X)⌿X</source>
|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>(Y^.=X)⍳1</source>
|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>^/(X⍳X)=⍳⍴X</source>
|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>^/⎕IO=X⍳X</source>
|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 854: Line 854:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(1-(⌽' '≠X)⍳1)↓X</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(1-(⌽' '≠X)⍳1)↓X</source>
|-
|-
|rowspan=2| 198. || Index of last occurrence of Y in X (`⎕IO-1` if not found) ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A</source>
|rowspan=2| 198. || Index of last occurrence of Y in X (<source lang=apl inline>⎕IO-1</source> if not found) ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((¯1 1)[2×⎕IO]+⍴X)-(⌽X)⍳Y</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>((¯1 1)[2×⎕IO]+⍴X)-(⌽X)⍳Y</source>
Line 939: Line 939:
|}
|}


=== Outer Product ∘.! ∘.⌈ ∘.| ===
=== Outer Product <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|219. || Pascal's triangle of order X (binomial coefficients) ||style="text-align: right;"|<source lang=apl inline>X←I0</source>
|rowspan=2|219. || Pascal's triangle of order X (binomial coefficients) ||style="text-align: right;"|<source lang=apl inline>X←I0</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>⌈/(^/0=A∘.|X)/A←⍳⌊/X</source>
|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 966: Line 966:
|}
|}


=== Outer Product ∘.* ∘.× ∘.- ∘.+ ===
=== Outer 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|225. || Compound interest for principals Y at rates G % in times X ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D; G←D</source>
|rowspan=2|225. || Compound interest for principals Y at rates G % in times X ||style="text-align: right;"|<source lang=apl inline>X←D; Y←D; G←D</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]^.=X)/A←(A=1↑X)/⍳⍴A←(1-⍴X)↓Y</source>
|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,049: Line 1,049:
|}
|}


=== Outer Product ∘.<∘.≤ ∘.≥ ∘.> ===
=== Outer 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|247. || Matrix with X[i] trailing zeroes on row i ||style="text-align: right;"|<source lang=apl inline>X←I1</source>
|rowspan=2|247. || Matrix with X[i] trailing zeroes on row i ||style="text-align: right;"|<source lang=apl inline>X←I1</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)^(1↓Y)∘.>X</source>
|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>^/,(0≠X)≤A∘.≤A←⍳1↑⍴X</source>
|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>+/A^⍉A←X∘.≤Y</source>
|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>^/,(0≠X)≤A∘.≥A←⍳1↑⍴X</source>
|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,144: Line 1,144:
|}
|}


=== Outer Product ∘.≠ ∘.= ===
=== Outer Product <source lang=apl inline>∘.≠</source>  <source lang=apl inline>∘.=</source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|271. || Indices of elements of Y in corr. rows of X (`X[i;]⍳Y[i;]`) ||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++/^\1 2 1 3⍉Y∘.≠X</source>
|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,154: Line 1,154:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍉X∘.=(1 1⍉<\X∘.=X)/X</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍉X∘.=(1 1⍉<\X∘.=X)/X</source>
|-
|-
|rowspan=2| 275. || Changing connection matrix X (`¯1 → 1`) to a node matrix ||style="text-align: right;"|<source lang=apl inline>X←I2</source>
|rowspan=2| 275. || Changing connection matrix X (<source lang=apl inline>¯1 → 1</source>) to a node matrix ||style="text-align: right;"|<source lang=apl inline>X←I2</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(1 ¯1∘.=⍉X)+.×⍳1↑⍴⎕←X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(1 ¯1∘.=⍉X)+.×⍳1↑⍴⎕←X</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>∨/^/0 1∘.=X</source>
|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 (`X[i;]∊Y[i;]`) ||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>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∨/1 2 1 3⍉X∘.=Y</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>∨/1 2 1 3⍉X∘.=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>^/1=+⌿X∘.=⍳⍴X</source>
|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>(^⌿(¯1+⍳⍴X)⌽(X∘.=Y),0)/⍳1+⍴Y</source>
|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)^A←(¯1↓X=1⌽X),0)/Y)∘.=Y</source>
|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,199: Line 1,199:
|}
|}


=== Inner Product ⌈.× ⌊.× ⌊.+ ×.○ ×.* +.* ===
=== 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|287. || Maxima of elements of subsets of X specified by Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←B</source>
|rowspan=2|287. || Maxima of elements of subsets of X specified by Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←B</source>
Line 1,237: Line 1,237:
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X+.*2</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X+.*2</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 297. || Randomizing random numbers (in `⎕LX` in a workspace) ||style="text-align: right;"|<source lang=apl inline></source>
|rowspan=2| 297. || Randomizing random numbers (in <source lang=apl inline>⎕LX</source> in a workspace) ||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>⎕RL←⎕TS+.*2</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⎕RL←⎕TS+.*2</source>
|}
|}


=== Inner Product ∨.^ <.< <.≤ <.≥ ≤.≥>.> ===
=== 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∨.^X</source>
|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 ∨.≠ ^.= +.≠ +.= ===
=== 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++⌿^⍀Y∨.≠⍉X</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⎕IO++⌿∧⍀Y∨.≠⍉X</source>
|-
|-
|rowspan=2| 310. || `X⍳Y` 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++⌿^⍀X∨.≠⍉Y</source>
|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↑+/^\⌽X^.=' ')↓X</source>
|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>(∨⌿<\X^.=⍉X)⌿X</source>
|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⍉<\X^.=⍉X)⌿X</source>
|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>∨/Y^.=⍉(⍳⍴X)⌽(2⍴⍴X)⍴X</source>
|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>X^.=∨/X</source>
|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>X^.=^/X</source>
|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)^.=Y)⌿X</source>
|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)↓X^.=(A,1+⍴Y)⍴Y)/⍳(⍴Y)+1-A←⍴X</source>
|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>1∊X^.=Y</source>
|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>X^.=Y</source>
|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,368: Line 1,368:
|}
|}


=== Inner Product -.÷ +.÷ +.× ===
=== Inner Product <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|329. || Sum of alternating reciprocal series Y÷X ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←D1</source>
|rowspan=2|329. || Sum of alternating reciprocal series Y÷X ||style="text-align: right;"|<source lang=apl inline>X←D1; Y←D1</source>
Line 1,374: Line 1,374:
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>Y-.÷X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>Y-.÷X</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 330. || Limits X to fit in `` field Y[1 2] ||style="text-align: right;"|<source lang=apl inline>X←D; Y←I1</source>
|rowspan=2| 330. || Limits X to fit in <source lang=apl inline></source> field Y[1 2] ||style="text-align: right;"|<source lang=apl inline>X←D; Y←I1</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(X⌈1↓A)⌊1↑A←(2 2⍴¯1 1 1 ¯.1)+.×10*(-1↓Y),-/Y+Y>99 0</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(X⌈1↓A)⌊1↑A←(2 2⍴¯1 1 1 ¯.1)+.×10*(-1↓Y),-/Y+Y>99 0</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>Y^A=⌈\X×A←+\Y>¯1↓0,Y</source>
|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>^/[Y]X=⌈\[Y]X</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>/[Y]X=⌈\[Y]X</source>
|-
|-
|rowspan=2| 340. || Duplicating element of X belonging to `Y,1↑X` 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>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X[1⌈⌈\Y×⍳⍴Y]</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X[1⌈⌈\Y×⍳⍴Y]</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>^/[Y]X=⌊\[Y]X</source>
|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)^X=⍉(⌽⍴X)⍴⌊/X)/,X</source>
|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,452: Line 1,452:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>≠\Y≠X\A≠¯1↓0,A←X/≠\¯1↓0,Y</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>≠\Y≠X\A≠¯1↓0,A←X/≠\¯1↓0,Y</source>
|-
|-
|rowspan=2| 352. || Vector `(X[1]⍴1),(X[2]⍴0),(X[3]⍴1),...` ||style="text-align: right;"|<source lang=apl inline>X←I1</source>
|rowspan=2| 352. || Vector <source lang=apl inline>(X[1]⍴1),(X[2]⍴0),(X[3]⍴1),...</source> ||style="text-align: right;"|<source lang=apl inline>X←I1</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>≠\(⍳+/X)∊+\⎕IO,X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>≠\(⍳+/X)∊+\⎕IO,X</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 353. || Not leading zeroes(`∨\`) in each subvector of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source>
|rowspan=2| 353. || Not leading zeroes(<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>
|- style="background-color`: #FFFFFF"
|- style="background-color: #FFFFFF"
|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 (`^\) in each subvector of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source>
|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>A^¯1↓0,A←≠\X=''''</source>
|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)^≠\X</source>
|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)^∨\A←' '≠X)/X</source>
|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>X^^\X=∨\X</source>
|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←+/^\⌽A)++/^\A←' '=⌽X)⌽X</source>
|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 (`⎕CR`) ||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)\(,A←^\('⍝'≠X)∨≠\X='''')/,X</source>
|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×+/^\' '=⌽X)⌽X</source>
|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>(-+/^\⌽' '=X)⌽X</source>
|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>(-+/^\⌽' '=X)↓X</source>
|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>(+/^\' '=X)⌽X</source>
|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←+/^\Y≠',')↓X</source>
|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>(+/^\' '=X)↓X</source>
|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++/^\' '≠X</source>
|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>^\X</source>
|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 (`X[1]⍴1),(Y[1]⍴0),(X[2]⍴1),...` ||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>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(⍳+/X,Y)∊+\1+¯1↓0,((⍳+/X)∊+\X)\Y</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(⍳+/X,Y)∊+\1+¯1↓0,((⍳+/X)∊+\X)\Y</source>
Line 1,562: Line 1,562:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>((X≠0)/Y)[+\¯1⌽(⍳+/X)∊+\X]</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>((X≠0)/Y)[+\¯1⌽(⍳+/X)∊+\X]</source>
|-
|-
|rowspan=2| 380. || Vector (`Y[1]+⍳X[1]),(Y[2]+⍳X[2]),(Y[3]+⍳X[3]),...` ||style="text-align: right;"|<source lang=apl inline>X←I1; Y←I1; ⍴X←→⍴Y</source>
|rowspan=2| 380. || Vector (<source lang=apl inline>Y[1]+⍳X[1]),(Y[2]+⍳X[2]),(Y[3]+⍳X[3]),...</source> ||style="text-align: right;"|<source lang=apl inline>X←I1; Y←I1; ⍴X←→⍴Y</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⎕IO++\1+((⍳+/X)∊+\⎕IO,X)\Y-¯1↓1,X+Y</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⎕IO++\1+((⍳+/X)∊+\⎕IO,X)\Y-¯1↓1,X+Y</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>A^¯1↓0,A←2|+\X=''''</source>
|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>Y^A∊(X^Y)/A←+\Y>¯1↓0,Y</source>
|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,768: Line 1,768:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>X,[.5×⌈/(⍴⍴X),⍴⍴Y]Y</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>X,[.5×⌈/(⍴⍴X),⍴⍴Y]Y</source>
|-
|-
|rowspan=2| 431. || Quick membership (``) for positive integers ||style="text-align: right;"|<source lang=apl inline>X←I1; Y←I1</source>
|rowspan=2| 431. || Quick membership (<source lang=apl inline></source>) for positive integers ||style="text-align: right;"|<source lang=apl inline>X←I1; Y←I1</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>A←(⌈/X,Y)⍴0 ⋄ A[Y]←1 ⋄ A[X]</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>A←(⌈/X,Y)⍴0 ⋄ A[Y]←1 ⋄ A[X]</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>(^/X)∨~∨/X</source>
|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>(^/X)=∨/X</source>
|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>^/X÷∨/X</source>
|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>+/A^⍉A←^/X[;A⍴1;]≤2 1 3⍉X[;(A←1↑⍴X)⍴2;]</source>
|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>^/X/1⌽X</source>
|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>^/X=1⊖X</source>
|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>^/X=1⌽X</source>
|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>^/((1↑X)∊10↓A),X∊A←'0..9A..Za..z'</source>
|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>^/X=1↑X</source>
|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>^/(X∊Y),Y∊X</source>
|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>^/(⍳⍴X)∊X</source>
|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>~^/X∊~X</source>
|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>^/,X∊0 1</source>
|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 (`Y ⊂ X`) ||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>^/Y∊X</source>
|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>^/,X=Y</source>
|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>^/X=X[1]</source>
|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>^/' '=X</source>
|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>^/X</source>
|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 ⌽ ⊖ ===
=== 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 `` ||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>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⌽⍺\⌽X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>⌽⍺\⌽X</source>
Line 2,005: Line 2,005:
|}
|}


=== Rotate ⌽ ⊖ ===
=== 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,027: Line 2,027:
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(Y⌽1 2)⍉X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(Y⌽1 2)⍉X</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 493. || Any element true (`∨/`) on each subvector of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source>
|rowspan=2| 493. || Any element 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>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|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 (`^/`) on each subvector of Y indicated by X ||style="text-align: right;"|<source lang=apl inline>X←B1; Y←B1</source>
|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)^A/1⌽A←(Y≤X)/X</source>
|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,088: Line 2,088:
|}
|}


=== Transpose ⍉ ===
=== Transpose <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|509. || Applying to columns action defined on rows ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←I0</source>
|rowspan=2|509. || Applying to columns action defined on rows ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←I0</source>
Line 2,098: Line 2,098:
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>1 1⍉X[Y[1;];Y[2;]]</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>1 1⍉X[Y[1;];Y[2;]]</source>
|-
|-
|rowspan=2| 511. || Successive transposes of G (X after Y: `X⍉Y⍉G`) ||style="text-align: right;"|<source lang=apl inline>X←I1; Y←I1</source>
|rowspan=2| 511. || Successive transposes of G (X after Y: <source lang=apl inline>X⍉Y⍉G</source>) ||style="text-align: right;"|<source lang=apl inline>X←I1; Y←I1</source>
|-
|-
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X[Y]⍉G</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>X[Y]⍉G</source>
Line 2,135: Line 2,135:
|}
|}


=== Maximum ⌈ Minimum ⌊ ===
=== 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 ⌊ ===
=== 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,221: Line 2,221:
|}
|}


=== Residue | ===
=== Residue <source lang=apl inline>|</source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|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)^0=4|X</source>
|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 × ===
=== 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 \ ⍀ ===
=== 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>~(B^X)∨(B∨X)\A>¯1↓0,A←(B∨X)/B←~Y</source>
|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>(Y^X)∨(Y∨X)\A>¯1↓0,A←(Y∨X)/Y</source>
|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 / ⌿ ===
=== 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,460: Line 2,460:
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(,X,[1.5]1)/,X,[1.5]~X</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(,X,[1.5]1)/,X,[1.5]~X</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 599. || Reduction with FUNCTION `` without respect to shape ||style="text-align: right;"|<source lang=apl inline>X←D</source>
|rowspan=2| 599. || Reduction with FUNCTION <source lang=apl inline></source> without respect to shape ||style="text-align: right;"|<source lang=apl inline>X←D</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍺/,X</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>⍺/,X</source>
Line 2,477: Line 2,477:
|}
|}


=== Take ↑ ===
=== Take <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|603. || Inserting vector X into matrix Y after row G ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A2; G←I0</source>
|rowspan=2|603. || Inserting vector X into matrix Y after row G ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A2; G←I0</source>
Line 2,572: Line 2,572:
|}
|}


=== Drop ↓ ===
=== Drop <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|627. || Starting points of groups of equal elements (non-empty X) ||style="text-align: right;"|<source lang=apl inline>X←A1</source>
|rowspan=2|627. || Starting points of groups of equal elements (non-empty X) ||style="text-align: right;"|<source lang=apl inline>X←A1</source>
Line 2,643: Line 2,643:
|}
|}


=== Member Of ∊ ===
=== Member Of <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|644. || Expansion vector with zero after indices Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←I1</source>
|rowspan=2|644. || Expansion vector with zero after indices Y ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←I1</source>
Line 2,686: Line 2,686:
|}
|}


=== Index Generator ⍳ ===
=== Index Generator <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|654. || Inverting a permutation ||style="text-align: right;"|<source lang=apl inline>X←I1</source>
|rowspan=2|654. || Inverting a permutation ||style="text-align: right;"|<source lang=apl inline>X←I1</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)^X<Y[2]</source>
|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)^(X≤Y[2])</source>
|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>0^X</source>
|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,739: Line 2,739:
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(X×G)+Y×~G</source>
|colspan=2 style="background-color: #F5F5F5"|<source lang=apl inline>(X×G)+Y×~G</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|rowspan=2| 667. || Changing an index origin dependent result to be as `⎕IO=1` ||style="text-align: right;"|<source lang=apl inline>X←I</source>
|rowspan=2| 667. || Changing an index origin dependent result to be as <source lang=apl inline>⎕IO=1</source> ||style="text-align: right;"|<source lang=apl inline>X←I</source>
|- style="background-color: #FFFFFF"
|- style="background-color: #FFFFFF"
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(~⎕IO)+X</source>
|colspan=2 style="background-color: #FFFFFF"|<source lang=apl inline>(~⎕IO)+X</source>
Line 2,748: Line 2,748:
|}
|}


=== Comparison <≤> ≠ ===
=== 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,775: Line 2,775:
|}
|}


=== Ravel , ===
=== Ravel <source lang=apl inline>,</source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|675. || Catenating Y elements G after every element of X ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←I0; G←A</source>
|rowspan=2|675. || Catenating Y elements G after every element of X ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←I0; G←A</source>
Line 2,818: Line 2,818:
|}
|}


=== Catenate , ===
=== Catenate <source lang=apl inline>,</source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|685. || Separating variable length lines ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</source>
|rowspan=2|685. || Separating variable length lines ||style="text-align: right;"|<source lang=apl inline>X←A1; Y←A1</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,932: Line 2,932:
|}
|}


=== Shape ⍴ ===
=== Shape <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|713. || Rank of array X ||style="text-align: right;"|<source lang=apl inline>X←A</source>
|rowspan=2|713. || Rank of array X ||style="text-align: right;"|<source lang=apl inline>X←A</source>
Line 2,955: Line 2,955:
|}
|}


=== Reshape ⍴ ===
=== Reshape <source lang=apl inline></source> ===
{|class=wikitable style="background-color: #EBEBEB"
{|class=wikitable style="background-color: #EBEBEB"
|rowspan=2|720. || Forming an initially empty array to be expanded ||style="text-align: right;"|<source lang=apl inline></source>
|rowspan=2|720. || Forming an initially empty array to be expanded ||style="text-align: right;"|<source lang=apl inline></source>
Line 2,974: Line 2,974:
|}
|}


=== Arithmetic + - × ÷ ===
=== 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]]
trusted
69

edits

Navigation menu