High minus: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
Miraheze>Adám Brudzewsky
No edit summary
Miraheze>Adám Brudzewsky
No edit summary
Line 1: Line 1:
{{Built-in|High minus|¯}} or '''Negative''' is the character used in [[numeric literal]]s to indicate that a number is [[negate]]d. [[Syntactic_overview|APL syntax]] dicatetes that it be distinct from the function [[Negate]] in order to allow all [[number]]s to be expressed as numeric literals. This ability is particularly useful in [[stranding]] or vector notation, since a number obtained from [[function]] application is harder to use in a strand—depending on the type of stranding available, it must either be parenthesized or cannot be stranded at all. It also allows negative numbers to be used as left [[argument]]s to functions, or as [[operand]]s.
{{Built-in|High minus|¯}} or '''Negative''' is the character used in [[numeric literal]]s to indicate that a number is [[negate]]d. [[APL syntax]] dicatetes that it be distinct from the function [[Negate]] in order to allow all [[number]]s to be expressed as numeric literals. This ability is particularly useful in [[stranding]] or vector notation, since a number obtained from [[function]] application is harder to use in a strand—depending on the type of stranding available, it must either be parenthesized or cannot be stranded at all. It also allows negative numbers to be used as left [[argument]]s to functions, or as [[operand]]s.


== Examples ==
== Examples ==

Revision as of 21:39, 16 November 2019

¯

High minus (¯) or Negative is the character used in numeric literals to indicate that a number is negated. APL syntax dicatetes that it be distinct from the function Negate in order to allow all numbers to be expressed as numeric literals. This ability is particularly useful in stranding or vector notation, since a number obtained from function application is harder to use in a strand—depending on the type of stranding available, it must either be parenthesized or cannot be stranded at all. It also allows negative numbers to be used as left arguments to functions, or as operands.

Examples

Using a high minus in a vector of numbers allows one number to be negated. With an ordinary minus, the expression is instead parsed as subtraction, where 2 3 is subtracted from 1. In both cases, APL expresses negative results using the high minus.

      1 ¯2 3
1 ¯2 3
      1 -2 3
¯1 ¯2

Because the high minus is part of a number and not a separate operation, it can be used as the left argument to a function without parenthesizing it. An ordinary minus will instead apply the function to the positive number and Negate the final result.

      ¯2 ↓ 3 4 5
3
      -2 ↓ 3 4 5
¯5

In langauges which allow array operands, a negative number can be passed directly as an operand without parenthesizing it. Using an ordinary minus in the right operand will cause the minus alone to be used as the operand, while the number is not. In the expression below, it is passed as the left argument of Right (), causing it to be discarded.

      +∘¯1 ⊢3
2
      +∘-1 ⊢3
¯3


APL built-ins [edit]
Primitives (Timeline) Functions
Scalar
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare RootRound
Dyadic AddSubtractTimesDivideResiduePowerLogarithmMinimumMaximumBinomialComparison functionsBoolean functions (And, Or, Nand, Nor) ∙ GCDLCMCircularComplexRoot
Non-Scalar
Structural ShapeReshapeTallyDepthRavelEnlistTableCatenateReverseRotateTransposeRazeMixSplitEncloseNestCut (K)PairLinkPartitioned EnclosePartition
Selection FirstPickTakeDropUniqueIdentityStopSelectReplicateExpandSet functions (IntersectionUnionWithout) ∙ Bracket indexingIndexCartesian ProductSort
Selector Index generatorGradeIndex OfInterval IndexIndicesDealPrefix and suffix vectors
Computational MatchNot MatchMembershipFindNub SieveEncodeDecodeMatrix InverseMatrix DivideFormatExecuteMaterialiseRange
Operators Monadic EachCommuteConstantReplicateExpandReduceWindowed ReduceScanOuter ProductKeyI-BeamSpawnFunction axisIdentity (Null, Ident)
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Withe, Atop, Over) ∙ Inner ProductDeterminantPowerAtUnderRankDepthVariantStencilCutDirect definition (operator)Identity (Lev, Dex)
Quad names Index originComparison toleranceMigration levelAtomic vector