Finally leaving the mastodon.social nest & moving to @jamesnvc
Account moving doesn't seem to be working, so I guess I'll just set up a redirect & folks can manually re-follow if they care to

@aphyr Ah yeah, that's true. The implementations can do *some* optimizations to avoid extra choice-points, but it's pretty finicky & pretty ugly to take advantage of; that makes sense.

Yeah, reif is very cool -- I used it to write grammars for HTTP/2 that can run in either direction (i.e. parse or serialize) but it was very complicated to make it work (github.com/jamesnvc/http2_clie).

Very cool, in any case.

@aphyr Wait, so it's going Prolog -> Lisp -> miniKanren? That is beautiful, I love it!
I also like your comment on line 91 of that gist; logic variables are amazing!

For the code itself, any particular reason why all the semi-colons instead of defining more clauses for the predicate? I'd usually see like

foo(X) :- a.
foo(X) :- b.
...

vs

foo(X) :- ( a ); ( b ) ; ....

@aphyr haha, I think the Prolog community tends to enjoy wild experiments with the language itself :grin:

Also, wrt to unicode characters, the semantics of what's a variable/atom should be defined by these rules: swi-prolog.org/pldoc/man?secti I'm sure Jan would like to update either the language or the docs if there are inconsistencies!

@aphyr Ooh, you're using SWI? Nice, I've gotten involved in that community over the last couple years & I've come to really love the language and some of the folks involved. If you have any issues, the Discourse at swi-prolog.discourse.group/ is quite good - Jan, the primary developer is known to add features/fix bugs in response to posts there in a matter of hours :p

@bzg (although I think I did mangle the in-reply-to header...I might try re-sending, with an added apology to the recipients)

@bzg Ah okay, thanks! I'm not subscribed -- I just read the list through gnus -- so I guess that'd be it. Thanks!

@bzg Relatedly, I just tried to send patches to two bugs from the Org bug tracker thing & I think I did it wrong -- I don't see either in the mailing list. Someday I'll figure this out πŸ˜†

@aphyr @technomancy I look forward to your next interview which somehow relies on Turing-complete composition of combining characters :p

@aphyr @technomancy Oh god, I just realized that now, absolutely incredible πŸ˜†

@aphyr I have very rarely laughed out loud reading code, but your stuff always gets me 😁

Show thread

@aphyr I love your latest "* the Technical Interview" so much <3

@bzg Yeah, my workflow will undoubtedly improve. I like being able to stay in Emacs for more of the work and I do appreciate not having to use a centralized system like Github.
I appreciate the reassurance! As you say, I think I just need to get more used to the workflow...right now, I'm just worried I'm forgetting a CC or sending to the wrong place, plus not being able to edit if I did something wrong.

@bzg I just started doing that, precisely for org-mode and Emacs itself. I...don't love it, to be honest -- I find myself much more stressed about doing something wrong & it definitely raises the barrier for me sending little patches in

@aphyr Neat! Isn't the if-let in call-method somewhat unneeded though (or should be a try/catch?), since get-field throws if the method doesn't exist?

Reading Grundrisse right after perusing the Emacs mailing list, I briefly parse "C-M-C" as "Control-Meta-C" (as opposed to Commodity-Money-Commodity) and for a moment lose the ability to distinguish Karl Marx & Richard Stallman

@iliana My standing desk trick is using a bookshelf as a desk, so I can put the keyboard on one shelf, the monitor on another & independently adjust them

@mcc No spoilers, but after doing in with vanilla Prolog, you might want to look into using a constraint library (e.g. clpfd [1]) -- you can do it in like 30 lines that way.

[1]: swi-prolog.org/pldoc/man?secti

Show older
Mastodon

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!