Simple examples: Difference between revisions
Jump to navigation
Jump to search
→Parenthesis nesting level
Miraheze>Adám Brudzewsky |
Miraheze>Adám Brudzewsky |
||
Line 21: | Line 21: | ||
=== Parenthesis nesting level === | === Parenthesis nesting level === | ||
First we compare all characters to the opening and closing characters; | |||
<pre class=apl> | |||
'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))' | |||
0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 | |||
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 | |||
</pre> | |||
An opening increases the current level, while a closing decreases, so we convert this to ''changes'' (or ''deltas'') by subtracting the bottom row from the top row: | |||
<pre class=apl> | |||
-⌿'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))' | |||
0 0 0 0 1 0 0 0 0 0 0 1 0 ¯1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 ¯1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 ¯1 ¯1 ¯1 | |||
</pre> | |||
The running sum is what we're looking for: | |||
<pre class=apl> | <pre class=apl> | ||
+\-⌿'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))' | +\-⌿'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))' |