Does anyone know of any systems that let you take ...
# thinking-together
a
Does anyone know of any systems that let you take the output value on a repl, edit it, and then edit the code so that your edit is true?
p
Prolog can create data structures that will make an assertion you provide be true. Within a sufficiently limited world, it might be possible to make those data structures be code of some sort.
a
oh interesting! I've played with prolog a little, maybe i'll look further down that data
j
It’s not clear to me whether “edit the code so that your edit is true” refers to a human editing the code (like a programmer trying to make a unit test pass) or a computer system editing the code automatically. If you’re going for the latter, you might be interested in “output-directed programming” / “bidirectional programming”, as exemplified by https://ravichugh.github.io/sketch-n-sketch/.
a
it's the latter, and thank you!
g
Not sure if this is what you’re asking for... Barliman (Byrd, Rosenblatt) inputs “test results” and tries to infer code that produces those same results. “miniKanren” is a newer Relational Language, kinda like Prolog in intent, except different. https://github.com/webyrd/Barliman . I find the youtube to be impressive (Clojure/conj). hth?
a
Oo yeah, that does seem helpful.
i
If you want something less text-centric, @Toby Schachman's Apparatus might be of interest. (I'm pretty wildly re-interpreting your inquiry, though, so it might not be of interest. Talking about the output of a REPL implies either a non-live or only slightly live programming environment. Apparatus is an extremely live environment.)
a
Yeah, aparatus feels more like the code is the output in a sense?
i
Yes, in a sense. Though there is still a distinction between the stuff on the canvas and the stuff in the sidebar. Sidebar stuff is abstracted away from canvas stuff in a similar way that source text is abstracted away from program output.
a
sidebar sidebar: I keep forgetting this wonderfulness exists (apparatus) and I'm thankful every time it reemerges in my view!
e
I am probably misunderstanding something, in which case, feel free to relegate me to the depths from whence I came, but, would an image based system support what you are after @Arcade Wise? Or maybe a simpler thing, like a block-based system, e.g. UF for uxn?
a
Hm, what do you mean?
j
Not exactly what you are looking for. But you might enjoy

https://youtu.be/er_lLvkklsk?si=vixOP-zGSj-rbVLU

g
@Jimmy Miller FYI - the code for this is now apparently online.
a
oh yeah! I found the barliman paper and code, it's marked as to-be-read in my zotero folder for this :>
s
This might be of interest: https://libfive.com/studio/