Reading Group on Computational Category Theory

Would anyone be interested in doing a reading group on Computational Category Theory, in the process updating all of the code to OCaml or Scala via recorded livecoding sessions? This would be something like a Kittenlab part 2, but I wouldn’t have to spend so much time writing lecture notes…

Could be interesting to also combine this with Structure and Interpretation of Classical Mechanics.


yes, very interested! (in San Francisco) on my end looking to find more physics-inspired applications of category theory to neuro / computational approaches; currently working to implement very similar primitives for use with Clojure / Wolframite and could benefit greatly from having peers to bounce ideas with, especially Topos Institute

lately inspired by Jonathan Gorard’s work

1 Like

I’m also interested! The combo with SICM is really appealing, and I’ve wanted an excuse to dive into OCaml as well. Really hope this ends up happening.

1 Like

Hi, I’m interested too! I’m based in Argentina but willing to make the effort to adapt my schedule to join. I have been playing with F# and Clojure lately and this will be a really interesting project to continue learning ACT too.

1 Like

OK, if someone volunteers to be a co-organizer with me (and this is a medium-sized commitment), I’d be willing to do this. I’m thinking something like a ~2 hour stream every week at 8am-10am PDT on a weekday. I won’t be making lecture notes like before, but I will expect everyone to have done the assigned reading each week.

I can help organize although 8am-10am PDT might be tough for me since that’s in the middle of my working hours (I’m in Memphis, TN). How about we try to agree on a time here (Pacific)?

Great, thanks for making that poll! It looks like the only overlap between our schedules is 5pm to 6pm Monday PDT. Can you go later to do something like 5:15pm-6:45pm PDT? I think if that works, we should just do that, and people who can’t make it can watch the stream/send PRs to the github. It’s going to be impossible to find a time that works for everyone.

I can make 5:00 to 7:00pm work for me.

Cool, I need the 15 minute buffer on either side for reasons, but that sounds good. Let’s meet next week, we’ll stream it on twitch, and we’ll work out a plan then for the rest of the meetings.

@fivegrant can you make an appropriately named twitch stream, set up a discord server, and figure out how people make a stream with picture-in-picture so that whoever is talking is in a little box on the bottom right, while the main view is on vscode or whatever?


I made a github repository: LocalCharts/cct-reading-group · GitHub. @fivegrant can you populate this with Scala boilerplate (you can look at Semagrams.jl/scala at main · AlgebraicJulia/Semagrams.jl · GitHub for a basic setup via a nix flake and mill.

1 Like

Nice this is happening!, it will be a bit late for me but I will try to join.

Also, I can help with any asynchronous work. @fivegrant let me know if I can help with some of the tasks.

looks like we’re going with Scala, @owenlynch can you recommend some material to warm up at least on syntax and features you think will be relevant?


Well, now that I think about it… If we are going to do any stuff with SICM it might be nice to use Owl, which is a scientific computing library for OCaml. I don’t think Scala has anything analogous, except for some of the stuff in Spark: Spark 3.5.1 ScalaDoc - org.apache.spark or GitHub - dragonfly-ai/slash: Linear Algebra and Statistics library for Scala.js, JVM, and Native.; I couldn’t find any maintained ODE solvers though.

OCaml also might be closer to the textbook, which uses ML. What do people think?

I’m ok with any language, Owl and OCaml seem nice to use. I haven’t read SICM but I will say that for Classical Mechanics we will need just some basic linear algebra and calculus operations that can be hacked away as that is not the main purpose.

On the JVM side, there is a Clojure implementation based on the SICM
that might be useful as a reference emmy. Not sure how nice is JVM languages interop but I will prefer to avoid it.

1 Like

I would prefer OCaml, but I can be flexible.

@akielbowicz Awesome, thanks! Once I get off work, I’ll make a Discord server, so we can coordinate on tasks.

All right, here’s the Discord server.