< 1581120431 288725 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 260 seconds < 1581122035 350170 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1581122161 697058 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 268 seconds < 1581122208 282276 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life < 1581122299 6801 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1581122435 452719 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN :#esoteric < 1581122758 10111 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 256 seconds < 1581128431 92118 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :iirc the Very Galactic Array in schlock observes ordinary slow light, i'm not sure how that'll help here... > 1581129259 424144 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69632&oldid=69583 5* 03A 5* (-22531) 10What's the matter with all the zalgo!? > 1581129381 290805 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69633&oldid=69632 5* 03A 5* (+81) 10 > 1581129419 22640 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69634&oldid=69633 5* 03A 5* (+22533) 10 > 1581129503 39154 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69635&oldid=69634 5* 03A 5* (+160) 10 < 1581130588 45023 :imode!~linear@unaffiliated/imode JOIN :#esoteric > 1581130857 186812 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69636&oldid=69635 5* 03A 5* (+110) 10 > 1581131060 65614 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69637&oldid=69636 5* 03A 5* (+35) 10 < 1581131582 984472 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :Someone I know asked me if there is a pre-processor for PHP which inlines all included files and strips all comments. Is there such a program? < 1581131606 714105 :Ethan30!9dc96064@157.201.96.100 JOIN :#esoteric < 1581131649 891044 :Ethan30!9dc96064@157.201.96.100 PRIVMSG #esoteric :I heard fungot lives here, and had to see for myself < 1581131650 310654 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :Ethan30: edit formicidae.sh and add the result to what fnord pushes a onto the stack" instead of ' the strict definition of pun ais523, though < 1581131697 337313 :Ethan30!9dc96064@157.201.96.100 PRIVMSG #esoteric :^help < 1581131697 509012 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool < 1581133346 769936 :Ethan30!9dc96064@157.201.96.100 PART :#esoteric > 1581133488 341189 PRIVMSG #esoteric :14[[07FiM++14]]4 10 02https://esolangs.org/w/index.php?diff=69638&oldid=66808 5* 03Salpynx 5* (+1130) 10/* Examples */ Everypony likes Collatz, and cake. < 1581134274 740094 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :fungot: how does it feel to be famous < 1581134275 31746 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :oerjan: nobody needs more than 100mb x_x < 1581136357 137418 :Sgeo__!~Sgeo@ool-18b982ad.dyn.optonline.net JOIN :#esoteric < 1581136563 112687 :Sgeo_!~Sgeo@ool-18b982ad.dyn.optonline.net QUIT :Ping timeout: 272 seconds < 1581136676 651772 :MDude!~MDude@97-127-171-136.cdrr.qwest.net QUIT :Quit: Going offline, see ya! (www.adiirc.com) < 1581143637 129457 :xkapastel!uid17782@gateway/web/irccloud.com/x-vodormpsshyeicps JOIN :#esoteric < 1581143827 721541 :xelxebar_!~xelxebar@gateway/tor-sasl/xelxebar JOIN :#esoteric < 1581143863 700296 :xelxebar!~xelxebar@gateway/tor-sasl/xelxebar QUIT :Ping timeout: 240 seconds < 1581144547 292940 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: Nite < 1581144641 38180 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :fungot, are you asbestos-free? < 1581144641 336571 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :b_jonas: use sara to leave him message... eh never mind), then i have to < 1581148768 55969 :rain1!~debian@unaffiliated/rain1 JOIN :#esoteric < 1581148855 44405 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 265 seconds < 1581149409 143937 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1581154856 692493 :rain1!~debian@unaffiliated/rain1 PRIVMSG #esoteric :hello all > 1581156576 599420 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69639&oldid=69637 5* 03A 5* (+893) 10 > 1581156921 303076 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69640&oldid=69639 5* 03A 5* (+777) 10 > 1581159448 636675 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69641&oldid=69640 5* 03A 5* (-24581) 10Remove the mess as that's really interfering with my ideas. > 1581159684 331664 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69642&oldid=69641 5* 03A 5* (+290) 10 > 1581160703 888684 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69643&oldid=69642 5* 03A 5* (+885) 10 < 1581160753 271685 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru JOIN :#esoteric > 1581161292 903207 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69644&oldid=69643 5* 03A 5* (+1045) 10 < 1581161658 842504 :xkapastel!uid17782@gateway/web/irccloud.com/x-vodormpsshyeicps QUIT :Quit: Connection closed for inactivity > 1581161790 404807 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69645&oldid=69644 5* 03A 5* (+1141) 10 > 1581162113 214911 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69646&oldid=69645 5* 03A 5* (+527) 10 > 1581162466 33399 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69647&oldid=69646 5* 03A 5* (+532) 10 > 1581162719 550770 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69648&oldid=69647 5* 03A 5* (+398) 10/* The action of fill over a string (i.e. "rainbow-paint") */ > 1581162940 916497 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69649&oldid=69648 5* 03A 5* (+255) 10The catch is that I want to put in as many documentation for my language as the length of the Zalgo text. > 1581163254 921207 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69650&oldid=69649 5* 03A 5* (+453) 10/* Task: Create a 10x10 grid of asterisks. */ > 1581163591 701510 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69651&oldid=69650 5* 03A 5* (+334) 10 > 1581163748 884995 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69652&oldid=69651 5* 03A 5* (+332) 10 > 1581164236 569209 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69653&oldid=69652 5* 03A 5* (+1114) 10 > 1581164535 60489 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69654&oldid=69653 5* 03A 5* (+272) 10Little edit. < 1581164766 883060 :Sgeo_!~Sgeo@ool-18b982ad.dyn.optonline.net JOIN :#esoteric < 1581164987 185825 :Sgeo__!~Sgeo@ool-18b982ad.dyn.optonline.net QUIT :Ping timeout: 272 seconds < 1581165229 363025 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric > 1581165268 486819 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69655&oldid=69654 5* 03A 5* (+660) 10 < 1581165427 333029 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 260 seconds < 1581165430 116034 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life > 1581165769 690926 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69656&oldid=69655 5* 03A 5* (+538) 10 > 1581166242 555176 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69657&oldid=69656 5* 03A 5* (+780) 10 > 1581166692 76398 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=69658&oldid=69657 5* 03A 5* (+455) 10 > 1581166797 96163 PRIVMSG #esoteric :14[[07Golf14]]4 10 02https://esolangs.org/w/index.php?diff=69659&oldid=65013 5* 03A 5* (+11971) 10 > 1581166829 886540 PRIVMSG #esoteric :14[[07Golf14]]4 10 02https://esolangs.org/w/index.php?diff=69660&oldid=69659 5* 03A 5* (-1) 10 > 1581167139 876687 PRIVMSG #esoteric :14[[07User:PythonshellDebugwindow14]]4 M10 02https://esolangs.org/w/index.php?diff=69661&oldid=69563 5* 03PythonshellDebugwindow 5* (+42) 10 > 1581167152 475751 PRIVMSG #esoteric :14[[07User:PythonshellDebugwindow14]]4 M10 02https://esolangs.org/w/index.php?diff=69662&oldid=69661 5* 03PythonshellDebugwindow 5* (+9) 10 > 1581168555 62313 PRIVMSG #esoteric :14[[07XENBLN14]]4 M10 02https://esolangs.org/w/index.php?diff=69663&oldid=69330 5* 03PythonshellDebugwindow 5* (+0) 10 < 1581169087 139638 :Sgeo__!~Sgeo@ool-18b982ad.dyn.optonline.net JOIN :#esoteric < 1581169274 873427 :Sgeo_!~Sgeo@ool-18b982ad.dyn.optonline.net QUIT :Ping timeout: 240 seconds < 1581173845 122285 :kspalaiologos!~kspalaiol@176.221.122.71 JOIN :#esoteric < 1581173947 267428 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru QUIT :Ping timeout: 240 seconds > 1581175041 307090 PRIVMSG #esoteric :14[[07XENBLN14]]4 M10 02https://esolangs.org/w/index.php?diff=69664&oldid=69663 5* 03PythonshellDebugwindow 5* (+0) 10/* Truth-machine (7 bytes) */ This is from last year < 1581175123 868081 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru JOIN :#esoteric > 1581175620 446742 PRIVMSG #esoteric :14[[07Eso2D14]]4 N10 02https://esolangs.org/w/index.php?oldid=69665 5* 03PythonshellDebugwindow 5* (+2216) 10Eso2D > 1581175721 461374 PRIVMSG #esoteric :14[[07Eso2D14]]4 M10 02https://esolangs.org/w/index.php?diff=69666&oldid=69665 5* 03PythonshellDebugwindow 5* (+117) 10/* Instruction pointer */ < 1581176263 104284 :kspalaiologos!~kspalaiol@176.221.122.71 QUIT :Quit: Leaving < 1581179490 397627 :MDude!~MDude@97-127-171-136.cdrr.qwest.net JOIN :#esoteric < 1581179534 118511 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :how do you like an approach between no closures in a language at all and their full support (but that needs tricky things without GC, and not many people would like to implement them). Instead we don’t allow functions to capture variables, but we do allow constructing partially applied functions and passing them around. That should definitely be not as tricky? < 1581180781 406547 :rain1!~debian@unaffiliated/rain1 PRIVMSG #esoteric :i guess it could work < 1581182807 741897 :rain1!~debian@unaffiliated/rain1 QUIT :Quit: Lost terminal < 1581185735 104551 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 272 seconds < 1581185989 345036 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :I don't know. < 1581186704 803321 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :I don't understand the difference.. < 1581186799 319567 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :If you pass around partially applied functions wouldn't that imply some form of GC too? < 1581186991 370572 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :Yes, that is what I thought. The difference seems to be that captured variables might be used and altered by multiple functions (and multiple calls to the same function), I think. < 1581187606 206945 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :SQLite still uses ARCFOUR for random numbers, even though I have read somewhere that sometimes the period is too small. < 1581188219 906670 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :This makes me think of just how tricky to design Rust's closures probably were < 1581188246 980134 :moony!moony@hellomouse/dev/moony PRIVMSG #esoteric :the language is built around tracking the lifetimes of everything, i'd imagine they could throw a wrench in the works < 1581189099 662050 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :yes, it was tricky < 1581189288 567957 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :https://doc.rust-lang.org/1.30.0/book/second-edition/ch19-02-advanced-lifetimes.html < 1581189304 923781 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it's one of the reasons why they support bounds of the form "Type: 'lifetime" as well as "Type: Trait" < 1581189318 466893 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :meaning "everything in this Type is live for at least 'lifetime" < 1581189365 352566 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it's not really unique to closures, because Rust closures (like C++ closures) are sugar for creating and populating an anonymous struct type with appropriate Fn/FnMut/FnOnce implementation < 1581189409 741241 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and (like C++) higher order functions are either generic over that type (static dispatch) or take a "trait object" (dynamic dispatch) < 1581189441 945467 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :anyway it's a lot of complexity but integrating closures into this scheme of things is really powerful < 1581189480 300280 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :for example you can capture stack objects by reference without fear that the closure will escape that stack frame < 1581189508 393329 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :you can even build a "scoped threads" library around this, which allows you to spawn a thread that is guaranteed not to outlive that scope < 1581189536 751388 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :which is a nice starting point for very efficient data parallelism < 1581189558 29086 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :splitting work up among threads without having to copy the data that they will be working on < 1581189615 750378 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :although it's not perfect, I think the design of Rust came together really well < 1581189690 697768 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1581189748 502790 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it was designed by some very smart people who didn't give up on having the trifecta of safe, fast, convenient < 1581189768 72764 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and the tradeoff is complexity < 1581189779 580878 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :but the complexity is pretty harmonious and most of it's there for a good reason < 1581189799 393334 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :unlike C++, which is similarly or more complex but for mostly accidental reasons < 1581189828 103944 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :but yeah closures in Rust are funky < 1581189837 392557 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :there's the lifetime-bounds-on-captures thing I just discussed < 1581189868 682832 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and then there's the question of capture by move vs. capture by reference < 1581189894 796757 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and then there's the three call traits Fn/FnMut/FnOnce which determine whether you can move *out* of the captures, and whether you can mutate them < 1581189916 421727 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :'mut' in Rust really means 'exclusive pointer' not 'mutation-allowing pointer' < 1581189938 282051 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :you need exclusive access to mutate, but it's the exclusivity that actually drives so much of the language design < 1581189951 527338 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it's a much stronger difference than &T vs const &T in C++ < 1581191320 842268 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :If you have "abcdefhijk" then you can put into the order "akbjcidhef" what is such an ordering called? < 1581191355 819180 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :like in the movie memento? < 1581191390 175523 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1581191443 512782 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :(That is, put the lowest element first, and then the highest element, and alternate the lowest and highest remaining element) < 1581196036 402131 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric : If you pass around partially applied functions wouldn't that imply some form of GC too? => maybe not, if we would do something awful to pointers :D < 1581196050 694495 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :didn’t see there was answers, as no one mentioned me :P < 1581196266 765629 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric : If you have "abcdefhijk" then you can put into the order "akbjcidhef" what is such an ordering called? => interesting thing, I haven’t seen a name for this < 1581196300 713213 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :arseniiv: Have you seen this kind of ordering used with anything though? < 1581196365 540623 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :zzo38: maybe in a deck shuffling method, but I’m not sure that’s not my imagination < 1581196476 917059 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :arseniiv: I don't think that works as a deck shuffling method, because you can't quickly reverse a deck. it could be a pancake shuffling method, because you can reverse a stack of pancakes. < 1581196502 1503 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :I would name that a spiral ordering maybe, as one can draw an archimedean spiral with center somewhere near the midpoint of the string, and it will pass through the string’s characters in that order < 1581196518 2193 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :It is used in a method of storing a Huffman tree that I invented, but I don't know how good it is compared with other methods. The values for each code length are stored in this order. < 1581196539 857405 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :O, that is what it is called. < 1581196555 549707 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :b_jonas: now I want pancakes < 1581196564 966540 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :I don't know what other uses there might be of such ordering < 1581196585 545945 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :Do you have the ingredients to make pancakes? < 1581196625 98815 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :yeah, but it’s very late here and I’m going to take a bath and then sleep < 1581196653 274341 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :not so very late but still < 1581196663 616735 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :O, OK. In morning you can make pancake then, if you like to do. < 1581196685 338628 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :it’s a good suggestion! < 1581196699 337742 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :well, bye < 1581196699 690677 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :fungot, do you eat pancakes < 1581196700 41660 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :b_jonas: i don't think you'd like grad cs? ( other than one .cpp < 1581196730 349708 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :fungot: do you bathe or are you intristically clean and shiny as bots go? < 1581196730 664612 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :arseniiv: wait a second < 1581196737 368923 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :haha < 1581196777 359730 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru PRIVMSG #esoteric :maybe it’s because I again typoed “intrinsically” < 1581197018 852714 :arseniiv!~arseniiv@94.41.41.172.dynamic.ufanet.ru QUIT :Ping timeout: 240 seconds < 1581198247 278207 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1581198752 339562 :ArthurStrong!~ArthurStr@slow.wreckage.volia.net JOIN :#esoteric < 1581199785 899657 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :egelbot: try 1 + throw ([X Y -> say X " "] "hello") catch [ F -> F "world!" ] < 1581199786 19697 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :hello < 1581199795 282424 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :egelbot: try 1 + throw ([X Y -> say X " " Y] "hello") catch [ F -> F "world!" ] < 1581199795 403923 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :hello world! < 1581199799 60236 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :\o/ < 1581199831 164443 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :Just checking. < 1581200101 445713 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :what? how does that work < 1581200106 397937 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :egelbot: say "a" "b" "c" < 1581200106 482435 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :abc < 1581200108 273359 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :what < 1581200111 653415 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :egelbot: (say "a") "b" "c" < 1581200111 673496 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :abc < 1581200122 181752 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :egelbot: say "a" < 1581200122 214972 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :a < 1581200133 999754 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :egelbot: (say "a", 0) < 1581200134 56189 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :a < 1581200134 601402 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :(System:tuple System:nop 0) < 1581200148 531520 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :egelbot: [(X, Y) -> X "b"] (say "a", 0) < 1581200148 586039 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :a < 1581200161 595600 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :that's evil < 1581200166 469105 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :variadic magic < 1581200300 950132 :HackEso!~h@unaffiliated/fizzie/bot/hackeso QUIT :Read error: Connection reset by peer < 1581200353 854742 :HackEso!~h@unaffiliated/fizzie/bot/hackeso JOIN :#esoteric < 1581200385 173765 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :egelbot: [X -> X "b"] say "a" < 1581200402 126468 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :egelbot: [X -> X "b"] (say "a") < 1581200402 159208 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :a < 1581200418 29281 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :egelbot: nop "a" < 1581200431 475117 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :nop as a head suppresses the printing? < 1581200464 499802 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :egelbot: [V -> (V, V)] (7; 6) < 1581200464 559647 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :(System:tuple 6 6) < 1581200501 360181 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :egel looks a lot like haskell imo < 1581200569 186116 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :It looks like difference to me. < 1581200600 145558 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :myname: egel is not lazy, and it's weakly typed < 1581200638 240232 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :egelbot: [V -> "unused"] (say "side effect") < 1581200638 240281 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :side effect < 1581200638 738162 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :"unused" < 1581200668 471231 :ArthurStrong!~ArthurStr@slow.wreckage.volia.net QUIT :Quit: leaving < 1581200898 763776 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I can imagine a strict language that looks identical to Haskell, and is semantically very similar apart from being strict < 1581200917 488072 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess I can imagine untyped Haskell too; does Haskell ever use its type system to figure out how to parse something? < 1581200966 212451 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :ais523: no, but Haskell uses typeclasses in a way that which class is chosen depends on the type of the result, not of the input arguments, like rust but unlike C++ < 1581200983 356273 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :egelbot: try 1 + throw ([X Y -> say X " " Y] (2+2)) catch [ F -> F "?" ] < 1581200983 412551 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :4 ? < 1581200995 441015 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :Just to be sure. < 1581201051 751571 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :Yah, variadic magic _is_ evil when combined with eager semantics. < 1581201062 27941 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :> (maxBound - (0::Int8), maxBound - (0::Int)) -- ais523: try that in an untyped language < 1581201064 397759 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : (127,9223372036854775807) < 1581201064 416246 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :But, ah well. < 1581201119 175636 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: I wasn't thinking in terms of existing programs still working, just in terms of the syntax and semantics making sense < 1581201139 803981 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :fizzie: can you please install libicu-dev onto HackEso inside, plus make it ignore egelbot while you're there? < 1581201228 665371 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :b_jonas: nop is just the return value for "say". It needs to rewrite to some value. < 1581201243 579127 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :b_jonas: Egel is impure, eager, weakly typed. < 1581201268 339347 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :spruit11: I think the "consensus" return value for that among computer scientists is to use an empty tuple < 1581201279 400452 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there are a number of mathematical benefits to that particular value < 1581201285 876769 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :ais523: Could be. I am not that informed. < 1581201292 161374 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :ais523: I don't think that's the consensus, that's just what Haskell uses < 1581201298 456221 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :OCaml too < 1581201364 319857 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the reason is based on the properties of product and sum types, a type with only one possible value is a unit for a product type, thus a type with only one possible value is an empty tuple < 1581201384 708470 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :yes, but there can be multiple distinct types with only one possible value < 1581201387 809422 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(likewise, the return value from functions that never return is an empty enum / a variant with no options, because it's the unit for a sum type) < 1581201405 371014 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: how do you distinguish the types? < 1581201427 541962 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :regardless of whether the language is weakly typed or compile time typed, you can use different types to distinguish isomorphic types for catching programming errors or making programming easier to think about < 1581201444 635369 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess you just have to arbitraily say "these things belong to different types", mathematicians dislike that sort of arbitrary requirement < 1581201462 52637 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because they're semantically identical after the language is compiled, they only affect type checking < 1581201469 363114 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :sure < 1581202367 921468 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :fungot, do lions eat watermelons? < 1581202368 371378 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :b_jonas: and got really scared :p. but, not a technical problem... altho my cat is in a < 1581202601 463468 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :Rust also uses an empty tuple < 1581202622 511991 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :if a function has no declared return type then it returns () < 1581202638 101987 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and "return;" is short for "return ();" < 1581202645 471993 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :It makes a bit more sense to use a special value in an untyped language. < 1581202663 597825 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :egelbot: nop < 1581202668 242280 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and a { ... } block which ends with a non-expression (e.g. a semicolon-terminated statement) produces the value () < 1581202669 639464 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :egelbot: tuple < 1581202669 707665 :egelbot!~egelbot@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :System:tuple < 1581202677 764395 :spruit11!~unknown@ip56522cc1.speed.planet.nl PRIVMSG #esoteric :^ because of that. < 1581202694 716049 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :(because blocks are expressions so it has to produce *something*) < 1581202722 85607 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :Rust's concrete syntax is all braces-and-semicolons but the abstract syntax is closer to ML than C < 1581202746 945111 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :seeing as most constructs are expressions and there are only a few kinds of non-expression statement < 1581202908 853037 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Rust has a bit of a backwards compatibility mess, though, with various competing empty types < 1581202928 97556 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there's ! which wasn't a type for ages, and various empty enums invented to serve as an empty type until ! became a type < 1581202934 707574 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think that's likely to get fixed eventually though < 1581203079 652441 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :yeah < 1581203137 949762 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :Haskell doesn't have a standard empty type either, does it < 1581203148 877033 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :Data.Void.Void is in base now < 1581203149 910473 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and I don't think you can define it in standard Haskell < 1581203151 529447 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :ok < 1581203160 327801 :Taneb!~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0 PRIVMSG #esoteric :But that's a GHCism < 1581203169 355369 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :yeah < 1581203173 200116 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :kmc: you can define it with the GADT syntax these days < 1581203180 890955 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :but that's not in standard Haskell, is it? < 1581203183 199088 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :I think it's like data Void where {} < 1581203186 621841 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :no clue < 1581203199 816178 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :doesn't matter, GHC is the de facto standard < 1581203210 558214 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :if it's a de facto standard then it should be a lot better documented < 1581203223 907176 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and they should at least have a subset of extensions which are semi guaranteed not to change randomly < 1581203224 182643 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :kmc: it is, there's a user manual that explains all the extensions < 1581203228 960167 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :"""explains"" < 1581203242 81921 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :"read this paper that we implemented a variant of half of" < 1581203259 316251 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :"and may completely change in the next minor version release" < 1581203355 681996 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :https://downloads.haskell.org/ghc/latest/docs/html/users_guide/glasgow_exts.html#declaring-data-types-with-explicit-constructor-signatures specifically < 1581203366 771730 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :kmc: well some extensions are like that, but some are pretty stable < 1581203383 245236 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :but there's no actual indication of which is which, is there? < 1581203428 561277 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :Rust has a lot of unstable features as well, and there's no Rust standard to begin with. but they're pretty careful about distinguishing stable from unstable features and not breaking backwards compat after something is declared stable < 1581203433 598787 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :and there's another extension to declare an empty enum, https://downloads.haskell.org/ghc/latest/docs/html/users_guide/glasgow_exts.html#data-types-with-no-constructors , but the GADT syntax is clearer < 1581203439 986073 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :GHC doesn't even comply with the Haskell spec anymore < 1581203446 234713 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :even with all extensions off < 1581203461 61938 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :there is valid Haskell 98 code that isn't accepted by GHC because they've defined stdlib stuff differently < 1581203491 97854 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 265 seconds < 1581203500 104862 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :kmc: you know there's a haskell 2010 standard, right? www.haskell.org/onlinereport/haskell2010/ < 1581203504 467024 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :sure < 1581203519 78479 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :s/98/2010/ in what I said < 1581203520 792141 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it's still true < 1581203528 779940 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and Haskell 2010 is only a minor revision of Haskell 98 < 1581203533 721367 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :and yes, one of the important changes is in the class hierarchy where Monads are now a ... Functor? or an Applicative? I don't follow < 1581203545 552800 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it didn't capture most of the GHC extensions in use in 2010 let alone whatever crazy shit people are using now < 1581203568 739103 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :"minor revision"? it's what documents a lot of nice stable what used to be GHC extensions to haskell 98 < 1581203584 67323 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :it doesn't want to revolutionize the language, but it gives you tools that you'll want to use without a standard anyway < 1581203601 919970 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :it only documents the more stable stuff, not every crazy experimental ghc extension < 1581203610 957622 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :and obviously it's like nine years old < 1581203637 979282 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :yes, it's a minor revision < 1581203671 422557 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it included a small number of minor extensions to Haskell 98 < 1581203687 580258 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :there are not many large Haskell programs that required GHC extensions with 98 but are valid standard Haskell 2010 < 1581203691 893723 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :imo < 1581203717 455868 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :if they're going to have one language release per decade then they need to step up the pace a lot to be relevant at all < 1581203723 387159 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and well < 1581203727 749004 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :they aren't relevant < 1581203735 749910 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :as you yourself said < 1581203756 305604 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :people don't code Haskell they code for GHC and whatever version happens to be available now < 1581203812 647332 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :kmc: yes. and that's not particularly different for rust either at the moment, until someone puts serious work into a rust frontend for gcc < 1581203838 867930 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :kmc: most current rust programs target the one rust compiler, and depend on how exactly it does type inference < 1581203918 612510 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :the difference is that they have a strong committment to not break code which compiles without extensions turned on < 1581203932 842585 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and even run regression tests against the entire published ecosystem on crates.io < 1581203936 495710 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :kmc: except for when it depends on the type inference. but sure. < 1581203981 687856 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :anyway, I do understand that haskell isn't too relevant, and I wouldn't recommend to write programs in it, but that's mostly because it's this strange research language based on lazy pure garbage-collected you know what < 1581204067 10921 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :and I do like rust < 1581204075 410709 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :I'm just saying that some of your complaints seem unfair < 1581204146 559074 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :and yes, the rust devs do indeed to good job about backwards compatibility in practice, but you do get most of the backwards compatibility with GHC too, except for the stupid Monad superclass issue, which you can fix, unless you use one of the crazy experimental extensions < 1581204317 136585 :xkapastel!uid17782@gateway/web/irccloud.com/x-oigvugxqdlcphsva JOIN :#esoteric < 1581204495 843258 :zzo38!~zzo38@24.207.50.7 PRIVMSG #esoteric :Is there a auto super class extension? < 1581204517 682353 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :dunno. you can try asking in #haskell. < 1581204520 727814 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :I mean < 1581204523 525939 :b_jonas!~x@catv-176-63-14-104.catv.broadband.hu PRIVMSG #esoteric :dunno. you can try asking in #haskell .