Tomas Petricek
banner
tomasp.net
Tomas Petricek
@tomasp.net
Assistant prof at @mff.unikarlova.cuni.cz. Interested in new ways of thinking about programming and history & philosophy of computing. Previously at University of Kent and @cst.cam.ac.uk.
Pinned
Can software express critical reflections on its own nature in the same way post-modern architecture does?

I don't have the answers, but I wrote a long text with some early thoughts: tomasp.net/architecture/
Another meeting of our Programming Languages and Systems group at @mff.unikarlova.cuni.cz - with more interactive theorem proving 🤨

Natty can check proofs in natural English language!
November 24, 2025 at 10:21 AM
It turns out that debugging a system where everything is an object without some kind of object browser is impossible.

So.... the TinySelf lab of my tiny programming systems course will have a truly innovative UI component :-)
November 23, 2025 at 2:28 AM
This thread makes me wonder if I can use Zotero for handling my travel expenses...
November 20, 2025 at 1:17 AM
Overview of the tiny system implementation structure and #fsharp active patterns (which are a great fit for some of the advanced problems!): www.youtube.com/watch?v=u05R...
TinyProlog 5.3 - F# tricks and step-by-step guide
YouTube video by Tomas Petricek
www.youtube.com
November 17, 2025 at 9:17 PM
Theory behind Prolog knowledge representation, resolution algorithm and structure of Prolog programs: www.youtube.com/watch?v=JQJN...
TinyProlog 5.2 - Structure, unification, resolution
YouTube video by Tomas Petricek
www.youtube.com
November 17, 2025 at 9:15 PM
The next lab from my tiny systems course is up.

Learn how to write your own small implementation of the logic programming language Prolog in #fsharp!

www.youtube.com/watch?v=KC7A...
November 17, 2025 at 9:11 PM
And the whole idea made it into a 2014 paper "The F# computation expression zoo": tomasp.net/academic/pap...

Now that #fsharp has "let! .. and!" for tasks, maybe it's time to add "match!" too.. 😉
tomasp.net
November 14, 2025 at 12:22 AM
We even had a web-based version of this so you could run the code in a web browser using Silverlight (!) tryjoinads.org

The web-based version built a bit later had a revised syntax and also added "let! .. and" for applicative functors.
November 14, 2025 at 12:20 AM
I worked on "match!" to #fsharp back in 2008/9 during an internship with @dsyme.bsky.social and parallel tasks was one example in my MSc thesis: tomasp.net/academic/the... (p. 78).

"match!" had the extra feature that you could do short-circuiting - so "_" means the task doesn't have to finish...
November 14, 2025 at 12:17 AM
F# 10 makes it possible to use let! .. and! to await two tasks in parallel. This brings back some memories!
November 14, 2025 at 12:13 AM
What if we think about proof assistants/dependently typed languages as interactive programming systems? Discussion today @mff.unikarlova.cuni.cz

(And yes, our building has fairly thick walls :-))
November 10, 2025 at 10:27 AM
Come to the train station 5 minutes earlier so that you can get a coffee before boarding :-).

But getting the train tickets should be much easier than it is. Which operator you book with determines where you can get a seat reservation in a funny way...
November 7, 2025 at 10:09 AM
Booked my train tickets for a trip to a PhD defense in Aarhus!

Maybe it's not faster than flying, but I get to go from a train station 10 minutes walk from where I live.

🚂👍
November 7, 2025 at 12:16 AM
Phlogiston scientists might be offended by this!

There's a curious debate in the history of science about whether abandoning phlogiston was rational and if retaining it would help scientists discover free electrons earlier.

See e.g. www.sciencedirect.com/science/arti...
Scientific Rationality: Phlogiston as a Case Study
I argue that it was rational for chemists to eliminate phlogiston, but that it also would have been rational for them to retain it. I do so on the gro…
www.sciencedirect.com
October 24, 2025 at 7:17 PM
In the next lab from my Tiny Systems course, you learn how type inference in ML-like languages works and write your own Hindley-Milner inference algorithm!

🎞️ Watch the videos: www.youtube.com/watch?v=FUFQ...
⌨️ Get the #fsharp code: github.com/tpetricek/ti...
TinyHM 4.1 - How type inference in ML works
YouTube video by Tomas Petricek
www.youtube.com
October 23, 2025 at 7:58 PM
In the second lab of my Tiny Systems course, we write a small interactive BASIC interpreter, inspired by Commodore 64 (Dijkstra does not approve...)

🎞️Watch the videos on YouTube: www.youtube.com/watch?v=jR0m...
⌨️Get the source code here: github.com/tpetricek/ti...
October 20, 2025 at 9:18 AM
I'm afraid I've just recorded a video for my Tiny Systems course on how great GOTO was in Commodore 64 BASIC :-)

(Although, to be fair, I also mention some benefits of GOSUB and RETURN, which is included in bonus materials...)
PLP 6.2-6.4: Structured Control Flow, Sequencing, and Selection - youtu.be/oX9aFuJ--zg

Also check out the whole Programming Language Pragmatics playlist: tinyurl.com/PLP5vids
PLP 6.2-6.4: Structured Control Flow, Sequencing, and Selection
YouTube video by Jonathan Aldrich
youtu.be
October 17, 2025 at 8:07 PM
Absolutely fascinating 1960 ad for the SAGE (Semi-Automatic Ground Environment) computer!

www.youtube.com/watch?v=iCCL...

For those curious about what this is, there is an excellent book by Rebecca Slayton that documents the software side of the missile defense: mitpress.mit.edu/978026254957...
IBM Sage Computer Ad, 1960
YouTube video by chiklit
www.youtube.com
October 16, 2025 at 9:46 PM
To elaborate, I think @charlesuni.cuni.cz has many hard to quantify qualities that would put it above many of the other universities it is compared against.

But also, there are many objective metrics where we should be doing much better. Being the best in a tiny country is not a good excuse.
October 11, 2025 at 3:35 PM
To be honest, I feel this is bragging about doing poorly in a meaningless league table.
📊 According to the recently published Times Higher Education World University Rankings 2025, Charles University is once again among the 500 best universities in the world. At the same time, it remains the highest-ranked university in the Czech Republic.
October 11, 2025 at 2:54 PM
I'm trying to replace my beloved but long-defunct Atom with VS Code for editing LaTeX.

How do I stop copilot from telling me that I can press "Ctrl+I"? I already disabled it using "github.copilot.enable", which hides the actual suggestions, but not this useless message...
October 11, 2025 at 2:17 PM
TinyML 2.3 - Interpreter and step-by-step guide
www.youtube.com/watch?v=ZZbL...
TinyML 2.3 - Interpreter and step-by-step guide
YouTube video by Tomas Petricek
www.youtube.com
October 10, 2025 at 10:37 AM
TinyML 2.2 - Language features and theory
www.youtube.com/watch?v=eyVY...
TinyML 2.2 - Language features and theory
YouTube video by Tomas Petricek
www.youtube.com
October 10, 2025 at 10:37 AM
TinyML 2.1 - What you need to know about F#:
www.youtube.com/watch?v=wb1y...
TinyML 2.1 - What you need to know about F#
YouTube video by Tomas Petricek
www.youtube.com
October 10, 2025 at 10:37 AM
I just uploaded videos for the first lab of my tiny systems. TinyML - Write your own tiny functional language interpreter!

🎞️Watch the videos on YouTube: www.youtube.com/playlist?lis...
⌨️Get the source code here: github.com/tpetricek/ti...
October 10, 2025 at 10:36 AM