Simple examples: Difference between revisions
Jump to navigation
Jump to search
Miraheze>Adám Brudzewsky |
Miraheze>Adám Brudzewsky |
||
Line 18: | Line 18: | ||
3 4 6 7 9 10 | 3 4 6 7 9 10 | ||
</pre> | </pre> | ||
{{Works in|[[Dyalog APL]] | {{Works in|[[Dyalog APL]], [[NARS2000]], [[dzaima/APL]]}} | ||
=== Parenthesis nesting level === | === Parenthesis nesting level === |
Revision as of 00:06, 11 October 2019
This page contains examples that show APL's strengths. The examples require minimal background and have no special dependencies.
Text processing
APL represents text as character lists (vectors), making many text operations trivial.
Indices of multiple elements
∊
gives us a mask for elements (characters) in the left argument that are members of the right argument:
'mississippi'∊'sp' 0 0 1 1 0 1 1 0 1 1 0
⍸
gives us the indices where true (1):
⍸'mississippi'∊'sp' 3 4 6 7 9 10
We can combine this into an anonymous infix (dyadic) function:
'mississippi' (⍸∊) 'sp' 3 4 6 7 9 10
Parenthesis nesting level
+\-⌿'()'∘.='plus(square(a),plus(square(b),times(2,plus(a,b)))' 0 0 0 0 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 2 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 3 2 1