Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

raganwald.com

@raganwald@functional.cafe
mastodon 4.8.0-alpha.3+glitch
  • Open on functional.cafe

Reg "raganwald" Braithwaite's account for discussing functional programming and shamelessly plugging essays about programming.

Follows are NOT endorsements. This account often follows back, and unappealing content happens to be noticed, this account may mute locally instead of unfollowing.

Flying, careers, society and other stuff is over on @raganwald@social.bau-ha-us.

120 Followers
29 Following
20 Posts
Joined May 06, 2025
Creative Works:
https://raganwald.com/creative-works.html
Non-programming toots:
https://social.bau-ha.us/@raganwald
JavaScript Allongé (pdf):
https://raganwald.com/assets/books/javascriptallongesix.pdf
JavaScript Allongé ($):
https://leanpub.com/javascriptallongesix
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago

A very famous cover illustrated by Robert Frank Tinney (1947 - 2026). The mass adoption of OOP was the result of many interlocking changes, but this cover of this issue of Byte did a great deal to popularize Smalltalk and contemporaneous OO languages.

This issue led me to installing Digitalk's Smalltalk/V, and also to learning all about commands, undo, redo, and Object Pascal.

Thank you, Robert. Others may have done the engineering that captured my interest, but your illustration captured our attention and primed us to have fun while learning.

https://en.wikipedia.org/wiki/Robert_Tinney

en.wikipedia.org
42
2
12
2
Open post
raganwald.com @raganwald@functional.cafe
· 8mo ago

Try APL in your browser!

But first, a little motivation to get you started: Game of Life in APL. Pay attention to how interactive APL programming is completely different from other ✌🏽dynamic✌🏽 languages like Ruby or JavaScript. It's much more like Smalltalk or LISP.

https://m.youtube.com/watch?v=a9xAKttWgP4

Now try it for yourself:

https://tryapl.org/

22
2
16
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago

“Learn Lisp the Hard Way,” 2nd draft, last updated in 2022.

https://llthw.common-lisp.dev

#lisp #commonLisp

llthw.common-lisp.dev
8
0
3
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago

“A Conversation with Alan Kay” (2004)

Contains his famous ’programming is a pop culture’ quote and his perspective on the tenuous relationship between success and perceived merit in the software industry.

https://queue.acm.org/detail.cfm?id=1039523

queue.acm.org
6
0
1
0
Open post
raganwald.com @raganwald@functional.cafe
· 6mo ago

"Code should be written to be verified, and only incidentally to be executed"

Proposition: Code written in functional languages is both intrinsically and extrinsically more verifiable. Intrinsically because of idempotency. Extrinsically because social forces happen to have resulted in code written in languages like Elixir to contain patterns that are easier to model.

The attached opinion piece suggests this makes them better languages for LLMs. But that also makes them better languages, period.

https://www.thefuriousopposites.com/p/grace-hoppers-revenge

👋🏽 @cdegroot@mstdn.ca

Grace Hopper's Revenge
thefuriousopposites.com

Grace Hopper's Revenge

What the machines teach us about our software tools

4
1
1
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago

It was once fashionable to ask "pet" interview questions of software engineers. These questions usually demanded that the applicant know—or figure out on the fly—some algorithm with an intermediate- or advanced technique, like recursion.

One variation on the "pet question" interview would seem to ask for an algorithm, but in actuality there would be a quick-and-dirty "hack" such as using a regex to perform replacements in a text file.

"Alice and Bobbie and Sharleen and Dyck" is a fable that reverses the second interview type: The interviewer is looking for a pushdown automaton, and the interviewee presents the quick-and-dirty hack.

https://raganwald.com/2018/11/14/dyck-joke.html

p.s. Yes I have written balanced parentheses code live in an interview. I got the job anyways.

raganwald.com

Alice and Bobbie and Sharleen and Dyck

5
2
3
0
Open post
raganwald.com @raganwald@functional.cafe
· 11mo ago

One of the finest things ever written abut the state of computing... And an excellent shaggy dog story: “The Emperor's Old Clothes,” Dr. Tony Hoare's 1980 Turing Award lecture.

http://pascal.hansotten.com/uploads/hoare/The%20Emperor's%20Old%20Clothes.pdf

pascal.hansotten.com
9
0
1
1
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago

Espresso Ristretto.

I miss CoffeeScript, I was very fond of that language and the lovely experience of working with CoffeeScript, Backbone, and even jQuery during a time when interfaces were considerably more CRUD-forward.

https://raganwald.com/assets/books/coffeescript-ristretto.pdf

raganwald.com
4
2
0
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago

One step closer to writing the words of my next blog post. The theme is "balanced parentheses, but generating them, not recognizing them."

I now have an implementation of generators for simple BP (aka "Dyck-1 languages") and Typed BP (aka "Dyck 2+ languages"):

https://gist.github.com/raganwald/31f12e78d47a69d44f3ebe172b64e803

The first 19 words output by the typed generator with pairs "()", "[]", and "{}":

""
"()", "[]", "{}",
"(())", "[()]", "{()}",
"(())()", "[()]()", "{()}()",
"()()", "[]()", "{}()",
"()[]", "[][]", "{}[]",
"(())[]", "[()][]", "{()}[]"

gist.github.com
3
0
1
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago

@sitcom_nemesis@tech.lgbt “A language that doesn't affect the way you think about programming, is not worth knowing.”

—Dr. Alan J. Perlis

https://www.cs.yale.edu/homes/perlis-alan/quotes.html

cs.yale.edu

Perlisisms - "Epigrams in Programming" by Alan J. Perlis

3
2
1
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago
Replying to
@phred I remember so many people cackling "CoffeeScript is dead" when ES2015 dropped. But it was only dead in the least interesting way, the way that matters for CTOs planning tooling migrations and looking at pools of talent. I prefer to think of ES2015 as "Merging CoffeeScript into main." It is still there, because JS today wouldn't be what it is if CoffeeScript hadn't lit a fire under JS' butt.
2
0
0
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago

Postmodernist Programming: “Emulating GOTO in Scheme with continuations”

https://terezi.pyrope.net/ccgoto/

terezi.pyrope.net
2
0
1
0
Open post
raganwald.com @raganwald@functional.cafe
· 6mo ago

RE: @raganwald@social.bau-ha.us

My author is at it again.

social.bau-ha.us
1
0
0
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago

A fresh result in the pursuit of finding something interesting about "balanced parentheses."

Having already sorted out how to generate every finite balanced parentheses string, we now can parse a string and determine if it is balanced with recursion.

https://github.com/raganwald/balanced-parentheses/blob/main/src/typed-dyck.test.ts#L57

github.com
1
0
1
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago
Replying to
In days of yore, it was common to ask junior programmers a "fizzbuzz" question to test extremely basic ability to write code. One such question was, “Write a function that takes as its argument a string, and returns whether the string contains balanced parentheses.” https://raganwald.com/2018/11/14/dyck-joke.html
raganwald.com

Alice and Bobbie and Sharleen and Dyck

1
2
0
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago
Replying to
The relationship between the types of machines that recognize valid expressions in a language, classes of computation, and classes of language grammars is extremely interesting, even if the some of the essays written about it are brutal: https://raganwald.com/2019/02/14/i-love-programming-and-programmers.html
raganwald.com
1
1
0
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago
Replying to
@m3tti Perhaps they weren't smarter, but they were further ahead on their own life's arc when they said that, than you are today. 💪🏽 @sitcom_nemesis
1
0
0
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago
Replying to
"Pattern Matching and Recursion" approaches balanced parentheses from the perspective recursively defining words in the language: https://raganwald.com/2018/10/17/recursive-pattern-matching.html
raganwald.com
0
0
0
0
Open post
raganwald.com @raganwald@functional.cafe
· 7mo ago

Work in progress on an essay about flipping the old "balanced parentheses" problem around: Instead of recognizing balanced parentheses, how would we go about generating them?

Here's the first milestone: We first construct a mapping from the positive integers to pairs of non-negative integers to establish a bijection and an ordering, then we map non-negative integers to dyck words recursively.

https://gist.github.com/raganwald/31f12e78d47a69d44f3ebe172b64e803

gist.github.com
0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 18:14:58 UTC