Learning resources: Difference between revisions

Jump to navigation Jump to search
70 bytes added ,  15:21, 20 November 2019
m
36 revisions imported: Migrate from miraheze
Miraheze>Adám Brudzewsky
m (36 revisions imported: Migrate from miraheze)
(10 intermediate revisions by 2 users not shown)
Line 5: Line 5:


Some of the best resources for somebody new to APL and programming in general are:
Some of the best resources for somebody new to APL and programming in general are:
* APL Wiki's [[simple examples]]
* The [https://tryapl.org/?tab=3 Learn tab on TryAPL]
* The [https://tryapl.org/?tab=3 Learn tab on TryAPL]
* The book [https://www.dyalog.com/mastering-dyalog-apl.htm Mastering Dyalog APL] by Bernard Legrand
* The book [https://www.dyalog.com/mastering-dyalog-apl.htm Mastering Dyalog APL] by Bernard Legrand
Line 18: Line 19:
This is a list of tutorials and other resources of interest to someone who knows about programming or is familiar with another programming language, but wants to learn more about APL.
This is a list of tutorials and other resources of interest to someone who knows about programming or is familiar with another programming language, but wants to learn more about APL.
<div style="column-width:20em">
<div style="column-width:20em">
* APL Wiki's [[advanced examples]]
* [https://chat.stackexchange.com/rooms/info/52405/the-apl-orchard?tab=conversations APL Cultivation] (chat lessons)
* [https://chat.stackexchange.com/rooms/info/52405/the-apl-orchard?tab=conversations APL Cultivation] (chat lessons)
* [https://tryapl.org TryAPL online interpreter with lessons]
* [https://tryapl.org TryAPL online interpreter with lessons]
Line 37: Line 39:
== For novice APLers ==
== For novice APLers ==


If you already have a fair grasp of APL's [[primitive functions]] and [[primitive operators|operators]], you can sharpen your skills by challenging yourself with these:
If you already have a fair grasp of APL's [[primitive function]]s and [[primitive operator|operators]], you can sharpen your skills by challenging yourself with these:


* [[Crosswords]]: Fill in APL expressions and snippets to fulfil all the clues.
* [https://abrudz.github.io/crosswords/5/ APL Crossword 5]: Fill in expressions and snippets to fulfil all the clues.


* [https://www.dyalog.com/2016-year-game.htm 2016 Year Game]: Find APL expressions involving exactly the digits 2 0 1 6 in that order to equal the numbers 0 to 100.
* [https://www.dyalog.com/2016-year-game.htm 2016 Year Game]: Find APL expressions involving exactly the digits 2 0 1 6 in that order to equal the numbers 0 to 100.
Line 49: Line 51:
== For old APLers ==
== For old APLers ==
In the last decade, several implementations have extended APL with new primitives:
In the last decade, several implementations have extended APL with new primitives:
=== Functions ===
=== Primtives ===
* <source lang=apl inline>⊢</source> [[Identity|Same]], [[Right_identity|Right]]
Functions: <source lang=apl inline>⊢</source> [[Identity|Same]], [[Right_identity|Right]];
* <source lang=apl inline>⊣</source> [[Identity|Same]], [[Left_identity|Left]]
<source lang=apl inline>⊣</source> [[Identity|Same]], [[Left_identity|Left]];
* <source lang=apl inline>⌷</source> [[Materialise]], [[Squad indexing|Index]]
<source lang=apl inline>⌷</source> [[Materialise]], [[Squad indexing|Index]];
* <source lang=apl inline>≡</source> [[Depth]], [[Match]]
<source lang=apl inline>≡</source> [[Depth]], [[Match]];
* <source lang=apl inline>≢</source> [[Tally]], [[Not Match]]
<source lang=apl inline>≢</source> [[Tally]], [[Not Match]];
* <source lang=apl inline>⍸</source> [[Where]], [[Interval Index]]
<source lang=apl inline>⍸</source> [[Where]], [[Interval Index]];
* <source lang=apl inline>⊆</source> [[Nest]], [[Partition]]
<source lang=apl inline>⊆</source> [[Nest]], [[Partition]]
=== Operators ===
 
* <source lang=apl inline>∘</source> [[Bind]], [[Compose]]
Operators: <source lang=apl inline>∘</source> [[Bind]], [[Compose]];
* <source lang=apl inline>⍤</source> [[Rank operator|Rank]]
<source lang=apl inline>⍤</source> [[Rank operator|Rank]];
* <source lang=apl inline>⌸</source> [[Key]]
<source lang=apl inline>⌸</source> [[Key]];
* <source lang=apl inline>⌺</source> [[Stencil]]
<source lang=apl inline>⌺</source> [[Stencil]];
* <source lang=apl inline>⍠</source> [[Variant]]
<source lang=apl inline>⍠</source> [[Variant]]
=== Lambdas ===
=== Lambdas ===
* [http://help.dyalog.com/16.0/Content/Language/Defined%20Functions%20and%20Operators/DynamicFunctions/Dynamic%20Functions%20and%20Operators.htm Intro]
* [http://help.dyalog.com/16.0/Content/Language/Defined%20Functions%20and%20Operators/DynamicFunctions/Dynamic%20Functions%20and%20Operators.htm Intro]
Line 68: Line 70:
* [http://help.dyalog.com/16.0/Content/Language/Defined%20Functions%20and%20Operators/DynamicFunctions/Dynamic%20Operators.htm Operators]
* [http://help.dyalog.com/16.0/Content/Language/Defined%20Functions%20and%20Operators/DynamicFunctions/Dynamic%20Operators.htm Operators]
=== Tacit programming ===
=== Tacit programming ===
'''[[Dyalog APL]] documentation:''': [http://help.dyalog.com/16.0/Content/RelNotes14.0/Function%20Trains.htm Intro] [http://help.dyalog.com/15.0/Content/Language/Introduction/Trains.htm Details]
[[Dyalog APL]] documentation: [http://help.dyalog.com/16.0/Content/RelNotes14.0/Function%20Trains.htm Intro], [http://help.dyalog.com/15.0/Content/Language/Introduction/Trains.htm Details]
'''Videos:''' [https://www.youtube.com/watch?v=kt4lMZbn-so Short] [https://www.youtube.com/watch?v=A2LqqBosvY0 Long]
 
Videos: [https://www.youtube.com/watch?v=kt4lMZbn-so Short], [https://www.youtube.com/watch?v=A2LqqBosvY0 Long]
 
=== Other features  ===
=== Other features  ===
* [[Keywords]]
* [[Keyword]]s
* [[Object oriented programming]]
* [[Object-oriented programming]]


== How to's for advanced APLers ==
== How to's for advanced APLers ==
Line 92: Line 96:
* [[Cryptography]] <span style="background:yellow">← Migrate https://aplwiki.com/CryptographyWithDyalogAndDotNet</span>
* [[Cryptography]] <span style="background:yellow">← Migrate https://aplwiki.com/CryptographyWithDyalogAndDotNet</span>


{{APL programming language}}
{{APL development}}

Navigation menu