< 1568246473 448433 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :back < 1568246537 151407 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :gonna set out out in in on both r and s < 1568246560 28754 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :reasoning about arithmetic using queues is uh... confusing. < 1568246607 282754 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :3 out 2 in < 1568246657 310829 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :https://hastebin.com/utigeyadaq.md < 1568246698 2995 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i mean 2 out 3 in < 1568246720 673278 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :as max for the R- and S-ops < 1568246740 509314 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :gotta code this soon < 1568246844 686289 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :it's really hard to sequence queue operations in your head, compared to a stack. < 1568246880 863749 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :even then I had to resort to a roll operation that rotates the queue. < 1568246903 608053 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :lemme see if I can write a factorial function. < 1568246947 606220 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric : is there any mathematical foundation to dataflow programming? => hm AFAIR there is a single framework in Haskell to express all of them (I don’t remember is it closer to comonads or ArrowFix, what it was called) so maybe there is something in category theory to base all of it too. Though I have read only a few introductory things and don’t remember them by now < 1568247090 162789 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :or not, I seem to confuse that with stream processing or what it’s called, when each tick all the values are recomputed using a fixed set of rules, using only the previous available values or something like this, ultimately like a usual digital circuit > 1568247168 665375 PRIVMSG #esoteric :14[[07But Is It Art?14]]4 10 02https://esolangs.org/w/index.php?diff=66110&oldid=58846 5* 03Qpliu 5* (+0) 10/* External resources */ < 1568247183 295678 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :the last thing is of course more or less simple so the question is probably not about that < 1568247647 957105 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru QUIT :Ping timeout: 246 seconds > 1568247690 251107 PRIVMSG #esoteric :14[[07Talk:Intramodular Transaction14]]4 N10 02https://esolangs.org/w/index.php?oldid=66111 5* 03Qpliu 5* (+383) 10Created page with "An alternative reverse bits: main input = reverse input trailer input; trailer input = ? input trailer ..input input; reverse input output = ? input ? .input reverse ..inpu..." < 1568251359 400446 :tromp!~tromp@2a02:a210:1585:3200:2576:5341:7571:929c QUIT :Read error: Connection reset by peer < 1568252150 445396 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I haven't even thought of how I'd translate that quadratic formula to an actual _function_... jesus. < 1568253610 517102 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1568253703 95751 :xkapastel!uid17782@gateway/web/irccloud.com/x-omuhytcfbacdbotu QUIT :Quit: Connection closed for inactivity < 1568254103 534166 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 276 seconds < 1568254937 596957 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :seems like a register machine requires indirect addressing to be conveniently turing complete, else you're going to be spending your time encoding your TM tape into one of the registers. < 1568255616 513973 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I'm so indecisive with what I want to devote my time doing. I've tried stack machines and queue machines with some fancy logic on top. < 1568255633 337022 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :can't seem to find just the right model. < 1568255976 584101 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_03a7.pdf < 1568256112 958684 :craigo!~craigo@144.136.206.168 JOIN :#esoteric < 1568256137 106916 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :why is it called echidna? < 1568256255 547183 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :hi Hooloovo0 < 1568256261 998863 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :hi < 1568256313 964705 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :what's new? < 1568256355 964663 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :working on my VCF midwest demo < 1568256368 499217 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :and also thinking about a paper for my ethics class < 1568256426 277465 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :demo is TI calculators + a vax, and < 1568256443 261717 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :what's VCF? < 1568256450 212532 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :vintage computer festival < 1568256452 207690 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :oh < 1568256454 17812 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :when is that? < 1568256458 626617 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :is that the thing @ the computer history museum? < 1568256474 307764 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :VCF west is at the CHM, yeah < 1568256484 302138 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :there's a couple other ones scattered around the country < 1568256503 820401 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :they have pretty boring names if you ask me < 1568256506 521543 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :oh, VCF west was last month < 1568256524 247636 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :CHM is a cool place < 1568256525 39474 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :vcfmw.org is the one I'm going to, this weekend < 1568256525 998651 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :I want to go back < 1568256542 3586 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :I was kind of disappointed < 1568256556 174832 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :they definitely have a bunch of cool stuff... but only a couple things are turned on < 1568256574 518585 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :my wife works 5 min away from there < 1568256575 478764 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :if you go, definitely make sure you get to see the IBM demo < 1568256578 838463 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :yeah, that's true < 1568256637 111287 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :hmm, if you show up with your own punch cards, I wonder if they'd let you run them through the 1401... < 1568256662 981836 :Hooloovo0!Hooloovoo@sorunome.de PRIVMSG #esoteric :what are you up to? < 1568256716 172865 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :lazy day < 1568256721 604922 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :did some grocery shopping, that's about it < 1568256783 723874 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :22:42:17 < Hooloovo0> why is it called echidna? < 1568256794 290358 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :Answer: i forgot < 1568256808 179120 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :there was a good reason, though < 1568257601 981560 :tromp!~tromp@2a02:a210:1585:3200:c5f3:6b02:28ce:7099 JOIN :#esoteric < 1568257680 539699 :tromp_!~tromp@2a02:a210:1585:3200:5432:80b2:81b8:5a49 JOIN :#esoteric < 1568257854 5575 :tromp!~tromp@2a02:a210:1585:3200:c5f3:6b02:28ce:7099 QUIT :Ping timeout: 246 seconds < 1568257964 517962 :tromp_!~tromp@2a02:a210:1585:3200:5432:80b2:81b8:5a49 QUIT :Ping timeout: 276 seconds < 1568258617 983634 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_03a7-fix.pdf < 1568259346 121742 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :well, Echidna not, it is hard to program in. < 1568259404 525658 :tromp!~tromp@2a02:a210:1585:3200:89d9:5b19:b3ce:e926 JOIN :#esoteric < 1568259680 519785 :tromp!~tromp@2a02:a210:1585:3200:89d9:5b19:b3ce:e926 QUIT :Ping timeout: 276 seconds < 1568259682 495583 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Linux stack growth behavior was changed apparently: https://github.com/torvalds/linux/commit/1d8ca3be86ebc6a38dad8236f45c7a9c61681e78 < 1568259717 382127 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It used to check %rsp against the fault address on page faults, and grow the stack if %rsp was lower. < 1568259827 13833 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :now i remember < 1568259896 223278 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i picked echidna because the first echidna, which was very different, needed to start with the letter 'e' < 1568259915 381210 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :and be an animal, as that was my convention < 1568259972 33765 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :this echidna was a lot closer to the first ecidna than to calamari or hydra < 1568260010 393207 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :(those are unusuable) < 1568260048 40824 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :next one i make will probably be calamari < 1568260059 864668 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :as in, using that name < 1568260062 870253 :hppavilion[2]!~omegasome@172.98.86.92 JOIN :#esoteric < 1568260130 337411 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :*my* hydra might not have been esoteric < 1568260150 364974 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :no relation to the hydra on the wiki < 1568260228 293825 :hppavilion[1]!~omegasome@172.98.86.92 QUIT :Ping timeout: 265 seconds < 1568260357 560443 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i don't think the original Echidna was esoteric, but it was a pain in the ass. It shares some code with the current Echidna, which I believe to be esoteric. < 1568260725 517689 :hppavilion[1]!~omegasome@172.98.86.92 JOIN :#esoteric < 1568260898 883212 :hppavilion[2]!~omegasome@172.98.86.92 QUIT :Ping timeout: 240 seconds < 1568262671 965581 :tromp!~tromp@2a02:a210:1585:3200:89d9:5b19:b3ce:e926 JOIN :#esoteric < 1568262936 12346 :tromp!~tromp@2a02:a210:1585:3200:89d9:5b19:b3ce:e926 QUIT :Ping timeout: 246 seconds < 1568263380 51677 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :https://hastebin.com/elifuxehir.md spent the evening working out what the quadratic formula might look like in a queue-based Forth. < 1568263505 850566 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :38 instructions vs. the 31 for Forth on rosetta code. < 1568263519 149472 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :difficult. but interesting < 1568264637 232203 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :hi < 1568264907 249931 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :hi. < 1568265623 960856 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 246 seconds > 1568265748 221377 PRIVMSG #esoteric :14[[07User:CarlosLuna14]]4 M10 02https://esolangs.org/w/index.php?diff=66112&oldid=66084 5* 03CarlosLuna 5* (+14) 10 < 1568266055 671443 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :night < 1568266156 953112 :Lykaina!~lyka@unaffiliated/schrodingerscat QUIT :Quit: leaving < 1568269149 526748 :tromp!~tromp@2a02:a210:1585:3200:89d9:5b19:b3ce:e926 JOIN :#esoteric < 1568269430 519954 :tromp!~tromp@2a02:a210:1585:3200:89d9:5b19:b3ce:e926 QUIT :Ping timeout: 276 seconds < 1568269496 524329 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1568269579 577716 :tromp!~tromp@2a02:a210:1585:3200:b94d:3094:8ec9:c140 JOIN :#esoteric < 1568269859 517566 :tromp!~tromp@2a02:a210:1585:3200:b94d:3094:8ec9:c140 QUIT :Ping timeout: 276 seconds < 1568271542 193657 :tromp!~tromp@2a02:a210:1585:3200:b94d:3094:8ec9:c140 JOIN :#esoteric < 1568272836 315028 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :...hmm. < 1568272853 602360 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :my factorial algorithm got shorter once I swapped to a queue. < 1568273339 318318 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :designing an 'if' statement with a queue is a little tougher. the body of the if statement may do work that gets in the way of signalling the next block. < 1568273391 646243 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :a good primitive might be "roll to the last element of the queue". < 1568274792 425490 :Frater_EST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net JOIN :#esoteric < 1568276099 534913 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 276 seconds > 1568276639 781792 PRIVMSG #esoteric :14[[07Talk:AAAAAAAAAAAAAA!!!!14]]4 10 02https://esolangs.org/w/index.php?diff=66113&oldid=65790 5* 03YamTokTpaFa 5* (+374) 10/* Command changing commands and operations */ new section < 1568277146 973507 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1568277686 592163 :tromp!~tromp@2a02:a210:1585:3200:b94d:3094:8ec9:c140 QUIT :Remote host closed the connection < 1568277756 866855 :hppavilion[1]!~omegasome@172.98.86.92 QUIT :Remote host closed the connection < 1568277846 960206 :hppavilion[1]!~omegasome@172.98.86.92 JOIN :#esoteric < 1568278517 561235 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 276 seconds < 1568278585 344465 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric > 1568279362 537554 PRIVMSG #esoteric :14[[07Alisj14]]4 10 02https://esolangs.org/w/index.php?diff=66114&oldid=43587 5* 03YamTokTpaFa 5* (+24) 10 < 1568279790 424286 :tromp!~tromp@2a02:a210:1585:3200:b94d:3094:8ec9:c140 JOIN :#esoteric > 1568279845 115107 PRIVMSG #esoteric :14[[07Parent the Sizing14]]4 10 02https://esolangs.org/w/index.php?diff=66115&oldid=55580 5* 03YamTokTpaFa 5* (+9) 10+WIP < 1568279861 833166 :cpressey!~cpressey@5.133.242.4 JOIN :#esoteric < 1568280163 941802 :Frater_EST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net PART :#esoteric < 1568280184 713822 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Good morning. I just realized that both the Prompt monad and the Operational monad *require* you to define the insert with a GADT. I also suspect this is how they can guarantee the resulting monad adheres to the monad laws. < 1568280220 777094 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :cpressey: I think it's more that GADTs are the only way to get any use out of them > 1568280283 786195 PRIVMSG #esoteric :14[[07Chromos14]]4 10 02https://esolangs.org/w/index.php?diff=66116&oldid=60901 5* 03YamTokTpaFa 5* (+51) 10 < 1568280314 31718 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :ProgramT Identity m a isn't particularly unreasonable, although not very useful > 1568280339 553055 PRIVMSG #esoteric :14[[07TwoFiftyFive14]]4 10 02https://esolangs.org/w/index.php?diff=66117&oldid=65725 5* 03YamTokTpaFa 5* (+24) 10 < 1568280376 306378 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I think I don't know enough about this to ask a sensible follow-up question < 1568280397 727437 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :That's OK, I don't know enough to answer one > 1568280416 251758 PRIVMSG #esoteric :14[[07SLOBOL (2015 language)14]]4 10 02https://esolangs.org/w/index.php?diff=66118&oldid=63937 5* 03YamTokTpaFa 5* (+34) 10 > 1568280454 86356 PRIVMSG #esoteric :14[[07WILSON14]]4 10 02https://esolangs.org/w/index.php?diff=66119&oldid=46781 5* 03YamTokTpaFa 5* (+23) 10 < 1568280459 541895 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :cpressey: What's the distinction between Prompt and Operational? I thought people used those words to mean the same thing. < 1568280510 830902 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Whichever one we were talking about the other way, it should be a monad regardless of the type constructor you give it. < 1568280709 325676 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: What kinds of type constructors are you allowed to give it? Is List a type constructor? Can you give it List? < 1568280754 633979 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't know what "it" is. < 1568280797 926531 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :The "it" in my question was the final "it" in your sentence that started with "Whichever". < 1568280814 17382 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, that's a good point. < 1568280816 852681 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think the answer is yes, and it'll give you a particular kind of n-ary trees. < 1568280839 924356 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :This one: data Tree a = Leaf a | Branch [Tree a] < 1568280862 14966 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(With a pretty complicated encoding.) < 1568280980 973769 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK, to back up: yes, I think the distinction between Prompt and Operational is not very important, they're just two different APIs/libraries/implementations of the same basic idea. < 1568280989 477212 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What are the definitions? < 1568281071 219392 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Taking Operational b/c it seems slightly simpler to understand, the definition is: type Program instr = ProgramT instr Identity < 1568281078 656654 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :"The primitive instructions are given by the type constructor instr :: * -> *." < 1568281083 224679 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I don't think that includes List. < 1568281112 845847 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I'm not sure it includes anything that isn't a GADT? < 1568281138 794460 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I guess ProgramT's defintion is more fundamental < 1568281157 277524 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :but similar: data ProgramT instr m a ... with "The primitive instructions are given by the type constructor instr :: * -> *." < 1568281160 684154 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :* is the kind of types, so it certainly includes List. < 1568281171 515242 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Uh, so * -> * certainly includes List. < 1568281187 565696 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :?!? < 1568281188 732714 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Since List takes types (like Int : *) to types (like List Int : *) < 1568281229 150721 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I'll try putting List there but based on my futzing around with it yesterday I 100% expect ghc to complain. < 1568281260 713592 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is it https://hackage.haskell.org/package/operational-0.2.3.5/docs/Control-Monad-Operational.html ? < 1568281521 679290 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm surprised that it says "Bind :: ProgramT instr m b -> (b -> ProgramT instr m a) -> ProgramT instr m a". < 1568281555 898705 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I haven't thought about how to make this a monad transformer, but in the non-transformer case I'd expect "Bind :: instr b -> (b -> Program instr a) -> Program instr a"? < 1568281575 961753 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Recursing on both sides seems to make it non-canonical? < 1568281690 652746 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :It is that module, yes < 1568281695 450451 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, you're probably supposed to use ProgramViewT. < 1568281770 184063 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Anyway, this certainly "works" for instr=List, it's just a very roundabout way to express that type. < 1568281898 501394 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric ::t [] < 1568281899 936287 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :[a] < 1568281955 663727 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :import Control.Monad.Operational ; type MyListProgram s a = Program ([s]) a < 1568281980 672092 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :ghc complains: The first argument of ‘Program’ should have kind ‘* -> *’, but ‘[s]’ has kind ‘*’ < 1568281987 646186 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think you mean Program [] a < 1568281996 552622 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What is s? < 1568282022 38274 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :That works, for reasons I do not at all understand. < 1568282037 945577 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Because Haskell syntax is confusing? < 1568282045 655135 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Try Maybe instead of [] < 1568282063 507067 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, Maybe isn't a very good example except syntactically. < 1568282084 848689 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Maybe also works. Well, at least this establishes that it doesn't *have* to be a GADT, which was half of my question. < 1568282099 323722 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Whether the result of doing this is useful for no, that's another matter. < 1568282121 356908 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm. I think it's useful. < 1568282123 292674 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Is there something like :t that shows the kind of a type constructor? < 1568282129 494187 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yes, :k < 1568282141 763355 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :That was my first guess but I was being cautious. < 1568282145 39123 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric ::k [] < 1568282146 694404 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :* -> * < 1568282150 21149 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Okay then. < 1568282151 686811 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, no, I don't think any of this is actually that useful. < 1568282184 661805 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :All this is pretty paged out of my memory, but I can try to clarify things if it's helpful. < 1568282194 22699 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Maybe not useful, but very fitting to #esoteric somehow. < 1568282196 185999 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :How do you feel about this type: data Free a = Pure a | Free (f (Free f a)) < 1568282265 35461 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think there's an important underlying point about what monads are, or something, such that it makes the same amount of sense for any type constructor you pass to Program. < 1568282384 884068 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I have no feelings about that type except perhaps bewilderment. < 1568282415 98476 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK. < 1568282437 56389 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Let's think about ways to invent I/O in Haskell, assuming you don't know any of this nonsense. < 1568282467 135218 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Here's one simple way to do it: main :: String < 1568282476 234203 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :This is really just O, not I/O. < 1568282505 9243 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Simple enough? < 1568282534 546236 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Wait, where did I/O come from? < 1568282546 765874 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think it's a useful concrete example. < 1568282569 778569 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If you prefer another one we can probably make it work too? < 1568282570 173175 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK. Go on. < 1568282604 249948 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK. The problem with this approach is that you can't do input. < 1568282627 869126 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru JOIN :#esoteric < 1568282631 461749 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You could define main :: String -> String, but then the problem is that (modulo laziness) you do all the input upfront, and then all the output, which is pretty limited. < 1568282652 907965 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So what you want is a way to interleave input and output. < 1568282685 303937 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Makes sense? < 1568282725 730605 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Note that the idea of all of these things is that you have some external runtime system/interpreter that can take a Haskell value like main and interpret it together with the outside world. < 1568282785 710136 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :On second thought maybe I/O isn't the best example. < 1568282849 968294 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hm, why not? < 1568282872 509481 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(Actually the question is only whether it's good enough.) < 1568282935 636838 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :It's not intuitive to me that interleaving input and output is desriable. In Javascript, as one example, it is not possible to interleave input and output. Events cause computations which enqueue more events. < 1568282970 645694 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :You end up writing promises and state machines. < 1568283028 462459 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Also, it gives the impression that the only reason Haskell has monads is so that it can do I/O despite the handicap of being a lazy, referentially transparent language, and that is of course unfair to say. < 1568283083 294566 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK. If you have another example I can probably use that one instead. < 1568283117 502365 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think IO is kind of a special monad in Haskell in that it's maybe best understood as a free monad since we don't particularly have semantics for it. < 1568283122 393545 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(Among other ways it's special.) < 1568283144 188248 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK, parsing. That's an actual use case. I want to produce an AST and consume some of the string (i.e. produce the remainder of the string) but I don't want to constantly write destructuring pattern matches. < 1568283159 10591 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :If you know what I mean. < 1568283170 313749 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :"Writer monad" I am guessing. < 1568283200 99234 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Or State, I suppose, you could treat the string as the state. < 1568283214 140392 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Parsing sounds pretty complicated. < 1568283234 644985 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :What were you hoping to explain to me again? < 1568283259 148612 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I wanted to give some motivation for free monads such that nothing is too mystifying at any point. < 1568283293 468240 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Program is a kind of free monad and free monads are especially relevant when you apply Program to functors. < 1568283400 453027 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think interleaved I/O makes sense in JavaScript. You need interleaved I/O to write programs like main() { print("what's your name?"); let name = get_line(); print("hi, " + name); } < 1568283425 241497 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's true that it's often done with callbacks but that's true in Haskell too. < 1568283469 604687 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :In Javascript you *have* to do it with callbacks (or promises, which are glorified callbacks). < 1568283471 81548 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm also at most 3/4 coherent at this hour, probably less. < 1568283501 428160 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :In Haskell you also have to do it with callbacks (even more than in JavaScript, where some systems have synchronous APIs). < 1568283558 358614 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :If 'do' notation is just callbacks in disguise. < 1568283567 894040 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yep, it is. < 1568283588 609640 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :How about I finish the I/O example which is very simple, and then I'll think of another example. < 1568283619 983197 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If you have a program operating on input bits and producing output bits, you can define a type like this: < 1568283668 72833 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :data P = Done | Out Bit P | In (Bit -> P) < 1568283761 260381 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK < 1568283862 497685 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :As an extra bonus we'll have our programs produce a value, as in < 1568283877 925914 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :data P a = Done a | Out Bit (P a) | In (Bit -> P a) < 1568283944 265612 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :And of course we could add more constructors to have more behaviors. < 1568283954 390058 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :P is used to define interactions, but it's really just a kind of tree. Right? < 1568283971 890617 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :As in, you could write "data P a = Out Bit (P a) | In (P a) (P a)" < 1568284049 120855 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :"In (P a) (P a)"? < 1568284072 648770 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Does the previous version make sense? < 1568284100 948541 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(Bit -> x) has the same information as (x, x) specifying a value for the 0 and 1 cases. < 1568284152 431389 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :The previous version of P is a complicated kind of tree, okay. < 1568284224 683503 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Right. It has one kind of leaf -- that's Done -- and a slightly unusual shape of branches, which is one of two things -- either an output "branch" (which has a bit and one child) or an input branch (which has two children). < 1568284240 261733 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :This tree is probably infinite but it describes our entire program. < 1568284290 30730 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK. < 1568284313 959298 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 246 seconds < 1568284316 715259 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The branch shape, in particular, is this: data F a = OutF Bit a | InF (Bit -> a) < 1568284368 376787 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If you abstract the branch shape, you can get the type I mentioned above: data Tree f a = Leaf a | Branch (f (Tree f a)) < 1568284434 466875 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK. < 1568284485 809556 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I feel like I'm not being that helpful here. < 1568284620 368667 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The general point is that this kind of tree describes an interaction with something, and you can have some external program interpret the tree in some way. < 1568284660 720692 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK, another example is making probabilistic choices. < 1568284718 423634 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You can have a probability tree where each branch is labeled with a probability and you pick the left side with that probability. < 1568284754 649922 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :data Tree a = Done a | FlipCoin Probability (Tree a) (Tree a) < 1568284777 66926 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :An "interpreter" for this tree might sample a particular path through it, or evaluate all the possibilities exhaustively. < 1568284904 670381 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK. < 1568284947 138372 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I guess I can try to distill my question. < 1568284954 481895 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :You keep talking about "interpreters". < 1568285026 862868 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :For each of these trees you define, you need an "interpreter" to walk it and make sense of it. < 1568285160 774429 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :But, in the first example at least, part of the tree also has a function in it. < 1568285191 670332 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :You can't "interpret" a function, you can only run it. < 1568285248 343930 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK, that's not a question I guess. < 1568285270 458888 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I guess my question is: why is it intuitive to anyone to mix these two modes? < 1568285278 131785 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, this is about "interpreting" the "effects". < 1568285317 968792 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :A Haskell program already knows how to do computation, but it doesn't know how to do probability, and it doesn't have a source of randomness and so on. < 1568285353 887675 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So we add the notion of random choice (which might be a function (Real -> a), or flipping a coin, or whatever), but we don't say how specifically it's implemented. > 1568285360 104950 PRIVMSG #esoteric :14[[07Talk:Epsilo14]]4 N10 02https://esolangs.org/w/index.php?oldid=66120 5* 03YamTokTpaFa 5* (+153) 10/* Where is the source and detailed descriptions!? */ new section < 1568285400 552080 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Then we end up with this tree data structure which has all the computation built in, but yields to you whenever it needs to take one of these effect actions like flipping a coin. < 1568285419 523052 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Your interpreter just adds these extra abilities. < 1568285535 248085 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Defining a data structure to represent an external service, and then embedding function types in the data structure to represent the computation you're going to do with the data you get from the external service, gets you a data structure like this. < 1568285568 97328 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yep. < 1568285573 349102 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :And people like this. < 1568285636 649874 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Do you like this? < 1568285636 786896 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :People go out of their way to write unification algorithms like this. < 1568285677 275340 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :It doesn't really matter if I like it or not. < 1568285730 791890 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I shouldn't say "out of their way"; it probably becomes a learned habit after a while. < 1568285751 560096 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Writing it the other way, would be going out of their way. < 1568285785 728597 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: Thanks for the explanation. < 1568285855 158161 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`? this < 1568285856 416511 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :This is something people on the channel like to talk about. We're often unsure what this is, though. Nobody likes this. < 1568285958 551928 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm going to sleep. < 1568287036 641270 :hppavilion[1]!~omegasome@172.98.86.92 QUIT :Quit: Leaving < 1568287146 992071 :hppavilion[1]!~omegasome@172.98.86.92 JOIN :#esoteric < 1568287209 935973 :hppavilion[1]!~omegasome@172.98.86.92 QUIT :Client Quit < 1568287256 977831 :hppavilion[1]!~omegasome@172.98.86.92 JOIN :#esoteric < 1568287630 878228 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Ehm, OK. In Javascript the "interpreter" is the thing that waits to dequeue an event, finds the handler(s) for the event, runs the handlers (which may add more events to the queue), and repeats. < 1568287716 849115 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :You could probably define a type that describes this if you had to. < 1568288072 411935 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I mean, in some idealized model of Javascript running in a browser, where the handlers are pure functions, etc. < 1568288410 860159 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :The word "trampoline" also comes to mind. < 1568288622 379052 :Lykaina!~lyka@unaffiliated/schrodingerscat JOIN :#esoteric < 1568289186 112580 :hppavilion[1]!~omegasome@172.98.86.92 QUIT :Ping timeout: 246 seconds < 1568291404 631473 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_03a8.pdf < 1568292821 372902 :xkapastel!uid17782@gateway/web/irccloud.com/x-olqmsifsjnflxcrj JOIN :#esoteric < 1568294200 420350 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_03a8-fix.pdf < 1568294226 28846 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :clock example was outputting hours:minutes:minutes < 1568294259 428332 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :oops < 1568295987 307348 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :oh no...not another bug in documentation < 1568296830 371744 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :arseniiv: If it means anything, I also have a half-written proof-checker with some issues with beta-reduction and metavariables, sitting in my experiments repo, which I'd like to continue on, but I don't really know where it's going < 1568296851 815254 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_03a8-fix2.pdf < 1568297028 553690 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :cpressey: thanks, I’ll look at it some time! < 1568297093 540872 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :i'll print out the compiled docs and go through them later. < 1568297114 54809 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :those were just the key ones i noticed < 1568298105 89001 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :arseniiv: Oh, I haven't released the code publicly, it's still half-formed. You mentioned you had something similar I think. < 1568298387 635837 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :acpressey: yeah. My code is in a Python notebook :D < 1568298405 661402 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :hm why there was “a” < 1568301434 877555 :sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 240 seconds < 1568302261 512206 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :screw it. i'm going from 0.03a8 to 0.10a0 < 1568302318 347880 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :after all the documentation fixes, it deserved a new version < 1568303748 750148 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu JOIN :#esoteric < 1568304375 540019 :tromp_!~tromp@2a02:a210:1585:3200:e80d:aaea:1787:a6a1 JOIN :#esoteric < 1568304593 440095 :tromp!~tromp@2a02:a210:1585:3200:b94d:3094:8ec9:c140 QUIT :Ping timeout: 245 seconds < 1568305882 256069 :cpressey!~cpressey@5.133.242.4 QUIT :Quit: You'll pry my programmable semicolons from my cold, dead hands < 1568306405 531565 :atslash!~atslash@static.231.107.9.5.clients.your-server.de QUIT :Quit: This computer has gone to sleep < 1568307109 302491 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1568307422 868838 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1568307472 728240 :MrBismuth!~ArcMrBism@2600:6c58:4200:ad9:39cf:ce08:94f8:bba4 JOIN :#esoteric < 1568307589 269685 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1568307650 552177 :MrBusiness3!~ArcMrBism@68-113-127-142.dhcp.leds.al.charter.com QUIT :Ping timeout: 276 seconds < 1568308100 503825 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :finally made an `if` statement. had to add a `last` operator, which rolls to the last element of the queue. < 1568308358 92316 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :https://hastebin.com/iwafudayes.rb < 1568308954 440194 :sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1568309688 859767 :int-e!~noone@int-e.eu PRIVMSG #esoteric :what a miserable communication failure < 1568309694 51932 :int-e!~noone@int-e.eu PRIVMSG #esoteric :uhm. < 1568309719 835622 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I guess that makes a good self-referential statement. < 1568309846 888993 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu PRIVMSG #esoteric :int-e: did you call a shop on phone, they said they had a product or service, but when you went there in person to buy it, they claim they never had it, denied the phone conversation, and tried to upsell? < 1568309890 224725 :int-e!~noone@int-e.eu PRIVMSG #esoteric :b_jonas: no. < 1568309989 303200 :int-e!~noone@int-e.eu PRIVMSG #esoteric :b_jonas: You might enjoy https://notalwaysright.com/all/ ;-) (maybe only some subcategories; your store may belong to "not always legal") < 1568310000 319423 :int-e!~noone@int-e.eu PRIVMSG #esoteric :*story < 1568310025 258254 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu PRIVMSG #esoteric :int-e: eww no, that site is addictive and low-quality in the long run. I no longer read it. < 1568310049 925452 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu PRIVMSG #esoteric :I wasted enough time on iy < 1568310054 2490 :int-e!~noone@int-e.eu PRIVMSG #esoteric ::P < 1568310081 984919 :int-e!~noone@int-e.eu PRIVMSG #esoteric :It's better than thedailywtf :P < 1568311026 24769 :craigo!~craigo@144.136.206.168 QUIT :Ping timeout: 246 seconds < 1568311061 199475 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :hhi < 1568311153 993614 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :imode: looks comlicated < 1568311177 323804 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :complicated* < 1568312168 479514 :sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 245 seconds < 1568313371 577111 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :arseniiv: yeah, took me a while. though you get good at queue juggling the more you do. < 1568313401 597431 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I wonder if you used a dequeue instead. < 1568313476 141984 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :imode: deque? < 1568313489 274723 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :sorry, deque. :P < 1568313552 574194 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :I wonder whether there is some natural occurence of deque, like of stack and queue in DFS and BFS < 1568313587 981698 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :imode: np, I secretly hoped there is a new data structure lurking nearby < 1568313598 415132 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :haha. < 1568313724 707238 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I think you could make a rather usable language if you used a deque, but toggle between where enqueuing and dequeueing take place with operations. < 1568313743 486669 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :so you could use it like a stack and a regular queue. < 1568313760 813943 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :this means RPN works, but deep stack access is possible. < 1568313811 245554 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :also here’s a bad joke I made just few minutes ago and was translating properly: “What do you prefer writing, Sp or tr?” — “I prefer to wipe my shoes” < 1568313862 348310 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :hm well it’s even worse in English where trace ≠ track < 1568313961 498802 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu PRIVMSG #esoteric :arseniiv: you mean a full deque, as oppoed to a queue where you can push on either end but pop only from the start? < 1568313991 53794 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Wtf is Sp, if not span (which has nothing to do with trace...)? < 1568313993 230756 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :b_jonas: either one suffices maybe < 1568313995 629136 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Oh < 1568313999 778855 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :arseniiv: Spur IIRC < 1568314001 325009 :int-e!~noone@int-e.eu PRIVMSG #esoteric :It's the german "Spur". < 1568314036 246571 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I should've recognized that immediately. But no... I forgot all the german linear algebra terms it seems. < 1568314186 405513 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :I wouldn’t even have an idea of Sp vs. tr if not for encountering Sp yesterday by pure chance < 1568314318 390973 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :also what do you all think is more natural for a “half-deque”, pushing from bith sides but popping from only one, or popping from both and pushing from one? < 1568314369 478874 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :I don’t know how often these are needed in general < 1568314374 134501 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu PRIVMSG #esoteric :arseniiv: pushing on both sides and popping from one, because (1) you can implement it with a singly linked list, and < 1568314414 252733 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu PRIVMSG #esoteric :(2) you can use it to implement a priority queue with only two possible weights, if you don't care which element with the lowest weight is popped < 1568314444 811757 :int-e!~noone@int-e.eu PRIVMSG #esoteric :arseniiv: I still don't get the joke. It must be really bad ;-) < 1568314506 318341 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu PRIVMSG #esoteric :wait, aren't those the same, as in Spur vs trace? < 1568314533 32147 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :int-e: like, the second person doesn’t leave tracks so they have no need to call trace either way < 1568314577 102999 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu PRIVMSG #esoteric :or maybe it's trail or track... < 1568314577 354933 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :I wonder in what languages trace and foot track are homonymous < 1568314587 511471 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :or trail! < 1568314590 765367 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :yes < 1568314605 799285 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :didn’t remember that one < 1568314622 354234 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Hrm. "Spur" is a curious word. < 1568314683 557496 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :though I think of a trail as something long and linguistically uncountable and a track as something countable. Though there are tracks like paths or roads, these ones would be different < 1568314699 967773 :int-e!~noone@int-e.eu PRIVMSG #esoteric :But 'trace' covers a similar spectrum of meanings. < 1568314715 190606 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :b_jonas: also thank you about deque < 1568314744 527840 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :int-e: I didn’t really thought on it before now < 1568314806 253594 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :my fluency is not too high yet maybe, so these things don’t occur as idle thoughts, only when consciously playing < 1568314925 147449 :int-e!~noone@int-e.eu PRIVMSG #esoteric :viscous thoughts < 1568314937 252176 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :though I already start to make typos of the “to” instead of “too” kind. I hoped that wouldn’t come < 1568314941 467719 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu PRIVMSG #esoteric :int-e: nah, I think that's a more normal word than the crazy English triplet trace, track, trail, all three of which can be noun or verb, and any two persons I ask explain the difference among them differently < 1568315020 613537 :int-e!~noone@int-e.eu PRIVMSG #esoteric :hmm tracking animals by tracing trails < 1568315081 718490 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu PRIVMSG #esoteric :road vehicles that go to places where there are no roads or even paths can be tracked, which means that there's a continuous strip on two of their wheels and that strip is what gives them traction < 1568315138 233116 :Lykaina!~lyka@unaffiliated/schrodingerscat PRIVMSG #esoteric :http://sif.lesidhetree.com/sara/echidna/Echidna%20v0_10a0.pdf < 1568315203 100500 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :there’s even a DAW called Tracktion. Though they’ve renamed it a while ago < 1568315573 962538 :sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric > 1568315836 718980 PRIVMSG #esoteric :14[[07Wutlang14]]4 M10 02https://esolangs.org/w/index.php?diff=66121&oldid=50063 5* 03Dtuser1337 5* (-1) 10/* Commands */ < 1568315840 532298 :Sgeo!~Sgeo@ool-18b98995.dyn.optonline.net QUIT :Ping timeout: 276 seconds < 1568317136 965490 :sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 246 seconds < 1568320781 522801 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru QUIT :Read error: Connection reset by peer < 1568320800 958856 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru JOIN :#esoteric < 1568321154 891837 :b_jonas!~x@catv-176-63-25-14.catv.broadband.hu QUIT :Quit: leaving < 1568321615 392633 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1568321795 377034 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 265 seconds < 1568321801 563159 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life < 1568321969 662904 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :writing a factorial function with a queue is uh... irritating. < 1568321985 680829 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :at least I think. < 1568322197 889843 :xkapastel!uid17782@gateway/web/irccloud.com/x-olqmsifsjnflxcrj QUIT :Quit: Connection closed for inactivity < 1568322258 597181 :int-e!~noone@int-e.eu PRIVMSG #esoteric :imode: Shouldn't be hard as long as you know the size of the queue at each step? < 1568322287 276140 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I'd expect things to be fairly sane in queue-land until you want to do recursion. < 1568322317 946243 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(And no, the factorial function isn't recursive unless you want it to be.) < 1568322344 127832 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I know, I wrote an iterative version, now I'm trying to write a recursive version. < 1568322377 556955 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I see. < 1568322399 492414 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Yeah, good luck, have fun! < 1568322406 631367 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :haha, thanks. < 1568322412 224258 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I got _one_ iteration down. < 1568322455 388456 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(I guess I'd do the irritating thing where there's a marker in the queue that indicates the end of a simulated stack.) < 1568322480 669922 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :yeah, that's the sane part. < 1568322493 750123 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :the insane thing is queue juggling via rolling and a 'last' operator, that seeks to the last element in the queue. < 1568322528 986600 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :https://hastebin.com/jegujageqe.rb the iterative version. < 1568322569 8549 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :the first segment is the shortcode, the middle segment is the "readable" version, the final segment is the line noise version of the first segment. < 1568322786 269449 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :'roll' just dequeues and enqueues an item. < 1568322815 334855 :int-e!~noone@int-e.eu PRIVMSG #esoteric : < 1568322821 263159 :int-e!~noone@int-e.eu PRIVMSG #esoteric :ACTION sighs. < 1568322859 100056 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(hatebin) < 1568322899 83588 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I take it I should use hatebin then. :P < 1568322918 604787 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :hastebin was down for a non-insignificant amount of time when I last used it. < 1568323110 582860 :int-e!~noone@int-e.eu PRIVMSG #esoteric :imode: Ugh, does that exist (of course it does, meh.) < 1568323127 299600 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :it does. :D < 1568323133 773429 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :you'd like it. stripped down. < 1568323138 659949 :int-e!~noone@int-e.eu PRIVMSG #esoteric : < 1568323144 702785 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I don't see anything to like. < 1568323157 490764 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :well, I didn't know what you were complaining about. I assumed jquery and highlight. < 1568323169 153331 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I'm using the Debian pastebin for a reason :) < 1568323177 449835 :int-e!~noone@int-e.eu PRIVMSG #esoteric :imode: Javascript. < 1568323181 940901 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :ACTION shrugs. < 1568323221 656719 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Mandatory... fetching the content with XHR. There's no *good* reason for doing that in a pastebin. < 1568323224 175906 :ghost2501!~ghost2501@190.104.131.206 JOIN :#esoteric < 1568323226 458835 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :until someone does away with the idea of a web browser with arbitrarily executable code being delivered to you, javascript is here to stay. I say that through gritted teeth. < 1568323326 76102 :int-e!~noone@int-e.eu PRIVMSG #esoteric :It's a losing fight. But it's also a great filter. < 1568323355 568670 :int-e!~noone@int-e.eu PRIVMSG #esoteric :90% of the time when a site demands JS I decide I wasn't *that* interested in the content in the first place. < 1568323458 916041 :ghost2501!~ghost2501@190.104.131.206 PART #esoteric :"Leaving" < 1568323794 396063 :atslash!~atslash@static.231.107.9.5.clients.your-server.de JOIN :#esoteric < 1568324055 255502 :int-e!~noone@int-e.eu PRIVMSG #esoteric :imode: Anyway, pastebins are one niche where I see *some* prospect of getting people to use non-JS variants. So I keep bringing it up. < 1568324342 465385 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I see. < 1568324872 461795 :Sgeo!~Sgeo@ool-18b98995.dyn.optonline.net JOIN :#esoteric < 1568325148 985477 :Sgeo_!~Sgeo@ool-18b98995.dyn.optonline.net JOIN :#esoteric < 1568325243 420484 :Sgeo!~Sgeo@ool-18b98995.dyn.optonline.net QUIT :Ping timeout: 245 seconds < 1568329546 544984 :sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1568329705 150888 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1568329820 854810 :sftp!~sftp@unaffiliated/sftp QUIT :Excess Flood < 1568329848 283492 :sftp!~sftp@unaffiliated/sftp JOIN :#esoteric < 1568330738 869374 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 240 seconds < 1568331329 869566 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :forget factorial, generating a queue of descending integers is hard. :\ < 1568331355 730554 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What do you need a queue of descending integers for? < 1568331416 3279 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :breaking the problem into two tasks to unblock myself. generate the numbers, then you can interleave the multiplications, etc. into them. < 1568331438 297386 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :5 4 3 2 1 * * * * ... < 1568331441 378355 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Multiplying a queue of descending integers? What could that be for? < 1568331466 606092 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :I'm working on a queue-based language. < 1568331476 312449 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :seeing if I can do some basic things in it. < 1568331482 809203 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :like, for instance, a recursive factorial function. < 1568331486 234232 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh! < 1568331489 375593 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I forgot factorial. < 1568331499 656925 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :it's just a product of a range. < 1568331504 653889 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :5 * 4 * 3 * 2 * 1 < 1568331508 571592 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yes, but you said to forget it. < 1568331509 256345 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :== 5! < 1568331521 175679 :imode!~imode@unaffiliated/imode PRIVMSG #esoteric :... > 1568331717 741859 PRIVMSG #esoteric :14[[07Encapsulation14]]4 10 02https://esolangs.org/w/index.php?diff=66122&oldid=66064 5* 03Hakerh400 5* (+6) 10Update computational class < 1568331933 990529 :arseniiv!~arseniiv@95.105.2.110.dynamic.ufanet.ru PRIVMSG #esoteric :shachaf: lol > 1568332073 688047 PRIVMSG #esoteric :14[[07Intramodular Transaction14]]4 10 02https://esolangs.org/w/index.php?diff=66123&oldid=66018 5* 03Hakerh400 5* (+244) 10Update computational class < 1568332303 346342 :atslash!~atslash@static.231.107.9.5.clients.your-server.de QUIT :Quit: Leaving