< 1309651896 635183 :Sgeo_!~Sgeo@ool-44c2d23d.dyn.optonline.net JOIN :#esoteric < 1309651903 826736 :Sgeo_!~Sgeo@ool-44c2d23d.dyn.optonline.net QUIT :Client Quit < 1309651923 915719 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :@hoogle [a] -> [a] < 1309651924 199394 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Prelude cycle :: [a] -> [a] < 1309651924 347931 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Prelude init :: [a] -> [a] < 1309651924 496422 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Prelude reverse :: [a] -> [a] < 1309651954 731021 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net JOIN :#esoteric < 1309651996 884545 :Sgeo!~Sgeo@ool-44c2d23d.dyn.optonline.net PRIVMSG #esoteric :If there are no Oracle machines capable of dealing with itself as part of the system it ... oracles, how can an omniscient entity exist? < 1309652059 784870 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :by not knowing about itself < 1309652061 317411 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric : it cannot. < 1309652067 370414 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :one that keeps separate from the system < 1309652068 564481 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :darn :P < 1309652088 141899 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric ::P < 1309652093 673299 :Sgeo!~Sgeo@ool-44c2d23d.dyn.optonline.net PRIVMSG #esoteric :Hmm. So, would Christians be ok with that sort of response? < 1309652104 617771 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :let me ask the consortium of defining what a christian can be < 1309652109 272621 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :they say it's half past you're a moron < 1309652109 932468 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :hmm. do an of us care? < 1309652128 410961 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: dammit you almost owed me a keyboard there :P < 1309652168 495062 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: :D < 1309652203 655407 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :Sgeo: God can make a rock so big he can't lift it, and still lift it! Moreover, God can know everything about everything and completely ignore any logical contradictions that happen as a result of this. God is beyond logic! < 1309652235 330853 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :god is beyond logic, and if you say anything else he'll smack you < 1309652267 942408 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :with lightning < 1309652268 292316 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :sgeo: incompleteness is about logic systems < 1309652270 923253 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :christianity is not < 1309652279 258058 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :(if you didn't notice any smacking that's because god is beyond logic) < 1309652296 234225 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :can god make yo mama so fat that even he cant lift her? < 1309652301 552533 :Sgeo!~Sgeo@ool-44c2d23d.dyn.optonline.net PRIVMSG #esoteric :The Torah actually says somewhere that God'll kill you if you work on Yom Kippur < 1309652303 853071 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :he can not smack you, and still have fulfilled the prophecy that he would smack you < 1309652317 410059 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :sgeo: ... eventually. < 1309652320 990017 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :newsham: smbc ripoff much? < 1309652322 378063 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Sgeo: presumably it doesn't say ho... right < 1309652335 800524 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :quintopia: quite. < 1309652356 543655 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :god kills everyone eventually < 1309652367 31384 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :except me < 1309652368 785954 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :bwahahaha < 1309652385 402880 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :i shall kill myself at a ripe old age of 2099 < 1309652389 17265 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :i've sometimes been wondering, since one of the essential pieces of diagonalization is the negation, whether you could have a self-consistent self-referential system if you threw out negation. < 1309652425 616366 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :possibly. you can have consistent self-referential systems by throwing out any number of things. < 1309652427 319381 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :newsham, except Enoch! < 1309652432 753950 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :(i.e. lambda calculus has fixpoints, but (thus) no negation that can work on all functions) < 1309652436 941110 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :And Mary, if you believe anything the Pope says. < 1309652462 818564 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :quintopia: well hopefully it would still be an interesting one somehow :P < 1309652485 557700 :Sgeo!~Sgeo@ool-44c2d23d.dyn.optonline.net PRIVMSG #esoteric :The Gospels do say Jesus had brothers... < 1309652486 236955 :TeruFSX!~quassel@168-103-62-17.dlth.qwest.net JOIN :#esoteric < 1309652492 796630 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :so umm.. whats the big deal w/ mary? jesus had brothers, i'm pretty sure she's not a virgin anymore. < 1309652528 365066 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :newsham: she was so awesome she stayed a virgin anyway? < 1309652543 463508 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :i've never been on ianbells hp till now.. it's so,..oldskool :) lotta things to get there for grownup spacerowdies < 1309652556 471414 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :she didn't have to be a virgin to be what's the word... < 1309652563 630434 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hagb4rd: wat? < 1309652572 805915 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :http://www.iancgbell.clara.net/ < 1309652574 341676 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :well the pope is always going on about her being a virgin.. is all... < 1309652592 266495 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :theres also a little bit of sourcecode < 1309652605 614573 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :hagb4rd: wow, did someone build a time machine? < 1309652610 449030 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :http://www.catholic.com/library/Mary_Ever_Virgin.asp oh here's the answer < 1309652623 716130 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :that web page is one tag away from 1992 < 1309652625 292846 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :"you can believe whatever you like. she's still a virgin dammit" < 1309652641 26496 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Why are we talking about Ian Bell all of a sudden? < 1309652654 633113 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :(It makes my eyes bleed.) < 1309652657 20594 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :somebody has to kick off a sequel newsham < 1309652670 597060 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :newsham: wait you mean blink tags are time machines? maybe they shouldn't have been stamped out... < 1309652695 818310 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :newsham, TbH, Ian Bell gets off with it by virtue of being Ian Bell. < 1309652698 214380 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :what of james the brother of jesus? < 1309652743 240374 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :http://bible.cc/galatians/1-19.htm < 1309652790 976284 :Lymee!~moe@unaffiliated/cirno-chan QUIT :Ping timeout: 258 seconds < 1309652809 355588 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :newsham: that page says that he could be at most a stepbrother < 1309652809 718085 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :*shrug* mary mary, quite contrary... < 1309652824 994085 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :quintopia: because God wasn't his dad? < 1309652844 21786 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :newsham: if mary had been his mother, he'd be a half-brother < 1309652849 941480 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :oh, this is the guy who wrote Elite.. neat. < 1309652874 268977 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :instead, he was just the son of Joseph < 1309652877 340605 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm did jews practice polygamy at that time? < 1309652894 175992 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :who was a widower when mary was entrusted to him < 1309652901 598376 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :anyway < 1309652905 616157 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :that's what that page says < 1309652912 272551 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :supper time... < 1309652938 909222 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :super soup supper < 1309652962 930082 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :this page is not readable without highlighting text < 1309652963 994889 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :http://www.iancgbell.clara.net/elite/nes/index.htm < 1309652966 636318 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :very retro 1992 < 1309653001 996521 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :82Kbytes.. huge game < 1309653027 496093 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I approve of this Elite talk. < 1309653140 477951 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :i wonder how many 8-bit game devs worked in crossdev environments vs. native environments < 1309653398 332604 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :and if you haven't seen it yet, ..no even you hate ..be sure to watch southpark episode 13.3 .. it's analogies to good ol joshuas story are just delicious --> http://de.southparkstudios.com/alleEpisoden/1303/?lang=en < 1309653447 640059 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :if you're not in a hurry ;) < 1309653471 646026 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :newsham, I'm amazed they ported it that much, TbH. < 1309653513 240915 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :It was written in straight assembly; porting was just writing it again with an entirely new set of optimisations. < 1309653552 155558 :Lymee!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309653632 787226 :Sgeo!~Sgeo@ool-44c2d23d.dyn.optonline.net QUIT :Ping timeout: 255 seconds < 1309653931 889917 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :got Elite in NES emulator. < 1309653960 466159 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :phantom: they did have many ports for same cpu, too, ie. all the 6502 ports, two 68k ports < 1309653976 896440 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :newsham, FWIW, there's a modern remake at http://oolite.org < 1309653982 382662 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :also game design done once, programming done several times, profit. < 1309653989 682831 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :who wants a modern remake? :) < 1309654005 298238 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :thats like installing SCUMMVM and then running some new community-made game < 1309654010 522670 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Well, you can turn on the wireframe and put it into strict mode and it's basically the same. < 1309654036 105347 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :they have the BBC elite code online.. thats kinda neat < 1309654044 187839 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :wish they had some 6502 code.. i'd rather look at that < 1309654076 494913 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :newsham: Elite is boring though, Oolite is less boring :P < 1309654083 494248 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :also wish this site had more story to it < 1309654095 784520 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :elliott: honeslty i dont plan to really play either < 1309654121 648678 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :but thakns for pointing it out.. looks neat < 1309654532 809925 :Sgeo!~Sgeo@66-87-0-206.pools.spcsdns.net JOIN :#esoteric < 1309654604 838446 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :i would love to resign on the story gaining its sandbox abilities.. a real world made up by its citizens < 1309654628 333649 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :the star-dreamer problem is problem in mp < 1309654652 509198 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :i cant tell if you're talking or just generating random trigrams < 1309654710 519249 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :i guess it's more random and definitly not worth your time < 1309654763 465054 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :we were youg, and we had the time and the money *g < 1309654771 291775 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :newsham: latter < 1309654783 86078 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :ACTION .Dispose() < 1309654823 615619 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :"We had access to too much money, too much equipment, and little by little we went insane" < 1309654827 393169 :Sgeo!~Sgeo@66-87-0-206.pools.spcsdns.net QUIT :Ping timeout: 260 seconds < 1309654861 196459 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :oolite is in objc. heh < 1309654877 577229 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :portable objc! < 1309655360 777575 :Lymee!~moe@unaffiliated/cirno-chan QUIT :Ping timeout: 276 seconds < 1309655519 308860 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :agum library and program: Unification and Matching in an Abelian Group < 1309655519 457340 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :cmu library and program: Unification in a Commutative Monoid < 1309655523 797959 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: IS THERE ANYWHERE SAFE FROM UNIFICATION < 1309655549 578839 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :elliott: koreas? taiwan? < 1309655561 249127 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :(I guess we can rule out germany) < 1309655571 791011 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hyuk < 1309655639 862025 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :cyprus? < 1309655656 216315 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :gondwana? < 1309655684 810535 :cheater_!~ubuntu@g229096220.adsl.alicedsl.de QUIT :Ping timeout: 255 seconds < 1309655841 559054 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :it's still expanding as far as i know.. my discordian friends ..the unification will implode if we don't find a new name for the princess ;) < 1309656006 745537 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :plagiata < 1309656039 22663 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net JOIN :#esoteric < 1309656092 907982 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :hey it's not taken, it just grows and breeds tiny new creatures < 1309656140 723054 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :What? < 1309656152 631147 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :Sorry, looking at logs right now will put me in a world of pain < 1309656255 857966 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :!bf . < 1309656261 710100 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :... < 1309656380 353778 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :Ok, can afford to look at logs now < 1309656449 5378 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :WOAH < 1309656486 444634 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :http://calormen.com/l33t/jselite.htm < 1309656488 805418 :cheater_!~ubuntu@e179113019.adsl.alicedsl.de JOIN :#esoteric < 1309656655 2786 :Vorpal!~AnMaster@unaffiliated/anmaster QUIT :Ping timeout: 258 seconds < 1309656741 209563 :Lymee!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309656748 706674 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :i'm a tard, the bbc was 6502? < 1309657131 145498 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :i need to write some 6502 code < 1309657494 387347 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :<3 Text Elite. < 1309657728 488636 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :Phantom_Hoover, I assume these are not in any particular order? < 1309657751 979992 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric : http://calormen.com/l33t/jselite.htm < 1309657795 60474 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :OK I think it's starting to get light outside argh. < 1309657795 701853 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PART #esoteric :"Leaving" < 1309657797 961650 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 QUIT :Quit: Leaving < 1309657812 36419 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no it isnt < 1309657840 874535 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it takes another hour for that] < 1309657853 664060 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :hehe < 1309657854 914887 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I think NES/Famicom is like 6502 except that the decimal mode has no function < 1309657912 265948 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :the bcd instructions were useless anyway :) < 1309657959 823117 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :"The Ricoh 2A03 was a 6502 variant lacking the BCD Mode, used in the Nintendo Entertainment System." < 1309658573 810356 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :"We also experiment with photograpy of nudes painted with flourescent cosmetics under "black" (UV) light. " -Ian Bell, as we love him < 1309658657 553619 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :a < 1309659426 178402 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I think the decimal mode flag still exists except that it doesn't do anything except storing one flag bit (now you can use it for your own purpose, I think). < 1309660058 890109 :TeruFSX!~quassel@168-103-62-17.dlth.qwest.net QUIT :Ping timeout: 255 seconds < 1309660839 521640 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t interleave < 1309660840 318746 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (m :: * -> *) a. (MonadLogic m) => m a -> m a -> m a < 1309660913 311083 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CALESKELL < 1309660919 340245 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: s/m/[]/ < 1309661085 905944 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :wtf O_O < 1309661092 966943 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what about Logic, LogicT, all of the other bizarre MonadLogic instances < 1309661097 525719 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :like isn't there a ST instance < 1309661100 313318 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t intersperse 'o' (repeat 'l') < 1309661101 81877 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :[Char] < 1309661105 23424 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> intersperse 'o' (repeat 'l') < 1309661105 746484 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "lololololololololololololololololololololololololololololololololololololo... < 1309661124 709564 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> fix ("no" ++) < 1309661126 193050 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "nonononononononononononononononononononononononononononononononononononono... < 1309661126 830775 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oops < 1309661128 422601 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :yes < 1309661174 866814 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> interleave "what" "now?" < 1309661175 658728 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "wnhoawt?" < 1309661207 119526 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : what about Logic, LogicT, all of the other bizarre MonadLogic instances < 1309661208 747735 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :those aren't standard < 1309661212 784845 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :intersperse is caleskell < 1309661224 767877 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :as in < 1309661225 432625 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh < 1309661228 359930 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :real intersperse is lists only < 1309661240 202623 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t intercalate < 1309661241 26474 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. [a] -> [[a]] -> [a] < 1309661247 494312 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: um that's interleave, not intersperse < 1309661251 590867 :Behold!~behold@unaffiliated/beholdmyglory QUIT :Remote host closed the connection < 1309661254 968298 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric ::t intersperse < 1309661255 668571 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. a -> [a] -> [a] < 1309661258 644321 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah yeah < 1309661259 343128 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :same thing < 1309661265 86887 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?src Int (/) < 1309661265 281623 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Source not found. Do you think like you type? < 1309661266 673827 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?src div < 1309661266 890366 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Source not found. Your mind just hasn't been the same since the electro-shock, has it? < 1309661273 390885 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle div < 1309661273 643184 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Prelude div :: Integral a => a -> a -> a < 1309661273 795939 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.Fixed div' :: (Real a, Integral b) => a -> a -> b < 1309661273 944523 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Exception DivideByZero :: ArithException < 1309661277 172444 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :um no caleskell in intersperse < 1309661284 399066 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t interleave < 1309661285 159018 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (m :: * -> *) a. (MonadLogic m) => m a -> m a -> m a < 1309661290 464007 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you know what i mean < 1309661297 4054 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric ::t intercalate < 1309661297 757847 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. [a] -> [[a]] -> [a] < 1309661304 364094 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :surely that could be generalised :) < 1309661316 102273 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: um afaik interleave does not exist in Data.List at all < 1309661321 815098 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle interleave < 1309661322 43137 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :System.IO.Unsafe unsafeInterleaveIO :: IO a -> IO a < 1309661322 206571 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Monad.ST unsafeInterleaveST :: ST s a -> ST s a < 1309661322 355029 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Monad.ST.Lazy unsafeInterleaveST :: ST s a -> ST s a < 1309661323 350617 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh < 1309661327 665408 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fair enough then < 1309661335 368108 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's entirely caleskell, then < 1309661342 577339 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :although it might have been useful < 1309661378 78946 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :quotRemInt :: Int -> Int -> (Int, Int) < 1309661378 311100 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :quotRemInt a@(I# _) b@(I# _) = (a `quotInt` b, a `remInt` b) < 1309661378 459742 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : -- OK, so I made it a little stricter. Shoot me. (WDP 94/10) < 1309661378 459915 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :divModInt :: Int -> Int -> (Int, Int) < 1309661378 460026 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :divModInt x@(I# _) y@(I# _) = (x `divInt` y, x `modInt` y) < 1309661385 198664 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's ok WDP, we forgive you < 1309661388 315871 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> interleave "abc" (repeat ' ') < 1309661389 92158 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "a b c ... < 1309661401 765473 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> "hello" >>- return < 1309661402 65354 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : div x@(I8# x#) y@(I8# y#) < 1309661402 362451 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : | y == 0 = divZeroError < 1309661402 362636 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : | x == minBound && y == (-1) = overflowError < 1309661402 362744 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : | otherwise = I8# (narrow8Int# (x# `divInt#` y#)) < 1309661402 527157 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "hello" < 1309661403 231648 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :boring < 1309661414 851005 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :wait shouldn't that have a hash after the 0 in the y comparison < 1309661416 422148 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: not quite the same as intersperse even that way < 1309661423 543650 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t (>>-) < 1309661424 296869 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b < 1309661466 999197 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you know what i wish? < 1309661480 654034 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i wish the fail method wasn't in the Monad class. < 1309661489 319444 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i wish that too < 1309661493 181763 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(and replaced with class MonadFail e m where fail :: e -> m a) < 1309661499 432913 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(instance MonadFail e (Either e) where fail = Left) < 1309661506 682723 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(instance MonadFail e Maybe where fail = const Nothing) < 1309661518 292797 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance (Show e, Typeable e) => MonadFail e IO where fail = throw . SomeWrapper) < 1309661523 44856 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i also wish there weren't so many ridiculous equivalent typeclasses < 1309661527 993853 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that would be Nice. < 1309661548 653544 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :myFailingThing :: (MonadFail String m) => Int -> m BlahBlah < 1309661554 272048 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: like what? < 1309661570 416395 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :elliott: off the top of my head, monadplus, alternative, and friends < 1309661578 82831 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ah, right < 1309661580 380629 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?src MonadPlus < 1309661580 603683 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Source not found. Are you on drugs? < 1309661583 640942 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :isn't MonadPlus just Monoid < 1309661589 686138 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :that too < 1309661592 693326 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: i also wish applicative was a superclass of monad. < 1309661598 365487 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :mmmm < 1309661604 656389 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: and also, that subclasses could define default methods for _superclasses_ < 1309661609 812250 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that use the methods in itself < 1309661611 292057 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :yes yes < 1309661612 291496 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so that you would have < 1309661614 82622 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class Monad m where < 1309661615 235072 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ... < 1309661617 750179 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : fmap = liftM < 1309661623 163410 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : pure = return < 1309661623 599661 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :etc. < 1309661630 605072 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then you could just define one Monad instance, and get Functor and Applicative for free. < 1309661634 776762 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :why doesn't this already work. < 1309661639 4063 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> "hello" >>- repeat < 1309661639 816611 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "hehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhe... < 1309661642 567293 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it would retain total backwards compatibility < 1309661643 266390 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :woohoo < 1309661647 779373 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: lol < 1309661673 934960 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :who do you think I need to pay to get those subclass defaults in GHC < 1309661680 147739 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh, it would also let you clean up the numeric prelude < 1309661681 37508 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :by, like < 1309661684 348129 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :just defining a Field instance < 1309661692 164531 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and getting all the weird algebraic superclasses filled in for you < 1309661712 286027 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> once "hello" < 1309661713 39189 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "h" < 1309661716 771601 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric ::t (>>-) < 1309661717 561712 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b < 1309661741 911816 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i would make haskell just that little bit nicer than it is if i was dictator :( < 1309661743 321720 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :oh just the >>= for MonadLogic? < 1309661748 42142 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :or something else < 1309661748 442994 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :yeah < 1309661750 904424 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :fair >>= < 1309661758 31654 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :oh < 1309661763 829437 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy knows too much about MonadLogic < 1309661768 122523 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i am staring suspiciously at him < 1309661778 526334 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i have the docs open _right now_ < 1309661812 121411 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :> runLogic "fucks" (flip const) 0 < 1309661812 889861 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Couldn't match expected type `Control.Monad.Logic.Logic a' < 1309661813 38238 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : against ... < 1309661828 8287 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ur a fagot < 1309661829 625033 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::( < 1309661831 24579 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm < 1309661840 460576 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric ::t runLogic < 1309661841 201494 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a r. Logic a -> (a -> r -> r) -> r -> r < 1309661841 423481 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :*ovations* < 1309661841 874767 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :logict is cool < 1309661845 826505 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :its oleg < 1309661849 824268 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :olegs cool < 1309661856 496841 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :deep thoughts w/ ehird < 1309661870 101569 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i have the paper but its in my reading pile < 1309661873 665076 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :not my brain < 1309661887 179143 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: the entirety of okmij.org should be in your reading pile and/or brain < 1309661889 678767 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :even the C++ bits < 1309661892 469316 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :even the Perl bits < 1309661900 93590 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :@src MonadLogic < 1309661900 306155 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Source not found. Are you on drugs? < 1309661901 437106 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :putting in reading pile < 1309661920 192788 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: you do know of oleg though right < 1309661920 709577 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :rofl < 1309661926 821282 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net PRIVMSG #esoteric :nice updates < 1309661927 777962 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :like in the "minor deity" sense of knowing < 1309661928 485710 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i've heard the name < 1309661939 106255 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> "ab" >>- repeat < 1309661939 653557 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :the name;s everywhere < 1309661939 904906 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "ababababababababababababababababababababababababababababababababababababab... < 1309661944 340222 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> "abc" >>- repeat < 1309661945 134753 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "abacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacab... < 1309661969 450533 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :that doesn't look very fair, every second is an a :P < 1309661972 596269 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: he's basically a genius. he has done practically everything that is possible to do in the lambda calculus, in haskell, in scheme, in haskell's type system, in scheme hygienic macros. < 1309661977 259130 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and he even does practical stuff, too :D < 1309661979 797098 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :e.g. iteratees are his fault. < 1309661995 544076 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm, did Oleg popularise the zipper? < 1309661999 117928 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I think he might have < 1309662004 775480 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hard to be fair when you have an odd number :P < 1309662024 9154 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> ifte "hello" fail "nope" < 1309662024 730716 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Couldn't match expected type `GHC.Types.Char' < 1309662024 886701 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : against inferred type... < 1309662031 772401 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :uhh < 1309662033 257004 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: um why can't it be the same as cycle "abc"? < 1309662034 636366 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh right < 1309662035 625152 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you need Logic a < 1309662040 151087 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: presumably that's not how it works < 1309662042 188124 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> ifte "hello" (const fail) "nope" < 1309662042 948861 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Couldn't match expected type `[b]' < 1309662043 120574 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : against inferred type `GHC.Base.... < 1309662046 454728 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh wait < 1309662049 44096 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :as in < 1309662051 598155 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :not the same operation < 1309662054 30205 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> ifte "hello" (fail . return) "nope" < 1309662055 523201 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "" < 1309662059 234487 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> "abcd" >>- repeat < 1309662060 20578 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "abacabadabacabadabacabadabacabadabacabadabacabadabacabadabacabadabacabadab... < 1309662066 123734 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :not knowing how to use ifte is the worst < 1309662072 746072 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: that's even ;P < 1309662074 638500 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: btw i was not serious about reading all of okmij.org. that would take a _long_ time < 1309662082 101897 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :too late < 1309662086 574351 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i will only read part of it < 1309662126 940013 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> ifte "hello" repeat "nope" < 1309662127 745303 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh... < 1309662141 879380 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :just read the haskell, scheme, prolog, ML, typed DSL, other, continuations, OS, computation, essays, probabilistic programming, numerical math, and meta-theory sections. plus everything linked from the algorithms and data structures, computing and computation, operating systems and networking pages. < 1309662152 104933 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that skips out the C/C++, Perl and XML sections < 1309662168 564764 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i dislike xml xml is boring and ugly < 1309662175 776841 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :is there anything interesting at all in xml < 1309662177 85724 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oleg makes it cool < 1309662183 532363 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :now im curious < 1309662194 78430 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :he invented SXML, which embeds the entirety of XML into nice clean s-expressions < 1309662203 333907 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :thus making it not horrid to process and generate from Scheme code < 1309662220 662403 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then went and built an entire practical library on top of it as he is infuriatingly wont to do. < 1309662224 885444 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you can only be good at one thing, oleg :( < 1309662236 557536 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :also sxpath, which is basically s-expression xpath for sxmls. < 1309662241 920370 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and then < 1309662242 153319 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :HSXML: Typed SXML < 1309662242 302018 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :This message reports on several experiments in Haskell to ascertain plausibility, benefits and drawbacks of typed SXML in a mainstream functional language. It turns out that Haskell as it is can represent semi-structured data in SXML-conforming syntax, with the extensible set of `tags' and statically enforced content model restrictions. Querying, transforming and advanced rendering into HTML and XML are possible. The experience of writing (modera < 1309662242 302105 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :tely complex, so far) web pages in HSXML shows that the typed SXML can be used in practice. < 1309662268 502785 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what, he wrote an sxml->latex translator < 1309662275 127143 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Joint processing of two immutable SXML documents with update cursors < 1309662275 314176 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :We give an example of traversing two SXML documents ``side-by-side'' and making pure functional updates to arbitrary encountered nodes. The example illustrates the benefits of zipper -- an update cursor into an immutable data structure. < 1309662285 780760 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :SXML as a normalized database < 1309662285 929381 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :S-expression-based files are handy not only for authoring Web pages. They can be used to build XML documents. The following article shows a real-life and less-trivial example of that. It is straightforward to convert data into (tag "data") and vice versa. The SSAX parser and the SXML manipulation tools can do that easily. However, exporting relational sources into XML often runs into an impedance mismatch: XML by its nature is a hierar < 1309662285 929577 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :chical database. We will show an example of generating XML from s-expressions that involves denormalizations, "table joins" and third-order tags. The s-expression format turns out not only more understandable and insightful, but more concise as well, by a factor of four. < 1309662291 567365 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :dammit oleg < 1309662296 144306 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you're making me interested in xml :( < 1309662410 815314 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> cycle "01" >>- repeat < 1309662411 623189 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "01000101010001000100010101000101010001010100010001000101010001000100010101... < 1309662518 641454 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :?type (>>-) < 1309662519 400921 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b < 1309662553 534858 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :?src (>>-) < 1309662553 727642 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Source not found. < 1309662558 558599 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :what is that? < 1309662566 932407 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :fair >>= for monadlogic < 1309662585 925086 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :i dont know monadlogic.. i need to look it up < 1309662592 596379 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :m >>- f = do { Just (a, m') <- msplit m; interleave (f a) (m' >>- f) } < 1309662597 787175 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :thats the default definition < 1309662638 417944 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :aha < 1309662672 715724 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> msplit "abcd" < 1309662673 516168 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [Just ('a',"bcd")] < 1309662692 359195 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :so i thought people used maybe/[] for backtracking.. whats this got over them? < 1309662710 92400 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :cool backtracking for cool people < 1309662743 79006 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh man is this actually a monad < 1309662748 676104 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :newsham: oleg < 1309662761 774308 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :newsham: tl;dr its about five hundred times more efficient. < 1309662766 257352 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and has a cleaner model IIRC < 1309662800 634708 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :newsham: it looks like >>- unlike >>= backtracks on the first argument even if the second one returns an infinite list < 1309662851 396579 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance Monad ((:>:) a) where < 1309662851 644093 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : return a = Tele (\f x -> (a,x)) < 1309662851 793794 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : t >>= f = Tele (\ff x -> unTele (f (get t x)) ff x) < 1309662852 571735 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe it is < 1309662883 263225 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what are the monad laws again < 1309662911 128078 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :with that >>- i'm particularly worried about the third one < 1309662974 105861 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :return x >>= f = f x, x >>= return = x, (x >>= f) >>= g = x >>= \t -> f t >>= g < 1309662974 923730 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net QUIT :Ping timeout: 255 seconds < 1309663008 46646 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :thou shalt not take the name of wadler in vain, thou shalt not covet your neighbors impure scripting language, bind unto others as you would have them bind unto you < 1309663011 747886 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :or something like that < 1309663018 899656 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :whats (:>:) < 1309663039 663536 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net JOIN :#esoteric < 1309663057 229598 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: newtype a :>: b = Tele { unTele :: (b -> b) -> a -> (b, a) } < 1309663057 748048 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :How likely is it that Symantec is the reason my computer runs like crap? < 1309663062 851425 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :my reinvention of lenses and fclabels < 1309663065 443540 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :except this has efficient update < 1309663069 723246 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgeo: haahahahaha why do you use symtantec < 1309663075 314921 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is it because your father demands it < 1309663076 299901 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :is it a good reinvention < 1309663081 578655 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :elliott, even my dad hates it. < 1309663083 43243 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: it has efficient update, so maybe? < 1309663086 260405 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :The school requires it. < 1309663086 896023 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgeo: then why the fuck do you use it < 1309663089 356683 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hahahaha < 1309663090 858570 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :who gives a shit < 1309663092 525122 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :do they check < 1309663093 311516 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what sort of school < 1309663094 925588 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :would do that < 1309663099 736104 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :To use wifi < 1309663101 82096 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: my baby's first college < 1309663102 705461 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgeo: do they check < 1309663103 507492 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :At school, I mean < 1309663105 946303 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgeo: do they check < 1309663109 618438 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> ("ab" >>- \x -> [[x,'c'],[x,'d']]) >>= \y -> ['e':y,'f':y] < 1309663110 361093 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : ["eac","fac","ebc","fbc","ead","fad","ebd","fbd"] < 1309663121 366504 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :elliott, yes. Not sure how, probably can be worked around < 1309663128 804381 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgeo: uninstall it immediately and figure out how to work around it < 1309663138 417259 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :er wait < 1309663144 442774 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> "ab" >>- \x -> [[x,'c'],[x,'d']] >>- \y -> ['e':y,'f':y] < 1309663144 878467 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :sgeo: turn it off and find out. < 1309663145 179889 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : ["eac","ebc","ead","ebd","fac","fbc","fad","fbd"] < 1309663156 579492 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :sgeo: do you really want a useless piece of software slwoing down every single file access? < 1309663165 213117 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> ("ab" >>- \x -> [[x,'c'],[x,'d']]) >>- \y -> ['e':y,'f':y] < 1309663165 990208 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : ["eac","ebc","fac","ead","fbc","ebd","fad","fbd"] < 1309663186 817741 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: ok >>- is not a monad >>= < 1309663193 478242 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: no shit < 1309663196 324290 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :its not meant to be < 1309663201 821407 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe you should read the docs :P < 1309663205 74158 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :um < 1309663211 438575 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> (0$0 >>-) < 1309663212 195199 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : The operator `Control.Monad.Logic.Class.>>-' [infixl 9] of a section < 1309663212 343733 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : m... < 1309663229 990680 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: that's a criminal lack of fixity consideration < 1309663236 927662 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :also, what do you mean _read_? < 1309663245 869354 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :study < 1309663257 653578 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :as the brits say, revise < 1309663264 83970 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :worship??? < 1309663290 411776 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(b :>: c) -> (a :>: b) -> (a :>: c) < 1309663291 583152 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ugh how < 1309663357 942089 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t ?x < 1309663358 678196 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall t. (?x::t) => t < 1309663365 735447 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :why does nobody use implicit parameters < 1309663406 927679 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :implicit parameters are scary < 1309663444 792315 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i wish i had a big project like ghc to hug < 1309663452 569041 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: first oleg needs to show how they can be used to make lightweight delimited continuations that also make coffee < 1309663456 350504 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :like i feel like i'm getting really good at modelling large programs with haskell < 1309663459 679014 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but to test that < 1309663463 699239 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i need to write a large program < 1309663467 678153 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and i have no large programs to _write_ < 1309663470 149181 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: :D < 1309663478 92767 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"lightweight delimited continuations" is _so_ oleg < 1309663677 740770 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :http://www.symantec.com/business/support/index?page=content&id=TECH102286&locale=en_US oh what the fuck why do they make it annoying? < 1309663686 235394 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :They don't just provide an uninstaller, afaict < 1309663693 998947 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :ok, so fair disjunction is mplus that lets some answers from both sides in < 1309663697 567030 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :? < 1309663706 748594 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :n/m they do < 1309663707 664761 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :and thats "interleave"? < 1309663741 59384 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> interleave "hello" "world" < 1309663741 819370 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "hweolrllod" < 1309663765 74379 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :>interleave [1..] [-1,-2..] < 1309663769 937678 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :>interleave [1..] [-1,-2..] < 1309663772 413980 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :> interleave [1..] [-1,-2..] < 1309663773 146506 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,-7,8,-8,9,-9,10,-10,11,-11,12,-12,13,-13,1... < 1309663781 287419 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :> sum $ interleave [1..] [-1,-2..] < 1309663785 80908 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1309663791 909251 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Blasphemy. < 1309663818 153962 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :so you basically use "interleave" and ">>-" where you would have used "mplus" and ">>=" in the past? < 1309663823 319313 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :carpen dioxide < 1309663898 539436 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :once for pruning, ifte for soft-cut < 1309663902 309002 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :msplit for msplit < 1309663912 291630 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> fix ((0:).(interleave<=<(1-))) < 1309663913 102802 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Couldn't match expected type `[t]' < 1309663913 251071 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : against inferred type `m a -> m a' < 1309663915 724038 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :bah < 1309663933 41117 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Did you ever benchmark list-tries against Data.Map? < 1309663956 101029 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: side-msplitting < 1309664024 213852 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :it's like you have one element of a side and then the rest of the side except when there is no side in which case you have nothing???? < 1309664060 994102 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :well a wrapped just elementofside,restofside or a wrapped nothing < 1309664083 982656 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i am bad at wording things what will i do in life < 1309664099 711208 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric ::t (<**>) < 1309664100 472145 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (f :: * -> *) a b. (Applicative f) => f a -> f (a -> b) -> f b < 1309664130 764131 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :I still don't quite understand why (<**>) exists < 1309664173 221502 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle address < 1309664173 448314 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Text.Html address :: Html -> Html < 1309664173 600695 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Text.XHtml.Frameset address :: Html -> Html < 1309664173 749077 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Text.XHtml.Strict address :: Html -> Html < 1309664176 993933 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle address with some hashes after it < 1309664177 255935 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :No results found < 1309664177 404381 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :monqy: to get the actions done in the reverse order of the application < 1309664180 510908 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle so unsafe baby < 1309664180 787282 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :No results found < 1309664184 523070 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle be unsafe w/ me < 1309664184 745570 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Parse error: < 1309664184 898323 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : --count=20 "be unsafe w/ me" < 1309664185 46702 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : ^ < 1309664189 419504 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle ass < 1309664189 645126 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Exception assert :: Bool -> a -> a < 1309664189 793731 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.OldException assert :: Bool -> a -> a < 1309664189 793905 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Exception.Base assert :: Bool -> a -> a < 1309664190 662846 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oerjan: but is it ever stylish to do that < 1309664221 93848 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :monqy: istr we found a perfect use for it in one of elliott's programs < 1309664231 301464 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::D < 1309664234 181030 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :my best programs < 1309664288 153341 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :monqy: it was in Parsec, for a language syntax where the "minus sign" comes after the number < 1309664329 609156 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :so it was essentially parseNumber <**> (parseSign *> negate <|> id) < 1309664343 449825 :TeruFSX!~quassel@168-103-62-17.dlth.qwest.net JOIN :#esoteric < 1309664345 549853 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :well at one point any way < 1309664357 390232 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :very stylish < 1309664379 258538 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that is actually stylish, dunno if you're being sarcastic < 1309664390 152686 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :sometimes im not sarcastic < 1309664403 237760 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what's the definition of (<**>) btw? < 1309664406 107675 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: sometimes < 1309664413 851243 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :@src (<**>) < 1309664413 999996 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: like whenever you're not talking to me ;D < 1309664414 148905 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(<**>) = liftA2 (flip ($)) < 1309664415 239846 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :sometimes im both sarcastic and not sarcastic in the same sentence i am a bad person < 1309664436 474632 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i can never tell whether monqy is mocking me or agreeing with me, maybe he is always mocking me, maybe he is always both < 1309664474 246021 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> fix ((0:).(interleave<*>map(1-))) < 1309664475 739595 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,... < 1309664485 322012 :azaq23!~derivecto@unaffiliated/azaq23 JOIN :#esoteric < 1309664488 452985 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm that's not quite it < 1309664536 14230 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1309664558 308628 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :wtf not < 1309664580 784389 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> interleave "0110" "1001" < 1309664581 535047 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "01101001" < 1309664614 648524 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :oh wait < 1309664661 115640 :newsham!~chat@udp216902uds.hawaiiantel.net PRIVMSG #esoteric :> interleave "abcd" "ABCD" < 1309664661 814412 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "aAbBcCdD" < 1309664689 935505 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1309664713 599821 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> fix ((0:).(interleave=< interleave "1001" "0110" < 1309664777 943827 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :> interleave "1001" "0110" < 1309664778 704132 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "10010110" < 1309664782 770865 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> fix (((0:).tail).(interleave<*>map(1-))) < 1309664784 260800 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Terminated < 1309664791 59903 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :wat < 1309664800 24351 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :is there any other pair of four digit binary strings that has that property oerjan? < 1309664812 231370 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :certainly :P < 1309664832 276979 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :> interleave "1010" "0101" < 1309664833 23203 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "10011001" < 1309664870 284881 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm i guess only trivial ones < 1309664878 529420 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> interleave "0000" "0000" < 1309664879 316852 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "00000000" < 1309664904 708464 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> fix (((0:).tail).(interleave<*>map(1-))) < 1309664906 126279 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,... < 1309664906 685797 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :hmm < 1309664921 733000 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :that works, but i'd hoped for something prettier :( < 1309664922 225046 :Lymia!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309664937 604860 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm... < 1309664944 115537 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :why is reallyUnsafePtrEquality# not reliable :( < 1309664961 2636 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I think it is the Thue-Morse sequence, isn't it? < 1309664963 725802 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :reallyUnsafe good prefix < 1309664971 881982 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: it is < 1309664980 399884 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :zzo38: yep < 1309664983 847731 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's not nearly as unsafe as unsafeCoerce so i dunno why it's called that :) < 1309664996 928916 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :reallyReallyUnsafeCoerce < 1309665072 973602 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :justFuckingDon'tDoItNotEvenOnceCoerce :: a -> no bad why no b < 1309665114 406089 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: i'm sorry that won't type :P < 1309665131 928290 :Lymee!~moe@unaffiliated/cirno-chan QUIT :Ping timeout: 264 seconds < 1309665143 826264 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric ::t const undefined < 1309665144 558796 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a b. b -> a < 1309665146 660877 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :intern :: (Hashable a, Ord a) => InternStore a -> a -> Interned a < 1309665146 896604 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :intern (InternStore var) a = unsafePerformIO $ modifyMVar var $ \m -> do < 1309665147 45097 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : case Map.lookup a m of < 1309665147 45342 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Nothing -> < 1309665147 45451 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : let interned = Interned a < 1309665149 711407 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : m' = Map.insert a interned m < 1309665151 531141 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : in interned `seq` m' `seq` return (m', interned) < 1309665153 167251 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :(it has a recursive _kind_) < 1309665153 540731 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Just interned -> interned `seq` return (m, interned) < 1309665157 12378 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I can only assume that HashMap is being evil and copying the value < 1309665164 521177 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :because this should _not_ copy interned, ever < 1309665175 628043 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(I use reallyUnsafePtrEquality# to compare Interneds (this is the only way to construct them)) < 1309665210 673798 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> [1..] >>- id < 1309665211 428389 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : No instances for (GHC.Num.Num [b], GHC.Enum.Enum [b]) < 1309665211 576937 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : arising from a use... < 1309665214 625629 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: halp < 1309665215 421811 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :erm < 1309665219 2752 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> [1..] >>- return < 1309665219 794607 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... < 1309665224 701456 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :oops < 1309665262 480293 :Lymia!~moe@unaffiliated/cirno-chan NICK :Lymee < 1309665270 488408 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no but srs < 1309665275 78301 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :why is copy :( < 1309665279 714647 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe i'll write my own map as a test < 1309665332 88752 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :_can_ HashMap copy the value? < 1309665373 449514 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I don't know, but GHC certainly can in HashMap's implementation if it wants to < 1309665398 419100 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: all I know is, the second time round it _does_ fetch it from the hash table rather than constructing a new one < 1309665403 913586 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so by all rights it should be the exact same object as I put in < 1309665441 161049 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: are you calling intern with the same parameters anywhere? < 1309665516 46865 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :dammit, it's false with IntMap too < 1309665517 107163 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yes < 1309665520 847752 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : store <- emptyInternStore -- :: IO (InternStore Int) < 1309665520 996272 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : let foo = intern store 9 < 1309665520 996443 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : print foo < 1309665520 996553 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : let bar = intern store 9 < 1309665520 996661 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : print bar < 1309665524 51299 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :[1..] >>- show < 1309665526 724121 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :er < 1309665528 502859 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> [1..] >>- show < 1309665529 439724 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "12345678911011121314151617182920212223242526272839303132333435363738494041... < 1309665531 486912 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and when bar is evaluated, it _does_ take the "already in the map" branch < 1309665535 631258 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but then the two objects aren't pointer-equal < 1309665538 247083 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so it's being copied /somewhere/ < 1309665543 32163 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: in that case ghc is perfectly allowed to let bar be just foo < 1309665554 214780 :Sgeo!~Sgeo@ool-44c2d2a1.dyn.optonline.net JOIN :#esoteric < 1309665568 171362 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :and do no reevaluation < 1309665572 559582 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: um yes, and then reallyUnsafePtrEquality# would be true < 1309665575 623755 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: but i've traced the evaluation < 1309665577 285635 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm... < 1309665578 566037 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :with Debug.Trace < 1309665582 46753 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and it _does_ evaluate both separately < 1309665588 182571 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :with bar taking the other branch < 1309665593 358796 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :IIRC automatic CSE has space leak problems in haskell < 1309665596 701531 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so ghc tends not to do it < 1309665603 280410 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but yeah, there is some copying going on here < 1309665604 494468 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :right < 1309665620 49481 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :http://www.haskell.org/ghc/docs/7.0.3/html/libraries/ghc-prim-0.2.0.0/GHC-Prim.html#g:19 I love how it isn't even documented < 1309665624 478184 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :they _really_ don't want you to use this < 1309665720 61368 :Sgeo!~Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :ACTION goes to install MSE < 1309665742 30533 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I think if you unpack (Just a) and then construct (Just a), say, a might be copied < 1309665751 190602 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: perhaps especially if a is an Int, since unboxing/reboxing is really cheap... < 1309665769 552677 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION reads lists < 1309665772 305538 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Prelude GHC.Exts GHC.Prim> let q = Just 3 < 1309665772 454199 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Prelude GHC.Exts GHC.Prim> let f j@(Just a) = j; r = f q < 1309665772 454380 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Prelude GHC.Exts GHC.Prim> I# (reallyUnsafePtrEquality# q r) < 1309665772 454487 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0 < 1309665772 454653 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Prelude GHC.Exts GHC.Prim> r < 1309665779 158952 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :1 < 1309665781 307403 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Prelude GHC.Exts GHC.Prim> < 1309665783 196335 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Prelude GHC.Exts GHC.Prim> let q = Just 3 < 1309665785 330761 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Prelude GHC.Exts GHC.Prim> let f j@(Just a) = j; r = f q < 1309665787 203524 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Prelude GHC.Exts GHC.Prim> I# (r `seq` reallyUnsafePtrEquality# q r) < 1309665789 139749 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0 < 1309665791 173288 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Prelude GHC.Exts GHC.Prim> I# (r `seq` reallyUnsafePtrEquality# q r) < 1309665793 302869 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :1 < 1309665795 162923 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ah, what a wonderful function < 1309665803 538691 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: do you think if i went into #ghc and asked for help debugging my reallyUnsafePtrEquality# use they'd laugh at me... < 1309665852 356215 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :> interleave "1110" "1000" < 1309665853 106666 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "11101000" < 1309665921 295312 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :oerjan: that one works, but not commutatively < 1309665942 960257 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :> interleave "0001" "0111" < 1309665943 714913 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "00010111" < 1309665962 520028 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :the condition is that one should be the negation of the other reversed < 1309666018 442846 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> interleave "abcd" "efgh" < 1309666019 217318 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "aebfcgdh" < 1309666056 168826 :myndzi\!myndzi@c-24-22-176-245.hsd1.wa.comcast.net JOIN :#esoteric < 1309666068 534334 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: hm i guess some unboxing might be bad. what happens if you use a definitely not unboxable value? < 1309666082 296151 :Sgeo!~Sgeo@ool-44c2d2a1.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1309666084 620235 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: do you have such a type? :P < 1309666120 491186 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: well try something better than Int, anyway :P < 1309666129 191153 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: with Data.Map < 1309666129 849418 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :? < 1309666133 298947 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1309666136 617874 :derrik!~xix@228.224.196.88.dyn.estpak.ee JOIN :#esoteric < 1309666146 998468 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :data V = V String String < 1309666148 896012 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :good data type dot jpg < 1309666172 114141 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :There are many ways to generate the Thue-Morse sequence and I think I have also read there are many ways in which it can be used. < 1309666179 130383 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :String alone might also work, not? < 1309666211 690708 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: still false, unfortunately < 1309666221 278211 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i wonder whether it's lack of strictness < 1309666225 903682 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :because evaluation _will_ change the pointer < 1309666230 379941 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but i evaluate a before everything else, so... < 1309666267 359280 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :quintopia: b=c=e,d=f=g < 1309666268 994968 :myndzi!myndzi@c-24-22-176-245.hsd1.wa.comcast.net QUIT :Ping timeout: 255 seconds < 1309666293 576746 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> interleave "0001" 0110" < 1309666294 304079 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : : < 1309666294 462571 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : lexical error in string/character literal at end o... < 1309666300 277207 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> interleave "0001" "0110" < 1309666301 16776 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "00010110" < 1309666360 283878 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :data V = V String V -- use this < 1309666362 313823 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :also use deepseq < 1309666365 860524 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: lol < 1309666369 245865 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :well at least it wouldn't return false < 1309666389 952816 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: interestingly, I think the interface I'm exposing is actually pure < 1309666402 824380 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> let x = if x then False else x in x < 1309666405 558795 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :since you could easily implement an analogue that just returns (Interned a) all the time, and has a slow (==) < 1309666406 540169 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1309666415 53518 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so ideally, this will just be a really big optimisation :P < 1309666431 25059 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hash consing < 1309666458 834574 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: what of it? < 1309666467 555572 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it has similarities to what i'm doing, yes < 1309666489 853869 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :i thought that was about what you were doing < 1309666516 764342 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"Do glasses not exist in the afterlife?" < 1309666526 706856 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :do pants exist in the afterlife < 1309666538 415286 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"Oh. I never noticed for some reason. I guess you don't need corrective lenses when you're dead anyway." < 1309666557 459361 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :do hoohas/dingdongs exist in the afterlife < 1309666577 229143 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :afterlife is confusing < 1309666585 368722 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :the dingdongs ate all the hoohas < 1309666592 123457 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :isn't that a bit backwards < 1309666606 529220 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :the other way sounded a bit rude < 1309666623 853525 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I really wonder how this is being copied.. < 1309666626 184995 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :[asterisk]... < 1309666629 636588 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe I should use StableName < 1309666636 115850 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but that would be like, slow :( < 1309666641 113782 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Would questions about debugging a usage of reallyUnsafePtrEquality# be appropriate here? Would they be appropriate _anywhere_? < 1309666642 333385 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :[chirps] < 1309666657 579009 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :is that #ghc < 1309666664 29249 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :heheheheheehe < 1309666689 568290 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yep < 1309666851 585056 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: maybe i should use some structure other than a map just to test < 1309666885 582670 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :ye olde list < 1309666906 534729 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :sigh < 1309666908 246680 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :made it a list < 1309666910 3643 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :still gets copied < 1309666938 471875 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok made it Maybe, /still/ gets copied < 1309666943 143995 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :this now officially makes no sense at all < 1309667004 849273 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :Identity? < 1309667023 931058 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: that wouldn't work, I need an empty state < 1309667025 849552 :Sgeo!~Sgeo@ool-44c2d2a1.dyn.optonline.net JOIN :#esoteric < 1309667029 170773 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh < 1309667132 453409 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: what happens if you _drop_ the seq's for interned? < 1309667160 694845 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :well in the Nothing case < 1309667177 809125 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :same results < 1309667199 555880 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :huh < 1309667231 399509 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :someone in ghc seems to have taken the bait < 1309667237 295858 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i am carefully watch............ < 1309667240 46152 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :yay < 1309667250 247499 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :good taken or bad taken < 1309667290 17449 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i don't know < 1309667444 801653 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I think I scared them off with code < 1309667452 802174 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: here it is, btw http://hpaste.org/48651 < 1309667458 849665 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no refunds if it kills you < 1309667483 664970 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :that's ok, i won't need a refund if i'm dead < 1309667496 496114 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :or will you < 1309667519 219580 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :well i guess if the ancient greeks were right, i might need a couple of coins < 1309667547 729352 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i cant stop seeing the hlinted stuff it is haunting me < 1309667587 671120 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :im sorry < 1309667593 548976 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :do you want me to fix it < 1309667601 582940 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i cant fix the second one though because like < 1309667610 94785 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that might ruin some sequencing i'm going for < 1309667621 225058 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :thats spooky < 1309667624 718084 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :im spooked < 1309667645 55098 :Sgeo!~Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :Dammit I can't find the page on the cable modem to change the password < 1309667648 867929 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: um r <- return ... should be entirely equivalent to let r = ... no ? < 1309667656 27402 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: look I trust _nothing_ right now :D < 1309667661 662981 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :GHC might do some FUNNY OPTIMISATIONS < 1309667692 920386 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Sgeo: well you need the password for getting to the page, obviously < 1309667700 375475 :Sgeo!~Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :oerjan, I have that < 1309667711 47651 :Sgeo!~Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :I just want to change it so my dad can't mess with anything < 1309667711 661259 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :no no, the _secret_ password < 1309667722 1217 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :ah, a noble cause < 1309667726 75686 :Sgeo!~Sgeo@ool-44c2d2a1.dyn.optonline.net PRIVMSG #esoteric :But... I don't think there's anything in here that's even touchable in any case < 1309667781 103820 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: oh, what happens if you replace that with return $! ( ... ) ? < 1309667821 942086 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :all of them? < 1309667829 975391 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm perhaps < 1309667839 925650 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :well the prints are trying to make it strict, but ok < 1309667844 324154 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :wow < 1309667845 883152 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :now its true < 1309667847 711953 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :can i hug you < 1309667849 384058 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :XD < 1309667859 262514 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :...but that's not really good enough, it has to work when used _normally_ < 1309667903 228992 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: hm i guess return x >>= f might actually get optimized into f x even in IO < 1309667905 780296 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :how to secretly strictify it < 1309667961 811147 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :test :: IO Bool < 1309667961 959908 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :test = do < 1309667961 960081 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : store <- emptyInternStore < 1309667961 960237 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : let foo = intern store (V "a" "b") < 1309667962 312668 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : bar = intern store (V "a" "b") < 1309667964 318514 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : in case reallyUnsafePtrEquality# foo bar of < 1309667966 314384 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : 0# -> return False < 1309667970 331232 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : 1# -> return True < 1309667972 422547 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :this has to work < 1309668020 4344 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: what if you replace reallyUnsafePtrEquality# with a function which applies seq to its arguments first, just in case? < 1309668051 197672 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :aha < 1309668052 360643 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : in case foo `seq` bar `seq` reallyUnsafePtrEquality# foo bar of < 1309668053 317040 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :makes it work < 1309668085 762729 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and with Int, too < 1309668089 329835 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok now to try and bring back in Map < 1309668123 705718 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yay, it's working < 1309668199 54249 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: it occurs to me you might theoretically need those unsafePerformIO's to be reentrant < 1309668211 511296 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: well that's why I used an MVar... but what do you mean? < 1309668252 707770 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :if something causes an intern to be evaluated while you are already evaluating one < 1309668273 362194 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: well isn't the point of MVar that in that case, one thread will wait until the other is done modifying... < 1309668283 838411 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :because as soon as one thread takes from the mvar, it becomes empty < 1309668286 833959 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :um i mean inside the same thread < 1309668290 225519 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and other takings hang until it gets filled by the modification < 1309668292 862535 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh, like... < 1309668300 688163 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :intern store (internedValue (intern store 9))? < 1309668305 555034 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1309668313 486561 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: that's not a problem, I seq a first < 1309668315 417585 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :or do you mean like < 1309668321 71258 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :intern store (Embed (Blah (internedValue (intern store 9)))) < 1309668326 779408 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so it only comes up when the map structures start Ording? < 1309668332 851063 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1309668344 595980 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hm so I either need re-entrancy or deepseq... < 1309668366 724668 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: Or I could cheat, and just seq an Ord and Eq operation on the value beforehand >:) < 1309668375 65335 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :which is all Map can do, due to parametricity < 1309668425 565027 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :heh < 1309668442 657204 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: although I want this to be typeclassed on the type of map, I think < 1309668444 920320 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :yeah compare x x should normally get to the bottom of it < 1309668452 487744 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :because e.g. HashMap or IntMap could improve performance a lot in some cases < 1309668461 403201 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so I guess the typeclass will just have some sort of force operation implemented in that way < 1309668482 623258 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I'm not sure how I could do re-entrancy, really... before calling the map I could re-fill the MVar < 1309668485 451750 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and then un-fill it afterwards < 1309668489 516954 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but that would fuck up using multiple threads < 1309668516 356871 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :yikes < 1309668529 912972 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so yeah, forcing is preferable < 1309668534 411257 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: otoh compare might be _slow_... < 1309668542 60373 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: e.g. String < 1309668548 120725 :Lymia!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309668553 693711 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and since the result won't be cached, it'll end up doing useless computation < 1309668564 756612 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so arguably, deepseq is less ugly < 1309668585 989450 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :although deepseq might very well be unnecessarily slow, too < 1309668723 682348 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :mhm < 1309668737 982400 :Lymee!~moe@unaffiliated/cirno-chan QUIT :Ping timeout: 276 seconds < 1309668777 587137 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I'm tempted to say that just using them in that way is undefined behaviour, but then my interface isn't really "pure" any more :( < 1309669026 97166 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class InternStoreC store a r get put | store -> a get put where < 1309669026 328661 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : internStoreGet :: store -> a -> (Interned a -> r) -> r -> get < 1309669026 476959 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : internStorePut :: store -> a -> Interned a -> (store -> r) -> put < 1309669027 947675 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: behold my monster < 1309669039 328847 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm trying to allow those hashmaps that work in IO :D < 1309669181 575469 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance InternStoreC (Map a (Interned a)) a r r r where < 1309669182 504827 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :arrrrrrr < 1309669515 886575 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :WARNING! THERE IS A MONSTER IN THE TYPE SYSTEM! < 1309669729 694545 :azaq23!~derivecto@unaffiliated/azaq23 QUIT :Quit: Leaving. < 1309670021 631881 :derrik!~xix@228.224.196.88.dyn.estpak.ee PART :#esoteric < 1309670581 913492 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :whenever I see elliott using Haskell, I also see typeclasses with huge numbers of parameters < 1309670596 427317 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I think they are correlated in some way. < 1309670648 582920 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :shut up, it happens when i generalise things. < 1309670657 796517 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :in fairness, that is now the far more reasonable < 1309670659 218838 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class InternStoreMap store a where < 1309670659 367194 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : internStoreEmpty :: IO store < 1309670659 367282 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : internStoreGet :: store -> a -> IO (Maybe (Interned a)) < 1309670659 367326 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : internStorePut :: store -> a -> Interned a -> IO store < 1309670690 649736 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but... elliott < 1309670704 553916 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it ONLY works with IO, and ONLY with Maybe, and Only with Interned < 1309670707 509836 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that's not general enough! < 1309670712 779130 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what < 1309670764 6584 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :you need more typeclasses! < 1309670765 895422 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the IO is unsafePerformIO'd away < 1309670770 511251 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :use MonadIO instead! < 1309670771 701869 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and Interned is the whole point :P < 1309670778 835254 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no, these functions are not externally used < 1309670784 179773 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it is just for < 1309670786 284510 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :intern :: (InternStoreMap store a) => InternStore store -> a -> Interned a < 1309670786 433000 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :intern (InternStore var) a = a `seq` unsafePerformIO $! modifyMVar var $! \m -> do < 1309670786 433163 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : r <- internStoreGet m a < 1309670786 433272 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : case r of < 1309670786 433377 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Nothing -> do < 1309670789 449699 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : let interned = Interned a < 1309670791 318019 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : m' <- interned `seq` internStorePut m a interned < 1309670793 447189 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : return $! (m', interned) < 1309670795 325173 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Just interned -> interned `seq` return $! (m, interned) < 1309670797 283822 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so i can do < 1309670799 280779 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance (Eq a) => Eq (Interned a) where < 1309670801 470673 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : a == b = < 1309670803 287598 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : case a `seq` b `seq` reallyUnsafePtrEquality# a b of < 1309670805 345217 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : 0# -> False < 1309670807 274050 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : 1# -> True < 1309670825 102758 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :forcing reallyUnsafePtrEquality# usage is cool < 1309670836 890469 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :you should probably name this function something like reallyReallyUnsafeIntern < 1309670842 804787 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: it's perfectly safe < 1309670844 191538 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :externally < 1309670852 799164 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the outside interface is implementable by simple pure functions < 1309670859 459684 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :this is just a lot faster (and the whole point for the module) < 1309670861 629961 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :like reallyUnsafePtrEquality# < 1309670864 994006 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i do this shit so you don't have to < 1309670867 87301 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: oh shaddap :P < 1309670908 261298 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :that 0# -> False part isn't supposed to be safe, is it... < 1309670993 136877 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it is safe, because the only way to construct an Interned is through intern < 1309670999 952873 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and I don't /think/ there is any way to cause it to be copied externally < 1309671037 25217 :augur!~augur@208.58.6.161 JOIN :#esoteric < 1309671057 950838 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :I GUESS YOU WILL FIND OUT < 1309671098 265908 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :indeed, when i publish it to hackage and people say ARE YOU FUCKING SERIOUS I WILL SHIT IN YOUR FUCKING HAT < 1309671106 991117 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :SHIT SHIT SHIT SHIT SHIT SHIT SHIT < 1309671108 270399 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :HAT < 1309671110 222636 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :FUCK < 1309671141 10930 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :OH MY GOD GHC < 1309671142 210963 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :THE VARIABLE < 1309671142 699830 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :IS NOT < 1309671143 420695 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :FUCKING < 1309671144 75394 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :AMBIGUOUS < 1309671162 139024 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :is that you or them < 1309671164 690013 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :i don't know, it looks a bit shifty to me < 1309671180 326171 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that was me < 1309671182 540307 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :just the last bit < 1309671186 192524 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :emptyInternStore :: (InternStoreMap store a) => IO (InternStore store) < 1309671186 416918 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :emptyInternStore = do < 1309671186 565506 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : mt <- internStoreEmpty :: IO store < 1309671186 565660 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : v <- newMVar mt < 1309671186 565773 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : return (InternStore v) < 1309671190 129698 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :A0 IS NOT AMBIGUOUS OMG < 1309671293 693471 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :missing functional dep? < 1309671366 184651 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :(store -> a) < 1309671370 360018 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm, right < 1309671376 44668 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :nope < 1309671378 116257 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i do need that fundep < 1309671381 612348 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but that doesn't fix this :( < 1309671385 353910 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :huh < 1309671403 350130 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :bleh but if i make it like < 1309671408 685192 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :emptyInternStore :: (InternStoreMap store a) => IO (InternStore store a) < 1309671409 843079 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then it works < 1309671411 803238 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that's redundant, dammit < 1309671426 474463 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :um what's the class definition? < 1309671470 266259 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ah, < 1309671471 884639 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :data InternStore store = forall a. (InternStoreMap store a) => InternStore (MVar store) < 1309671472 418169 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :works < 1309671480 78074 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but why can't a newtype have an existential blah :/ < 1309671480 457336 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm < 1309671489 239350 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess it's technically unnecessary here < 1309671493 780002 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i.e. i don't need the forall < 1309671496 18556 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hey i... have an idea < 1309671499 647766 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: what if... i used... unsafeCoerce < 1309671510 997259 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :what about a type family? < 1309671522 742677 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :wait what, it fixed itself magically somehow < 1309671577 803656 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : store <- emptyInternStore :: IO (InternStore (Cu.HashTable RealWorld a (Interned a))) < 1309671579 458221 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :good lines of code < 1309671606 825938 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you're right, it should probably be a type family < 1309671614 730271 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :IO (InternStore Cu.HashTable) would be much preferable < 1309671616 216362 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :well < 1309671618 775606 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :IO (InternStore Cu.HashTable Int) would be much preferable < 1309671658 887539 :elliott!~elliott@unaffiliated/elliott PART #esoteric :"Leaving" < 1309671662 748436 :elliott!~elliott@unaffiliated/elliott JOIN :#esoteric < 1309671667 893828 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :hi < 1309671747 93291 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hi < 1309672072 669445 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :hmmm, I could use a type family for signal types I think. < 1309672090 691749 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you don't have to use every extension :P < 1309672093 599880 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :though it may be unecessary. < 1309672120 780093 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I could simply have multiple constructors for one type. < 1309672185 700567 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: rubbish! he needs an implicit rank-5 flexible GADT family operator! < 1309672204 302965 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@pl lookup k (GMapInt m) = Data.IntMap.lookup k m < 1309672204 517830 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(line 1, column 24): < 1309672204 671127 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :unexpected "=" < 1309672204 819632 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :expecting variable, "(", operator or end of input < 1309672216 375208 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> test < 1309672216 523566 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Just "no" < 1309672217 155834 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yesss < 1309672245 981652 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: most pattern matching cannot be @pl'ed < 1309672255 951098 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah, that makes sense. < 1309672264 804263 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and GADT/type family pattern matching cannot be ?pl'd at all really < 1309672272 346782 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :because of the unification stuff < 1309672304 934013 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm... < 1309672331 184847 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i.e. you always need all your stuff on the right-hand side of some matching < 1309672335 170313 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you can't reduce things to compositions < 1309672337 322304 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :@pl let f (Just (Left (x,y))) = x ++ " does this work?" in f < 1309672337 511455 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(line 1, column 13): < 1309672337 663534 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :unexpected "(" < 1309672337 812006 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :expecting operator or ")" < 1309672345 251424 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but if I don't use type families I'll at least have a Signal typeclass with a toDiscreteSignal function. < 1309672347 183957 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :sadly no :( < 1309672359 758530 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :http://learncodethehardway.org/ ;; let's all read "how full of shit could zed shaw possibly be": the book < 1309672363 645955 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :@pl let f (Just (x,y)) = x ++ " does this work?" in f < 1309672363 844492 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(line 1, column 13): < 1309672363 992811 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :unexpected "(" < 1309672364 141303 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :expecting operator or ")" < 1309672370 502884 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :@pl let f (x,y) = x ++ " does this work?" in f < 1309672370 729572 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(++ " does this work?") . fst < 1309672376 858773 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :If there ever were a quote that described programming with C, it would be this. To many programmers, this makes C scary and evil. It is the Devil, Satan, the trickster Loki come to destroy your productivity with his seductive talk of pointers and direct access to the machine. Then, once this computational Lucifer has you hooked, he destroys your world with the evil ”segfault” and laughs as he reveals the trickery in your bargain with him. < 1309672377 7412 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But, C is not to blame for this state of affairs. No my friends, your computer and the Operating System controlling it are the real tricksters. They conspire to hide their true inner workings from you so that you can never really know what is going on. The C programming language’s only failing is giving you access to what is really there, and telling you the cold hard raw truth. C gives you the red pill. C pulls the curtain back to show you the < 1309672379 238771 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : wizard. C is truth. < 1309672381 208856 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh my god < 1309672383 208911 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :choke on vomit < 1309672385 492284 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"Why use C then if it’s so dangerous? Because C gives you power over the false reality of abstraction and liberates you from stupidity. < 1309672388 608386 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :" < 1309672390 487514 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :im reading your book < 1309672392 611076 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :while this is still true, < 1309672394 97560 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :nothing can liberate me from stupidity < 1309672396 482235 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :apart from cold-blooded murder < 1309672400 440990 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"Exercise 2: Make Is Your Python Now < 1309672400 589250 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :" < 1309672402 286270 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh my god < 1309672404 151324 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :stop < 1309672406 150287 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :talking < 1309672410 151194 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: lets share this experience together it will be unique... < 1309672415 233610 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"The difference is, I’m going to show you smarter Makefile wizardry, where you don’t have to specify every stupid little thing about your C program to get it to build. I won’t do that in this exercise, but after you’ve been using ”baby make” for a while, I’ll show you ”master make”. < 1309672417 88809 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :im too busy dying < 1309672418 225870 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :" < 1309672420 224863 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :OH MY GOD LITERALLY DIE < 1309672422 782254 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :from this unique experience < 1309672429 135047 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :thank god it ends here < 1309672435 765913 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :dont worry monqy its just five chapters (sentences) < 1309672436 39210 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: lol, the false reality of abstraction. < 1309672485 768271 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :After you read this book you should... < 1309672497 696273 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :why would you even learn C anyway < 1309672503 435214 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :chapters 55 and 56 are good chapters < 1309672506 70963 :Sgeo!~Sgeo@ool-44c2d2a1.dyn.optonline.net QUIT :Ping timeout: 255 seconds < 1309672527 188521 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: I learned C because a MUD codebase I was maintaining was written in it. < 1309672536 812675 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :overall it was a good learning experience. < 1309672537 625276 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I wonder if there's a way to get the numeric address of something from GHC. < 1309672545 270846 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: no it wasn't, C is a terrible thing to know, it clouds your thinking < 1309672551 691455 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I think C is good programming language < 1309672563 375509 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :int2Addr# :: Int# -> Addr#Source < 1309672563 524046 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Coerce directly from int to address. Strongly deprecated. < 1309672565 507885 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :YOU'RE STRONGLY DEPRECATED < 1309672566 861125 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :switching from Python, my first language, to C, helped me understand how most computers work at a low level. < 1309672595 405402 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :C doesn't represent low-level computer working, sorry kid < 1309672596 587534 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :see microcode < 1309672601 144348 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :It is not a terrible thing to know, unless you dislike computer programming anyways < 1309672609 344813 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: I didn't say it represented it. < 1309672621 247737 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :well, i don't believe that learning C taught you anything about microcode... < 1309672625 74927 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :elliott: You are correct about that; the reason that C is used instead is so that it work on other computers too. < 1309672646 185478 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hey oerjan... if i write the thing into an array...then read it... < 1309672648 286404 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i will get the address < 1309672648 434913 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no it didn't. But it taught me about memory addressing and pointers. < 1309672649 73761 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i think < 1309672658 952246 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: yep, which isn't how your computer works at a low-level < 1309672666 254053 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm, ok so if i use newarray... < 1309672666 696772 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :...fine. whatever. < 1309672692 735043 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :C is useless I shouldn't waste my time using a low level language if it's not microcode. < 1309672703 695723 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yes, these are definitely things i have said. < 1309672727 567606 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :why would you learn C -> C is useless < 1309672731 685555 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : IO $ \s -> < 1309672731 834196 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : case newAlignedPinnedByteArray# size align s of { (# s', mbarr# #) -> < 1309672731 834382 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (# s', ForeignPtr (byteArrayContents# (unsafeCoerce# mbarr#)) < 1309672731 834493 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (MallocPtr mbarr# r) #) < 1309672731 834622 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : } < 1309672733 499949 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i have to know c for practical purposes < 1309672739 253741 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh wow GHC, your privates are showing :( < 1309672749 392982 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :wow how does that even work < 1309672776 500531 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :IO constructor nice < 1309672783 584490 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :The reason you should use a low level language if it isn't microcode is so that you can write a program that works not only in one computer. < 1309672814 86796 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :right, what I'm saying is that C is a good learning experience if all you have ever touched in high level languages. < 1309672819 432858 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :*is < 1309672861 940908 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :even if it does not correspond directly to your architectures instruction set, it still interacts with memory at a very low level. < 1309672868 671478 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :nope < 1309672871 771125 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :And even if you are writing a program for only one computer, using C allows you to use codes of other computers too, although in some cases modification will be required (not always). < 1309672907 394895 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :But in some cases, using assembly language or machine codes is better way for programming that is only for one computer. < 1309672996 542013 :derrik!~xix@228.224.196.88.dyn.estpak.ee JOIN :#esoteric < 1309673035 541428 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm, I have magichash on, why is this not working < 1309673041 259571 :derrik!~xix@228.224.196.88.dyn.estpak.ee PART :#esoteric < 1309673064 206267 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :too magical < 1309673072 142682 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :too high. < 1309673210 394281 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :LLVM also can be programmed for many computers, and has some commands accessing things more commonly directly in the computer's instruction set, but also includes commands that no computer has (such as the "phi" command), and other somewhat unusual things which are used for analysis/optimization and for other stuff too. < 1309673227 392454 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :you guys have a shattered my view of how computers work. Here I thought most CPU instruction sets had some kind of memory addressing scheme. < 1309673258 106300 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :But LLVM does have a few similarities to C. < 1309673258 740079 :Sgeo!~Sgeo@66-87-4-136.pools.spcsdns.net JOIN :#esoteric < 1309673305 396733 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :C-- is pretty cool if i recall correctly < 1309673332 654369 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I have read about C-- < 1309673397 941181 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle sizeOf < 1309673398 171504 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Foreign.Storable sizeOf :: Storable a => a -> Int < 1309673398 323634 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Network.Socket.Internal sizeOfSockAddr :: SockAddr -> Int < 1309673398 472427 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Network.Socket.Internal sizeOfSockAddrByFamily :: Family -> Int < 1309673413 375100 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :why would you need sizeOf aaaaa < 1309673418 136600 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: evil < 1309673429 320768 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :wow = IO $ \s -> < 1309673429 472393 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : case newAlignedPinnedByteArray# size align s of < 1309673429 472562 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (# s', mbarr# #) -> (# s', indexAddrArray# (byteArrayContents# (unsafeCoerce# mbarr#)) 0# #) < 1309673429 472669 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : where !(I# size) = sizeOf (undefined::String) < 1309673429 472773 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : !(I# align) = alignment (undefined::String) < 1309673434 749884 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: im getting the address of an arbitrary value < 1309673473 198923 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :wow < 1309673544 457321 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ghc: panic! (the 'impossible' happened) < 1309673544 693189 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (GHC version 7.0.4 for x86_64-unknown-linux): < 1309673544 841709 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Error in deriving: < 1309673544 841886 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Can't derive Show for primitive type ghc-prim:GHC.Prim.Addr#{(w) tc 33} < 1309673544 841993 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug < 1309673613 203001 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow < 1309673613 433665 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0x00007fc06e2541f8 < 1309673628 529444 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :is this for real < 1309673661 708557 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Do you know about LLVM? < 1309673675 101739 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :it's in my reading pile < 1309673717 331710 :Sgeo!~Sgeo@66-87-4-136.pools.spcsdns.net PRIVMSG #esoteric :Why is inability to derive Show for a primitive type a big deal? < 1309673744 156263 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :wow :: a -> IO (Ptr a) < 1309673744 396397 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :wow x = IO $ \s -> < 1309673744 545164 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : case newAlignedPinnedByteArray# size align s of < 1309673744 545343 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (# s', mbarr# #) -> < 1309673744 545448 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : case writeArray# (unsafeCoerce# mbarr#) 0# x s of < 1309673748 7009 :Sgeo!~Sgeo@66-87-4-136.pools.spcsdns.net PRIVMSG #esoteric :Or is it just a faulty error message caused by your tampering, and there's really a different error? < 1309673751 168307 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : !(I# align) = 8 -- alignment (undefined::Addr#) < 1309673753 198905 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: this is for real < 1309673759 222750 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow 9 < 1309673759 444649 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0x00007fc06f50be58 < 1309673761 93407 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow () < 1309673763 80085 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0x00007fc06f4ca228 < 1309673765 80508 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow "x" < 1309673767 69996 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0x00007fc06f50a278 < 1309673769 125165 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow "hexagons" < 1309673771 191502 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0x00007fc06eed61e0 < 1309673773 89468 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow "hexagons" < 1309673775 61733 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0x00007fc06ee83230 < 1309673777 74718 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :this is the most beautiful thing ive ever seen < 1309673787 247120 :Sgeo!~Sgeo@66-87-4-136.pools.spcsdns.net PRIVMSG #esoteric :There's an IO function? < 1309673791 744440 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :constructor < 1309673818 563900 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah, constructor < 1309673827 261002 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Will you include a strange variation of the PHI command in the next version of INTERCAL? < 1309673839 751456 :Sgeo!~Sgeo@66-87-4-136.pools.spcsdns.net PRIVMSG #esoteric :...there's an IO constructor? < 1309673869 468707 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :of course. < 1309673873 943601 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :how do you think values get in? < 1309673890 433239 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no such thing as opaque data types in Haskell. < 1309673897 238688 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION whistles innocently. < 1309673916 110671 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #)) < 1309673922 735181 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgeo: --libraries/ghc-prim/GHC/Types.hs < 1309673946 511327 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow wow < 1309673946 659915 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0x00007fc06f71cca0 < 1309673946 660119 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow wow < 1309673946 660263 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0x00007fc06f71c1a8 < 1309673946 660370 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow wow < 1309673953 533791 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: ok something seems wrong < 1309673958 805487 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh wait hm < 1309673959 227299 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :try sharing on it < 1309674024 159376 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :probably too much unsafe stuff. < 1309674025 627495 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow wow < 1309674025 864865 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0x00007fc06ee6d572 < 1309674026 13271 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow wow < 1309674026 13448 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0x2e302e312e706d67 < 1309674026 13556 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> wow wow < 1309674032 640233 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0x00000039312e312d < 1309674034 557071 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :gah < 1309674048 31239 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no referential transparency? shameful. < 1309674064 739426 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: elliott is _raping_ referential transparency < 1309674066 150971 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it should be referentially transparent in the end. up to evaluation. and GC. < 1309674125 823805 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh i forgot about gc. < 1309674126 484113 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::( < 1309674136 517849 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i should just use stablenames < 1309674197 551076 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I think elliott is secretly the enemy of Haskell. < 1309674206 599102 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that Haskell valiantly fights in epic battles. < 1309674227 347949 :Sgeo!~Sgeo@66-87-4-136.pools.spcsdns.net PRIVMSG #esoteric :night < 1309674230 485796 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and elliott wants to break Haskell into some sick monster in a plot to rule the world. < 1309674248 635524 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :elliotskell??? < 1309674256 127973 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :maybe with another t < 1309674263 751089 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :haskelliott < 1309674302 445012 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> testc < 1309674302 445197 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :21 < 1309674302 593393 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :21 < 1309674302 593494 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Intern> testc < 1309674302 593541 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :23 < 1309674309 358527 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :21 < 1309674315 666760 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh well, it's in IO, it can do that. < 1309674347 582453 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :so does it work < 1309674438 952258 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yes < 1309674445 216662 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :woohoo < 1309674457 427991 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i think i forget what its for < 1309674464 509214 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :why anyone would ever need it < 1309674484 635226 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :it's for making skynet duh < 1309674518 937808 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it's for the sheer enjoyment of programming in a C-like language. < 1309674551 505708 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: if you implement scheme < 1309674556 490602 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then you want to use this to represent symbols. < 1309674584 228456 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :speaking of scheme, what happened to zepto < 1309674594 30198 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :its eternal < 1309674685 554733 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: or Ruby < 1309674688 772578 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :which scheme is this r5rs < 1309674695 892808 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that would also be useful for Ruby symbols. < 1309674763 69068 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: yeah < 1309674861 512819 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I think it would also be useful for creating efficient hashes/maps instead of using string keys? < 1309674923 511709 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :well thats what hashmap/hashtable are for, but yeah, hopefully < 1309674927 108176 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :see also < 1309674928 748512 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance (Hashable a) => Hashable (Interned a) where < 1309674928 896955 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : hash a = a `seq` hashStableName (unsafePerformIO (makeStableName a)) < 1309675863 87789 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :http://hpaste.org/steps/48629?expr=a+1+2&submit=Submit cool < 1309675882 205211 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :warning: use guards < 1309675888 943452 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :thanks hlint < 1309676005 807097 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :wow, everyone works at standard chartered < 1309676283 182724 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :do you want to be afraid monqy < 1309676307 849887 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :i had to look it up < 1309676339 249645 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :http://hackage.haskell.org/packages/archive/uu-parsinglib/2.7.1.1/doc/html/src/Text-ParserCombinators-UU-Core.html < 1309676340 892822 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: enjoy afraid < 1309676345 541297 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :utrecht is so scaary :( < 1309676348 709482 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :data T st a = T (forall r . (a -> st -> Steps r) -> st -> Steps r ) -- history parser < 1309676348 858237 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (forall r . ( st -> Steps r) -> st -> Steps (a, r) ) -- future parser < 1309676348 858438 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (forall r . ( st -> Steps r) -> st -> Steps r ) -- recogniser < 1309676348 858544 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance Functor (T st) where < 1309676348 858652 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : fmap f (T ph pf pr) = T ( \ k -> ph ( k .f )) < 1309676355 233668 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ( \ k st -> push f ( pr k st)) < 1309676357 203088 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : pr < 1309676358 704054 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I have successfully managed to win with the prophecy defense. < 1309676376 98682 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Another time, I managed to win because opponent ran out of cards before they had a chance to pick up the last side card. < 1309676422 495067 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :there is a class for eof < 1309676446 611689 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :ok what is with this T thing < 1309676492 798565 :Nisstyre!~nisstyre@109.74.204.224 QUIT :Remote host closed the connection < 1309676508 780257 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: its utrecht convention IIRC < 1309676511 585077 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: you call your main type T < 1309676536 152416 :Nisstyre!~nisstyre@109.74.204.224 JOIN :#esoteric < 1309676553 939387 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i guess maybe henning is a utrecht guy since data-accessor is completely full of T r a -> ... and (C ...) => < 1309676564 103267 :Nisstyre!~nisstyre@109.74.204.224 QUIT :Remote host closed the connection < 1309676590 784522 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :das kann nicht recht sein < 1309676617 745565 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Unqualified T data types floating around. (As Brent Yorgey tells me, this is a Henning-ism in which he will define a type T or typeclass C intended to be used only with a qualified import, but Haddock throws away this information. You can use :t in GHC to get back this information if you're not sure.) < 1309676619 390575 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yuck < 1309676651 529623 :Nisstyre!~nisstyre@109.74.204.224 JOIN :#esoteric < 1309676666 515023 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Even if the standard library of a programming language does not support string interning, it is possible to implement an intern pool in user code. < 1309676669 488147 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh wow, thanks Wikipedia. < 1309676676 466142 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I didn't think that was possible. < 1309676769 944790 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :this uu parsing library thing is scary < 1309676796 937116 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: its utrecht < 1309676798 654645 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :run and fear :< < 1309676844 470342 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t max < 1309676845 193719 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. (Ord a) => a -> a -> a < 1309676853 738569 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah, excellent. Completely abusable for signal processing. < 1309676859 677341 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well, since the type allows it, I guess it's not really abuse. < 1309676951 696965 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :max s1 s2 = (\t -> max (s1 t) (s2 t)) < 1309676978 52833 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i already wrote all those instances dude < 1309677010 124273 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well yeah, but I think you did something weird with eq right? < 1309677020 156062 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no, i just made it error < 1309677025 900404 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :which is the only possible sane implementation < 1309677031 690116 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :copumpkin: did those new fclabels or was it lenses that had efficient update ever come out? < 1309677037 335369 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well, there's a different kind of equality you could do that isn't the same type. < 1309677046 318511 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: (==) :: a -> a -> Bool < 1309677047 766460 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :good luck with that < 1309677059 341112 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :basically the signal is 0 if the input signals are unequal and 1 if they are. < 1309677064 819955 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: (==) :: a -> a -> Bool < 1309677065 499671 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :good luck with that < 1309677075 466223 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :...yes, as you can see, I mentioned it was a different type < 1309677079 233694 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so? < 1309677079 814474 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :which sort of implies that it will look different. < 1309677082 385314 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and not be the same function. < 1309677082 637981 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :my Eq instance was correct. < 1309677088 226936 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :if you want equality on lenses, that's fucking trivial: < 1309677105 627692 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :liftS2 :: (a -> b -> c) -> Signal a -> Signal b -> Signal c < 1309677110 373615 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then liftS2 (==) < 1309677125 208081 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :basically we are talking about two completely different things right now. I have to go now, so good bye. < 1309677136 779739 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you're faulting my implementation because it does something it has to < 1309677141 507168 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and lacks the two lines of code for what youw ant < 1309677142 929390 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so...? < 1309677183 235491 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :there was no causality between the first thing I said about your Eq instance, and what I said afterwards. < 1309677203 5544 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok. but... well yeah, but I think you did something weird with eq right? < 1309677206 31494 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what weird thing did i do < 1309677206 493150 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :? < 1309677216 905163 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I wasn't sure, it was a question. < 1309677218 858509 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com QUIT :Quit: Don't care. Care. < 1309677224 698208 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok, then the answer is i did not :) < 1309677255 472078 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes, what you did was reasonable. I'm sorry I didn't specify such when I started talking about a completely different kind of equality operation. < 1309677260 594492 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok < 1309677360 297869 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?pl \f x -> m' (\y -> m f y) x < 1309677360 539434 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :m' . m < 1309677415 530128 :Nisstyre!~nisstyre@109.74.204.224 QUIT :Remote host closed the connection < 1309677428 562801 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lens x a -> (a -> Lens x b) -> Lens x b < 1309677470 970223 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?pl \x -> get (f (g x)) x < 1309677471 166175 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :get =<< f . g < 1309677482 655598 :Nisstyre!~nisstyre@109.74.204.224 JOIN :#esoteric < 1309677508 33878 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what is it with ?pl and =<< < 1309677515 334547 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monad instance for functions < 1309677518 608059 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but it keeps it in the order of application < 1309677534 357046 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?pl \tt x -> modify (f (g x)) tt x < 1309677534 552345 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :join . flip (modify . f . g) < 1309677554 681989 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :one time i tried looking up the monad instance for functions and couln't find it < 1309677568 82001 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :next time i will look harder < 1309677583 76490 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle join < 1309677583 373318 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Monad join :: Monad m => m (m a) -> m a < 1309677583 560951 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :System.FilePath.Posix joinDrive :: FilePath -> FilePath -> FilePath < 1309677583 561067 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :System.FilePath.Windows joinDrive :: FilePath -> FilePath -> FilePath < 1309677652 226568 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh there it is in Control.Monad.Instances < 1309677663 37945 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what a peculiar module < 1309677674 301652 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah that module should really be called Control.Monad < 1309677696 79653 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(a -> b) -> Lens x a -> Lens x b < 1309677696 228373 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm < 1309677696 446659 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok < 1309677724 985332 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :@src -> >>= < 1309677725 201783 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Source not found. Just try something else. < 1309677730 375496 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :wait < 1309677731 871888 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :@src (->) (>>=) < 1309677732 79606 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f >>= k = \ r -> k (f r) r < 1309677734 136315 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you can't do that fmap < 1309677735 964988 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :can you? < 1309677739 626744 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :monqy: ^ < 1309677742 601336 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan < 1309677743 571058 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i need help < 1309677745 658805 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (a -> b) -> Lens x a -> Lens x b < 1309677748 714846 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :where < 1309677749 796900 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :data Lens a b = Lens { get :: a -> b, modify :: (b -> b) -> a -> a } < 1309677751 538812 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you can do it for get < 1309677756 257360 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but its impossible to write modify ther < 1309677756 959342 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :e < 1309677757 644316 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :right? < 1309677762 354000 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :or is it < 1309677817 933530 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :well < 1309677820 514998 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i have a monad instance... < 1309677821 817725 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?src liftM < 1309677822 30870 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :liftM f m1 = do { x1 <- m1; return (f x1) } < 1309677835 50657 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?undo do {x1 <- m1; return (f x1) } < 1309677835 238489 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :m1 >>= \ x1 -> return (f x1) < 1309677837 276506 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :also I've been wondering for ages what does it mean when there's an instance e.g. "Monad [::]" (on the haddock instances list) < 1309677838 228544 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :i don't think so < 1309677843 859170 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: parallel lists < 1309677859 89603 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :liftM f m1 = m1 >>= \ x1 -> return (f x1) < 1309677859 984868 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so < 1309677862 705604 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :it's not covariant < 1309677877 305238 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :liftM f (Lens g m) = Lens g m >>= \ x1 -> return (f x1) < 1309677878 693415 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so let me unpack < 1309677891 193804 :Deewiant!~deewiant@cs186230.pp.htv.fi PRIVMSG #esoteric :elliott: Never properly, only some informal comparisons < 1309677902 18458 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :liftM f (Lens g m) = Lens (get =<< (\x1 -> return (f x1)) . g) (join . flip (modify . (\x1 -> return (f x1)) . g)) < 1309677907 241015 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?unpl get =<< f . g < 1309677907 459345 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(\ c -> (f >>= get) (g c)) < 1309677909 952348 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ugh < 1309677913 122969 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?unpl Lens (get =<< (\x1 -> return (f x1)) . g) (join . flip (modify . (\x1 -> return (f x1)) . g)) < 1309677913 317782 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Lens (\ h -> ((\ x1 -> return (f x1)) >>= get) (g h)) (\ k -> (\ c -> modify (return (f (g c))) k) >>= \ l -> l) < 1309677920 859915 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :liftM f (Lens g m) = Lens (\ h -> ((\ x1 -> return (f x1)) >>= get) (g h)) (\ k -> (\ c -> modify (return (f (g c))) k) >>= \ l -> l) < 1309677923 944356 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :holy shit < 1309677933 874721 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok either my monad instance is invalid or this _does_ work < 1309677935 942850 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm not sure which < 1309677970 595014 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Main> modify (liftM fst id) succ (0,9) < 1309677970 743470 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(0,9) < 1309677971 240236 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :what's your >>= < 1309677972 182814 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yep, it's broken < 1309677975 457051 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Lens g m >>= f = Lens (get =<< f . g) (join . flip (modify . f . g)) < 1309677993 765739 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so basically I have fmap... for lenses :) < 1309678004 456333 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lens a b -> Lens c a -> Lens c b < 1309678013 856567 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle c a b -> c x a -> c x b < 1309678014 110586 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Category (.) :: Category cat => cat b c -> cat a b -> cat a c < 1309678014 262780 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Arrow (<<<) :: Category cat => cat b c -> cat a b -> cat a c < 1309678014 411222 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Control.Category (<<<) :: Category cat => cat b c -> cat a b -> cat a c < 1309678025 712122 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yep, what I have is (.), aka generalised fmap :D < 1309678027 933860 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh well < 1309678038 208506 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: heh you are not using m in your >>= < 1309678043 370498 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: nice :D < 1309678083 511125 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :-- Laws: < 1309678083 746830 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :-- modify l id x = x < 1309678083 895279 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :-- get l (modify l f x) = f (get l x) < 1309678086 255812 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hm do I need any other laws < 1309678159 757670 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric : (\ c -> (f >>= get) (g c)) <-- wtf i think something isn't keeping track of fixity < 1309678244 840088 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric ::t get < 1309678245 647999 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (m :: * -> *) s. (MonadState s m) => m s < 1309678264 969627 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :that doesn't quite fit into your law above < 1309678304 899582 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you shadow that, obviously < 1309678323 198697 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1309678341 342236 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : data Lens a b = Lens { get :: a -> b, modify :: (b -> b) -> a -> a } < 1309678452 458891 :cheater_!~ubuntu@e179113019.adsl.alicedsl.de PRIVMSG #esoteric :why is everyone talking about lenses < 1309678474 298754 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :we're trying to focus here < 1309678545 779228 :Nisstyre!~nisstyre@109.74.204.224 QUIT :Remote host closed the connection < 1309678568 932806 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm i think you could build a monad transformer from a lens, which would modify state < 1309678594 597835 :Nisstyre!~nisstyre@109.74.204.224 JOIN :#esoteric < 1309678692 735882 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybeNthL :: Int -> Lens [a] (Maybe a) < 1309678692 982560 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybeNthL n = Lens (getnth n) (modnth n) < 1309678693 131109 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : where getnth 0 (x:_) = Just x < 1309678693 131288 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : getnth n (_:xs) = getnth (n-1) xs < 1309678693 131398 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : getnth _ _ = Nothing < 1309678699 140958 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what a weird lens < 1309678729 36907 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Lens.Prelude> get (maybeNthL 9) (modify (maybeNthL 9) (const (Just 9)) [0,9,9]) < 1309678729 254557 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Nothing < 1309678732 84584 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :what a weird, invalid lens :) < 1309678817 79726 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :you didn't give modnth < 1309678843 570493 :pikhq!~pikhq@174-22-158-124.clsp.qwest.net PRIVMSG #esoteric :Always so nice catching that late-night baroque music program when coming back from D&D. < 1309678851 959421 :pikhq!~pikhq@174-22-158-124.clsp.qwest.net PRIVMSG #esoteric :Aaaaah. < 1309678858 702528 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: it would have to pad with undefineds, no? < 1309678930 787736 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :to fulfil those laws < 1309678948 281840 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :oh and that would break the first one < 1309679010 428961 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yeah :) < 1309679017 708009 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net QUIT :Quit: hello < 1309679018 444974 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : you didn't give modnth < 1309679020 73295 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :is this a pun < 1309679057 212450 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :no, you just did not < 1309679095 941045 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :maybe your client cut it off? < 1309679146 100989 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : modnth 0 f (x:xs) = case f (Just x) of Nothing -> xs; Just a -> a:xs < 1309679146 249578 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : modnth n f (x:xs) = x : modnth (n-1) f xs < 1309679146 249691 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : modnth _ f _ = case f Nothing of Nothing -> []; Just a -> [a] < 1309679148 51573 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it will have been freenode < 1309679159 194345 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :todo: handle data/newtype instances in makeLenses < 1309679299 944499 :cheater_!~ubuntu@e179113019.adsl.alicedsl.de PRIVMSG #esoteric :you need to use the hypertext transport protocol for things that are so many lines. < 1309679331 678814 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : fmap concat (sequence (concatMap (\(n,_,_) -> [ [d| foo = 9 |] ]) oks)) < 1309679331 910376 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :good coding with elliott < 1309679353 583735 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t mapM < 1309679354 308392 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a (m :: * -> *) b. (Monad m) => (a -> m b) -> [a] -> m [b] < 1309679358 549750 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh right < 1309679398 70847 :derrik!~xix@228.224.196.88.dyn.estpak.ee JOIN :#esoteric < 1309679421 37839 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :[d| foo = 9 |] ? < 1309679456 998690 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yep < 1309679466 383296 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :and n isn't used... < 1309679482 202823 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :of course < 1309679484 737007 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :this is just an initial test :P < 1309679492 421015 :derrik!~xix@228.224.196.88.dyn.estpak.ee PART :#esoteric < 1309679497 327706 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :MADNESS < 1309679518 71139 :Lymia!~moe@unaffiliated/cirno-chan QUIT :Ping timeout: 240 seconds < 1309679929 681010 :Sgeo_!~Sgeo@66-87-4-136.pools.spcsdns.net JOIN :#esoteric < 1309680055 195705 :Sgeo!~Sgeo@66-87-4-136.pools.spcsdns.net QUIT :Ping timeout: 240 seconds < 1309680156 114731 :Lymia!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309680175 968977 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hm since I can't write Lens x a -> (a -> Lens x b) -> Lens x b < 1309680177 316226 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe I could write < 1309680181 320778 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :erm < 1309680182 241566 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hm since I can't write Lens x a -> (a -> Lens x b) -> Lens x b < 1309680192 224854 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and i can't write (a -> b) -> Lens c a -> Lens c b < 1309680196 871202 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but I CAN write Lens a b -> Lens c a -> Lens c b < 1309680203 767340 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe I can write Lens x a -> Lens a (Lens x b) -> Lens x b < 1309680204 269051 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?? < 1309680208 88270 :Lymia!~moe@unaffiliated/cirno-chan NICK :Lymee < 1309680403 96139 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :dunno < 1309680600 450469 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :tempted to djinn it :D < 1309680633 811048 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?djinn (x -> a, (a -> a) -> x -> x) -> (a -> (Lens x b), (Lens x b -> Lens x b) -> a -> a) -> Lens x b < 1309680634 5301 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Error: Undefined type Lens < 1309680636 893321 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ok now to expand again < 1309680644 722619 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lens x b = (x -> b, (b -> b) -> x -> x) < 1309680661 677061 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?djinn (x -> a, (a -> a) -> x -> x) -> (a -> (x -> b, (b -> b) -> x -> x), ((x -> b, (b -> b) -> x -> x) -> (x -> b, (b -> b) -> x -> x)) -> a -> a) -> (x -> b, (b -> b) -> x -> x) < 1309680661 905259 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f (a, b) (c, d) = < 1309680662 57433 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : (\ e -> < 1309680662 205935 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : case c (a e) of < 1309680662 206101 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : (f, _) -> f e, < 1309680662 206207 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : \ _ g -> b (\ _ -> d (\ h -> h) (a g)) g) < 1309680666 382585 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yes, yes i can. < 1309680678 381172 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :well maybe. those ignored variables are a bit worrying. < 1309680687 76790 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :you don't say. < 1309680697 322433 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: well one of them isn't, it looks like it is just ignoring get < 1309680699 878033 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but the other moreso :P < 1309680952 220728 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :makeLenses :: Name -> Q [Dec] < 1309680952 459605 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :makeLenses t = do < 1309680952 608235 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : TyConI dec <- reify t < 1309680952 608415 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : let (ctx,name,binders,cons,names) = case dec of DataD a b c d e -> (a,b,c,d,e); NewtypeD a b c d e -> (a,b,c,[d],e) < 1309680952 608522 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : let [RecC _ oks] = cons < 1309680954 280492 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : _f <- newName "f" < 1309680956 101399 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : _x <- newName "x" < 1309680960 103478 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : mapM (\(n,_,_) -> funD (transform n) [clause [] (normalB ([|Data.Lens.Lens|] `appE` varE n `appE` lamE [varP _f, varP _x] (recUpdE (varE _x) [(\x->(n,x)) `fmap` [|$(varE _f) ($(varE n) $(varE _x))|]]))) []]) oks < 1309680963 129241 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : where transform n = mkName (tail (nameBase n)) < 1309680965 261514 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: IT WOOOORKS < 1309680967 602830 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : oh my fucking god. < 1309681047 241176 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA < 1309681074 955244 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle a -> b -> [(a,b)] -> [(a,b)] < 1309681075 259156 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.Graph.Inductive.NodeMap delMapNode :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> g a b < 1309681075 415693 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.Graph.Inductive.NodeMap insMapNode_ :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> g a b < 1309681075 564044 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.Graph.Inductive.NodeMap delMapNodes :: (Ord a, DynGraph g) => NodeMap a -> [a] -> g a b -> g a b < 1309681077 389290 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm < 1309681081 247642 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :there's no inverse of lookup? < 1309681266 106650 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Lens.Prelude> get (keyL "x") Map.empty < 1309681266 355833 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*** Exception: Map.find: element not in the map < 1309681266 504394 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*Data.Lens.Prelude> modify (keyL "x") (+9) Map.empty < 1309681266 504563 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fromList *** Exception: keyL: element not in the map < 1309681267 844943 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh, good < 1309681274 907406 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :although, hmm < 1309681276 965160 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that actually violates the < 1309681280 187816 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :modify l id x = x < 1309681281 173169 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :law < 1309681285 916410 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe I should loosen that? < 1309681293 875098 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i.e. /if/ modify l id x has a value, then the value must be x < 1309681308 372019 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but then it seems tempting to have (modify l id) _always_ be an identity transform... < 1309681321 349026 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :at the same time, silent erroneous modifications being dropped sounds sucky < 1309681747 478720 :oerjan!oerjan@tyrell.nvg.ntnu.no QUIT :Quit: Good night < 1309682131 847034 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : mapM (\(n,_,_) -> funD (transform n) [clause [] (normalB ([|Data.Lens.Lens|] `appE` varE n `appE` lamE [varP _f, (asP _x (recP nn [return (n,VarP _y)]))] (recUpdE (varE _x) [(\x->(n,x)) `fmap` [|$(varE _f) $(varE _y)|]]))) []]) oks < 1309682523 286602 :cheater_!~ubuntu@e179113019.adsl.alicedsl.de QUIT :Ping timeout: 255 seconds < 1309682575 262536 :cheater_!~ubuntu@e179113019.adsl.alicedsl.de JOIN :#esoteric < 1309683284 449404 :Lymia!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309683367 217712 :Lymee!~moe@unaffiliated/cirno-chan QUIT :Disconnected by services < 1309683367 802881 :Lymia!~moe@unaffiliated/cirno-chan NICK :Lymee < 1309683460 197767 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :WHAT ARE MONADS/ HOW DO I MAKE MONADS OUT OF STYROFOAM AND HEAP/ COULD I BE AFFECTED BY MONADS? < 1309683466 683497 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :answers to all these and more at monad.com.com < 1309683470 255358 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :.com < 1309683536 134722 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :The are called "monads" rather than the easier to grasp name of "type operators" for several reasons: < 1309683536 380008 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Monads have restrictions on what they can do (see the definiton for details). < 1309683536 528499 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Those restrictions, along with the fact that there are 3 operations involved, conform to the structure of something called a monad in Category Theory, which is an obscure branch of mathematics. < 1309683536 528677 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :They were designed by proponents of "pure" functional languages < 1309683536 528785 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Proponents of pure functional languages like obscure branches of mathematics < 1309683539 980856 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Because the math is obscure, and monads are associated with particular styles of programming, people tend to use the word monad as a sort of secret handshake. Because of this no one has bothered to invest in a better name. < 1309684101 229727 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1309684489 431689 :cheater__!~ubuntu@e179113019.adsl.alicedsl.de JOIN :#esoteric < 1309684494 324825 :cheater_!~ubuntu@e179113019.adsl.alicedsl.de QUIT :Ping timeout: 255 seconds < 1309684892 513054 :MigoMipo!~John@84-217-3-27.tn.glocalnet.net JOIN :#esoteric < 1309684904 324962 :Vorpal!~AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1309685449 829403 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?pl \f x -> s (f (g x)) x < 1309685450 26662 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :join . (s .) . (. g) < 1309685454 113891 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?pl \x -> s (f (g x)) x < 1309685454 290112 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :s =<< f . g < 1309685523 707343 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle \f x -> b (f (g x))) < 1309685523 899100 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Parse error: < 1309685524 51606 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : --count=20 "\f x -> b (f (g x)))" < 1309685524 200038 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : ^ < 1309685525 456754 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?hoogle \f x -> b (f (g x)) < 1309685525 650532 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Parse error: < 1309685525 803140 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : --count=20 "\f x -> b (f (g x))" < 1309685525 955005 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : ^ < 1309685531 747137 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?pl \f x -> b (f (g x)) < 1309685531 936928 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(b .) . (. g) < 1309685534 858286 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?pl \x -> b (f (g x)) < 1309685535 48228 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :b . f . g < 1309685597 910538 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :?pl \b f g -> b . f . g < 1309685598 103362 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(. (.)) . (.) . (.) < 1309685803 74260 :shachaf!~shachaf@204.109.63.130 QUIT :Ping timeout: 260 seconds < 1309686476 306279 :Lymee!~moe@unaffiliated/cirno-chan QUIT :Read error: Connection reset by peer < 1309686530 123254 :Lymee!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309687640 426269 :sebbu2!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1309687759 523810 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 252 seconds < 1309690790 590107 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :see.. composing composition is when I start to get confused. < 1309691024 289827 :sebbu2!~sebbu@unaffiliated/sebbu NICK :sebbu < 1309691041 982859 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :CakeProphet: you can think of it as fmap (fmap (flip fmap fmap) fmap) fmap, if composition is confusing :) < 1309691550 912612 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :.. -_- < 1309691595 174728 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :shenanigans < 1309691615 70260 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :also, (.).(.) = the boobies combinator = fmap fmap fmap < 1309691778 449980 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but... fmap = (.) for functions right? < 1309691784 871925 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :THIS DOES NOT HELP. < 1309691810 186997 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :CakeProphet, wha? < 1309691810 378426 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them. < 1309691861 12624 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :yes, one functor instance has fmap = (.), and to make matters better lambdabot has (.) defined as fmap < 1309692010 269972 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> (\x -> x+1) . [1..] < 1309692012 107683 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2... < 1309692019 338038 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> (\x -> x+1) <$> [1..] < 1309692020 529261 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2... < 1309692026 701836 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I don't really see how that makes anything better. < 1309692050 260365 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I guess it's just something that Prelude could do that could make <$> no longer necessary. < 1309692066 306705 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :if Control.Monad were in Prelude... < 1309692101 960218 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or, wherever Functor ((->) a) is < 1309692229 140100 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it would be interested to run a search over every module in Hackage to see how many import Control.Monad. < 1309692254 441865 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric : yes, one functor instance has fmap = (.), and to make matters better lambdabot has (.) defined as fmap < 1309692261 960953 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :You mean the function functor? < 1309692344 734100 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :yeah, or the Reader functor < 1309692821 576470 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t fmap < 1309692822 428626 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b < 1309692851 89446 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I can't think of a * -> * type that could not possibly have a Functor instance.. < 1309692851 690800 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :olsner, we both know they're the same thing. < 1309693231 528526 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t runReader (Reader Reader) < 1309693232 251909 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Not in scope: data constructor `Reader' < 1309693232 446169 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Not in scope: data constructor `Reader' < 1309693294 240824 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> return 4 3 < 1309693295 13439 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : 4 < 1309693325 782745 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> (return 4 :: Reader Int Int) 3 < 1309693326 589048 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Couldn't match expected type `t1 -> t' < 1309693326 760725 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : against inferred type `Contr... < 1309693519 665295 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :`quote < 1309693523 449792 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :188) "Europe is the national anthem of the Republic of Kosovo." alise: I I was going to say something then your last line floored me < 1309693571 351678 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :But that *is* their anthem. < 1309693724 321273 :Lymia!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309693792 351314 :Lymee!~moe@unaffiliated/cirno-chan QUIT :Disconnected by services < 1309693796 373358 :Lymia!~moe@unaffiliated/cirno-chan NICK :Lymee < 1309694259 673729 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@pl (\x -> fix (fix x)) < 1309694259 894921 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :fix . fix < 1309694267 684974 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :wow, pl is so smart. < 1309694277 566582 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@pl (\x -> x) < 1309694277 766377 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :id < 1309694282 118928 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :woah. < 1309694294 795713 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Come on, that's peanuts. < 1309694305 282557 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :how does IT KNOW!!!! < 1309694308 102129 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :The reduction rules for that are trivial. < 1309694318 160924 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@pl (\f x y -> f y x) < 1309694318 371194 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :flip < 1309694359 883885 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@pl (\f x y -> f x y) < 1309694360 84240 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :id < 1309694399 938801 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :for some reason I was expecting ($) or something < 1309694480 697240 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@pl (\a b c d e f g h i j k l m -> m l k a b c j i h d e f h g) < 1309694482 500356 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :($) *is* id :) < 1309694483 897374 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(((((flip .) .) .) .) .) . ((((((flip .) .) .) .) .) .) . (((((((flip .) .) .) .) .) .) .) . ((((((((flip .) .) .) .) .) .) .) .) . (((((((((flip .) .) .) .) .) .) .) .) .) . ((((((((((flip .) .) .) < 1309694484 45938 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :.) .) .) .) .) .) .) . flip flip id . (flip .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . (((((ap .) .) .) .) .) . ((((((flip .) .) .) .) .) .) . (((((((flip .) .) .) .) .) .) .) . (( < 1309694484 194748 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :((((((flip .) .) .) .) .) .) .) .) . (((((((((flip .) .) .) .) .) .) .) .) .) . ((((((((((flip .) .) .) .) .) .) .) .) .) .) . ((((flip .) .) .) .) . (((((flip .) .) .) .) .) . ((((((flip .) .) .) .) < 1309694484 194923 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : .) .) . (((((((flip .) .) .) .) .) .) .) . ((((((((flip .) .) .) .) .) .) .) .) . (((((((((flip .) .) .) .) .) .) .) .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . (((((flip .) .) .) .) .) . (((( < 1309694484 195030 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :((flip .) .) .) .) .) .) . (((((((flip .) .) .) .) .) .) .) . ((((((((flip .) .) .) .) .) .) .) .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . (((((flip .) .) .) .) .) . ((((((flip .) < 1309694485 889964 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :[3 @more lines] < 1309694487 891701 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :optimization suspended, use @pl-resume to continue. < 1309694542 776220 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so clear and concise. < 1309694548 52921 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I wonder why they ever invented variables. < 1309694613 367779 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :pl is like cheating for obfuscation contests. < 1309694725 548561 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :So < 1309694732 686811 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Can we rename @pl to @obfuscate < 1309694894 958052 :Deewiant!~deewiant@cs186230.pp.htv.fi PRIVMSG #esoteric :@pl \l 1 -> l + 1 < 1309694895 147368 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(+) < 1309695160 902470 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :@l (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> q w e r t y u i o p a s d f g h j k l z x c v b n m) < 1309695161 112176 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Maybe you meant: learn leave let list listall listchans listmodules listservers localtime localtime-reply lojban . ? @ pl v < 1309695165 283916 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :@pl (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> q w e r t y u i o p a s d f g h j k l z x c v b n m) < 1309695168 541457 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(((((((((((flip .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((flip .) .) .) .) .) < 1309695168 703376 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :.) .) .) .) .) .) .) .) .) . (((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((flip .) .) .) . < 1309695168 851920 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :) .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) < 1309695168 852125 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : .) . ((((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((( < 1309695168 852237 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((flip .) . < 1309695170 542780 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :[35 @more lines] < 1309695172 552273 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :optimization suspended, use @pl-resume to continue. < 1309695173 652167 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :ACTION runs < 1309695251 803461 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :@. unpl pl (\a b c d e f g h i j k l m -> m l k a b c j i h d e f h g) < 1309695255 23033 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Parse error at end of input < 1309695273 44080 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :@. unpl pl (\a b c d i j k l m -> m l k a b c j i h d) < 1309695276 254327 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Parse error at end of input < 1309695811 295582 :Lymia!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309695833 317498 :Lymee!~moe@unaffiliated/cirno-chan QUIT :Disconnected by services < 1309695835 415542 :Lymia!~moe@unaffiliated/cirno-chan NICK :Lymee < 1309696534 987755 :shachaf!~shachaf@204.109.63.130 JOIN :#esoteric < 1309698136 499389 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1309698153 38458 :derrik!~xix@gprs-inet-65-28.elisa.ee JOIN :#esoteric < 1309698183 514883 :hagb4rd!~hagb4rd@koln-4db423ea.pool.mediaWays.net QUIT :Ping timeout: 255 seconds < 1309698492 561815 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :@pl (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> q) < 1309698492 873936 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :const (const (const (const (const (const (const (const (const (const (const (const (const (const (const (const (const . const . const . const . const . const . const . const . const)))))))))))))))) < 1309698505 852393 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :@pl (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> q a z w s x) < 1309698508 456027 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :const . const . const . const . const . const . const . const . const . const . const . const . const . const . const . ((const . ((const . const . const . (((const .) . flip) .)) .) . flip . (flip . < 1309698508 616820 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :) . flip) .) . flip id < 1309698516 261940 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :@pl (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> q a z w s x a) < 1309698519 436586 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :const . const . const . const . const . const . const . const . const . const . const . const . const . const . const . ((const . ((const . const . const . ((const .) .)) .)) .) . join (flip . (( < 1309698519 588737 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :flip . ((flip . (flip .)) .) . (((flip .) .) .)) .) . (((flip .) .) .) . (flip .) . ((flip .) .) . (flip .) . flip id) < 1309698519 737128 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :optimization suspended, use @pl-resume to continue. < 1309698564 810726 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :@pl (\a b c d e f g h i j k l m n o p q r s t u v w x y z -> (t o) (b e) (o r) (n o t) (t o) (b e) . (t h a t) (i s) (t h e) (q u e s t i o n)) < 1309698568 8858 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(const .) . (const .) . ((const .) .) . ((const .) .) . ((((const .) .) .) .) . ((((const .) .) .) .) . ((((const .) .) .) .) . ((((const .) .) .) .) . ((((((const .) .) .) .) .) .) . ((((((((((( < 1309698568 163630 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :const .) .) .) .) .) .) .) .) .) .) .) . (((((((((((const .) .) .) .) .) .) .) .) .) .) .) . (((((((((((const .) .) .) .) .) .) .) .) .) .) .) . (((((((((((const .) .) .) .) .) .) .) .) .) .) .) . (( < 1309698568 312392 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(((((((((const .) .) .) .) .) .) .) .) .) .) .) . flip (ap . ((.) .) . ((.) .) . (ap .) . ((ap .) .) . ((((.) .) .) .) . (((flip .) .) .) . (((((.) .) .) .) .) . ((((ap .) .) .) .) . ((((((.) .) .) . < 1309698568 312560 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :) .) .) . ((((((.) .) .) .) .) .) . ap (ap . (flip .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . flip flip (flip id) . (flip .) . ((ap .) .) . (((flip .) .) .) . ((((ap .) .) .) .) . < 1309698568 312669 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(ap .) . ((flip .) .) . (((ap .) .) .) . flip flip id . (ap .) . (((.) .) .) . ((flip .) .) . (flip (flip . flip id) .)) id) . flip (ap . (flip .) . ((ap .) .) . ((((.) .) .) .) . ((((.) .) .) .) . ( < 1309698570 16359 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :[3 @more lines] < 1309698572 9469 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :optimization suspended, use @pl-resume to continue. < 1309698607 748286 :derrik!~xix@gprs-inet-65-28.elisa.ee PART :#esoteric < 1309698688 465427 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Lymee, please, do it in a /query. < 1309700456 13801 :derrik!~xix@194.150.65.80 JOIN :#esoteric < 1309700793 847816 :ralc!~ralc@79.142.230.243.static.knet.bolignet.dk JOIN :#esoteric < 1309701892 28301 :ralc!~ralc@79.142.230.243.static.knet.bolignet.dk QUIT :Read error: Operation timed out < 1309702980 248561 :ralc!~ralc@dhcp70.akk.k-net.dk JOIN :#esoteric < 1309703093 700058 :Sgeo_!~Sgeo@66-87-4-136.pools.spcsdns.net QUIT :Ping timeout: 252 seconds < 1309705059 361826 :Sgeo!Sgeo@ool-44c2d2a1.dyn.optonline.net JOIN :#esoteric < 1309705806 887887 :derrik!~xix@194.150.65.80 QUIT :Ping timeout: 258 seconds < 1309706928 746882 :Wamanuz4!~Wamanuz@81-233-163-248-no84.tbcn.telia.com QUIT :Remote host closed the connection < 1309706956 616335 :Wamanuz4!~Wamanuz@81-233-163-248-no84.tbcn.telia.com JOIN :#esoteric < 1309707540 877700 :olsner!~salparot@c83-252-161-133.bredband.comhem.se QUIT :Quit: Leaving < 1309707565 962735 :olsner!~salparot@c83-252-161-133.bredband.comhem.se JOIN :#esoteric < 1309707698 924088 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net JOIN :#esoteric < 1309707993 361704 :Lymee!~moe@unaffiliated/cirno-chan QUIT :Ping timeout: 260 seconds < 1309708737 204565 :Lymee!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309709963 748700 :Vorpal!~AnMaster@unaffiliated/anmaster QUIT :Ping timeout: 260 seconds < 1309710194 715733 :Vorpal!~AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1309711985 110827 :Lymia!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309712211 748352 :Lymee!~moe@unaffiliated/cirno-chan QUIT :Ping timeout: 276 seconds < 1309712508 31455 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :`quote < 1309712509 903145 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :180) You people. You people are so stupid. I'm making a SOCIOLOGICAL statement here. < 1309712545 201310 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :`quote stupid < 1309712546 642243 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :180) You people. You people are so stupid. I'm making a SOCIOLOGICAL statement here. \ 274) ah yes, indeed, alan turing was gay and stupid \ 321) zzo38: you missed the point. the point was way stupider than that. \ 342) quintopia: no i'm not laughing at you, i'm laughing because *you're < 1309712666 937280 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Seeing a high correlation with oko here. < 1309712673 133628 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :`pastequotes stupid < 1309712674 421612 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.31077 < 1309712734 393662 :Nisstyre!~nisstyre@109.74.204.224 QUIT :Remote host closed the connection < 1309712835 165773 :Nisstyre!~nisstyre@109.74.204.224 JOIN :#esoteric < 1309715768 806422 :azaq23!~derivecto@unaffiliated/azaq23 JOIN :#esoteric < 1309716151 888963 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :where is oerjan < 1309716162 896943 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Norway. < 1309716171 999089 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :okay < 1309716245 203946 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :i believe you that the person controlling the oerjan persona's physical presence lies in norway < 1309716254 115760 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :but i do not see that online persona here < 1309716257 915198 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :maybe later... < 1309716275 423779 :derrik!~xix@gprs-inet-65-6.elisa.ee JOIN :#esoteric < 1309716365 660463 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Quit: Computer has gone to sleep. < 1309717548 551744 :ralc!~ralc@dhcp70.akk.k-net.dk QUIT :Ping timeout: 260 seconds < 1309717833 814157 :hagb4rd!~hagb4rd@koln-4db4f939.pool.mediaWays.net JOIN :#esoteric < 1309718083 432329 :derrik!~xix@gprs-inet-65-6.elisa.ee PART :#esoteric < 1309718332 645991 :ralc!~ralc@79.142.230.243.static.knet.bolignet.dk JOIN :#esoteric < 1309719028 394599 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :http://www.reddit.com/r/askscience/comments/ifodq/what_is_the_simplest_self_replicating_system_we/ < 1309719030 68229 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :*sigh* < 1309719058 624359 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Not one of the answers addresses the fact that the question is terrible. < 1309719093 69474 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :ACTION downvotes across the board. < 1309721295 853948 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN :#esoteric < 1309721303 249886 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : I can't think of a * -> * type that could not possibly have a Functor instance.. < 1309721310 250566 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :non-covariant ones. < 1309721348 1441 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :newtype HasNoFunctor a = HasNoFunctor (a -> Int) < 1309721533 992721 :augur!~augur@208.58.6.161 PRIVMSG #esoteric :Phantom_Hoover! < 1309722154 741133 :augur!~augur@208.58.6.161 QUIT :Remote host closed the connection < 1309722252 384873 :augur!~augur@208.58.6.161 JOIN :#esoteric < 1309724475 589480 :Nisstyre!~nisstyre@109.74.204.224 QUIT :Quit: Leaving < 1309724539 830180 :Nisstyre!~nisstyre@109.74.204.224 JOIN :#esoteric < 1309724686 947393 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1309725231 887252 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :http://www.dailymail.co.uk/news/article-2010193/Teachers-strike-Sophie-Howard-13-killed-falling-branch-school-closed.html#ixzz1QrGB4Zb0 < 1309725244 10143 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :The logic in this article is possibly the most beautiful I have ever seen. < 1309725276 514292 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :The comment ratings, however, give me faith in humanity. < 1309725343 778925 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I get "comments are currently unavailable" < 1309725361 327249 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, I don't think the article itself has spurious logic, it's just stating a bunch of unrelated facts and leading its readers to try to draw a connection < 1309725433 96923 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Yes ais523 that is completely correct and also entirely irrelevant. < 1309725463 878011 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's a good journalism technique, in that it sells papers without actually lying < 1309725517 444690 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :"I hope every striking teacher is hanging their head in shame right now." < 1309725525 435248 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Rating: -2690. < 1309725536 508971 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I suspect this has been posted on Reddit or something. < 1309726486 837209 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :oerjan: is there an n for which there exists no n-digit base n number which, for all k, the first k digits form a number divisible by k? study this and report back. < 1309726504 822867 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :(even n only) < 1309726506 11843 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :erm < 1309726578 953118 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm i guess the base 10 case is an old chestnut i've heard... < 1309726607 153834 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :i've got them for 2,4,6,8,10 and maybe 12 but i don't remember < 1309726624 542657 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm so no odd ones? < 1309726640 307630 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :i proved that there aren't any odd ones greater than 1 < 1309726660 571520 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh i somehow missed your "even" < 1309726662 630143 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :(well, base 1 isn't really meaningful...) < 1309726686 65020 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :erm < 1309726687 470223 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :sorry < 1309726693 544157 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :all 1 <= k <= n, i assume you mean < 1309726700 981005 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :of course < 1309726733 42923 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :10, 1230 < 1309726739 189584 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :those are unique i think < 1309726754 789524 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :last digit 0, obviously < 1309726759 158487 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :yeah < 1309726767 918684 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :you can drop the zero and jsut do n-1 digits if you like < 1309726773 291335 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh wait < 1309726779 327138 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :what about 3210 < 1309726795 989046 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :some of the numbers have multiple solutions < 1309726800 234623 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ah < 1309726836 854923 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> map (readInt 4 digitToInt) ["123", "321"] < 1309726837 717925 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Couldn't match expected type `GHC.Bool.Bool' < 1309726837 870415 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : against inferred type ... < 1309726841 702798 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :argh < 1309726843 752596 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t readInt < 1309726844 527861 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. (Num a) => a -> (Char -> Bool) -> (Char -> Int) -> String -> [(a, String)] < 1309726858 964114 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> map (readInt 4 (const True) digitToInt) ["123", "321"] < 1309726859 726962 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[(27,"")],[(57,"")]] < 1309726966 400859 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ok even and odd digits must alternate < 1309727011 674754 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :how does the odd non-existence proof go? < 1309727086 382078 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :to be divisible by n-1, an analogue of the digital root rule holds < 1309727165 774535 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :1+2 is odd. so that is ruled out for base 3. < 1309727187 334139 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :1+2+3+4 is 10, not divisible by 4 < 1309727227 31963 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :1+2+3 is 6, divisible by 3 so _that_ works < 1309727235 894261 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :1+2+3+4+5 is divisible by 5 < 1309727240 613975 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ok hm < 1309727272 393529 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :n(n+1)/2 divisible by n iff n+1 is even. right, that proves it cannot work for odd ones < 1309727323 347107 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :while the n-1'st step automatically works for even ones < 1309727338 795803 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :quintopia: was that your proof? < 1309727368 890389 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :yep < 1309727498 806359 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :n*i + j == 2*i + j (mod (n-2)) < 1309727571 292461 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :if n has many prime factors, then that fixes factors of many of the digits < 1309727587 710846 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :say for 6, the 3rd digit must be divisible by 3 < 1309727599 632171 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :which means it is 3 < 1309727620 736903 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :indeed. the middle digit is always n/2 iirc < 1309727625 360457 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :.[24]3[24].0 < 1309727626 909493 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :at least for the ones i found < 1309727631 712662 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1309727646 635310 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :because that and 0 are the only digits divisible by n/2 < 1309727697 204561 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm it doesn't matter where you put 1 or 5 for base 6 < 1309727702 958322 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(in those two spots) < 1309727705 14702 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :nonetheless, several numbers have multiple solutions (usually consisting of two digits you can swap) < 1309727713 680134 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :right < 1309727751 805572 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :but then sometimes, there's only one, which led me to wonder if it would ever become an overconstrained problem < 1309727813 202831 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm there's only one for 10 i guess (iirc the chestnut) < 1309727821 583611 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :mmhmm < 1309727826 386372 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :is that related to it being twice a prime? < 1309727835 405933 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :good question < 1309727842 60861 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :i can go solve 14 real quick if you like :P < 1309727850 500334 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :(by quick i mean like 30 minutes...) < 1309727864 181848 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :_maybe_ it would be an idea to write a program :P < 1309727869 314160 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :hehe < 1309727888 931847 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :someone i know already has some generalized CSP tools < 1309727898 923861 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :left over from doing the sudoku PE puzzle < 1309727914 389130 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :afk < 1309727920 401745 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :k < 1309728250 28572 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com JOIN :#esoteric < 1309728829 61311 :Vorpal!~AnMaster@unaffiliated/anmaster QUIT :Ping timeout: 260 seconds < 1309728921 79349 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :lessee < 1309728971 384276 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i believe the restriction on digit positions can be generalized to gcd pos digit == gcd pos base < 1309729015 960964 :MigoMipo!~John@84-217-3-27.tn.glocalnet.net QUIT :Read error: Connection reset by peer < 1309729117 367775 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :because at each position divisible by d where d divides the base, then the digit there must be divisible by d. and the number of positions with a given gcd is exactly equal to the number of digits with the same gcd, so they must be matched < 1309729135 524047 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm wait < 1309729185 483248 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :* gcd (gcd pos digit) base == gcd pos base < 1309729234 584109 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(no use for factors not in the base) < 1309729298 664502 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm that's the same as gcd digit (gcd pos base) == gcd pos base < 1309729809 50808 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = []; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos base; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3] < 1309729809 877798 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Not in scope: `base' < 1309729821 581429 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = []; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3] < 1309729822 367683 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [] < 1309729825 958609 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :wat < 1309729880 341877 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :how can it not work when it compiled :D < 1309729892 449136 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm < 1309729900 213036 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t delete < 1309729900 940000 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. (Eq a) => a -> [a] -> [a] < 1309729963 436628 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = []; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3] < 1309729964 245466 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [] < 1309729995 474212 :Lymia__!~moe@123.120.129.32 JOIN :#esoteric < 1309730038 384584 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh duh < 1309730052 155726 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3] < 1309730052 921288 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[1,2,3],[3,2,1]] < 1309730072 231536 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 6 1 0 [1..5] < 1309730073 91458 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[1,4,3,2,5],[5,4,3,2,1]] < 1309730095 483812 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 6 1 0 [1..5] < 1309730096 216530 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[1,4,3,2,5],[5,4,3,2,1]] < 1309730111 528582 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7] < 1309730112 308354 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] < 1309730123 966045 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :quintopia: do those solutions look familiar? < 1309730151 464897 :Lymia!~moe@unaffiliated/cirno-chan QUIT :Ping timeout: 240 seconds < 1309730180 968202 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 10 1 0 [1..9] < 1309730181 769432 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[3,8,1,6,5,4,7,2,9]] < 1309730217 691546 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 12 1 0 [1..11] < 1309730218 478572 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [] < 1309730221 887715 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :wat < 1309730232 920633 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :quintopia: um it claims there are no solutions for 12 :P < 1309730250 221478 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 12 1 0 [1..11] < 1309730250 951313 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [] < 1309730272 517469 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 14 1 0 [1..13] < 1309730273 376569 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[9,12,3,10,5,4,7,6,11,8,1,2,13]] < 1309730301 470222 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 16 1 0 [1..15] < 1309730302 451187 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [] < 1309730313 473263 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 18 1 0 [1..17] < 1309730314 795455 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [] < 1309730322 332748 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 20 1 0 [1..19] < 1309730325 808827 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [] < 1309730342 838060 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :quintopia: there appear to be no solutions for 12, 16, 18 or 20 < 1309730435 315284 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :that is a good program there sir < 1309730446 439179 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :why thank you < 1309730509 490109 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the gcd stuff seems not to be very important, it was fast enough without too < 1309730535 695325 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well i guess it might time out for larger ones < 1309730547 752168 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :and of course... now i can't help but wonder if there is a maximum n...but that question might be as hard as collatz < 1309730553 664347 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 20 1 0 [1..19] < 1309730556 149563 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [] < 1309730569 932440 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :quintopia: perhaps :P < 1309730588 790851 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm now... < 1309730607 731787 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 22 1 0 [1..21] < 1309730611 443425 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1309730614 217398 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :darn < 1309730630 850475 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 22 1 0 [1..21] < 1309730634 578133 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1309730645 351122 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :we may never know :P < 1309730724 828892 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :oerjan: what is the maximum n which, for all k let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 24 1 0 [1..23] < 1309731057 946991 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1309731063 272138 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :bah < 1309731069 260143 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh wait < 1309731110 994797 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 24 1 0 [1..23] < 1309731114 705458 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1309731119 965918 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :nah didn't help < 1309731429 398757 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :omg < 1309731435 198300 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :i'm getting my first month of prgmr free :D < 1309731437 851505 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: NEE NAW NEE NAW < 1309731487 482880 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :elliott, what, has he had a heart attack or something? < 1309731507 409824 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :A HEART ATTACK OF JEALOUSY < 1309731527 759732 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :quintopia: ah, there is no solution for 22 either < 1309731541 42601 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so twice prime conjecture disprover :P < 1309731543 45891 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*d < 1309731598 241788 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :oerjan: run 26 if your compy can handle it :P < 1309731666 197980 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :seems to take a while < 1309731688 842470 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(22 got reasonably fast once i actually compiled it properly) < 1309731706 40921 :elliott_!~elliott@95.149.228.85 JOIN :#esoteric < 1309731713 791602 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :and then run 62 mwahahaha (in case it is twice mersenne primes) < 1309731723 241816 :elliott!~elliott@unaffiliated/elliott QUIT :Read error: Connection reset by peer < 1309731727 348468 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :sorry, i don't think that is going to work :P < 1309731735 104492 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it hasn't finished 26 yet < 1309731742 503122 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so it's obviously exponential < 1309731760 924376 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :ha < 1309731762 228531 :Lymia!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1309731765 603474 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :i figured < 1309731769 109172 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ah there. no solution. < 1309731772 774092 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :One idea for pokemon cards: Attach this card to one of your bench or active pokemon. Power, weak, resist, of the card this is attached to is suppressed. If you receive damage that would be affected by the weakness, discard this card (after damage is calculated). < 1309731992 754165 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :no solution for 24 either. i don't think i'm going to try anything larger on this computer :P < 1309731997 18571 :Lymia__!~moe@123.120.129.32 QUIT :Ping timeout: 276 seconds < 1309732038 208432 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :EXCUSE ME I HAVE THE PERFECT COMPUTER GIVE IT TO ME < 1309732070 320373 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :quintopia: my guess is there is no real connection between all the constraints so they just statistically block everything from some size on < 1309732090 126058 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: see nsearch above < 1309732094 462412 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :what is this about, btw? < 1309732134 870916 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: in what bases b do there exist b-digit numbers such that the first k digits form a number divisible by k, 1 <= k <= b < 1309732148 668905 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :9 < 1309732149 848990 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :yw < 1309732163 148908 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: sorry, odd bases have been excluded < 1309732166 829898 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :there are 9 such bases, their identity is left as an exercise to the reader < 1309732177 466391 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm... < 1309732207 560562 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :1, 2, 4, 6, 8, 10, 14 are the ones we have found so far :P < 1309732231 98485 :cheater__!~ubuntu@e179113019.adsl.alicedsl.de QUIT :Ping timeout: 255 seconds < 1309732232 179691 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and a search up to 26 seems to bring little hope of more < 1309732283 652864 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: but you are welcome to test 28, 30 and so on as far as you wish < 1309732294 219731 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: no i am god i test nothing < 1309732297 497353 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :i merely... know < 1309732305 957531 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: ok so it is just < 1309732307 136034 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 24 1 0 [1..23] < 1309732309 17019 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :what numbers should i use < 1309732310 639152 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :in the nsearch call < 1309732310 864596 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1309732313 116958 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :SOME PERFECT COMPUTER < 1309732330 954188 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: nsearch b 1 0 [1..b-1] < 1309732332 499892 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :also, could any strictness help here? < 1309732342 477055 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: erm that is to test 28? < 1309732346 874780 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oh, b < 1309732349 377944 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :no to test any b < 1309732368 195038 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :but yeah, if you want to strictness annotate any of that... do it now < 1309732382 999453 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: just put !'s on everything :P < 1309732394 13866 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :even remdigs? < 1309732407 575913 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well all the numbers :P < 1309732419 358356 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it's not an algorithm that needs laziness < 1309732444 253636 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :nsearch.hs:1:177: Not in scope: `delete' < 1309732444 575012 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :grr < 1309732445 952143 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :?hoogle delete < 1309732446 157587 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.HashTable delete :: HashTable key val -> key -> IO () < 1309732446 309384 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.IntMap delete :: Key -> IntMap a -> IntMap a < 1309732446 457881 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Data.IntSet delete :: Int -> IntSet -> IntSet < 1309732446 606264 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :however n can be large, so you definitely need Integers < 1309732451 18104 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :what delete is it? < 1309732451 240007 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: oh, in Data.List < 1309732462 993708 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :what is nsearch's return type? < 1309732464 630798 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :[[Integer]]? < 1309732467 309021 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1309732475 958891 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :how long did twenty-six take, exactly? :D < 1309732486 101944 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :a few minutes < 1309732492 858151 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :hmm, so this will take hours :D < 1309732505 290341 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: note that my laptop is 5 years old :P < 1309732516 160526 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: could it be parallelised? < 1309732524 750539 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: hm why not < 1309732538 114856 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :you get on that :P < 1309732541 263764 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :no. < 1309732547 358130 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :elliott@katia:~$ ./nsearch < 1309732547 506736 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :[] < 1309732547 815958 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :yw < 1309732562 306874 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that's for 28? < 1309732564 910452 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :yep < 1309732607 436707 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: what next :P < 1309732627 662191 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :i'm gonna agree with oerjan's conjecture that there are no more after 14 < 1309732629 496110 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: 30, 32, etc. we have no proof for specific even numbers < 1309732644 708327 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: we don't actually expect any more hits < 1309732647 173857 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :based on NO EVIDENCE < 1309732676 513945 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm... < 1309732687 950369 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :let me just check OEIS for this < 1309732697 154154 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: what did mathematicians do before OEIS < 1309732730 679986 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :i searched for it on oeis before and never found it < 1309732737 48340 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :"Toothpick sequence starting at the vertex of an infinite 90-degree wedge." < 1309732747 871558 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: i'm glad this program has constant memory usage < 1309732749 258722 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :wat < 1309732752 843884 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: BUT OF COURSE < 1309732757 83186 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :what's the next predicted base? < 1309732759 364067 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :quintopia: i'm joking :P < 1309732762 218798 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oh < 1309732762 706539 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric ::D < 1309732767 155433 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :FUCK YOU :D < 1309732771 796571 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: erm wait that's a real sequence? < 1309732776 642069 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :http://oeis.org/A160406 < 1309732779 715781 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :and it fits so far < 1309732794 660649 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :so depending on the outcome of 30... :D < 1309732795 66064 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :18 fails < 1309732796 393745 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yes but next is 18, which is not in the one we investigate < 1309732798 989316 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oh, damn < 1309732808 83936 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: how big will the output be if it is a match? < 1309732820 314819 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :$ time ./nsearch < 1309732820 536954 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :[] < 1309732820 685349 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :real 2m9.258s < 1309732822 200920 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :ok thirty isn't it < 1309732828 654136 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :oerjan: i searched for the sequence 1,2,2,2,1,0... < 1309732840 584526 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :or w/e < 1309732868 144975 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: trying thirtytwo now < 1309732874 430302 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: who knows? some bases have 3 examples < 1309732894 987058 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but in _theory_ there could be an exponential amount < 1309732952 899235 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :quintopia: i guess OEIS does not contain finite sequences much, anyhow < 1309733007 369753 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :more like finite jewquences < 1309733045 826554 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :OR THAT < 1309733063 243619 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :yes. it does contain a handful. it contains the fermat primes iirc < 1309733093 381431 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm < 1309733136 366736 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7] < 1309733137 161513 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] < 1309733141 68398 :cheater_!~ubuntu@e179113019.adsl.alicedsl.de JOIN :#esoteric < 1309733202 440659 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hmph those don't google well < 1309733210 772600 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 10 1 0 [1..9] < 1309733211 499722 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[3,8,1,6,5,4,7,2,9]] < 1309733270 558386 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that one has good hits, at least :P < 1309733279 724114 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :ah < 1309733291 892490 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(in google) < 1309733298 23380 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :hmm, this fringe episode has "polish military-grade transistors" < 1309733298 367520 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: still running thirtytwo < 1309733303 151789 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :so it's 1,2,2,3,1,0,1,0,0,0,0,0,0,0,0,0... < 1309733340 569554 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :olsner: orite. those are the huge ones that can switch/amplify 4000 V wires :P < 1309733365 57181 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :quintopia: no, it's just a normal small one with polish text on it < 1309733365 205547 :azaq23!~derivecto@unaffiliated/azaq23 QUIT :Ping timeout: 255 seconds < 1309733446 623088 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :olsner: doesn't sound military grade to me < 1309733460 124517 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7] < 1309733460 885913 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] < 1309733479 870547 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :no indication that the gcd rule is wrong, at least < 1309733511 735202 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan has mastered the ancient mathematical art of proving statements on infinite sets by testing a finite number of examples < 1309733518 137994 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it makes me a bit nervous, but it should cut down a lot of branches < 1309733535 791053 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :can always binary-search back to those < 1309733554 533889 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: huh? < 1309733561 228827 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :I mean, you can just try ones that fit the gcd rule < 1309733564 147876 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :then go back to non-gcd ones later < 1309733604 771994 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :if your computer can handle them :P < 1309733632 41613 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :for example, it's the gcd rule which ensures odd positions only get odd digits < 1309733677 514394 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so without it, all of those might get twice as many candidates at each step < 1309733682 940844 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: psst, can you reofrmulate nsearch with combinators instead of a comprehension? < 1309733688 466457 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :I'm trying to port it to data-parallel Haskell < 1309733702 246625 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i have no idea how data parallel haskell works :P < 1309733720 384969 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(well, almost none) < 1309733726 763408 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :ACTION tries to find the module for you; it's basically just Data.List < 1309733728 88617 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :but with P on the end < 1309733730 571061 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :but I just want a list version < 1309733732 134596 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :that uses combinators < 1309733735 289327 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :I can port it to dph myself < 1309733754 531127 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oh, darn < 1309733759 326092 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :there's no dph for GHC 7.0 < 1309733761 523265 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :I'll port it to repa instead < 1309733796 367175 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: well i guess you want to choose the digit first, and if there are two, you can branch < 1309733802 118938 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :hm should the result be (ArrayTypeyThing [Integer]) or [ArrayTypeyThing Integer] < 1309733805 664100 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :of nsearch, I mean < 1309733806 122724 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*two or more possibilities < 1309733813 595168 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :assuming remdigs is ArrayTypeyThing Integer < 1309733851 101538 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: hm you could actually do it with Integer instead if you want < 1309733855 626416 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: eh? < 1309733873 928155 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :I just mean < 1309733877 685826 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :nsearch < 1309733877 834383 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric : :: Integer < 1309733877 834576 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric : -> Integer < 1309733877 834683 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric : -> Integer < 1309733877 834791 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric : -> R.Array R.DIM1 Integer < 1309733878 171901 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric : -> R.Array R.DIM1 [Integer] < 1309733882 624028 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :is the last component right, < 1309733885 592651 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :or should it be [R.Array R.DIM1 Integer]? < 1309733890 311308 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: the final result is really just n. oh but it will be in decimal if you do that. < 1309733900 1931 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :you're not really making any sense :D < 1309733905 653026 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: do you mean that the inner [Integer] < 1309733907 371079 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :is just a list of digits? < 1309733911 968484 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1309733917 156284 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :so i could do < 1309733918 365806 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :type Number = [Int] < 1309733926 812887 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well yes. < 1309733926 976984 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :(assuming the bases won't go above Int range...) < 1309733943 830321 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :n still needs to be Integer though. < 1309733960 759724 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :urgh, what, no Elt instance for Integer? < 1309734020 623327 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: I might just use Data.Vector instead < 1309734028 699859 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oh wait, repa is what does the automatic parallelisation < 1309734029 166975 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :hmm < 1309734058 284329 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: hmm, will remdigs ever contain a really large number? < 1309734073 81373 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :and will the result numbers in nsearch ever be really large? I mean, feasibly < 1309734076 557543 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: remdigs is always a subset of [1..b-1] < 1309734076 815740 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :i.e. not fit into Int < 1309734103 903300 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: the number has b-1 digits where b is the base :P < 1309734116 311198 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :hmm, so it might very well overflow, then < 1309734121 450982 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yep < 1309734137 40586 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :$ time ./nsearch < 1309734137 189018 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :^Y[] < 1309734137 189236 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :real 19m28.434s < 1309734138 805487 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :for thirty-two < 1309734153 401313 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: ok well is nsearch expressable as a map of any kind, I'm just looking for parallelisation options here < 1309734219 781456 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: the recursive nsearch depends on the digit chosen. i guess you can check if there is more than one possible digit and branch only if so < 1309734241 367140 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Some people have asked questions about chess rules such as this: "can a king switch places with a pawn when in check?" "if a king reaches the other end of the board then can u get your queen back?" "He moved his king to the other side and said its a draw. Is it correct?" "can the king take another piece" < 1309734248 406161 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :hmm, when would there ever be only one possible digit? < 1309734267 906302 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: easily. for example the b/2 digit must always be b/2 < 1309734280 878980 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :erm wouldn't that only save, like, one recursion though < 1309734307 364271 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: but there is also the requirement that the number so far must be divisible by the current position < 1309734323 209705 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :?pl [ d : ds | !d <- remdigs , let g = gcd pos b , let n' = n*b+d , gcd d g == g , mod n' pos == 0 , !ds <- nsearch b (pos+1) n' (delete d remdigs) ] < 1309734323 516721 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(line 1, column 1): < 1309734323 665235 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :unexpected "[" < 1309734323 813798 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :expecting white space, "()", natural, identifier, lambda abstraction or expression < 1309734323 962302 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i would think that tends to cut down most < 1309734325 90578 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :grr < 1309734330 565479 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :i was hoping for a combinator version < 1309734335 888098 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :concatMap, etc. < 1309734343 907402 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :oerjan: i think it is possible to write a much more efficient logical search than this rather brute forcey thing you've got. like the logical sudoku solver? < 1309734361 282955 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :"if the opponents queen is placed next to the king putting him in check mate can the king take the queen" "is it true that the king cna move two spaces on its first move?" "If you get your king across and back do you get a piece back." "I have alot of friends at school that say that chess is for nerds and geaks do any of you have this proble please replay after reading this message" < 1309734373 760221 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :quintopia: i don't know. i feel like the gcd rule takes care of most easy restrictions... < 1309734383 296219 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :how do you translate a list comprehension again... < 1309734387 814731 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :filter (\d -> ) remdigs < 1309734397 883242 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :filter (\d -> let g = gcd pos b; n' = n*b+d) remdigs < 1309734401 9611 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@undo [x | y <- l, x <- y] < 1309734401 199188 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :concatMap (\ y -> concatMap (\ x -> [x]) y) l < 1309734406 167365 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oh < 1309734410 578193 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :?undo [ d : ds | !d <- remdigs , let g = gcd pos b , let n' = n*b+d , gcd d g == g , mod n' pos == 0 , !ds <- nsearch b (pos+1) n' (delete d remdigs) ] < 1309734410 830664 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Parse error at "!d" (column 14) < 1309734418 141317 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :?undo [ d : ds | d <- remdigs , let g = gcd pos b , let n' = n*b+d , gcd d g == g , mod n' pos == 0 , ds <- nsearch b (pos+1) n' (delete d remdigs) ] < 1309734418 366519 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :concatMap (\ d -> let { g = gcd pos b} in let { n' = n * b + d} in if gcd d g == g then if mod n' pos == 0 then concatMap (\ ds -> [d : ds]) nsearch b (pos + 1) n' (delete d remdigs) else [] else []) < 1309734418 545293 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : remdigs < 1309734421 425577 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :yay < 1309734442 166893 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :just means that I can, e.g. try a parallel map < 1309734451 248801 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :assuming numdigs isn't too big, that should pay off < 1309734520 528847 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :concatMap (\ ds -> [d : ds]) nsearch b (pos + 1) n' (delete d remdigs) < 1309734523 162233 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: hm that can't be right < 1309734524 257406 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :missing parens < 1309734563 967626 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: in fact the number of branches will almost certainly be largest for the first few digits, where the restriction of modulus is small < 1309734584 748482 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :while for the later ones you will probably only get one digit possibility < 1309734609 633937 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(e.g. the first digit can be any number relatively prime to the base) < 1309734646 990050 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :nsearch !b !pos !n !remdigs = concat (parMap rdeepseq f remdigs) < 1309734648 413207 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :I think this is right < 1309734693 707885 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :"do you guys know about the ozone layer" (That has nothing to do with chess!) "Whap happens when a player says a false checkmate? Do i win?" "can a player leave the table while his oponent has to move if a clock doesnt exist?" "When your king reaches the other side if the board what happenends?" "when a pawn reachs the end can it turn into a queen. If i already have one ." < 1309734702 322637 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :ACTION tries thirty again < 1309734703 452677 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :real 2m9.258s < 1309734703 601093 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :to beat < 1309734763 257335 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :an improvement < 1309734815 489976 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric : 3291 elliott 20 0 48740 3700 1256 R 179 0.1 0:13.84 nsearch.optim < 1309734816 985953 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :promising < 1309734821 304055 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :"i have played a computer program that says that moving the king into a square without having that square accessible by a piece of yours is illegal. is this true?" "is it allowed for a king to be checkmated without going through check first?" "can a pawn turn into a queen and put you into check mate to end the game or must it be done differently" "lets say there was just a kink left and the very last move of the game put it in checkmate,would t < 1309734829 81623 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :rdeepseq may be excessive, min dyou < 1309734829 995960 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :mind you < 1309734870 1395 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :wtf sort of questions are these < 1309734873 847360 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :who would ask them < 1309734876 150853 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :ever < 1309734906 318524 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: hm this may have been a pessimisation... < 1309734909 356543 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :unless it wasn't thirty I tested < 1309734912 279441 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Probably people who are very confused about chess might ask these kind of questions < 1309734925 796973 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :nope, it was thirty < 1309734943 565294 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: i think maybe one should split the digit selection from the recursion somehow... < 1309734945 106846 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Some are common questions but others are strange < 1309734954 829422 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: yeah, i don't have the smarts for that, you have to handle that thinking stuff < 1309734974 353336 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7] < 1309734975 86575 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] < 1309735011 778752 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :$ time ./nsearch.optim +RTS -N < 1309735012 12817 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :[] < 1309735012 162938 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :real 2m47.566s < 1309735016 363469 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :so it's a pessim for that < 1309735019 770149 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :ACTION changes it a bit < 1309735026 340535 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: erm that is the same program :D < 1309735037 408108 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i just copied it < 1309735078 756541 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | (d,n') <- ndigs b pos n remdigs , ds <- nsearch b (pos+1) n' (delete d remdigs)]; ndigs b pos n remdigs = [(d, n') | d <- remdigs, let n' = n*b+d, mod n' pos == 0]; in nsearch 8 1 0 [1..7] < 1309735079 551306 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] < 1309735159 952862 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :not sure if that actually helps though :P < 1309735192 744476 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh wait < 1309735200 310432 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i copied a version without the gcds :( < 1309735254 213868 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | (d,n') <- ndigs b pos n remdigs , ds <- nsearch b (pos+1) n' (delete d remdigs)]; ndigs b pos n remdigs = [(d, n') | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0]; in nsearch 8 1 0 [1..7] < 1309735254 962621 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]] < 1309735324 686968 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: i think the first list comprehension there is a good spot to parallelize. of course i don't actually know this stuff :P < 1309735334 207531 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :meh, parallelisation just slows this down it seems... < 1309735336 364575 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: hm I'll give it a try < 1309735341 834008 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :?undo [d:ds | (d,n') <- ndigs b pos n remdigs , ds <- nsearch b (pos+1) n' (delete d remdigs)]; ndigs b pos n remdigs = [(d, n') | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0] < 1309735342 38937 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Parse error at ";" (column 89) < 1309735344 584407 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :asghj < 1309735365 572018 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i hope that tuple doesn't hurt too much < 1309735429 799178 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oh wait, thats two clause < 1309735430 273063 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :s < 1309735452 981926 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hence why i said the _first_ list comprehension :P < 1309735527 463010 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: ndigs is a separate function, right? < 1309735538 334404 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1309735577 977051 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the idea is that you probably don't want to paralellize it, but if its result has more than two elements you want to paralellize on the rest < 1309735600 733539 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: this has the same performance characteristics as the original version when not paralellised, right? < 1309735620 291331 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :probably < 1309735627 381228 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :?undo [d:ds | (!d,!n') <- ndigs b pos n remdigs, !ds <- nsearch b (pos+1) n' (delete d remdigs)] < 1309735627 667230 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Parse error at ",!n')" (column 12) < 1309735633 548934 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :?undo [d:ds | (d,n') <- ndigs b pos n remdigs, ds <- nsearch b (pos+1) n' (delete d remdigs)] < 1309735633 748657 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :concatMap (\ (d, n') -> concatMap (\ ds -> [d : ds]) nsearch b (pos + 1) n' (delete d remdigs)) ndigs b pos n remdigs < 1309735637 916756 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :stupid \bot < 1309735651 756993 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: I'm tempted to use a list type that can nest indefinitely and flatten it at the end < 1309735660 305139 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: since all these concats are essentially barriers that force sequentiality... < 1309735661 256228 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*parallelize < 1309735695 268978 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: ok :P < 1309735705 81106 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :?undo [d:ds | (d,n') <- (ndigs b pos n) remdigs, ds <- (nsearch b (pos+1) n' (delete d remdigs))] < 1309735705 276901 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :concatMap (\ (d, n') -> concatMap (\ ds -> [d : ds]) (nsearch b (pos + 1) n' (delete d remdigs))) (ndigs b pos n) remdigs < 1309735722 516009 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :wrong position, heh < 1309735756 627021 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: so, erm, would I want the outer or inner concatMap to be parallel? < 1309735764 935043 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :or both < 1309735792 177318 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1309735813 452933 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :basically is ndigs or nsearch the long one :D < 1309735858 364909 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh. the outer one, i think. < 1309735891 143268 :azaq23!~derivecto@unaffiliated/azaq23 JOIN :#esoteric < 1309735918 243965 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :ok, it's using all my CPU, so hopefully this will be faster < 1309735923 256805 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :but that's what I said last time, too < 1309735927 535730 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :heh < 1309735954 445529 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: my point is you don't want to parallelize on remdigs, only on the result of ndigs < 1309735970 980653 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :because remdigs is likely to be pruned a lot < 1309736000 548736 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :right < 1309736003 962842 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :real 1m31.738s < 1309736004 431523 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :woot < 1309736016 20023 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it worked? :P < 1309736022 112610 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :yep < 1309736032 403042 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :ok, now for thirty-four < 1309736077 768503 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :http://www.irregularwebcomic.net/3080.html < 1309736106 550628 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I am now genuinely curious as to how laid-back scheduling works for the person arranging a meeting. < 1309736109 567353 :hagb4rd!~hagb4rd@koln-4db4f939.pool.mediaWays.net NICK :hagb[4]rd < 1309736111 626961 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :"on English time" :D < 1309736119 906283 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Do you just turn up half an hour later than you specified? < 1309736127 323210 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :You just turn up whenever, man. < 1309736186 85367 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: i take it there have been no new elements in the sequence so far, and you're up to trying 34? < 1309736191 324462 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :indeed < 1309736193 572117 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :it's running now < 1309736195 188349 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :eating up all my cpu < 1309736199 359523 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Throughout the Latin American world, are the conference rooms booked for 10 o'clock but empty of people because they've all tacitly agreed to turn up at half 10? < 1309736217 461589 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :Phantom_Hoover: You realise that "laid back" means "laid back", not "PRECISELY half an hour later". < 1309736233 665978 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :elliott_, *around* half 10. < 1309736247 469059 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: anyway, thirty-two took 19m28.434s sequentially < 1309736253 675657 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :so I dunno how long this will take, parallely < 1309736266 416296 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oops < 1309736269 793628 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :? < 1309736273 10029 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :don't tell me it has a bug :D < 1309736295 567820 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it's just a bit of time < 1309736300 694003 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: ? < 1309736303 62865 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :what do you mean < 1309736324 731340 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i don't know any bug. you might want to try it on 8 which we know has 3 elements :P < 1309736368 330684 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well actually i did, on the pre-parallelized version < 1309736416 130561 :cheater_!~ubuntu@e179113019.adsl.alicedsl.de QUIT :Ping timeout: 255 seconds < 1309736697 179061 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: hm hopefully this framework is smart enough not to add parallelizing overhead if mapping over a list with 1 element :P < 1309736713 566689 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: I think sparks are really cheap < 1309736717 645564 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh < 1309736718 969033 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :as in, you can have hundreds of thousands at any time < 1309736723 565275 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :it's like < 1309736730 447300 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :os threads > haskell green threads > sparks < 1309736773 3705 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott_: yeah but still i thought i'd heard that the trick to parallelization is to not get too fine-grained so everything is destroyed by overhead... < 1309736786 205533 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: that's sort of the idea of sparks, isn't it? < 1309736788 181225 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :having almost 0 overhead < 1309736790 637172 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ok < 1309736813 177956 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :anyway, all the smart people think it's great ;D < 1309736818 751997 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :good, good < 1309737499 525938 :elliott_!~elliott@95.149.228.85 PRIVMSG #esoteric :oerjan: still going < 1309737557 980659 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :25 minutes...