ok here's a thing I seriously wanna know: how do you go from a string of binary to a nice decimal number on screen?
oh no he's implementing natural numbers as little-endian binary lists and my brain is mellllltinnnng haaaalp
BTW if you're interested in following along: https://github.com/webyrd/dissertation-single-spaced/blob/master/thesis.pdf
oh wow, chapter 5 is a beginner's guide to avoiding divergent relations 😻
yes I'm live-tooting a dissertation. Ain't nothin' wrong with that.
reading Dr. Byrd's thesis now… and…
`(define appendo (exist (l s out) (matche (l s out) ((() s s))))))`
yep, that's unification inside a pattern match with no body. Gonna go home now brain's asploded.
oh last thing: this matters because this technique gives you programs that can run backwards. You can figure out `x = 1+2` or `3 = x+2` with equal ease.
I want to take that and extend it to more domains. How about a program that can calculate a conference schedule given weak and strong constraints? Or a pivotal-tracker thing that can adjust work suggestions given blockers? Basically, this is a huge area of low-hanging fruit that could help make computers much more friendly to humans.
anyway here's a thought: µKanren improves on miniKanren with a trampolining depth-first search strategy—that is, given an infinite list of incorrect answers `a` and one correct answer `b` it won't try to go through all of `a` before returning `b`—I wonder if that strategy can be specialized for numerics. Given a range between 0 and 100, you could use an iterative bisection search to arrive at the right answer in log(n) time (trampolining DFS would be linear, unless I miss my guess)
BTW props to Dr. Byrd for the Dune references in his thesis 😂
it's also interesting that I've been able to get through the µKanren paper and most of Byrd's thesis with little trouble. So I think it is just a style thing.
I've tried to get through the little/reasoned lisper/schemer a number of times now, and just can't. I'm not sure why. Maybe it's the style of question and answer? At some point, I just want some prose to verify that I figured something out correctly on my own.