type-system-j https://lobste.rs/s/0m2dw3 #apl #plt
https://github.com/Pascal-J/type-system-j
How not to program in Dyalog APL https://lobste.rs/s/wxijhv #apl #practices
https://www.toolofthought.com/donts
html tables revisted https://lobste.rs/s/brpotl #apl #web
https://www.toolofthought.com/posts/html-tables-revisited
#APLQuest 2014-08: Write a function that returns the distance between two points in a space of any number of dimensions (see https://apl.quest/2014/8/ to test your solution and view ours).
Simple Sudoku Solvers: Dyalog APL https://lobste.rs/s/wgebnx #apl
https://blog.veitheller.de/Simple_Sudoku_Solvers_SII,_EI:_Dyalog_APL.html
Tree processing in Array languages
https://asherbhs.github.io/apl-site/trees/intro.html
(not the usual linked nodes)
Hey euh, question CAF car je comprends pas un truc : je découvre qu'à partir de janvier, je passe de 252€/mois d'APL à 199€/mois "d'allocation logement sociale".
En gros je perdrais 50€/mois d'allocations car je passe sur une autre allocation "dédiée aux allocataires non éligibles à l'APL".
Sauf que j'ai rien dans ma situation qui expliquerait ce changement ? J'ai toujours 0€ de revenus, je suis toujours boursier, et j'ai les mêmes charges que les 6 derniers mois ?? 🤔
The Concatenative Language XY https://lobste.rs/s/mpvdwd #apl #concatenative
https://www.nsl.com/k/xy/xy.htm
#APLQuest 2014-07: Write a function that takes the diameters of the stationary and mobile circles and returns the number of revolutions the mobile must traverse until the tangent points meet again (see https://apl.quest/2014/7/ to test your solution and view ours).
@jannem @Edent Interestingly enough, these languages originates from Ken Iverson's work on a notation for expression algorithms. This language (called APL) was not initially intended to be used on a computer, but for communication. This made it naturally terse, using symbols rather than words, because it was optimised for a blackboard rather than a terminal.
He invented some new notation that is used in maths today, including the symbols for floor and ceiling.
These days, I believe APL and its descendants (including Kap and BQN and others) are the only languages that actually use some variation of these symbols for the floor and ceil operations (in these languages, the symbols ⌊ and ⌈ are used.
So, to divide a by 2 and round down looks like this:
⌊a÷2
One thing Kap does which the other array languages do not is to allow the user to define functions, operators and even new syntax using glyphs that are not used by the language. Some functions in the language are defined in the standard library, and uses this technique.
https://slate.com/human-interest/2013/10/piraha-cognitive-anumeracy-in-a-language-without-numbers.html a fun piece with a nice conclusion: we need numbers, but not all of us, and not direly.
That’s in part why I’m using #ed(1) as my programming system: it has no numerics except line numbers! (And I can dispose of these too with marks and landmark search, mostly.) So doing any non-trivial task is not array indices and offsets—it’s text lines and meta calls.
We need a challenge to all these confusingly numeric languages, like #C or #JavaScript or #APL or #Haskell. Most of the programming languages are too preoccupied with numbers really! And that’s really unfortunate and self-restraining 😩
Maintien de la suppression des aides au logement pour les étudiant-e-s étranger-e-s. Derrière le 49.3, le racisme d'État.
Lecornu et le PS imposent de force une mesure discriminatoire et raciste.
Learn APL and compete for one of three $100 prizes! There's only one week left to enter the 2025.4 round of the APL Challenge. See https://challenge.dyalog.com/ for more information and to enter.
UPDATE: The postponed meeting has been rescheduled for Monday 2 February (17:00-19:00 local time).
If you're in Toronto, on Monday 26 January and looking for something to do between 17:00 and 19:00, you could join an array programming meetup that Conor Hoekstra is hosting at Toronto Metropolitan University.
Info: https://www.meetup.com/programming-languages-toronto-meetup/events/312862715/
🌘 頌揚 APL:為詩意編程而生的語言
➤ 為何 APL 能讓初學者在十六週內掌握計算機科學的精髓
✤ https://www.jsoftware.com/papers/perlis77.htm
耶魯大學教授 Alan J. Perlis 於本文中闡述,為何 APL 是計算機科學初學者最理想的首選語言。他認為,程式設計的學習本質在於透過不斷的撰寫與實作來覺醒對計算可能性的認知,而非僅依賴現成的套件。APL 憑藉其簡潔性(Terseness)、靈活性(Flexibility)與組合性(Composability),能讓學生以極短的程式碼(常僅需數行)表達複雜的演算法與概念,從而快速建立信心並深入理解軟硬體架構。這種「詩意」的編程風格,讓學生能專注於問題解決本身,而非受限於繁瑣的語法,最終達成真正的人機協作(Symbiosis)。
+ 「教授的觀點在當今依然適用,特別是當我們被龐大的開發框架淹沒時,APL 強調的『用最少的程式碼表達最多邏輯』確實是程式設計的核心。」
+ 「雖然 APL 的語法對現代人來說有些陌生,但它對陣列運算與向量化思維的
#程式語言設計 #計算機科學教育 #APL
👨🏫 Ah, the #1970s, when #APL was the "lyrical" language of choice, and #Yale #professors thought everyone needed a crash course in computer science to grasp life's mysteries. 🤓 Because who doesn't want to wax poetic about #algorithm composition while pondering the "devotion" of computer scientists? 🎶
https://www.jsoftware.com/papers/perlis77.htm #ComputerScience #Devotion #HackerNews #ngated
(by Mohammed Jamal Alrujayi)
This was an amazing article I found on the orange site published just last week. He notes that although APL and K are of the Harvard school of languages, while Lisp is of the MIT school, they are fundamentally related in their minimalism and in how the languages are structured around a single data type: Lists for Lisp, and vectors/matrices for APL. The two schools of thought were unified in the K programming language by Arthur Whitney:
On kparc.com (his personal website) he listed K’s lineage simply as “lisp and apl,” linking to Iverson’s Turing paper and Perlis’s lyrical programming.
I didn’t know much about Iverson’s family of languages (#APL, J, #BQN, K, and so on), but seeing it embedded in just a few lines of code in a high-level language like #Python suddenly makes it so much easier to understand. The syntactic keywords are basically composed of either infix operators of mapping operators, the data (constants or variables) are like leaves of the syntax tree. So all you need are three lambdas: “atom” checks if it’s argument is a number, monad serves as apply or map depending on the type of it’s arguments and abstracts it into a lambda, and “dyad” constructs an infix operator abstracted into a curried lambda. You only need those three rules!
atom = lambda x: isinstance(x, (int, float, str))
monad = lambda f: lambda x: f(x) if atom(x) else list(map(monad(f), x))
dyad = lambda f: (lambda x, y: f(x, y) if atom(x) and atom(y)
else list(map(lambda yi: dyad(f)(x, yi), y)) if atom(x)
else list(map(lambda xi: dyad(f)(xi, y), x)) if atom(y)
else list(map(lambda xi, yi: dyad(f)(xi, yi), x, y)))
Now I definitely want to try this as Scheme macros!
#tech #software #Lisp #APL #KProgrammingLanguage #JProgrammingLanguage #ProgrammingLanguages #PLT
#APLQuest 2014-06: Write a function that takes an integer vector representing the sides of a number of dice and returns a 2 column matrix of the number of ways each possible total of the dice can be rolled (see https://apl.quest/2014/6/ to test your solution and view ours). #APL #Probability #Combinatorics