Weekly sessions to learn APL: a programming language that is a tool of thought.
This meetup is held in Portuguese.
If you speak Portuguese, you can sign up by filling up this brief form. You can sign up even if you have missed the first sessions: here you can find a summary of what has been covered in the past sessions and here you can find all the links to useful resources. You can also email me and I will help you catch up.
The weekly APL meetup has the purpose of creating a relaxed and informal setting in which people can learn about APL.
APL is a programming language that started out as an alternative to the traditional mathematical notation we all use, until it eventually became a language that can be executed by computers: this is one of the many reasons that makes learning APL such an interesting experience, both for seasoned programmers and for those who have never written a single line of code.
APL is a language designed for people that, on the one hand, have problems that they want to solve with computers and, on the other hand, do not know programming. APL is a very expressive language and a lot of fun to code in, and it is also a nice introduction to the world of programming for those who have never programmed in their lives. People who already know how to program in other popular programming languages are likely to gain a lot from learning APL, as APL is an array-oriented language, which is something that is both uncommon among the popular languages and very relevant for those who want to write very fast programs.
Not only you can learn something incredible and new, which in itself is an invaluable experience, if you are a student you can use this opportunity to learn some APL in order to compete in the APL problem solving competition that is happening as you read this sentence. There are $6.500 in prizes and there have been plenty of people who won prizes and who only started learning APL during/for the competition. (The link for the competition is https://www.dyalogaplcompetition.com.)
There are no pre-requisites for the attendees of this meetup: everyone is welcome, regardless of their age, occupation, academic background, etc. You are only expected to speak and understand Portuguese, as that is the language the meetup will be held in.
Here you can find an approximate plan of what will be discussed in the upcoming sessions. It is impossible for me to plan the sessions accurately and ahead of time because the point is that participants will also shape how the sessions go, what we talk about, what we learn, etc. Further below you can find a summary of each past session.
- 10th of May:
- operator outer product
- solutions to problem 1512 from leetcode.com
- solutions to problem 1470 from leetcode.com
- solving problems from problems.tryapl.org and leetcode.com
The following sessions are yet to be planned.
3rd of May: n/a
- 26th of April:
- tacit programming review (“forks” and “atops”) [cf. wiki]
- solving problem 1431 from leetcode.com
- 19th of April:
- taking a quick glance at the first elements of the language bar:
- 12th of April:
- examples of tacit idioms
⍥for function composition
- 5th of April:
- discussion of problems “Number Splitting” and “Good Evening”
∘for argument binding
- tacit programming (“forks” and “atops”) (
- 29th of March:
- axis specification
- difference between
- discuss solution to “Oh Say Can You See”
- 22nd of March:
- recall how
- discuss solutions to “What an Odd Bunch”
/as a dyadic function
- solving “Making the Grade” and “Oh Say Can You See”
- 15th of March:
- problems from past phase 1 competitions ([problems.tryapl.org][problems-tryapl])
- “Let's Split!”, problem 1 from 2020
- “Chunky Monkey”, problem 1 from 2019
- “What an Odd Bunch”, problem 1 from 2017
]create # c:/tmpto synchronise the session with a folder
- 8th of March:
- using the Windows interpreter or RIDE
)load(you can find more about the commands here)
- trigonometric functions with
○, recursion with
∇, random numbers with
- basic guards in dfns with
- using the editor to define dfns (
- generating normally distributed random numbers with Box-Muller
- 1st of March:
- basic functions
- “long right scope” and “left short scope”
- defining simple functions (dfns)
- first operator