1761264758 347484 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Remote host closed the connection
< 1761264811 848622 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord
< 1761265766 278619 :amby!~ambylastn@host-92-17-37-198.as13285.net QUIT :Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement
> 1761268984 154412 PRIVMSG #esolangs :14[[07Collern14]]4 10 02https://esolangs.org/w/index.php?diff=166596&oldid=166560 5* 03Dmiz 5* (+162) 10
< 1761269035 486215 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :I wanted to make a new OID arc to be standardized by ITU or ISO (preferably ITU, although I have been told that is nearly impossible to actually tell them anything), which is combining an existing identification (of one of many kinds, e.g. international telephone numbers, internet domain names, ICAO airport codes, etc) with a timestamp, and in some cases also automatic delegation.
< 1761269043 355663 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :How would you do such a thing like that?
> 1761269801 186646 PRIVMSG #esolangs :14[[07Collern14]]4 10 02https://esolangs.org/w/index.php?diff=166597&oldid=166596 5* 03Dmiz 5* (+69) 10
> 1761277914 571996 PRIVMSG #esolangs :14[[07User talk:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=166598&oldid=166582 5* 03Yayimhere2(school) 5* (+2) 10/* Revert */
> 1761277962 248301 PRIVMSG #esolangs :14[[07User talk:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=166599&oldid=166598 5* 03Yayimhere2(school) 5* (+144) 10/* Sorry? */
< 1761278017 906824 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I'm looking through my mailserver logs, and there are a surprising number of HTTP requests in them – I think it's the AI scraperbots that have found a list of mailservers somewhere, and are just trying to interpret them as web addresses (domain:port) and trying to scrape a page from them
> 1761279212 630586 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166600&oldid=166576 5* 03Yayimhere2(school) 5* (+1082) 10/* Description */
< 1761280193 234758 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: that's not unreasonable, if they send a HTTP request then whatever server is on the other side will often send an error reply that can let you figure out what kind of service it is, and you can send a more useful request the next time
< 1761280211 873230 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: there's a couple of domains that are sending the same requests over and over again, though
< 1761280234 569138 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :yeah, that's less useful probably
< 1761280270 909591 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :especially if it's on port 25
< 1761280349 681683 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I wonder why they think that the wiki is inactive. We don't really rotate the featured-article box, but that's the only thing that isn't changing on the front page.
> 1761281500 791774 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166601&oldid=166600 5* 03Yayimhere2(school) 5* (+39) 10/* Computational class */
< 1761281751 686654 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :I have also seen HTTP requests on the SMTP server, on my computer, too.
< 1761281867 100504 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za JOIN #esolangs * :[https://web.libera.chat] Yayimhere
< 1761281893 494045 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :hello, people!
< 1761281903 557799 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :or what people there may be
> 1761282038 289182 PRIVMSG #esolangs :14[[07Utral14]]4 10 02https://esolangs.org/w/index.php?diff=166602&oldid=166547 5* 03Yayimhere2(school) 5* (+20) 10/* Info */
> 1761282047 401772 PRIVMSG #esolangs :14[[07Utral14]]4 10 02https://esolangs.org/w/index.php?diff=166603&oldid=166602 5* 03Yayimhere2(school) 5* (+1) 10/* Info */
< 1761282097 15394 :slavfox!~slavfox@193.28.84.183 QUIT :Quit: ZNC 1.8.2 - https://znc.in
< 1761282134 495478 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yayimhere: Welcome back.
< 1761282144 309191 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :thanks!
< 1761282178 413075 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I thought about your question on altering the K combinator for a bit. Let's say that K' x y = y; From S, what can we do? Well, note that K' S y = y, so K'S is equivalent to I.
< 1761282192 595982 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :true
< 1761282247 926152 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I looked at it for a while, but I wasn't quite able to find B, C, or K; any of those would completely answer the question. I did find O and M and a few other common combinators, though.
< 1761282261 710192 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :hmm interesting
< 1761282269 368200 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :also
< 1761282284 662766 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :we could just shorten the reverse k to RK
< 1761282284 729808 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Well, I didn't try very hard. Maybe you can find them?
< 1761282292 726259 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :I can *try*
< 1761282316 723884 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :but you are a lot better than me, so I will probably not get much further than you
< 1761282324 245006 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :but it is quite interesting
< 1761282335 806654 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I'd avoid reusing letters. R, the robin, is a combinator of BCI already.
< 1761282347 893110 :slavfox!~slavfox@193.28.84.183 JOIN #esolangs slavfox :slavfox
< 1761282355 477924 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :oh i didnt realize actually
< 1761282403 316980 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :also, the reason im asking, is because of the fact that this reverse K, is actually just the church numeral for 0
< 1761282416 838816 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Oh, I'm not better than you, just more well-researched. I bet that if I go get my copy of Smullyan off the shelf, I could find some words about this variant of K. Perhaps he has an exercise where he proves that it's equivalent to K, or where he proves that it's useless. It wouldn't be the first time; earlier in the year, that same book taught me that GI and BCI are equivalent.
< 1761282441 926538 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :true
< 1761282493 132332 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Ah! Careful with that. Lambda calculus is done with the assumption that we can build any applicative tree we want; combinatory logic is more restricted. They aren't the same system, even though they have a lot in common because they both have applicative trees.
< 1761282527 690633 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :oh they arent? I actually just assumed so, because SKI often is represented as lambda calculus expressions
< 1761282533 363046 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :(like in jot for example)
< 1761282653 810354 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :My opinion on this is that a combinator is very limited; a combinator builds an applicative tree from its inputs. A closed lambda term, more generally, builds another lambda term from its inputs; a lambda term can have applications and also it can have abstractions.
< 1761282689 68287 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :true
< 1761282704 511442 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Well, not everybody agrees with me. See [[closed lambda term]] for what we *do* agree upon.
< 1761282713 711885 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :k
< 1761282777 38945 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :But yeah, this means that Iota isn't a combinator. Neither is Alpha. They are closed lambda terms, though. Jot isn't a combinator, but a way to encode certain lambda terms.
< 1761282791 61639 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :yes
< 1761282840 475974 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :also if your wondering what I need this for, I need it to prove υλ TC
< 1761282886 895856 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I have no idea what's going on in that page, sorry.
< 1761282895 413170 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :no its fine
< 1761282909 687009 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :(ive figured it out anyways lol)
< 1761282947 686788 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :it is however still an interesting question
< 1761283156 918641 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :anyways
< 1761283166 565118 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Maybe. The standard proof that SKI can encode lambda terms, given at [[combinatory logic]], revolves around matching each of S, I, and K to different possible terms: S gives application, I gives De Bruijn index 0, and K gives constants. K' gives the ability to discard an argument and return I, which isn't the same as holding a constant.
< 1761283197 825606 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :im gonna go and make myself go crazy with uncompetition lol
< 1761283200 782524 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I bet that a computer search could quickly settle the question, but if the answer is a big tree filled with lots of S then that won't be enlightening.
< 1761283207 191328 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :yees
< 1761283214 9876 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :in fact
< 1761283266 171615 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I'm going to play more with Smalltix. I've documented my own calling convention at [[Vixen]]. Treating directories as objects is surprisingly fruitful.
< 1761283278 637838 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :cool!
< 1761283340 784053 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za PRIVMSG #esolangs :also, does anyone know an esolang, where every function, no matter with input or no, will evaluate to a different output
< 1761283456 800514 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :Another use to attack your ally in Pokemon is: if you do not want to attack your opponent(s) for some reason (e.g. Destiny Bond), especially if your ally has Protect.
> 1761283517 69619 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166604&oldid=166601 5* 03Yayimhere2(school) 5* (+182) 10/* Computational class */
> 1761283550 502946 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166605&oldid=166604 5* 03Yayimhere2(school) 5* (+0) 10/* Computational class */
> 1761283727 191892 PRIVMSG #esolangs :14[[07Underload14]]4 10 02https://esolangs.org/w/index.php?diff=166606&oldid=158524 5* 03Yayimhere2(school) 5* (+13) 10
> 1761283772 828363 PRIVMSG #esolangs :14[[07Xx14]]4 10 02https://esolangs.org/w/index.php?diff=166607&oldid=166503 5* 03Yayimhere2(school) 5* (-8) 10
> 1761283865 279244 PRIVMSG #esolangs :14[[07Xx14]]4 10 02https://esolangs.org/w/index.php?diff=166608&oldid=166607 5* 03Yayimhere2(school) 5* (+13) 10/* turing completeness proof */
< 1761284034 222732 :Yayimhere!~Yayimhere@vc-gp-n-105-245-24-103.umts.vodacom.co.za QUIT :Quit: Client closed
< 1761284239 100244 :Yayimhere!~Yayimhere@160.119.235.55 JOIN #esolangs * :[https://web.libera.chat] Yayimhere
< 1761284374 701128 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yayimhere: That's not a language thing; can you see why?
< 1761284388 341325 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ACTION forcing nuance to develop
< 1761284412 116866 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :huh?
< 1761284420 778164 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :sorry I got disconnected
< 1761284691 553961 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :korvo: what were you saying?
< 1761284828 784564 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yayimhere: Evaluation of functions isn't a linguistic thing. We just pretend that they're connected.
< 1761284854 6401 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :true
< 1761284924 76170 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Like, is there a family of functions where each function evaluates to a different output (on a fixed input)? Yes.
< 1761284949 456299 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :but is there one without any input
< 1761284955 195621 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I'd ask what kind of programming *system* you want, not just what kind of *language* you're using to express computations in that system.
< 1761284966 865568 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :true
< 1761284990 965585 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Functions always have inputs. When we say that a function doesn't have an input, we mean that its input domain is a set with one element, and we always use that one element as the input.
< 1761285016 965169 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :yea thats true
< 1761285018 757150 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :data 1 = *; f * = 42 -- f "doesn't have an input"
< 1761285021 111689 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :I say true a lot
< 1761285023 882679 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :BUT
< 1761285111 408760 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :i want a system where routing myself an infinite family of functions where "each function has a sort of "inertia", where they even without input, give an output" where "without input" is, a uniform input
< 1761285143 608171 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :that is also Turing complete
< 1761285181 881812 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so the interesting way of interpreting this is "is it possible to design a language so that there's some specific input that you can give to any function, and it causes every possible function to return a different output?"
< 1761285196 144259 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :in fact
< 1761285207 717030 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :one example of a way you might do that would be to have an input that you can give to a function and it causes the function to print its own source code
< 1761285227 988026 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :or in principle, the system this is based off of, a function can return multiple outputs, as it is semi-ambiguous what it should return
< 1761285242 183409 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :(or a random one of these outputs)
< 1761285245 780877 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but, this sort of thing is difficult to work into a language because that sort of value can't correctly be manipulated using functions
< 1761285253 227753 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :also hello ais523!
< 1761285268 628144 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :yea. thats true.
< 1761285278 400238 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :so a quine function kinda?
< 1761285287 729923 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :or a quine input technically
< 1761285300 431105 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I've had esolang ideas where I wanted to do this sort of thing but was unable to design a coherent language around them (mostly based on object-oriented-like languages where objects were functions that took messages/methodcalls as arguments)
< 1761285319 383253 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :interestimng
< 1761285322 120737 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :*interesting
< 1761285325 360423 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's just far too easy to end up with two requiremens that conflict with each other
< 1761285350 806904 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :again, this is all based off of an already existing language
< 1761285412 815396 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :ais523: requierments for the language/system, or for this input?
< 1761285417 544433 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :or for the function(s)
< 1761285422 847988 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :for the language design
< 1761285430 541596 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :yea ok
> 1761285883 341918 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166609&oldid=166605 5* 03Yayimhere2(school) 5* (+60) 10/* Computational class */
< 1761286527 148962 :Yayimhere!~Yayimhere@160.119.235.55 QUIT :Ping timeout: 250 seconds
< 1761288018 979623 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer
< 1761290477 445433 :APic!~apic@apic.name PRIVMSG #esolangs :Hi
> 1761291438 698745 PRIVMSG #esolangs :14[[07User:JIT14]]4 10 02https://esolangs.org/w/index.php?diff=166610&oldid=165415 5* 03JIT 5* (+41) 10
< 1761292121 101485 :Yayimhere!~Yayimhere@160.119.235.55 JOIN #esolangs * :[https://web.libera.chat] Yayimhere
> 1761292369 772425 PRIVMSG #esolangs :14[[07B914]]4 M10 02https://esolangs.org/w/index.php?diff=166611&oldid=166507 5* 03JIT 5* (+27) 10
< 1761292446 583839 :Yayimhere!~Yayimhere@160.119.235.55 QUIT :Quit: Client closed
< 1761293027 101231 :Yayimhere!~Yayimhere@160.119.235.55 JOIN #esolangs * :[https://web.libera.chat] Yayimhere
< 1761293417 101001 :Yayimhere!~Yayimhere@160.119.235.55 QUIT :Ping timeout: 250 seconds
< 1761293490 134281 :tromp!~textual@2001:1c00:3487:1b00:cd8f:ea15:2cfa:e4a8 JOIN #esolangs * :Textual User
< 1761297164 568387 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :korvo: hold on, in https://logs.esolangs.org/libera-esolangs/2025-08.html#lvw you specifically told me that the Smullyan Mockingbird book does not give a name to KI. doesn't that mean a priori that you won't find the theorem of what you can generate from S and KI (and possibly I, I don't remember how Yayimhere asked exactly) in that book?
< 1761299484 105053 :Yayimhere!~Yayimhere@160.119.235.55 JOIN #esolangs * :[https://web.libera.chat] Yayimhere
< 1761299907 635363 :strerror!~strerror@user/strerror PRIVMSG #esolangs :(I is just ꓘS or ꓘꓘ (where ꓘ = KI))
< 1761300255 101830 :Yayimhere!~Yayimhere@160.119.235.55 QUIT :Ping timeout: 250 seconds
< 1761300311 376283 :tromp!~textual@2001:1c00:3487:1b00:cd8f:ea15:2cfa:e4a8 PRIVMSG #esolangs :K is True and KI is False
< 1761300346 532766 :tromp!~textual@2001:1c00:3487:1b00:cd8f:ea15:2cfa:e4a8 PRIVMSG #esolangs :True x y = x and False x y = y
< 1761300368 99702 :Yayimhere!~Yayimhere@160.119.235.55 JOIN #esolangs * :[https://web.libera.chat] Yayimhere
< 1761300386 565620 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :strerror: is this related to the reverse K? I have not been here I got dissconnected
< 1761300522 247636 :strerror!~strerror@user/strerror PRIVMSG #esolangs :Yayimhere: yes. Though I've just picked a name for it, not found anything new about it.
< 1761300529 692050 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :yea
< 1761300534 998773 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :it does make sense naming wise
< 1761300579 825779 :strerror!~strerror@user/strerror PRIVMSG #esolangs :Hmm it's “Lisu letter kha” — “a language of the Lisu people in Yunnan, China”
< 1761300630 254836 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :lol
< 1761300648 517101 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :well sorry Lisu people, your letter has now become K
< 1761300650 179842 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :lol
< 1761300658 25740 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :I say lol way too much
< 1761300672 247191 :strerror!~strerror@user/strerror PRIVMSG #esolangs :tromp: that sounds suggestive of some kind of de Morgan duality? Though maybe only if we also flip S.
< 1761300750 753781 :strerror!~strerror@user/strerror PRIVMSG #esolangs :SK is universal, Sꓘ may or may not be, and I suppose ꓘƧ ought to be for some Ƨ
< 1761300772 103381 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :yeaa
< 1761300813 954655 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :its would be quite interesting if Sꓘ AND K Ƨ are TC
> 1761300874 874086 PRIVMSG #esolangs :14[[0795-9814]]4 10 02https://esolangs.org/w/index.php?diff=166612&oldid=134713 5* 03Yayimhere2(school) 5* (+6) 10/* how it works */
> 1761300904 607053 PRIVMSG #esolangs :14[[07Talk:95-9814]]4 10 02https://esolangs.org/w/index.php?diff=166613&oldid=156965 5* 03Yayimhere2(school) 5* (+44) 10/* About addition arithmetic command */
< 1761300963 441637 :tromp!~textual@2001:1c00:3487:1b00:cd8f:ea15:2cfa:e4a8 PRIVMSG #esolangs :I think S,False is not TC
< 1761300996 860210 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :False?
< 1761301013 574299 :tromp!~textual@2001:1c00:3487:1b00:cd8f:ea15:2cfa:e4a8 PRIVMSG #esolangs :False = K I = S K
< 1761301025 105656 :Yayimhere!~Yayimhere@160.119.235.55 PRIVMSG #esolangs :ok
> 1761301522 531240 PRIVMSG #esolangs :14[[072I1IF14]]4 N10 02https://esolangs.org/w/index.php?oldid=166614 5* 03Yayimhere2(school) 5* (+603) 10Created page with "{{WIP}} '''2I1IF''' is a family of languages, based off of [[Uncompetition]]. == Concept == For a language to qualify for being a part of 2I1IF, it must be able to be interpreted as "An infinite amount of inputs, and a single universal function", and "An infinit
< 1761301843 91336 :Yayimhere!~Yayimhere@160.119.235.55 QUIT :Quit: Ping timeout (120 seconds)
> 1761302140 90989 PRIVMSG #esolangs :14[[072I1IF14]]4 10 02https://esolangs.org/w/index.php?diff=166615&oldid=166614 5* 03Yayimhere2(school) 5* (+220) 10
> 1761302149 117091 PRIVMSG #esolangs :14[[072I1IF14]]4 10 02https://esolangs.org/w/index.php?diff=166616&oldid=166615 5* 03Yayimhere2(school) 5* (-8) 10
> 1761302607 211017 PRIVMSG #esolangs :14[[072I1IF14]]4 10 02https://esolangs.org/w/index.php?diff=166617&oldid=166616 5* 03Yayimhere2(school) 5* (+517) 10/* Concept */
< 1761303215 561059 :amby!~ambylastn@host-92-17-37-198.as13285.net JOIN #esolangs * :realname
> 1761303456 942097 PRIVMSG #esolangs :14[[072I1IF14]]4 10 02https://esolangs.org/w/index.php?diff=166618&oldid=166617 5* 03Yayimhere2(school) 5* (+6) 10/* Concept */
< 1761305030 907097 :perlbot!~perlbot@perlbot/bot/simcop2387/perlbot QUIT :Quit: ZNC 1.9.1+deb2+b3 - https://znc.in
< 1761305030 976005 :simcop2387!~simcop238@perlbot/patrician/simcop2387 QUIT :Quit: ZNC 1.9.1+deb2+b3 - https://znc.in
< 1761305887 823381 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 246 seconds
< 1761305938 291044 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord
< 1761307118 81576 :Riviera!Riviera@user/riviera QUIT :Quit: leaving
< 1761308486 36110 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I also did some experimentation with S and KI, and mixing them didn't seem like it was giving substantial capabilities over S on its own (e.g. S (KI) a b = (KIb)(ab) = I(ab) = ab, so S (KI) = I; and (KI) S also = I)
< 1761308525 545441 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this isn't a proof that it's S + KI is sub-TC, but it is pretty discouraging and makes it unlikely that adding KI to S would make it Turing-complete
< 1761308610 338543 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :S S (KI) a = (Sa)(KIa) = S a I; S a I b = (ab)(Ib) = abb; thus S S (KI) = W and that is giving you a small amount of power that S doesn't have on its own
< 1761308665 159708 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but W (KI) and (KI) W are both also equivalent to I so this doesn't really help much
< 1761308858 808403 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :`unidecode ꓘ
< 1761308861 214584 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :[U+A4D8 LISU LETTER KHA]
< 1761309104 618912 :ais523!~ais523@user/ais523 QUIT :Quit: quit
< 1761309518 451390 :tromp!~textual@2001:1c00:3487:1b00:cd8f:ea15:2cfa:e4a8 QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1761312029 303075 :tromp!~textual@2001:1c00:3487:1b00:d88f:2255:14bf:ec80 JOIN #esolangs * :Textual User
> 1761312245 360426 PRIVMSG #esolangs :14[[072I1IF14]]4 10 02https://esolangs.org/w/index.php?diff=166619&oldid=166618 5* 03Yayimhere2(school) 5* (+14) 10
> 1761312689 938301 PRIVMSG #esolangs :14[[07User:Yayimhere14]]4 10 02https://esolangs.org/w/index.php?diff=166620&oldid=166528 5* 03Yayimhere2(school) 5* (+12) 10/* esolangs */
> 1761312725 519626 PRIVMSG #esolangs :14[[072I1IF14]]4 10 02https://esolangs.org/w/index.php?diff=166621&oldid=166619 5* 03Yayimhere2(school) 5* (+41) 10
< 1761313172 958543 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname
> 1761313286 349023 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166622&oldid=166609 5* 03Yayimhere2(school) 5* (+1) 10
> 1761313496 449671 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166623&oldid=166622 5* 03Yayimhere2(school) 5* (+102) 10/* Computational class */
> 1761314617 779185 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166624&oldid=166623 5* 03Yayimhere2(school) 5* (+556) 10first Uncompetition program!
< 1761314657 100779 :Yayimhere!~Yayimhere@197.184.68.59 JOIN #esolangs * :[https://web.libera.chat] Yayimhere
< 1761314674 265515 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :hello people, ive been on and off for a while, but now ill be more permanently on!
< 1761314807 392853 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :I just subjected myself to the worst manual interpretation of a program ive ever done, but im happy I did so
> 1761315332 94728 PRIVMSG #esolangs :14[[07Talk:Crypten14]]4 N10 02https://esolangs.org/w/index.php?oldid=166625 5* 03 5* (+101) 10Created page with "so @yayimhere what do you think? -~~~~"
< 1761315401 100232 :vista_user!~vista_use@72.red-88-1-117.dynamicip.rima-tde.net JOIN #esolangs * :[https://web.libera.chat] vista_user
< 1761315407 835294 :vista_user!~vista_use@72.red-88-1-117.dynamicip.rima-tde.net CHGHOST ~vista_use :user/DOS-User:11249
> 1761315459 633150 PRIVMSG #esolangs :14[[07Talk:Crypten14]]4 10 02https://esolangs.org/w/index.php?diff=166626&oldid=166625 5* 03Yayimhere2(school) 5* (+259) 10
< 1761315478 221154 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :hello, vista_user (lol)!!!
< 1761315483 870807 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :yo.
< 1761315487 404774 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :if you think about it interphase g2 stage in mitosis is basically running `chkdsk` on the dna
< 1761315497 623399 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :(or `fsck`)
< 1761315507 59829 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :uuuuuuh
< 1761315509 45138 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :lol
< 1761315511 669333 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :ok
< 1761315537 473006 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :literally check it for errors
< 1761315547 761309 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :basically what both fsck and chkdsk do
< 1761315566 101079 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :what is fsck?
< 1761315579 606515 :int-e!~noone@int-e.eu PRIVMSG #esolangs :"file system check"
< 1761315596 599857 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :and chkdsk?
< 1761315617 494592 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :check disk
< 1761315620 531890 :int-e!~noone@int-e.eu PRIVMSG #esolangs :"check disk", this one is for dos and windows
< 1761315631 752531 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :literallh same command but batch instead of bash
< 1761315652 97367 :int-e!~noone@int-e.eu PRIVMSG #esolangs :fsck is unixoid
< 1761315676 895379 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :(yes, fsck can be more stuff other than a way to avoid the f word in moderated chatrooms lol)
< 1761315690 562201 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :well I cant check for errors lol
< 1761315707 810752 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :cuz I dont have much knowledge of bash/batch nor dna
> 1761315716 782265 PRIVMSG #esolangs :14[[07Talk:Crypten14]]4 10 02https://esolangs.org/w/index.php?diff=166627&oldid=166626 5* 03Yayimhere2(school) 5* (+50) 10
< 1761315728 159228 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :it was a joke on both biology and computing either way
> 1761315731 59371 PRIVMSG #esolangs :14[[07Crypten14]]4 M10 02https://esolangs.org/w/index.php?diff=166628&oldid=166583 5* 03 5* (+255) 10Notes on similarity to BF
< 1761315731 656207 :int-e!~noone@int-e.eu PRIVMSG #esolangs :vista_user: So what happens if I don't think about it? does that accelerate cell or organism death?
< 1761315768 640256 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :lol
< 1761315787 439649 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :int-e: im not sure
< 1761315813 240643 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :im not a scientist (not yet at least) im just some high school student
< 1761316201 392170 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :b_jonas: Maybe I missed something, but K' x y = y; K I y = I; so KI isn't K'. I just woke up though, so maybe I'm not fully loaded yet.
< 1761316280 520722 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Oh, hello, K I y z = I z; so KI is a rank-2 combinator. I see. Yeah, not awake yet.
< 1761316348 953642 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :That said, you're right about what I said in the past. If that's accurate then you're right that Smullyan won't have the answer. Thanks for recalling that; my memory doesn't actually work right, so I don't recall.
< 1761316410 657553 :int-e!~noone@int-e.eu PRIVMSG #esolangs :vista_user: it was a play on words ("if you think about it...")
< 1761316426 558308 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :oh
< 1761316447 649517 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :(im bad at those...blame austim)
< 1761316453 593375 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :*autins
< 1761316458 113485 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :*austinm
< 1761316461 824227 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :*autism
< 1761316468 725533 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :wow
< 1761316469 643996 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :finally
< 1761316480 631941 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :(ffs i cant tyep)
< 1761316480 960041 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :tbh ive done that a few times
< 1761316496 600545 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :*teyp *ytep ect ect
< 1761316501 228139 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :lol
< 1761316513 761071 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :is that mean?
< 1761316526 919583 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :in a discord server im in typo got misspelled as tyop 11 times
< 1761316534 943214 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :8 of them was me
< 1761316543 860159 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :ddamn
< 1761316548 326925 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :*dammn
< 1761316552 540002 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :*daamn
< 1761316556 980567 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :*daaaaaaaaamn
< 1761316558 401519 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :lol
< 1761316562 291844 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :lol
< 1761316574 265063 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :NO!
< 1761316577 760170 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :esolangs!
< 1761316579 887034 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :lol
< 1761316581 86450 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :And that's what typing class is for. It's not fun but it pays off.
< 1761316591 367401 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :yes
< 1761316610 516103 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :but im on a *phone* right now
< 1761316625 869259 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :im laying in a very bad position for typing right now
< 1761316637 401006 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :(when inmake the mosy typso is when im on a pjone(
< 1761316640 15879 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :)
< 1761316649 170390 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :) for teh other oen
< 1761316652 620347 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :the (() is crazy
< 1761316660 540530 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :i fixde it
< 1761316664 145786 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :great
< 1761316678 380287 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :(()) there's a language of that name
< 1761316696 381687 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :is ir an alt name for lisp? /j
< 1761316734 680999 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Eventually your backs won't permit that. I'm at a standing desk with an ergonomic-split keyboard and I take breaks to stretch my hands and arms.
< 1761316742 241167 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :why is lisp so popular within esolangin'?
< 1761316748 762849 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :korvo: yea I know
< 1761316767 766776 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :idk but theres always teh joke thta lisp = ()(())(()())()()
< 1761316773 341079 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :lol
< 1761316779 133554 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :even outsidevesolangign
< 1761316810 578728 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :(yes, i took teh time to acytually match the parens!)
< 1761316821 500392 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :great!!!!
< 1761316824 175022 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Why think that Lisp is unpopular? A company called ITA used Lisp (SBCL, I think) to revolutionize how airline booking worked; they were acquired by Google, forcing Google to maintain a Lisp application for decades.
< 1761316847 490452 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :wow, I didnt know!
< 1761316867 405235 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :I think the reason is in danish programming circles rarely use LISP
< 1761316885 985227 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :S-expressions are simple. Eventually, after writing many parsers, you will come to appreciate that a Lisp parser takes less than 100 LOC and can be memorized.
> 1761316904 620832 PRIVMSG #esolangs :14[[07Talk:(())14]]4 10 02https://esolangs.org/w/index.php?diff=166629&oldid=130205 5* 03Yayimhere2(school) 5* (+189) 10
< 1761316918 159259 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :i never said it was complicated, onlynthat it has A LOT of parens
< 1761316963 437468 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Lisp has as many parens as, say, Python. Whenever Lisp writes (f x y), Python writes f(x, y).
< 1761316996 441637 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :its a visual thing, I think
< 1761317018 144809 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :It just looks like more parens because they pile up at the beginning as well as the end, as in ((f x y) z). But there's still a pileup in Python; f(x, y)(z) has it in the middle of the expression.
< 1761317030 644746 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :yes
< 1761317078 856970 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :i also did say it was a common joke
< 1761317094 162461 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :you could say its a common lisp joke!
< 1761317113 863219 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :(im so funny (no im not))
< 1761317122 540472 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :(())
< 1761317142 208097 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :You're fine. Y'all're still learning about the different possibilities; it hasn't yet clicked that most languages are bad.
< 1761317154 886224 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :lol
< 1761317199 748601 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Like, yes, Lisps are bad. But the popular languages that people use all the time are also bad. So why point and laugh at syntax? I think that it's more about social acceptability than what languages actually represent.
< 1761317218 693348 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :yes, it Is, infact
< 1761317247 649507 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :i never said it was bad per se. there are objectively shitty languages thpugh
< 1761317253 639413 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :C++ and C are bad too, but you'll see enormous numbers of people defending them and their memory-unsafety purely out of selfishness and machismo. You'll hear piles of untruths: C is low-level, C is efficient, C is safe and you're just a bad programmer, etc.
< 1761317262 222912 :int-e!~noone@int-e.eu PRIVMSG #esolangs :korvo: you can use K' = S (S (K K) I) if you want a more faithful simulation
< 1761317263 276891 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :such as malbolge
< 1761317271 611776 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :i was about to say
< 1761317285 79906 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :uuuuuh, Uncompetition.
< 1761317293 476522 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :(malbolge is intentionally bad)
< 1761317311 375931 :int-e!~noone@int-e.eu PRIVMSG #esolangs :but K' = K I is "good enough" for many purporses because any reduction that uses K' x y -> y can be simulated through K I x y -> I y -> y
< 1761317351 500116 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :vista_user: thats why we usually dont mention esolangs in such discussion
< 1761317355 279257 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine
< 1761317361 368052 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :ik
< 1761317365 160020 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :but i had to
< 1761317366 848996 :int-e!~noone@int-e.eu PRIVMSG #esolangs :But you do get different normal forms.
< 1761317368 446239 :vista_user!~vista_use@user/DOS-User:11249 PRIVMSG #esolangs :for the lulz
< 1761317370 725741 :sftp!~sftp@user/sftp QUIT :Ping timeout: 245 seconds
< 1761317375 211458 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :int-e: Ha, that's fair. Thanks.
< 1761317417 330690 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord
< 1761317553 498321 :Yayimhere!~Yayimhere@197.184.68.59 QUIT :Quit: Client closed
< 1761318081 101419 :Yayimhere!~Yayimhere@197.184.68.59 JOIN #esolangs * :[https://web.libera.chat] Yayimhere
< 1761318162 675810 :vista_user!~vista_use@user/DOS-User:11249 QUIT :Remote host closed the connection
< 1761318397 511542 :citrons!~citrons@alt.mondecitronne.com QUIT :Ping timeout: 260 seconds
< 1761318731 313314 :citrons!~citrons@alt.mondecitronne.com JOIN #esolangs citrons :citrons
> 1761319122 973208 PRIVMSG #esolangs :14[[07UnCompetition14]]4 10 02https://esolangs.org/w/index.php?diff=166630&oldid=166624 5* 03Yayimhere2(school) 5* (+32) 10/* Description */
< 1761319914 30571 :Yayimhere!~Yayimhere@197.184.68.59 QUIT :Quit: Client closed
< 1761320241 974404 :int-e!~noone@int-e.eu PRIVMSG #esolangs :korvo: why did I make it so complicated? K' = S K works.
< 1761320332 94255 :int-e!~noone@int-e.eu PRIVMSG #esolangs :In any case, it's a very ad-hoc trick; S M x y -> M y (x y) doesn't fit most binary combinators.
< 1761320384 101535 :Yayimhere!~Yayimhere@197.184.68.59 JOIN #esolangs * :[https://web.libera.chat] Yayimhere
< 1761320445 307860 :simcop2387!~simcop238@perlbot/patrician/simcop2387 JOIN #esolangs simcop2387 :ZNC - https://znc.in
< 1761320545 577088 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :ok, i have an idea, and, I want some help to like "try" it
< 1761320547 563477 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :int-e: Sure. What's difficult for me is getting any sort of linear or cancellative behavior out of S. K' is technically cancellative, but in a seemingly-useless way.
< 1761320566 325798 :perlbot!~perlbot@perlbot/bot/simcop2387/perlbot JOIN #esolangs perlbot :ZNC - https://znc.in
< 1761320569 371672 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :int-e: yes, korvo said KI = SK already. but the question is the opposite, whether you can derive K from S and KI
< 1761320584 458245 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :or possibly from S and KI and I
< 1761320626 564270 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :S
< 1761320650 110853 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :we already know that all combinators can be derived from S and K and we know the general procedure to do it
< 1761320713 508179 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :K'S will give I, at least.
< 1761320760 44226 :int-e!~noone@int-e.eu PRIVMSG #esolangs :No; none of these erase their last argument, but K does. Formally, the right-most leaf of any expression is preserved by reductions in {S,KI,I}, so you can't have M x y -> x
< 1761320881 336615 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :int-e: hmm, so can you do something where there needs to be a dummy last argument, but you can still translate any program?
< 1761320898 468960 :int-e!~noone@int-e.eu PRIVMSG #esolangs :But maybe you can you have M x y z -> x z? That would be sufficient for simulation...
< 1761320915 980007 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(same thought, I was slow to type it out)
< 1761320926 813847 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :no, it wouldn't be sufficient because you also need some equivalent of S
< 1761321138 44809 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Well, depends on what you want; it would be sufficient for simulating head reductions which is all you need for checking whether a term reduces to, say, K.
> 1761321176 345649 PRIVMSG #esolangs :14[[07EXDotSF14]]4 M10 02https://esolangs.org/w/index.php?diff=166631&oldid=96899 5* 03Rudolph4268 5* (+1) 10Fixed a typo in the description for the "?" command
< 1761321229 816667 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :int-e: That convinces me. Yayimhere, does that make sense?
< 1761321279 880971 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :does what make sense?
< 1761321301 390824 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :Int-es latest message+
< 1761321302 692924 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :?
< 1761321304 477726 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :The system {S, K'} we discussed earlier is not complete; in particular it doesn't have K.
< 1761321341 525208 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :makes sense lol
< 1761321343 526755 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :cool!
< 1761321368 214258 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :int-e: Further, we might wonder about the left-most leaves. Is there a deeper reason why K and I yield K' but K' and I do not yield K? It might merely be left-to-right evaluation and the ability to extend the context to the right but not to the left.
< 1761321609 705120 :perlbot!~perlbot@perlbot/bot/simcop2387/perlbot QUIT :Quit: ZNC 1.9.1+deb2+b3 - https://znc.in
< 1761321609 776146 :simcop2387!~simcop238@perlbot/patrician/simcop2387 QUIT :Quit: ZNC 1.9.1+deb2+b3 - https://znc.in
< 1761321623 688680 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ACTION thinking KI should be named "kite"
< 1761321634 809009 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :lol
< 1761322107 234519 :Yayimhere!~Yayimhere@197.184.68.59 QUIT :Quit: Client closed
< 1761322176 100811 :Yayimhere!~Yayimhere@197.184.68.59 JOIN #esolangs * :[https://web.libera.chat] Yayimhere
< 1761322665 943354 :shikhin!~shikhin@offtopia/offtopian QUIT :Quit: Quittin'.
< 1761322762 324201 :shikhin!~shikhin@ahti.space JOIN #esolangs * :shikhin
< 1761322831 940484 :shikhin!~shikhin@ahti.space CHGHOST ~shikhin :offtopia/offtopian
> 1761322925 238904 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=166632&oldid=166447 5* 03C++DSUCKER 5* (+336) 10
> 1761322984 454609 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=166633&oldid=166632 5* 03C++DSUCKER 5* (+8) 10
> 1761323056 724988 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=166634&oldid=166633 5* 03C++DSUCKER 5* (+0) 10
< 1761323066 299749 :simcop2387!~simcop238@perlbot/patrician/simcop2387 JOIN #esolangs simcop2387 :ZNC - https://znc.in
> 1761323070 713613 PRIVMSG #esolangs :14[[0714]]4 10 02https://esolangs.org/w/index.php?diff=166635&oldid=166634 5* 03C++DSUCKER 5* (+1) 10
> 1761323176 151233 PRIVMSG #esolangs :14[[0714]]4 M10 02https://esolangs.org/w/index.php?diff=166636&oldid=166635 5* 03C++DSUCKER 5* (+2) 10/* Example: solve Erds-Straus conjecture */ big header -> small header
< 1761323550 467386 :perlbot!~perlbot@perlbot/bot/simcop2387/perlbot JOIN #esolangs perlbot :ZNC - https://znc.in
< 1761325346 774976 :perlbot!~perlbot@perlbot/bot/simcop2387/perlbot QUIT :Quit: ZNC 1.9.1+deb2+b3 - https://znc.in
< 1761325346 802216 :simcop2387!~simcop238@perlbot/patrician/simcop2387 QUIT :Quit: ZNC 1.9.1+deb2+b3 - https://znc.in
> 1761325934 436736 PRIVMSG #esolangs :14[[07Gilbert Leo Thulani14]]4 N10 02https://esolangs.org/w/index.php?oldid=166637 5* 03Yayimhere2(school) 5* (+1151) 10Created page with "Gilbert Leo Thulani, known on the esolang wiki as [[User:Yayimhere]], is an esolanger, and a musician, and makes a lot of art in general. this is some info about her/them/him(...NO!) == Programming specific interests == here's some things I like l
< 1761325991 8496 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yayimhere: Wrong namespace. Also, please pick one account and stick to it.
< 1761326016 826154 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :?
< 1761326034 542019 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :what
< 1761326060 471009 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :(also this is not a new account, just some more in depth info on me as a person/creator of esolangs)
< 1761326222 233150 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :What you wrote is appropriate for the user namespace but not the main namespace. Pages in [[:category:people]] are usually more subdued; see [[John Horton Conway]], [[Edwin Brady]], [[Gabriella Gonzalez]], or [[Ward Cunningham]] for examples.
< 1761326237 401146 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :oooh ok
< 1761326239 960332 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :sorryyyyy
> 1761326264 10799 PRIVMSG #esolangs :14[[07Gilbert Leo Thulani14]]4 10 02https://esolangs.org/w/index.php?diff=166638&oldid=166637 5* 03Yayimhere2(school) 5* (-1151) 10Blanked the page
> 1761326265 91211 PRIVMSG #esolangs :14[[07Talk:Crypten14]]4 10 02https://esolangs.org/w/index.php?diff=166639&oldid=166627 5* 03 5* (+274) 10
< 1761326268 967392 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :While I'm not a deletionist, I do struggle to think of notable work that you've produced. Please recall, from only a few months ago, that we generally expect folks at your age to be *learning* rather than *producing*.
> 1761326353 700001 PRIVMSG #esolangs :14[[07User:RaiseAfloppaFan392514]]4 M10 02https://esolangs.org/w/index.php?diff=166640&oldid=166593 5* 03RaiseAfloppaFan3925 5* (-5503) 10mite kure no kijaku sei ei e
> 1761326420 865032 PRIVMSG #esolangs :14[[07Talk:UnCompetition14]]4 N10 02https://esolangs.org/w/index.php?oldid=166641 5* 03 5* (+170) 10Created page with "===A question=== Wouldn't ~{''x''} force the existence of command ''x'' in the program? -~~~~"
< 1761326480 200681 :strerror!~strerror@user/strerror PRIVMSG #esolangs :The S(KI)I calculus :-)
< 1761326742 146150 :strerror!~strerror@user/strerror PRIVMSG #esolangs :I still feel it's TC because Sxyz shuffles y and z, though it would end up being messy because you can't clean up the trailing subterms
< 1761326742 953492 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yayimhere: In general, we do have a written policy about this; please read it. https://esolangs.org/wiki/Esolang:Authors
< 1761326853 102270 :Yayimhere!~Yayimhere@197.184.68.59 QUIT :Ping timeout: 250 seconds
< 1761326924 601068 :strerror!~strerror@user/strerror PRIVMSG #esolangs :.oO( Of course the real problem isn't anyone's age, just that it's no longer 1993 and the bar is much higher for what makes an interesting language )
< 1761326962 932684 :strerror!~strerror@user/strerror PRIVMSG #esolangs :Maybe the only way now is to invent them by accident, like what just happened
< 1761327057 743941 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Well, that doesn't quite track. Yay's produced quite a bit of garbage by putting a "lol xd random" spin on anything that they hear about. I understand why it happens, and I was once that age too; but I also recognize that I was very pretentious and had no idea what I was talking about, even as I was doing basic programming.
> 1761327079 751691 PRIVMSG #esolangs :14[[07WtE,teplw! but actually usable14]]4 10 02https://esolangs.org/w/index.php?diff=166642&oldid=165390 5* 03 5* (+567) 10
< 1761327096 971816 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :It's not much different from how learning a language does not make one a linguist. (Sorry Whorf, but strong Sapir-Whorf is bogus; learning Lojban does not make one a logician!)
< 1761329479 99871 :Yayimhere!~Yayimhere@197.184.68.59 JOIN #esolangs * :[https://web.libera.chat] Yayimhere
< 1761329491 928751 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :korvo: i sturggle to infer(?) what you mean by noteable
< 1761329564 134710 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yayimhere: Like, work which is known on its own for its own merits. Work that people know about before they know its author.
< 1761329621 933849 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :korvo: yea no I dont have any, but thats a popularity thing, to some extent
< 1761329662 488661 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :and for the learning not producing thing, the only reason I make esolangs is cuz I find it fun to work on. nothing else really
< 1761329694 744622 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yayimhere: I don't have any notable work either. Don't worry about it. The point is that an author page in the main namespace is helpful because it lists notable works; if somebody discovers an author via one route, then they should be able to discover related work by the same author.
< 1761329717 829870 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :korvo: yea, I get it!!!
< 1761329775 124118 :Yayimhere!~Yayimhere@197.184.68.59 PRIVMSG #esolangs :thanks for info:]
> 1761329963 78339 PRIVMSG #esolangs :14[[07User:Yayimhere/an esolang for my puter14]]4 10 02https://esolangs.org/w/index.php?diff=166643&oldid=151859 5* 03Yayimhere2(school) 5* (+114) 10
< 1761330222 689842 :Yayimhere!~Yayimhere@197.184.68.59 QUIT :Quit: Client closed
> 1761330389 551312 PRIVMSG #esolangs :14[[07User:Yayimhere/an esolang for my puter14]]4 10 02https://esolangs.org/w/index.php?diff=166644&oldid=166643 5* 03Yayimhere2(school) 5* (+88) 10/* thoughts for lang creation */
> 1761330528 854254 PRIVMSG #esolangs :14[[07User:Yayimhere/an esolang for my puter14]]4 10 02https://esolangs.org/w/index.php?diff=166645&oldid=166644 5* 03Yayimhere2(school) 5* (+49) 10/* thoughts for lang creation */
> 1761330615 391342 PRIVMSG #esolangs :14[[07-hacker14]]4 10 02https://esolangs.org/w/index.php?diff=166646&oldid=166169 5* 03Ivava 5* (+45) 10
> 1761331151 393033 PRIVMSG #esolangs :14[[07User:Yayimhere/Sandbox/14]]4 N10 02https://esolangs.org/w/index.php?oldid=166647 5* 03Yayimhere2(school) 5* (+57) 10Created page with "this is me, trying to prove TC!!! seems feasible lol."
> 1761331203 659194 PRIVMSG #esolangs :14[[07User:Yayimhere/Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=166648&oldid=166566 5* 03Yayimhere2(school) 5* (+38) 10
> 1761331615 537052 PRIVMSG #esolangs :14[[07User:Yayimhere/Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=166649&oldid=166648 5* 03Yayimhere2(school) 5* (+4) 10/* */
< 1761331837 622780 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :korvo: but isn't "kite" used for some other bird already?
> 1761332182 835202 PRIVMSG #esolangs :14[[07User:RaiseAfloppaFan3925/Sandbox14]]4 M10 02https://esolangs.org/w/index.php?diff=166650&oldid=159591 5* 03RaiseAfloppaFan3925 5* (+2485) 10TETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETOTETO
< 1761332616 778790 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :b_jonas: It doesn't seem like it. Additionally, Smullyan's character says of their Church encoding, "For t, I take the kestrel K; for f, I take the bird KI." This is in the middle of one of two sections that has multiple uses of KI.
< 1761332721 797207 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :The section on arithmetic notes that V(KI) is useful, but focuses on the vireo V.
> 1761333094 434999 PRIVMSG #esolangs :14[[07Combinatory logic14]]4 10 02https://esolangs.org/w/index.php?diff=166651&oldid=164969 5* 03Corbin 5* (+167) 10/* Table of combinators */ Add two variations on S given by Smullyan.
< 1761333120 149769 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I did find two birds, phoenix and psi bird, in the nearby notes. So I do appreciate being sent back to the book.
< 1761333223 560962 :perlbot!~perlbot@perlbot/bot/simcop2387/perlbot JOIN #esolangs perlbot :ZNC - https://znc.in
< 1761333348 573269 :simcop2387!~simcop238@perlbot/patrician/simcop2387 JOIN #esolangs simcop2387 :ZNC - https://znc.in
< 1761333532 590275 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :Well I have an idea for an esolang, somewhat boring though. Brainfuck with I/O altered to make more sense in a mainframe context.
> 1761333571 227227 PRIVMSG #esolangs :14[[07User:Yayimhere/Sandbox/14]]4 10 02https://esolangs.org/w/index.php?diff=166652&oldid=166647 5* 03Yayimhere2(school) 5* (+589) 10
< 1761333572 94461 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :Easiest thing to do would be to have , bring in 80 characters across 80 cells
< 1761333595 579432 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :And . would.. hmm, not sure if 80 or 133 makes more sense. (Punch vs print)
< 1761334176 863198 :APic!~apic@apic.name PRIVMSG #esolangs :Good Night *
< 1761334260 305694 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name)
> 1761334526 595697 PRIVMSG #esolangs :14[[07Combinatory logic14]]4 M10 02https://esolangs.org/w/index.php?diff=166653&oldid=166651 5* 03Corbin 5* (+0) 10/* Table of combinators */ Alphabetize Greek letters.
< 1761334816 773831 :ais523!~ais523@user/ais523 PRIVMSG #esolangs : And that's what typing class is for. It's not fun but it pays off. ← I was technically formally trained in touch-typing, but I invented ending up inventing my own style which is very different from the one that's normally taught
< 1761334850 261045 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I don't keep my hands in a consistent position, I move them based on what I'm subconsciously anticipating that I'll need to type next
< 1761334880 741121 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: I have a pile of quirks from playing too much piano. The worst thing I do is Shift with the same hand that I'm keying rather than alternating.
< 1761334882 635706 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it is extremely fast compared to normal typing styles, but also has a somewhat higher error rate, so it only makes sense in situations where backspace is cheap/free (which wasn't true when typing was invented, but usually is nowadays)
< 1761334942 753220 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hmm, I experimented, and discovered that I was using the left shift key for all my shifting needs
< 1761334973 119835 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :there are exceptions, like typing $ or %, so I don't use the left shift key for absolutely everything, just most of it
< 1761334976 991833 :int-e!~noone@int-e.eu PRIVMSG #esolangs :how else would you sprint in video games ;)
< 1761335129 447732 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :on the subject of Lisp syntax – I think the primary issue with s-expressions and the parenthesis pileup is that a long row of grouping characters makes it harder for humans to mentally find the start and end of the groups, than if the grouping characters were less clumped up
< 1761335157 878230 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but this isn't really an essential issue because you could change Lisp to use m-expressions instead and nothing would really change (it was originally designed to use m-expressions, IIRC)
< 1761335189 997600 :Sgeo!~Sgeo@user/sgeo PRIVMSG #esolangs :ACTION wonders how Rhombus is going
< 1761335287 212431 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess my main real concern with Lisp is that I prefer non-scripting languages to be statically typed, but if you add static types to Lisp it gets rid of a lot of the theoretical elegance
< 1761335290 659150 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Empirically, the ]]] do pile up in M-expression languages like Wolfram. And the ))) pile up in Python too. Really, the issue is that we use a 1D grammar for trees that aren't 1D.
< 1761335351 742757 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: right, most serious programming languages nowadays have some sort of piping operator in order to resolve the most common case of that, but Lisp and Mathematica are both too old (actually Mathematica probably has one that isn't widely used)
< 1761335374 484286 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :...What *is* the Hausdorff dimension of a B-tree? This seems like something I should have seen before, but I don't know it offhand.
< 1761335439 80954 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in many cases this uses "method notation", piping with ., i.e. (add 1 (mul 2 (add 3 4))) becomes 4.add(3).mul(2).add(1)
< 1761335457 403569 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although, that transform swaps argument order, so ideally you'd also have a version that reverses argument order
< 1761335475 909498 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :functional languages also tend to have an operator for that but it usually has a different name; |> seems popular at the moment
< 1761335533 689671 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and of course pointfree programming is naturally full of transformations like that – you rarely get a parenthesis pileup in Haskell, for example
< 1761335609 921053 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(now I just realised that a significant proportion of Rust's non-borrow-related syntactic sugar is designed around avoiding the need to nest a lot of {})
< 1761335650 331774 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in a way this is a rejection of the Lisp philosophy – inventing special-cased syntax to avoid needing to nest the program too much is basically the opposite of what Lisp is about, because it makes introspection difficult
< 1761335708 988828 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hmm, and thinking about it, there's also the Prolog style: add(3, 4, A), mul(2, A, B), add(1, B, C)
< 1761335745 896011 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :despite being based on m-expressions, Prolog is almost completely immune to excessive nesting / rightward drift because it doesn't natively support nested predicate invocations, you have to manually sequence them
< 1761335759 729499 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but I'm not sure that the tradeoff that Prolog specifically makes is worth it
< 1761335779 641051 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I'm not exactly sure who started it, but by the 1970s the let-in style from maths seems to have become popular: let x = ... in f(x)
< 1761335785 747049 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(Prolog's syntax is regular enough and introspectable enough to make it possible to write Lisp-style macros in it, but in practice people don't bother)
< 1761335811 306080 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Execline forces this sort of un-nesting because it doesn't support $() inline shell. Instead we write: backtick -E x { ... } f $x
< 1761335826 987785 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: let…in style sort-of naturally falls out of the formalizations of this sort of language, it probably started with someone trying to translate a paper about a language to a concrete implementation
< 1761335873 986776 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :because the formalizations want the scope of a variable to be syntactically visible and properly nested, both the start and the end
< 1761335916 72782 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Also because left-to-right is a special reading order. In another buffer, the following execline: importas -iS V backtick -E exe { ${V}/call: $1 exe } $exe --add-fixed --recursive sha256 $2
< 1761335920 797298 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :C89's { int a; float b; /* code */ } also achieves that goal (by treating it as sugar for { int a; { float b; /* code */ } }), but it's a less obvious approach from the theory (and C++ and C99 endd up changing it)
< 1761335998 156108 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :execlineb and friends all start at the left and pop a fixed number of args, then exec() onto the rest of the args. Kind of like a stack, but usually not pushing, just popping. Substitutions are done by rewriting args; there's no substitution from envp, only from argv.
< 1761336068 80248 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: I was going to say it's kind-of like a queue without enqueuing
< 1761336077 846632 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :maybe I've been doing too much tag system programming
< 1761336103 447579 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in most languages that have that general style (e.g. Underload), there is a way to push onto the left-hand side (and this is used to implement loops)
< 1761336114 393772 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: You're on the same page. Execline's author explicitly thinks of argv as something that can be reused and exec() is merely a way to load fresh code onto a single argv under consideration.
< 1761336132 519942 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I expect execline to have one too
> 1761336174 143735 PRIVMSG #esolangs :14[[07Special:Log/delete14]]4 delete10 02 5* 03Ais523 5* 10deleted "[[02Gilbert Leo Thulani10]]": blanked by author shortly after creation
< 1761336175 603093 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :In Vixen terms, a single method activation only has a single process in memory; every exec() is temporarily activating a new method in the existing environment.
< 1761336216 969980 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: I don't really see the one process versus multiple process thing as being a defining feature of shellscript/execline
< 1761336252 849331 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in a way, shellscript is "better isolated" because you know that commands you run are unlikely to do anything to the rest of the script, whereas an execline command could make arbitrary changes to the trailing arguments
< 1761336342 281510 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but in practice execline is only being used with commands specifically designed for it
< 1761336400 614419 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and "external" commands are called using backtick and the like
< 1761336566 561151 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Sure. I think that the efficiency is more relevant; by not having to spawn any bashes, I can send multiple messages per second. I still haven't figured out exactly what kind of security model can work on top of this, but it will probably involve having some sort of privileged representation for paths.
< 1761336677 17166 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :my reaction to execline is pretty much along the lines of "the execline author's criticisms of sh are valid, but they would be addressed by changing to pretty much any programming language that's statically parsed, and there isn't a clear explanation of why execline uses the particular approach it does"
< 1761336703 771718 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :especially because execline isn't actually statically parsed, you have to rely on all the commands to follow the parsing conventions to make it work
< 1761336783 615310 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also, tail-exec is a bizarre way to implement a state machine, most languages have more efficient ways to implement them than that
< 1761336832 526243 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Oh, execline is purpose-built for s6, which is a fork of daemontools. One of the things I'm going to explore is how s6 service directories can be treated as Vixen objects, hopefully.
< 1761336997 290073 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it looks like execline's design was intended to keep the interpreter out of memory, in the belief that that would make things more efficient
< 1761337035 48499 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Still thinking about what you said about loops. Execline just doesn't have a stateful while-loop; not even envp is writable by the looped process. I ended up writing the one while-loop as a recursive call, which is actually pretty neat since it's for recursive parent lookup, but it is kind of a difficult limitation.
< 1761337058 699953 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but actually that just means that every execline command has to redo some of the interpreter steps (such as parsing blocks out of argv)
< 1761337111 373607 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh, I expected execline loops to work as in Underload, along the lines of "check a condition; if the condition is true, insert the content of a block at the start of the original argv (without removing this command or its arguments); if the condition is false, skip the block"
< 1761337159 331411 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it looks like loopwhilex doesn't quite work like that
< 1761337226 829212 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but the intuition is of an infinitely repeated program part, followed by a goto, i.e. while a {b} c can be thought of as meaning "unless a {goto label} b unless a {goto label} b unless a {goto label} b … label c"
< 1761337239 600103 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and then you can use the language's normal mechanisms for maintaining state
< 1761337301 222474 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(I don't think execline has a forward goto either, but it wouldn't be conceptually hard to add one to the programming model – backwards goto is of course incompatible)
< 1761337304 481657 :lynndotpy609!~rootcanal@134.122.123.70 QUIT :Quit: bye bye
< 1761337379 438159 :lynndotpy609!~rootcanal@134.122.123.70 JOIN #esolangs lynndotpy :lynn
< 1761337383 22664 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yeah. TBH I don't think I'm going to need any state in these little scripts. State would be useful for doing something big and orchestrated, but I might as well just write in Python or another non-shell language for that.
< 1761337409 213272 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :right, my other real concern about execline was "why not just use a scripting language that isn't shellscript"
< 1761337411 446477 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I do think that it's an obstacle for saying that we can replace all bash with execline. Execline can't replace 2000 lines of well-factored functions.
< 1761337418 685202 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although I think the answer to that would be "because the executables are big and complicated"
> 1761337441 929678 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166654&oldid=166592 5* 03RaiseAfloppaFan3925 5* (-1729) 10removed stupid thing
< 1761337460 802907 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and so the followup would be "why not write a scripting language that's a proper programming language but is small and simple?"
< 1761337481 996712 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :there's probably "market" pressure against doing that (i.e. few people think they need it), but it is something that would be useful
< 1761337551 12582 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I have considered writing my own Perl derivative with substantially fewer features (with the tradeoff being that it runs much faster)
< 1761337577 136255 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and a more consistent / less scary-looking syntax
< 1761337660 600402 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :That's the beauty of Smalltix. The methods can be anything with a +x permission bit. Symlinks work fine. The overall idea is to *defragment* the Unix system with a uniform interface.
< 1761337664 188592 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I would probably get rid of the sigils because a) they're the sort of thing that scare people off, b) the way Perl uses them is not really a good match for how programming in Perl actually works, and c) A Pear Tree looks really nice
< 1761337722 494247 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: Smalltix is sort of the opposite of what I want, though – I want a single executable which parses the script, possibly does a very fast compilation step, and then runs it itself
< 1761337857 478884 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess I'm looking at the Unix philosophy of having lots of small tools that each do one job well, then saying "why do these each have to be separate executables?"
> 1761337874 126987 PRIVMSG #esolangs :14[[07User:RaiseAfloppaFan392514]]4 M10 02https://esolangs.org/w/index.php?diff=166655&oldid=166640 5* 03RaiseAfloppaFan3925 5* (+858) 10travel back in time and retrieve the first sent message
< 1761338186 207790 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Sure. That's the batch-processing POV. It makes sense for plenty of workloads. Smalltix is more like a spreadsheet or video game; it's interactive and programmed from the inside.
< 1761338218 971026 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: oh, I see, you want to be able to change a running program (like you can in Smalltalk)
< 1761338275 708967 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oddly enough, what I wanted for my Perl derivative was similar but a bit different – I wanted to be able to see a program's variables at any point in its execution, and edit the program without losing the work it had already done
< 1761338306 452165 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but I wasn't thinking of it as live-editing a program, because I wanted to end up with a reproducible script that could be used to do the same job again in the future
< 1761338313 482226 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yeah. As a sysadmin, I want my machine to be a holistic system that doesn't have any hidden or opaque parts. In Jakubovich's framing, that means no binaries; in Kell's framing, that means no custom memory allocators. But I'm not being dogmatic; instead I'm imagining a human process which refines a system as it runs to make it object-oriented without discarding any working binary.
< 1761338318 708213 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :if you live-edit a program you can end up with a result that couldn't be produced by the final version of the program
< 1761338370 452394 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess this is the equivalent of incremental compilation, except for running the program, so I'd call it "incremental execution"
< 1761338389 170905 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :As a Perl hacker, do you know the story of atmospheric programming? It seems to no longer be online.
< 1761338395 768762 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I don't
< 1761338446 985877 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: but lisp has user-definable macros, so it is about inventing whatever special-cased syntax you want
< 1761338453 897656 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :A one-person consultancy had an utterly cracked way of programming. Each client got a fork of the main code, each fork had all variables as globals, and each query was "atmospheric": it pulled globals into the DB queries as needed to satisfy the client's requests.
< 1761338464 281624 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: yes, but people normally don't use it for that
< 1761338467 609603 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :No version control, IIRC. Lots of security issues.
< 1761338487 985216 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :plus lisp has first-class functions, which makes it more likely that you can express such things even without macros
< 1761338494 896857 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :it even has inline lambdas
< 1761338508 38520 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: heh, reminds me a lot of INTERCAL (and CLC-INTERCAL in particluar, which doesn't quite work like that but feels like it's evolving in that direction)
< 1761338594 818879 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although I originally misinterpreted it as the DB being shared between all customers
< 1761338599 453042 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Found it: https://perlhacks.com/2012/03/you-must-hate-version-control-systems/ He's still going! https://www.perl.com/article/my-guilty-perl-obsession/
< 1761338606 50964 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :on the more esoteric side, Enchain or other languages with similar syntax are technically a way to avoid the pileup of parenthesis, though not a practical way because the cure is worse than the original symptoms
< 1761338631 403449 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but it's at least something we should examine, even if to find out that it's not worth
< 1761338641 328124 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :"The side you don’t know is that pipelines is what I’ve coined “atmospheric programming”, which is going to take some describing. If you imagine the difference between an object-oriented fully scoped world, and a flat file where everything is a global variable, sming the pendulum all the way further. Not only is everything global, but everything’s structured to be accessed from everywhere."
< 1761338752 486386 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :wait what? are the sigils really what used to scare people off perl? I don't think that's true.
< 1761338814 692955 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :"and edit the program without losing the work it had already done" => the hard part is how to combine that with lambda closures. I was thinkign about that recently.
< 1761338820 948413 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: I don't think they're the main thing, but they are the main thing that's visible in simple programs
> 1761338849 704012 PRIVMSG #esolangs :14[[07Mango14]]4 M10 02https://esolangs.org/w/index.php?diff=166656&oldid=166654 5* 03RaiseAfloppaFan3925 5* (+90) 10Added my implementation (still a stub implementation)
< 1761338862 468996 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I've done enough A Pear Tree programming to realise just how different the programs look if you remove the dollar signs
< 1761338898 648899 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(A Pear Tree still requires you to use $ sigils on variables in cases that would otherwise be ambiguous, but you can omit them in simple cases)
< 1761338944 677922 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :wait, that's a different A Pear Tree than I was thinking of
< 1761338944 793982 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Doesn't Perl 5 require the sigils to specify how the variable is loaded from storage? Or is it just an affectation inherited from awk?
< 1761338958 498370 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and in simple programs, as long as you do flow control entirely using eval rather than more sensible ways, it polyglots pretty well with Python
< 1761338962 572443 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :are there two languages with a similar name?
< 1761338983 483919 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :no, it's the same Pear Tree, it just does multiple apparently unrelated changes to perl
< 1761338996 928557 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: so Perl sigils specify what type the variable has, where there are three types: scalars, arrays, and maps (which Perl calls hashes)
< 1761339039 298577 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but, Perl has both arrays and array references, and an array reference is a type of scalar
< 1761339103 84057 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and array references are generally much more useful than arrays, and also you don't need an existing array to create them (you can just allocate them at will), so a common Perl programming style uses only array references and map references, rather than array-typed and map-typed variables
< 1761339135 638699 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this means that despite multiple sigils existing, $ (scalar) is overwhelmingly the most commonly used one, and the others are, whilst not actually deprecated, mostly unused nowadays
< 1761339154 132832 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Right, I recall code doing lots of $(this)->meth(); sorts of shapes.
< 1761339231 987610 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I haven't ported Smalltalk or Self to Vixen. I just don't like the syntax enough. I think Self makes a lot of sense at a REPL but not as an orchestration language on disk.
< 1761339250 156152 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :a Perl object is implemented as a pair of a package (basically the equivalent of a class) and a place to store the object's data
< 1761339269 458338 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and the place to store the data has to be a scalar, in practice it's usually a map reference, and usually an array reference if it isn't a map reference
< 1761339287 245256 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which means that Perl objects are exclusively accessed using $, the other sigils wouldn't work for them
< 1761339299 592016 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :"and also you don't need an existing array to create them" => that's a great way to make the sort of mistake where your program seem to work well but later dies when an array happens to be empty. I've made such errors without perl, but I think if you try to program perl in the style that you suggest they'll be more likely.
< 1761339310 415785 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(that said, for my "simple incremental execution Perl" I don't think I'd support objects)
< 1761339351 274301 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: well this style usually creates arrays with […] and hashes/maps with {…}, those don't die when the array is empty
< 1761339361 66020 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: and now we might have to qualify that statement because more recent perl is adding some different kind of OO as well
< 1761339390 542013 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Curious, yet another fat-pointer language.
< 1761339399 962269 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: oh, I was thinking you'd just { push @$x, $y; } inside a loop without initializing $x
< 1761339410 42126 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: that's a good way to think about it, but Perl pointers are stupidly fat even without that
< 1761339499 161176 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: or, and this is the way I encountered the bug in non-perl, you { push @{$x{$z}}, $y; } inside a loop, then later try to use @{$x{$z}} which fails if you never pushed with that particular $z
< 1761339529 80926 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: now I'm wondering how hard it would be to just simply make that case work
< 1761339553 74828 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it might be as simple as "indexing undef returns undef"?
< 1761339563 324031 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Oh, I don't mean it to be a bad thing. Or maybe it's a dialect thing; in USA lingo, we would say that a pointer is not "stupidly fat" but "dummy thicc". But to me a fat pointer is just a pair (script, closure) or (behavior, locals) or (class, attributes) or (vtable, struct) or...
< 1761339596 816301 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: I wasn't taking you as implying it was a bad thing
< 1761339604 70103 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :And it seems like they're key to so many languages. D, Go, and Rust all rely on fat-pointer strings. Cello calls itself "a fat-pointer library".
< 1761339609 115603 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I was just thinking that it was the obvious approach for Perl because pointers stored so much data there already
< 1761339615 724710 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: it's kind of a tradeoff. perl is already making undef semi-silently work as a number or string. you can make it work as a ref to an empty array too, but eventually you'll get more bugs where something is accidentally uninitialized and you don't notice because perl doesn't warn you than how much bugs you have now from where you meant somethign to be an array ref but perl didn't allow it
< 1761339656 810622 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :arithmetic on undef gives a warning, right? which in simple programs is IME usually a false positive
< 1761339671 374205 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :usually yes, but there are some exceptions
< 1761339721 563752 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :in particular you can { $x += $z; } in a loop, then use $x, and if the addition never ran then you get a false warning
< 1761339735 624580 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess there's also the extreme approach of unifying all the types (which is the thing I like about old versions of Perl)
< 1761339752 930081 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's easy enough to see how an array and a map could be the same type (Lua does that)
< 1761339770 733940 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and it's also easy to see how an array and string could be the same type (a string could be an array of character codes)
< 1761339799 770701 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :with this approach, undef would be an empty string, which logically seems reasonable
< 1761339837 345073 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :automatic coercions would be very weird, though, you'd get things like "abc"[1][1] == 8
< 1761339850 211535 :tromp!~textual@2001:1c00:3487:1b00:d88f:2255:14bf:ec80 QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1761339862 381373 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :some of that wouldn't be compatible with existing perl
< 1761339872 501041 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I know, I'm not trying to be compatible, just inspired
< 1761339917 811090 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think this unify-everything approach would make sense for a golfing language but not so much for practical use
< 1761339966 103793 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :undef as "" might make sense practically, but also might be a big mistake (it reminds me a lot of Go's zero values which I think are probably a mistake)
< 1761339985 102246 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Well, there are two fairly popular systems that have "everything is a char" and "everything is an octet" respectively, but I get what you're saying: it's not maintainable to only deal in bytes.
< 1761340013 622951 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that said, the "exists" operation seems wrong, it's needlessly confusing to have both "undefined" and "nonexistent" as possible map values
< 1761340041 634594 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so I think the language should at least get rid of one of those options, and I'm not sure which one makes more sense to remove
< 1761340071 816187 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :now that I've been writing programs in a dynamical language in a way where I want them to be maintainable for years, I want types *less* unified rather than more, in order to detect mistakes earlier
< 1761340081 77835 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :even with dynamic typing I lean that way
< 1761340082 295002 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(when I want to implement a set in current Perl, I normally do it – for efficiency reasons – as a map where a nonexistent value means not included, and an undefined value means included – but this is really confusing in the code)
< 1761340116 625054 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: so I really like the approach of strings and integers being treated as the same type and changing based on the operator you use
< 1761340143 105454 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think this is better than the Python/JS approach of tracking what type is used for the value and having the operators act differently according to it
< 1761340172 125699 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but I also think it's probably correct to error if the operator doesn't match the data being stored
< 1761340175 416122 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Lua does that, it doesn't distinguish between a key that's not in a table and a key where the associated value is nil. So do Factorio circuit network by the way, no difference between no value or zero value.
< 1761340197 204629 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :e.g. I am happy with "123" + "456" = 579, but not "123a" + "456" = 579
< 1761340252 3509 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ooh, perhaps the correct approach is to treat undef, empty array, and empty map as all equivalent, but make them different once you start storing data in them
< 1761340278 510767 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: there could be a middle option where you can format a number to a string implicitly (useful to quickly print numbers for debugging) but you need an explicit conversion to parse a string as a number
< 1761340296 65144 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: well Perl is often dealing with numbers read from files or pipes
< 1761340319 175518 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I definitely don't want the program to silently change additions into concatenations because I forgot to change one of those from a string to a number
< 1761340334 707719 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and for scripting uses, I don't really want to explicitly cast either
< 1761340370 155466 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but perhaps the approach would be to add, e.g., a way to regex capture as an integer
< 1761340390 855927 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :yeah, that would make sense
< 1761340395 865239 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :thus forcing the parsing step to exist (and even making it statically checkable), but reducing the syntactic overhead
< 1761340469 523810 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :there's probably a place for everything, I'm just leaning to more explicitness because of what programs I've had to maintain recently.
< 1761340481 135342 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :they involve a lot of reading and writing text files.
< 1761340486 638414 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the ideal is lightweight explicitness which happens even without you doing anything
< 1761340493 517685 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :type inference is a good example of that
< 1761340536 314655 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :now I'm wondering whether Perl with type inference is even possible, or whether it encounters heterogenous data too often
< 1761340712 455514 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :you would probably need two types of map, a tuplish one where the set of keys were fixed and each key could have a different value type, and one where all the values had the same type but the keys could be arbitrary
< 1761340715 856118 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(and likewise for arrays)
< 1761341508 89659 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :I think that sigils are helpful in some programming languages, for several purposes such as avoiding conflicting with keywords
< 1761341612 592963 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I liked Neighbors' convention for META II: the keywords all start with a sigil! In their case, it was '.' which led to me thinking of the keywords as methods/attributes of some builtin object with an empty name "".
< 1761341644 664797 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :zzo38: Enchain will use what I think counts as sigils, % and & , to denote that you're defining a function instead of calling it
< 1761341659 820920 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :they're still sigils if they go *after* the name, right?
< 1761341766 993316 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :I would say it is still sigils whether it is before or after
< 1761341809 221210 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ok, then these are sigils because you have to write them immediately after the function name, you can't put whitespace between them because that changes the meaning
< 1761341819 889422 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: in Algol-68, ". before keywords" is the portable convention for how you write keywords
< 1761341851 970599 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which is used to solve the bootstrapping problem of "how can I tell the compiler how I want to write keywords, without knowing what the keyword syntax is"
< 1761341886 104617 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that said I don't think modern Algol-68 implementations actually follow that rule, but maybe they do
< 1761341893 272424 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :doesn't fortran use dots to write numeric compare operators?
< 1761341902 109410 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :some dialects at least
< 1761341911 955260 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I may be confusing fortran with something else
< 1761341919 857387 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(the other two rules you can use are "keywords in uppercase" and "any sequence of letters that could be a keyword is" – the latter was combined with an underscore sigil to unkeywordise things)
< 1761341950 491024 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I'm also wondering whether the latter invented the use of underscore to replace spaces in variable names
< 1761341953 213045 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :or whether that's older
< 1761341961 283032 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: .GT. and the like, I think
< 1761341965 184330 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :"any sequence of letters that could be a keyword is" => how many two-letter keywords are there?
< 1761341968 879395 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but that has dots at the start and end, rather than just the start
< 1761341970 370148 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: TIL! That makes a lot of sense as far as history.
< 1761341989 470209 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :There is "if" and "do" in C are keywords with two letters, as well as many longer keywords
< 1761341995 994455 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: I think "if" is a keyword, I'm not sure about "of", I can't immediately think of any others offhand but there probably are some
< 1761342016 805052 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I haven't looked at Algol-68 for a while
< 1761342064 453517 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :In some programming language, does have "of", "in", "to", and "on" also as keywords
< 1761342068 764578 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: https://en.wikipedia.org/wiki/Stropping_(syntax)
< 1761342072 808827 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :(I don't know about ALgol specifically)
< 1761342084 799176 :strerror_r!~strerror@user/strerror JOIN #esolangs strerror :ZNC - https://znc.in
< 1761342116 125142 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :huh, this article suggests that the reason that prefix . was used was so that it would work in 6-bit character sets
< 1761342132 464165 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which I didn't know but makes sense
< 1761342135 401106 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :once you have a large portion of `do if or is no in to of by as on at` as keywords, it starts to get hard to invent good variable names
< 1761342149 661966 :strerror!~strerror@user/strerror QUIT :Ping timeout: 260 seconds
< 1761342206 817223 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :the one I usually ran into is trying to use `if` for an input file handle and `of` (or `log`) for an output file handle
< 1761342308 72732 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: I've accidentally used `i8` as a variable name in Rust in the past
< 1761342322 305108 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this is the only time where variable names and type names being in different namespaces has actually been useful
< 1761342338 625829 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: oh, the one that really bit me is `j0` as a function name in C.
< 1761342352 801559 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(that said, IMO Rust should have used titlecase names for its primitive types so that variable name / type name clashes couldn't happen in program that used normal capitalisation style)
< 1761342369 752814 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: they should have called that 8i though, or else should have made it a normal identifier rather than a keyword
< 1761342377 524791 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :NetHack has a clash with the standard library on "yn" I think
< 1761342389 921378 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(and with C++ keywords on "class")
< 1761342435 493525 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :Some of my C programs also use "class" as the name of a variable or a field of a structure, but it is not C++ so it is OK
< 1761342515 672377 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :C keywords actually mostly hit the sweet spot of being clear whilst being unlikely to be a variable name
< 1761342531 141613 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :especially "struct" and "enum", those are really good keywords
< 1761342557 278165 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :some are not so good, like "long"
< 1761342578 994885 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this implies that maybe truncated words are a good choice for keywords
< 1761342827 11718 :tromp!~textual@2001:1c00:3487:1b00:d88f:2255:14bf:ec80 JOIN #esolangs * :Textual User
< 1761343050 38045 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :it's not just the casing that's wrong. whether it's called i8 or I8, it should be an ordinary namespaced name in the prelude that you can shadow, not a keyword. theres' no reason why it should be a keyword. they learned the wrong lesson from C or C++ there. same for true and false, those should be ordinary enum constructors.
< 1761343061 281652 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: it isn't a keyword
< 1761343077 108747 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :why isn't it namespaced then?
< 1761343086 210615 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :is it like a weak keyword?
< 1761343145 29079 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Rust normally uses prelude imports for that sort of thing (i.e. your program has an implicit «use core::option::Option as Option;» as the start) but I'm not sure whether it does that for primitives
< 1761343217 236389 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :https://doc.rust-lang.org/nightly/std/prelude/index.html should list all the names of the prelude. Option is there; i8 isn't
< 1761343243 953083 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :so if i8 isn't a (possibly weak) keyword then I don't know what it is
< 1761343258 781500 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it could just be an identifier in the global scope, I guess
< 1761343378 721778 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: it definitely isn't a keyword: https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=1a97b4fab7c45582af9a27e3d2d44ff0
< 1761343401 990882 :tromp!~textual@2001:1c00:3487:1b00:d88f:2255:14bf:ec80 QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1761343404 479804 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(the «r#» prefix is how you create an identifier with the same name as a keyword, that isn'ta keyword)
< 1761343654 127072 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ais523: I don't think it's in the global scope, firstly because there are only crates there, secondly because you can't call it ::u8
< 1761343691 11687 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :maybe it's just a special case that's inconsistent with the rest of the language, then
< 1761343692 621649 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :it seems as if it's imported into every namespace as if it were in the prelude
< 1761343713 537063 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but can be shadowed like anything in the prelude
< 1761343715 574044 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :I think would be better to have sigils indicating stuff that is not keywords, or use other signs or formatting indicating if it is or not keywords, or to not have reserved words even if they are keywords, depending on the use
< 1761343724 18951 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :because it's imported as if it were a wildcard import
< 1761343840 488882 :zzo38!~zzo38@host-24-207-46-238.public.eastlink.ca PRIVMSG #esolangs :(I think LLVM uses sigils to indicate stuff other than keywords)
< 1761343890 65075 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I like register sigils in asm because they avoid the problem of a variable and register having the same name
< 1761343922 282922 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :especially because new registers get introduced over time, e.g. if I had a variable named zmm0, that would have been fine on old assemblers but might break on newer ones
< 1761343926 55187 :Sgeo_!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname
< 1761344095 955465 :Sgeo!~Sgeo@user/sgeo QUIT :Ping timeout: 240 seconds
< 1761344301 476461 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :the explanation that was current when I was active was "you know what would make a programming language easier to learn? case and gender"
< 1761344403 522337 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :sorear: was that intended sincerely or sarcastically? I know that many people find learning word gender to be one of the hardest parts of learning languages that have it, because it's basically just an extra boolean you have to memorise along with every word
< 1761344425 871787 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :at least case has simplifying aspects in addition to complicating aspects
< 1761344484 102076 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :fwiw I'm not convinced that sigils generally are bad, but I don't think they benefit modern Perl in particular because almost everything is a scalar
< 1761344502 887240 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :perl 5 does not have fat pointers. it has fat *variables*. bless attaches metadata to the memory location (SV) like a tie would
< 1761344537 809195 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :100% sincere with maybe a touch of self-deprecation
< 1761344541 863454 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ah, you are right (although programs are in practice nearly always written in such a way that the distinction is not observable)
< 1761344585 831472 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Perl has so much metadata on everything that it is hard to remember where in particular any given datum is stored
< 1761344700 936581 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :I did _write_ one...
> 1761344985 621291 PRIVMSG #esolangs :14[[07Fat pointer14]]4 N10 02https://esolangs.org/w/index.php?oldid=166657 5* 03Corbin 5* (+1948) 10Stub for a recurring concept that isn't properly addressed on WP.
< 1761345147 682698 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: I'd caveat that the extra data in a fat pointer isn't always a pointer, it just needs to contain "type" information generally, but sometimes that's generics rather than a type name expressed as a vtable
< 1761345192 82776 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Rust slices are only accessible via fat pointers that specifies the length they would have if interpreted as an array, for example (which is a numerical generic rather than a vtable)
< 1761345254 453008 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Sure. I think of those as degenerate cases of the general concept, though; they're just more specialized.
< 1761345295 682141 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hmm, I guess you can view the slice length as a sort of compressed pointer that stores the entire data of its target inside the space that would otherwise be used for the pointer itself
< 1761345309 341809 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :The first component is what we call "green" in JIT theory; it's the component that we want to hold constant and "differentiate with respect to", so to speak.
< 1761345309 458706 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :how about fortran multidimensional slice descriptors
< 1761345311 845982 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :like, we use the number 5 as a compressed version of "a pointer to a vtable for a length-5 array"
< 1761345618 170551 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hmm, is there a standard name for this sort of pointer/reference-like thing where the thing that is being referenced might actually exist in memory, or might just be generated on the spot?
< 1761345781 559425 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :laziness?
< 1761345845 38724 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I don't think it's quite the same
< 1761345849 389362 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it is similar though
< 1761345872 856057 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :for a lazy pointer/reference, I would expect the target to be generated on first use and then remain in memory, rather than being generated on every use
< 1761345980 368805 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :c++, python, and self are all canonically thin-pointer systems where you either have types at compile time, or the referent of a pointer knows its runtime type because it has a vtable/metadata...
< 1761345985 445479 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :"proxy", "facade", "becomer" (https://gbracha.blogspot.com/2009/07/miracle-of-become.html)
< 1761346093 340763 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :there's a bit of nastiness around c++ multiple inheritance where sometimes an object has to have multiple vtable pointers and seemingly no-op coercions need to offset the object pointer to point at a different vtable pointer, but everything is still thin
< 1761346106 396458 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Isn't Python canonically fat? The `type` allocator produces objects with a `__class__` and `__dict__`; those are the first and second component of the standard fat pointer.
< 1761346129 778912 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :korvo: oh right, "proxy" definitely fits (I'm a bit less familar with the other two)
< 1761346148 236281 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I'll concede that perhaps I misread the Self paper. I haven't actually played with a Self implementation.
< 1761346163 474097 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :a fat pointer is local and immutable, you can change the type information on one pointer to an object without changing it for others
< 1761346212 720250 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :I suppose you could think of a Python object as a fat pointer to a dictionary, but the existence of slots muddles that interpretation
< 1761346234 772886 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :i'd rather think of the object as an object itself that simply delegates some behavior to a dictionary
< 1761346244 537867 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :the only Self implementation I've used is V8
< 1761346376 417477 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :interestingly Rust has an equivalent to Smalltalk become: (called core::mem::replace), although it's much more restrictive because you need a mutable reference to the thing you are replacing
< 1761346423 27597 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it has become increasingly controversial over time because it breaks invariants that would otherwise exist, some of which would be useful for implementing various language features
< 1761346525 727198 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :from my point of view, its biggest issue is that it means that the concept of object identity effectively doesn't exist in Rust, because there's no type-system-level way to observe that an object got swapped out and so you can't tell whether you're still using the same object you were previously using if any code you don't control has had a mutable reference to it
< 1761346546 23031 :Sgeo_!~Sgeo@user/sgeo PRIVMSG #esolangs :...and I wrote a variation (take_mut) to allow what felt like a missing function in the language >.>
< 1761346578 15145 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Sgeo_: is that core::mem::take, or something else?
< 1761346667 825177 :Sgeo_!~Sgeo@user/sgeo PRIVMSG #esolangs :It's more of a core::mem::replace that can wait for the hole to be filled, passing in a closure. It aborts if the closure panics
< 1761346706 651145 :Sgeo_!~Sgeo@user/sgeo PRIVMSG #esolangs :I sort of wanted there to exist a function that turns (T -> T) into one that takes (&mut T)
< 1761346737 906824 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh, I see, it leaves an uninitialized hole behind?
< 1761346748 860762 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :or, well, a copy of the bits but that you aren't allowed to use
< 1761346769 355366 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :replace is interesting because it's the only way to move a non-Clone type out of a mutable reference, if you're working with owned values the lack of identity goes much deeper because there's no way to override operator=
< 1761346807 19443 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this is one of the things that makes me think that Rust &mut is incorrectly defined (I am not opposed to the existence of mutable references but I think the specific choices &mut makes for what you can and can't do are wrong)
< 1761346815 582773 :Sgeo_!~Sgeo@user/sgeo PRIVMSG #esolangs :There's an RFC that failed, calling the function replace_with
< 1761346836 519367 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :because it has an invariant that it always points to a valid value of the type, even while reborrowed
< 1761346868 871512 :Sgeo_!~Sgeo@user/sgeo PRIVMSG #esolangs :https://github.com/rust-lang/rfcs/pull/1736#issuecomment-1311564676
< 1761346889 14496 :Sgeo_!~Sgeo@user/sgeo PRIVMSG #esolangs :Composition of safe crates that add functions is unsafe
< 1761346905 77179 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I agree that it would make more sense for a reborrowed &mut to not constrain the type of the thing that it's reborrowing (although, as you say, you would need some separate way to maintain panic-safety in that case)
< 1761346931 71184 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :well if you reborrow you have a _new_ reference, mutable or not, which upholds the "has a valid value of the type"
< 1761346961 422642 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :sorear: but what if you transmute the new reference
< 1761346978 500780 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this is unsafe, but isn't necessarily unsound
< 1761347091 605298 :Sgeo_!~Sgeo@user/sgeo PRIVMSG #esolangs :I wanted to make some sort of unmovable structure based on the compiler preventing self-referencing structures from being moved. I didn't do so and the community invented Pin.
< 1761347101 30710 :Sgeo_!~Sgeo@user/sgeo PRIVMSG #esolangs :I don't... know if my idea would have worked or not
< 1761347114 923920 :Sgeo_!~Sgeo@user/sgeo PRIVMSG #esolangs :I don't fully understand Pin and the async features
< 1761347136 103962 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Sgeo_: you can actually do that in current safe Rust (unmovable self-referencing structures) but there are a lot of restrictions
< 1761347161 437605 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the basic idea is to have a type with a lifetime parameter that controls the lifetimes of the references inside, and the same lifetime is also used for self on the method calls
< 1761347213 454441 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the main problems are that it only works well with shared references (because if you do it with a mutable reference it doesn't reborrow properly) and nothing self-referencing can have a destructor (otherwise it fails drop check)
< 1761347277 436901 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the latter problem seems to be inherent to the idea of self-referencing structures rather than a limitation of the implementation: a structure has to be dropped after everything it references, so if you have a circular reference you can't drop at all
< 1761347293 36991 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(but if there are no destructors Rust works around the problem by simultaneously forgetting the whole structure)
< 1761347298 205236 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :when you say that replace is the only way to move out from a mutable reference, do you consider mem::swap equivalent to that? because I'm thinking of mem::swap as the more natural way and mem::replace a wrapper around that
< 1761347309 908440 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: yes, swap and replace are basically equivalent
< 1761347321 833651 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ok good
< 1761347350 667590 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :swap is slightly more fundamental in that trying to implement swap in terms of replace needs a temporary, which you might not be able to initialize correctly
< 1761347354 871164 :sorear!sid184231@id-184231.uxbridge.irccloud.com PRIVMSG #esolangs :korvo: skimming everything posted here is unsustainable and I'll have to go back to mostly ignoring, do you want to move the nql stuff somewhere else or just ping?
< 1761347414 892877 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :as for moving out and leaving a hole that you will fill before you return, thus breaking panic safety, I wonder if you can do that with a Cell
< 1761347438 644507 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Sgeo_: ^
< 1761347483 109281 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: you can't move out of a cell unless you swap something in
< 1761347497 798714 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in fact, mem::swap is not the fundamental operation, Cell::swap is
< 1761347525 175308 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :you can write mem::swap in terms of Cell::swap (and occasionally have to, e.g. when swapping a mutable reference with a cell; that came up for me recently)
< 1761347552 284525 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :that makes sense, because you might try to access a cell through another reference
< 1761347640 939032 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that said, it is possible that Cell::swap needs a special case for trying to swap a cell with itself, and mem::swap doesn't
< 1761347689 994289 :int-e!~noone@int-e.eu PRIVMSG #esolangs :b_jonas: hmm do you think this reduction in critical path length is meaningful ;-) https://int-e.eu/~bf3/tmp/shapez-mam-critical.png (right: corresponding snippet from https://int-e.eu/~bf3/tree-mam/ )
< 1761349157 562672 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Hmm I think it's a bit over half a second at 10x belt speed. So not huge when the total latency is like 16s.