Scan: Difference between revisions
Jump to navigation
Jump to search
(Created page with "{{Built-in|Scan|<nowiki>\</nowiki>}} is a monadic operator which takes a dyadic functions and produce a monadic function (<source lang=apl inline>\</source>). ==...") |
No edit summary |
||
Line 1: | Line 1: | ||
{{Built- | {{Built-ins|Scan|<nowiki>\</nowiki>|⍀}} is a [[primitive operator|primitive]] [[monadic operator]] which takes a [[dyadic function]] [[operand]] and produces a [[monadic function]] which is equivalent to the [[reduce|reductions]] of the prefixes of the arguments. This operation is known as also known as cumulative reduction. | ||
== Explanation == | == Explanation == | ||
Scan is similar to Reduce, however all the intermediate results will be retained. That being said, unlike [[Reduce]], [[Scan]] does not reduce the [[rank]] of its argument, i.e. performing a scan over an N-dimensional [[array]] will produce an N-dimensional array. | |||
== Examples == | == Examples == | ||
<source lang=apl> | <source lang=apl> | ||
+\⍳5 ⍝ plus-scan over range of | +\⍳5 ⍝ plus-scan over range of integers from 1 to 5 | ||
1 3 6 10 15 | 1 3 6 10 15 | ||
</source> | </source> | ||
== Applications == | == Applications == | ||
Removing disconnected trailing 1s from a [[boolean | Removing disconnected trailing 1s from a [[boolean]] mask: | ||
<source lang=apl> | <source lang=apl> | ||
mask←1 1 1 1 0 1 1 0 0 1 | mask←1 1 1 1 0 1 1 0 0 1 | ||
Line 19: | Line 19: | ||
1 1 1 1 0 0 0 0 0 0 | 1 1 1 1 0 0 0 0 0 0 | ||
</source> | </source> | ||
{{APL built-ins}}[[Category:Primitive | == External links == | ||
=== Lessons === | |||
* [https://chat.stackexchange.com/rooms/52405/conversation/lesson-3-some-apl-operators-----#40898948 APL Cultivation] | |||
=== Documentation === | |||
* [https://help.dyalog.com/latest/#Language/Primitive%20Operators/Scan.htm Dyalog] | |||
* [https://microapl.com/apl_help/ch_020_020_820.htm APL] | |||
{{APL built-ins}}[[Category:Primitive operators]] |
Revision as of 21:37, 9 September 2021
\ ⍀
|
Scan (\
, ⍀
) is a primitive monadic operator which takes a dyadic function operand and produces a monadic function which is equivalent to the reductions of the prefixes of the arguments. This operation is known as also known as cumulative reduction.
Explanation
Scan is similar to Reduce, however all the intermediate results will be retained. That being said, unlike Reduce, Scan does not reduce the rank of its argument, i.e. performing a scan over an N-dimensional array will produce an N-dimensional array.
Examples
+\⍳5 ⍝ plus-scan over range of integers from 1 to 5 1 3 6 10 15
Applications
Removing disconnected trailing 1s from a boolean mask:
mask←1 1 1 1 0 1 1 0 0 1 mask 1 1 1 1 0 1 1 0 0 1 ∧\mask ⍝ and-scan mask 1 1 1 1 0 0 0 0 0 0
External links
Lessons
Documentation