|
|
Line 1: |
Line 1: |
| {{Built-in|Or|∨}} is a [[dyadic]] [[scalar function|scalar]] [[boolean function]] which tests if at least one of the two arguments is true: it returns 1 if at least one side is 1 and 0 if both are 0. It represents the [[wikipedia:logical disjunction|logical disjunction]] in Boolean logic. | | {{Built-in|Or|∨}} is a [[dyadic]] [[scalar function|scalar]] [[boolean function]] which tests if at least one of the two arguments is true: it returns 1 if at least one side is 1 and 0 if both are 0. It represents the [[wikipedia:logical disjunction|logical disjunction]] in Boolean logic. In many APLs, Or is a special case of the [[GCD]] function. |
|
| |
|
| {|class=wikitable | | {|class=wikitable |
Line 28: |
Line 28: |
| 0 | | 0 |
| </source> | | </source> |
|
| |
| == Extended definition ==
| |
|
| |
| Many APL implementations extend this function to non-Boolean arguments. In this case, this function behaves as '''[[wikipedia:Greatest common divisor|Greatest Common Divisor]]''' or '''GCD'''. For positive integer arguments, it is defined as the largest positive number which divides both numbers. If one of the arguments is zero, the GCD function returns the other number.
| |
|
| |
| <source lang=apl>
| |
| ∘.∨⍨ 0,⍳10
| |
| 0 1 2 3 4 5 6 7 8 9 10
| |
| 1 1 1 1 1 1 1 1 1 1 1
| |
| 2 1 2 1 2 1 2 1 2 1 2
| |
| 3 1 1 3 1 1 3 1 1 3 1
| |
| 4 1 2 1 4 1 2 1 4 1 2
| |
| 5 1 1 1 1 5 1 1 1 1 5
| |
| 6 1 2 3 2 1 6 1 2 3 2
| |
| 7 1 1 1 1 1 1 7 1 1 1
| |
| 8 1 2 1 4 1 2 1 8 1 2
| |
| 9 1 1 3 1 1 3 1 1 9 1
| |
| 10 1 2 1 2 5 2 1 2 1 10
| |
| </source>{{Works in|[[Dyalog APL]]}}
| |
|
| |
| While the mathematical definition of GCD does not cover non-integers, some implementations accept them as arguments. In this case, the return value of <source lang=apl inline>R←X∨Y</source> is chosen so that both <source lang=apl inline>X÷R</source> and <source lang=apl inline>Y÷R</source> are integers (or [[wikipedia:Gaussian integer|Gaussian integers]], when X and/or Y are [[complex]] numbers).
| |
|
| |
| <source lang=apl>
| |
| 0.6∨13÷3
| |
| 0.06666666667
| |
| 0.6(13÷3)÷0.6∨13÷3
| |
| 9 65
| |
| 2J2∨3J1
| |
| 1J1
| |
| 2J2 3J1÷1J1
| |
| 2 2J¯1
| |
| </source>{{Works in|[[Dyalog APL]]}}
| |
|
| |
|
| == External links == | | == External links == |