From: Mischa POSLAWSKY Date: Tue, 3 Mar 2015 18:44:40 +0000 (+0100) Subject: apl: page to list common APL symbols and meanings X-Git-Tag: v1.7~64 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/e10ebeeeccd813dd3d9ff3e23b3338036deb66b1 apl: page to list common APL symbols and meanings Basic inventory copied from . --- diff --git a/apl.inc.pl b/apl.inc.pl new file mode 100644 index 0000000..61c759d --- /dev/null +++ b/apl.inc.pl @@ -0,0 +1,62 @@ +use utf8; +( +# monadic +["∼", undef, "Not, Tilde\nLogical: ∼1 is 0, ∼0 is 1"], + +# dyadic, monadic +["+", "Add\nSum of A and B", "Identity\nNo change to B"], +["−", "Subtract\nA minus B", "Negation\nChanges sign of B"], +["×", "Multiply\nA multiplied by B", "Signum\n¯1 if B<0; 0 if B=0; 1 if B>0"], +["÷", "Divide\nA divided by B", "Reciprocal\n1 divided by B"], +["⋆", "Exponentiation\nA raised to the B power", "Exponential\ne to the B power"], +["○", "Circle\nTrigonometric functions of B selected by A\nA=1: sin(B) A=2: cos(B) A=3: tan(B)", "Pi times\nMultiply by π"], +["?", "Deal\nA distinct integers selected randomly from the first B integers", "Roll\nOne integer selected randomly from the first B integers"], +["∈", "Membership, Epsilon\n1 for elements of A present in B; 0 where not."], +["⌈", "Maximum, Ceiling\nThe greater value of A or B", "Ceiling\nLeast integer greater than or equal to B"], +["⌊", "Minimum, Floor\nThe smaller value of A or B", "Floor\nGreatest integer less than or equal to B"], +["⍴", "Reshape, Dyadic Rho\nArray of shape A with data B", "Shape, Rho\nNumber of components in each dimension of B"], +["↑", "Take\nSelect the first (or last) A elements of B according to ×A"], +["↓", "Drop\nRemove the first (or last) A elements of B according to ×A"], +["⊥", "Decode\nValue of a polynomial whose coefficients are B at A"], +["⊤", "Encode\nBase-A representation of the value of B"], +["∣", "Residue\nB modulo A", "Absolute value\nMagnitude of B"], +[",", "Catenation\nElements of B appended to the elements of A", "Ravel, Catenate, Laminate\nReshapes B into a vector"], +["\\","Expansion, Dyadic Backslash\nInsert zeros (or blanks) in B corresponding to zeros in A", "Scan (last axis), Backslash\nRunning sum across B"], +["⍀", undef, "Scan (first axis)\nRunning sum down B"], +["/", "Compression, Dyadic Slash\nSelect elements in B corresponding to ones in A", "Reduce (last axis), Slash\nSum across B"], +["⌿", undef, "Reduce (first axis)\nSum down B"], +["⍳", "Index of, Dyadic Iota\nThe location (index) of B in A; 1+⌈/⍳⍴A if not found", "Index generator, Iota\nVector of the first B integers"], +["⌹", "Matrix divide, Dyadic Quad Divide\nSolution to system of linear equations, multiple regression Ax = B", "Matrix inverse, Monadic Quad Divide\nInverse of matrix B"], +["⌽", "Rotation\nThe elements of B are rotated A positions", "Reversal\nReverse elements of B along last axis"], +["⊖", "Rotation\nThe elements of B are rotated A positions along the first axis", "Reversal\nReverse elements of B along first axis"], +["⍟", "Logarithm\nLogarithm of B to base A", "Logarithm\nNatural logarithm of B"], +["⍋", undef, "Grade up\nIndices of B which will arrange B in ascending order"], +["⍒", undef, "Grade down\nIndices of B which will arrange B in descending order"], +["⍎", undef, "Execute\nExecute an APL expression"], +["⍕", "Dyadic formatting\nFormat B into a character matrix according to A", "Monadic formatting\nA character representation of B"], +["⍉", "General transpose\nThe axes of B are ordered by A", "Monadic transpose\nReverse the axes of B"], +["!", "Combinations\nNumber of combinations of B taken A at a time", "Factorial \nProduct of integers 1 to B"], +["¨", "Diaeresis, Double-Dot\nOver each, or perform each separately; B = on these; A = operation to perform or using(e.g. iota)"], +["<", "Less than\nComparison: 1 if true, 0 if false"], +["≤", "Less than or equal\nComparison: 1 if true, 0 if false"], +["=", "Equal\nComparison: 1 if true, 0 if false"], +["≥", "Greater than or equal\nComparison: 1 if true, 0 if false"], +[">", "Greater than\nComparison: 1 if true, 0 if false"], +["≠", "Not equal\nComparison: 1 if true, 0 if false"], +["∨", "Or\nLogic: 0 if A and B are 0; 1 otherwise"], +["∧", "And\nLogic: 1 if A and B are 1; 0 otherwise"], +["⍱", "Nor\nLogic: 1 if both A and B are 0; otherwise 0"], +["⍲", "Nand\nLogic: 0 if both A and B are 1; otherwise 1"], + +# operators and axis indicator +[".", undef, "Inner product\nMatrix product of A and B"], +["∘.", undef, "Outer product\nOuter product of A and B"], + +# miscellaneous +["¯", undef, "High minus\nDenotes a negative number"], +["⍝", undef, "Lamp, Comment\nEverything to the right of ⍝ denotes a comment"], +["→", undef, "RightArrow, Branch, GoTo\n→This_Label sends APL execution to This_Label:"], +["←", undef, "Assign, LeftArrow, Set to\nB←A sets values and shape of B to match A"], +["⎕", undef, "Quad"], +[")", undef, "Hook"], +); diff --git a/apl.plp b/apl.plp new file mode 100644 index 0000000..0e4ddcf --- /dev/null +++ b/apl.plp @@ -0,0 +1,70 @@ +<(common.inc.plp)><: + +Html({ + title => 'APL', + version => 'v1.0', + description => [ + ], + keywords => [qw' + '], + stylesheet => [qw'light circus dark red'], + data => [qw'apl.inc.pl'], +}); + +use Shiar_Sheet::FormatChar; +my $glyphs = Shiar_Sheet::FormatChar->new; + +my @ops = do 'apl.inc.pl'; +@ops > 1 or die "cannot open operator include: $@\n"; + +:> +

APL Symbols

+ +
+ + + + + + +<: +for my $op (@ops) { + my ($chr, $monad, $dyad) = @{$op}; + my $codepoint = ord $chr; + my $ascii = $codepoint <= 127; + my $info = $glyphs->glyph_info($codepoint); + my ($class, $name, $mnem, $html, $string) = @{$info}; + printf '
op + input + meaning +
dihtml + monadic + dyadic +
%s'."\n", $chr, EscapeHTML($name || '?'), $class; + printf '%s', @{$_} for ( + [defined $mnem ? $class =~ /\bu-di\b/ ? 'l4' : 'l3' : $ascii ? 'l5' : 'l1', + EscapeHTML($mnem) // sprintf('%s%0*X', $codepoint < 256 ? (x => 2) : (u => 4), $codepoint)], + [defined $html ? 'l4' : $ascii ? 'l5' : 'l1', $html // "#$codepoint"], + ); + printf( + defined $_ ? '%s' : '', + map { EscapeHTML($_) } split /\n/, $_, 2 + ) for $monad, $dyad; +} + +:>
+
+ +
+ +
+ +
unicode 1.1 + 20th century + in 6.0 (2010) + recent assignments + proposed + irregular +
+
+