Entry 003: What's immediately next?

Created 2024-02-16
Published 2024-02-17


I've given myself a few days of shower thoughts, marinating my brain:

Desired interactions

"Model" is a better word than "program" for what I want to use a PPL to create. I can imagine embedding a PPL into another application, sure, and I keep thinking of ways I might use a PPL in the interface itself, but primarily, if I'm using a PPL, it's because I have guess at the underlying process that generates some real-world data, and I want to test how well it actually matches that data. A few examples:

And so on.

Key aspects of these ideas:


So model editing and data appear to be near the top of my list. But I think it's significant that none of the models I mentioned above are able to be expressed in any form using the language constructs I have. So I think I actually want to first make a beeline for the nearest interesting model to implement and then start on editing features.

I keep coming back to tug-of-war, but it requires functions, function application, memoization, maps, sums, conditionals, comparison operators, factor… 🥵

But surely there's something interesting between coin-flipping and that. The more I think about estimating the likelihood of a coin landing heads, the more unpleasant a feeling I get in the pit of my stomach, so I'd really like to avoid that "problem". Just going through some of the examples in ProbMods: medical diagnosis is fraught, phsyics simulation takes engineering, fair exam vs does homework… There's an interesting one.

Inferring whether a class's grades are explained by an exam being unfair or the students not studying isn't bad, and I can play with the idea of trait attribution to find nearby problems if I get tired of that one. The simplest versions require only conditionals, though the models can be expanded to take advantage of functions, and at an extreme can use data infer more and more of the assumed likelihoods based on data.

I like this problem. I'll start there. Conditionals, then memoized functions.