< 1212281634 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1212281644 0 :oklopol!n=nnscript@oklopol.yok.utu.fi JOIN :#esoteric < 1212281799 0 :calamari!n=calamari@ip24-255-58-177.tc.ph.cox.net JOIN :#esoteric < 1212282148 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :NOOO!!! < 1212282151 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :MANDATORY FUN DAY IS BACK!! < 1212282337 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :D:> < 1212282357 0 :Corun_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1212282407 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: :( < 1212282436 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :haha, i like this shop of the first new one < 1212282437 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :http://i30.tinypic.com/2zscztk.jpg < 1212282457 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :though fgsfds is lowercase. < 1212282743 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1212284130 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1212284630 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bye for today :) < 1212284662 0 :tusho!unknown@unknown.invalid QUIT :Remote closed the connection < 1212287831 0 :bsmntbombdood!n=gavin@75-166-163-40.hlrn.qwest.net JOIN :#esoteric < 1212287931 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1212290655 0 :GreaseMonkey!n=gm|--0@219-89-41-219.dialup.xtra.co.nz JOIN :#esoteric < 1212290816 0 :Nocta!n=nocta@kobz-590e6f1f.pool.einsundeins.de JOIN :#esoteric < 1212290975 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1212291395 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1212291400 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :are you here for the gaysex? < 1212292079 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :why else < 1212292086 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :this is THE gaysex channel < 1212292757 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :^_^ < 1212292764 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :::gaysexes lament:: < 1212292770 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :unf unf unf < 1212293119 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :... < 1212293125 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :what the christ, you guys. < 1212293151 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :we left rodger out :( < 1212293155 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :sorry rodger < 1212293158 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :::cums on rodgers face:: < 1212293259 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1212293288 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you scared calamari away < 1212293291 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :shame on you < 1212293304 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :well, now we know how to separate the men from the boys < 1212293327 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :by... cuming on their faces? < 1212295097 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :well i didnt cum on CALAMARI's face < 1212301172 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1212304672 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Save your love for mudkips. < 1212307199 0 :clog!unknown@unknown.invalid QUIT :ended < 1212307200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1212307917 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :... < 1212307938 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :s/#esoteric/#bearcave/ ? < 1212308063 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Don't mind augur and his flaming gayness. < 1212308076 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :GAY GAY GAY < 1212308224 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :*clears throw* < 1212308233 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :sorry, i felt there wasnt enough gayness. < 1212308236 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :had to gay it up in here < 1212309211 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Unisex." < 1212311518 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1212311669 0 :asiekierka!n=asiekier@193.59.255.196 JOIN :#esoteric < 1212311671 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Hey < 1212311700 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :what? was my SNUSPrisc idea that bad? (a RISC in SNUSP) < 1212311717 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :i think i must make BNUSP < 1212311788 0 :asi33krka!n=asiekier@193.59.255.196 JOIN :#esoteric < 1212311796 0 :asiekierka!unknown@unknown.invalid QUIT :Nick collision from services. < 1212311801 0 :asi33krka!unknown@unknown.invalid NICK :asiekierka < 1212311844 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :SNUSNU < 1212312112 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :it'll also have not X and Y for memory < 1212312116 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :but X and TH < 1212312119 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :X and THread < 1212312131 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :every thread will have it's own 512-byte memory piece < 1212312247 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :17 commands so far < 1212312263 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :all Core SNUSP and Modular SNUSP commands are there < 1212312277 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :The Bloated SNUSP's & and % are there < 1212312323 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :and 3 new commands: ^ (nand), ! (global/thread memory swap), and * (swap the global memory value and the thread memory value) < 1212312326 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :How does it look? < 1212312363 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1212312366 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :! is skip already < 1212312382 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :changed the memory swap thing to @ < 1212312386 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1212312387 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :it < 1212312389 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :it < 1212312400 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :darn ENTER, it's ENTER in SNUSP < 1212312415 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ok, let it be : < 1212312458 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :oh well, screw it < 1212312621 0 :Iskr!n=i@host200-17-dynamic.56-82-r.retail.telecomitalia.it JOIN :#esoteric < 1212312855 0 :jix!n=jix@dyndsl-080-228-181-149.ewe-ip-backbone.de JOIN :#esoteric < 1212313020 0 :asi33krka!n=asiekier@193.59.255.196 JOIN :#esoteric < 1212313028 0 :asi33krka!unknown@unknown.invalid PRIVMSG #esoteric :Back < 1212313031 0 :asi33krka!unknown@unknown.invalid PRIVMSG #esoteric :or wait < 1212313042 0 :asiekierka!unknown@unknown.invalid QUIT :Nick collision from services. < 1212313043 0 :asi33krka!unknown@unknown.invalid NICK :asiekierka < 1212314093 0 :Dewi!unknown@unknown.invalid QUIT :"bbs" < 1212315378 0 :jix!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1212315662 0 :asiekierka!unknown@unknown.invalid QUIT : < 1212316047 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1212316047 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :im just wondering if you could code a gui in brainfuck? ;o < 1212316050 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :i mean in theory ;p < 1212316151 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1212316154 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :But would you? < 1212316217 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :i surely wont do this :) < 1212316225 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :but i just cant imagine HOW to do this < 1212316299 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Nocta : For instance, . could display a pixel of a certain color. < 1212316308 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :And then go to the next one. < 1212316311 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Or something. < 1212316361 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :hm but couldnt you popup a window with a normal design with brainfuck? ;o < 1212316396 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :i also dont know how you could "leave" the 30.000 bytes array and for example close any other application < 1212316406 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :but its turingcomplete ;o < 1212316509 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :It's just not very good to handle graphics. < 1212316557 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :i know that its not good for _anything_ ;) but i dont even know if its possible oO < 1212316672 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :mom, reboot < 1212316686 0 :Nocta!unknown@unknown.invalid QUIT : < 1212316700 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I'm not your mom. < 1212317072 0 :Nocta!n=nocta@kobz-590e6f1f.pool.einsundeins.de JOIN :#esoteric < 1212317075 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :re ;o < 1212317412 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I'm not your mom, Nocta. < 1212317617 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :not? < 1212317631 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Indeed. < 1212317652 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :and now youre funny? :) < 1212317675 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1212318024 0 :roos!n=123@83.149.19.168 JOIN :#esoteric < 1212318366 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :is there anything like an official brainfuck forum? ;o < 1212318378 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :this is the official brainfuck forum. < 1212318463 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :oO < 1212318520 0 :roos!unknown@unknown.invalid PRIVMSG #esoteric :Hi! is anybody speek russian here ? < 1212318619 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :None that I know of. < 1212318638 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :There's the esolang forum, but I'm not sure if it's still read < 1212318797 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :roos: what would you do with a russian speaker if you got a hold of one? < 1212319156 0 :roos!unknown@unknown.invalid PRIVMSG #esoteric :hold of one - what is it < 1212319350 0 :roos!unknown@unknown.invalid PRIVMSG #esoteric :lament just interesting < 1212319596 0 :roos!unknown@unknown.invalid PART #esoteric :? < 1212319867 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :In Soviet Russia... < 1212320319 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :hm and where's that esolang forum? i just want to read a bit through it, doesnt matter if its still active < 1212320599 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/forum/ < 1212320618 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :But if you really want to read up on brainfuck, read the esowiki article < 1212320824 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :link? :) < 1212323685 0 :Dewi!n=dewi@203-214-85-85.dyn.iinet.net.au JOIN :#esoteric < 1212323967 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :ACTION slaps Slereah_ around a bit with a large trout < 1212324119 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/Brainfuck < 1212324167 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1212324201 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :thx < 1212324552 0 :olsner!unknown@unknown.invalid QUIT :Remote closed the connection < 1212327465 0 :ais523!n=ais523@sm01-fap06.bham.ac.uk JOIN :#esoteric < 1212328043 0 :HanDongSeong!n=uvanta_@119.65.112.90 JOIN :#esoteric < 1212329106 0 :uvanta!n=uvanta_@119.65.112.90 JOIN :#esoteric < 1212329167 0 :HanDongSeong!unknown@unknown.invalid QUIT :Nick collision from services. < 1212329174 0 :uvanta!unknown@unknown.invalid NICK :HanDongSEong < 1212329177 0 :HanDongSEong!unknown@unknown.invalid NICK :HanDongSeong < 1212330171 0 :Slereah!n=hax@ANantes-252-1-61-189.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1212330173 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1212330886 0 :ais523!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1212330892 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1212330926 0 :ais523!n=ais523@sm01-fap06.bham.ac.uk JOIN :#esoteric < 1212331145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :12:27…   Nocta: im just wondering if you could code a gui in brainfuck? ;o <<< PSOX !!!!! < 1212331164 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, that meme again < 1212331171 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I suppose you could do it with ASCII art < 1212331180 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :psox wtf? < 1212331181 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1212331183 0 :Slereah!n=hax@ANantes-252-1-61-189.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1212331190 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :ok you could do it with ascii sure ;) < 1212331191 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and technically speaking there's no reason why you couldn't implement curses in Brainfuck, except that that would be insane < 1212331200 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in soviet russia, the brain fucks you < 1212331204 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't think PSOX as a GUI, though < 1212331226 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/as/has/ < 1212331239 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's trivial to make something for graphics with , and . < 1212331263 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just encode drawing stuff in io some way < 1212331270 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :sure, but thats not the kind if gui i mean < 1212331287 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :generally speaking you can do it by putting filters on the input and output < 1212331292 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's how PSOX works, for instance < 1212331293 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :but actually you cant create a new window with a normal windows-gui with a normal brainfuck implementation < 1212331299 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :because you lack access to the "real" memory < 1212331304 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1212331311 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's because the Windows API is badly designed < 1212331513 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but imagine you have some sort of translator attached to the Brainfuck I/O streams < 1212331527 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so the BF program outputs some code meaning "create a window" < 1212331532 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the translator creates a window for it < 1212331540 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :hm yeah that would be possible < 1212331552 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's the idea behind PSOX, but it never really caught on < 1212331569 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :but on the other hand you could also write an implementation for brainfuck at the processor-memory or something < 1212331589 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you could let it do system calls < 1212331601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :! for interrupts! < 1212331607 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(Huh?) < 1212331610 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :yeah but you cant with do such things with a normal brainfuck implementation < 1212331611 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :;o < 1212331651 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :because the array where brainfuck can play as it wants, is seperated from everything else < 1212331661 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :so it cant effect anything outside the application < 1212331671 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh you < 1212331698 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, imagine that you output some code saying "read the value of memory location 0xabcdef10" < 1212331704 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you get the value in through standard input < 1212331709 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that way it can effect pointers, and so on < 1212331713 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but that needs a translater too < 1212331719 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/translater/translator/ < 1212331721 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :yeah so its not 100% brainfuck :p < 1212331745 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Then just make your Brainfuck output ANSI itty bitty squares < 1212331760 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It will be 100% brainfuck! < 1212331778 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :and also terrible for anything that isn't purely a static image < 1212331848 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What would worry me is the speed of such a process. < 1212331863 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cool speed < 1212331896 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It would probably be better to do a monochrome thingy in Boolfuck < 1212331910 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION finds themself wishing for a diff4 < 1212331911 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's weird how little people talk about speed restraints given by the implementation of a certain language < 1212331920 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or possibly even diff5 < 1212331950 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or how fast formal languages are @ computation, in terms of rewrites < 1212331954 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1212331958 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... maybe I should diff the output of diff itself < 1212331963 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :formal languages... i mean like computational models < 1212331976 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, Brainfuck isn't just a computational model. < 1212332002 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's the difference? < 1212332027 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :they're just *used* differently, says i. < 1212332074 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :computational models generally don't specify file formats, whereas programming languages generally do < 1212332077 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think that's the main difference < 1212332129 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :file formats of source? < 1212332133 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1212332141 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well yeah, i guess that's the main difference. < 1212332142 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :P'' doesn't have a source code file format < 1212332144 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Brainfuck does < 1212332213 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, my problem at the moment: < 1212332221 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there is an old file, which I have changed and someone else has changed < 1212332224 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I want to merge the changes < 1212332230 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so far, that's just a simple diff3 < 1212332263 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :however, my copy of the file someone else has changed also has some of my changes in < 1212332271 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :relative to a fifth version of that same file < 1212332442 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION runs slocate to try to track down just which versions exist and what was based on what < 1212332453 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because all the files involved have the same filename < 1212332456 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but are in different directories < 1212332874 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION finds the 2 smallest relevant diffs and diffs them in their head < 1212333503 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I hope it's right now... < 1212333555 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1212335362 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1212336518 0 :tusho!n=tusho@91.105.124.85 JOIN :#esoteric < 1212336528 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1212336534 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: hello < 1212336535 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :this is my fourth try ... < 1212336543 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :first one that appeared in the channel < 1212336550 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yeah, it's been misbehaving < 1212336553 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :sometimes I try xchat fisrt < 1212336554 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has been filing bugs against gnome-games < 1212336555 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :sometimes epiphany < 1212336560 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :there's some kind of weird order that gets it right < 1212336565 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :epiphany can connect to IRC? < 1212336568 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it involves switching to non-graphical stuff when connecting and similar < 1212336570 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no :p < 1212336581 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but this is my second first-xchat try < 1212336585 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and the first that didnt' crash immediately < 1212336627 0 :Slereah!n=hax@ANantes-252-1-21-153.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1212336635 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: not gonna join #ircnomic _yet_ because i'm not crashing < 1212336643 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so direct any messages to me that belong in there here for a second < 1212336673 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I didn't have any < 1212336673 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: is my perlnomic players.cgi passing? < 1212336680 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's at +3, quorum is 5 < 1212336686 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it was at +3 last night < 1212336687 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::\ < 1212336687 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no opposes or abstains, though < 1212336690 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :any comments? < 1212336700 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1212336708 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ok, it might pass today I guess < 1212336712 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :think I should try epiphany? < 1212336725 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1212336727 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you think your connection can handle it < 1212336737 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: wait, it's not my connection that crashes < 1212336744 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :your computer than < 1212336746 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :my connection is great :P < 1212336747 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/than/then/ < 1212336755 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: actually, this computer _never_ crashes with windows < 1212336770 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :the hardware combination is from hell, I think, because linux acts like this with it < 1212336775 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :strange < 1212336789 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I would use windows, except, you know, I'd have to use windows < 1212336796 0 :Slereah!n=hax@ANantes-252-1-21-153.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1212336799 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it can be not that bad < 1212336811 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :on my Windows desktop at home, I've got much of GNU installed < 1212336818 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I use bash and ls, etc < 1212336825 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one warning, though, use copy rather than cp < 1212336831 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it can be not that bad! < 1212336836 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :funnest sentence ever < 1212336840 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it looks like a typo, but it isn't < 1212336872 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: of course, I cygwin'd it up < 1212336872 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's just nowhere near as comfortable for me < 1212336872 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :i've spent whole days fiddling with it to get it nice.. still not a fan. < 1212336872 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because cp is much slower because it has to go via Windows's file-handling stuff, whereas copy can do it directly < 1212336887 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh, and I like systems that can fork < 1212336915 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for a while i thought cp was for child porn there. < 1212336921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :was a fairly weird sentence < 1212336936 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :hahahah < 1212336961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(read NO FUCKING CP on a forum about 15 minutes ago) < 1212336979 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so child porn not involving fucking is a-ok? < 1212336985 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1212336999 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :reminds me of a recent daily wtf < 1212336999 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can't imagine "fucking" having any other meaning there. < 1212337005 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :'an unhealthy amount of child porn' < 1212337050 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should leave now... well i've been trying to leave for 1.5 hours < 1212337056 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but it's not all that easy leaving the computer < 1212337077 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :especially the internet with its chats and endless sources of random content < 1212337086 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: STAY. < 1212337112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :btw, oklotalk passed with the best possible grade < 1212337124 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: what did you enter it into? < 1212337125 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :hahahahahaha what < 1212337127 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :that's not possible < 1212337131 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: high school thingy he had to do. < 1212337135 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk--, to be precise < 1212337138 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :high school graduation project < 1212337139 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and why not? < 1212337144 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: because it's crazy!!! < 1212337146 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1212337151 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1212337151 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: now, give us the source < 1212337154 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :you promised :3 < 1212337185 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :even if had been a programming language project, it would've been a good one < 1212337194 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but it was a fairly open project, no one makes anything nearly that complicated < 1212337208 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not that it's that complicated. it's just most people make... crap < 1212337222 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1212337233 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :very obscure use of pronouns there. < 1212337246 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I want antinouns < 1212337248 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tusho: i promised nothing :) < 1212337254 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: but you SAID :( < 1212337261 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :I HAVE NEVER SAID ANYTHING. < 1212337263 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :EVER. < 1212337267 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ok good point < 1212337273 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm a DEATHMUTE < 1212337312 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :DEATHMUTE < 1212337357 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know, it's a bad pun, try not to laugh :| ...oh, wait, try to laugh < 1212337374 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ha ah ah < 1212337378 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ahhhh < 1212337380 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :wait what < 1212337444 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay i leave *now*. < 1212337445 0 :oklopol!unknown@unknown.invalid QUIT :"( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )" < 1212337454 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :fuck. < 1212339797 0 :jix!n=jix@dyndsl-080-228-181-149.ewe-ip-backbone.de JOIN :#esoteric < 1212341067 0 :ais523!unknown@unknown.invalid QUIT :"(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"" < 1212342777 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :what language is this? in ais523's quitmessage? < 1212342796 0 :uvanta!n=uvanta_@119.65.126.51 JOIN :#esoteric < 1212342838 0 :handongseong_!n=uvanta_@119.65.112.90 JOIN :#esoteric < 1212343195 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1212343551 0 :HanDongSeong!unknown@unknown.invalid QUIT :Nick collision from services. < 1212343557 0 :handongseong_!unknown@unknown.invalid NICK :HanDongSeong < 1212343950 0 :uvanta!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1212345322 0 :atsampson!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1212345337 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric : what language is this? in ais523's quitmessage? < 1212345338 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :that is intercal < 1212345409 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1212345416 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Nocta: ais523 maintains c-intercal < 1212345484 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :its designed to be hard to work with? :o < 1212345526 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Nocta: do you expect #esoteric to consist of nice fluffy languages? < 1212345550 0 :atsampson!n=ats@7hw.poik.net JOIN :#esoteric < 1212345740 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :not really ;p < 1212345836 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :mh some langauges are designed to be small, others to be hard, and others to look like a piece of shakespear oO < 1212345854 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :piet looks interesting < 1212346407 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Nocta: yes piet is fun < 1212346643 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Small languages are hard as a side effect. < 1212346661 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :thats true, but they are not designed to be hard ;) < 1212346665 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And most esolangs aren't that big. < 1212346708 0 :HanDongSeong!unknown@unknown.invalid PRIVMSG #esoteric :You often need a small compiler to write something actually < 1212346738 0 :HanDongSeong!unknown@unknown.invalid PRIVMSG #esoteric :not compiler exactly... code generator maybe? < 1212346805 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1212346830 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1212347337 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1212347785 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :wot? < 1212347795 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What do you mean, mister dong < 1212347857 0 :HanDongSeong!unknown@unknown.invalid PRIVMSG #esoteric :err < 1212347859 0 :HanDongSeong!unknown@unknown.invalid PRIVMSG #esoteric :for example < 1212347884 0 :HanDongSeong!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir there wrote a short python script to make his 99 bottles code in Wheel < 1212347900 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh, you mean a translator to actually write programs? < 1212347911 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: yeah < 1212347917 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :like, writing in some languages is a pain < 1212347920 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so you write a program to write it < 1212347922 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Indeed. < 1212347923 0 :HanDongSeong!unknown@unknown.invalid PRIVMSG #esoteric :yeah, if you call it a translator < 1212347924 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :in something less painful < 1212347932 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :HanDongSeong: most of the time the program it generates is hardcoded into it < 1212347938 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so it's just a generator < 1212347969 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I tried to do that once < 1212347979 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :but it was even more of a pain in the ass to write it < 1212347986 0 :HanDongSeong!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1212347989 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm not a very good programmer. < 1212348015 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: hey, at least you can program < 1212348019 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's a bit leap from none->some < 1212348031 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: what were you trying to generate? < 1212348048 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Something to convert pseudo code into Lazy Bird. < 1212348068 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Like translating some of the most common operators, and some of the loops and conditional < 1212348070 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Cool. What kinda pseudo code? < 1212348112 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, so far my idea was to just replace a bunch of operator with the appropriate combinators < 1212348123 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I didn't really have any idea to implement the loops and such < 1212348123 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: like, + and stuff? < 1212348128 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so you could do `+22 or whatever < 1212348132 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, not + per say < 1212348140 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Because + is pretty simple in lazy bird < 1212348151 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But = is long like a longcat. < 1212348161 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Okay. So couldn't you have just: < 1212348164 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :- parsed the lazy bird < 1212348171 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :- go through and replace = with the right code < 1212348177 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :- then converted it back into code? < 1212348189 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: you could steal most of the code from lazy bird itself < 1212348200 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, technically, I could just do a replace = by the combinator < 1212348209 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But the loops where a big problem < 1212348226 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: I guess so. < 1212348227 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Even with el señor Turingo combinatorre. < 1212348247 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Oh wells! < 1212348287 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Plus, I am currently (not) working on an even awesomer language < 1212348304 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: COOL WHAT IS IT < 1212348317 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It is called LIMP :o < 1212348335 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :A mish mash of the very small functional languages < 1212348342 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :To make them somehow usable together < 1212348351 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: cool < 1212348355 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: put some haskell in it < 1212348355 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::3 < 1212348356 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(It's actually lambda-iota-mu-pi) < 1212348364 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: hmm < 1212348367 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :drop iota < 1212348371 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and put in some lisp and haskell < 1212348375 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :then i'll buttsex you < 1212348384 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, it is call limp because it's also based on lisp < 1212348390 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: OK then, drop iota and add haskell < 1212348394 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But it also has mu recursive functions < 1212348397 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :iota is just booring < 1212348403 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :IN SUMMARY < 1212348408 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The iota is not for the iota language < 1212348410 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :o < 1212348412 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :wut is it < 1212348415 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It is to sound like Lisp < 1212348423 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But like, the original Lisp < 1212348430 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: hokay. well just add some haskell in < 1212348431 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The six-function Lisp < 1212348441 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What does Haskell have moar? < 1212348447 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Haskell has tons moar. < 1212348450 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :It's nothing like lisp < 1212348452 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :It is le fun < 1212348458 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, I sort of want to keep it esoteric. < 1212348465 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But somehow usable < 1212348480 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Yes, but haskell is basically eso < 1212348480 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1212348503 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It would be mostly lambda calculus - µ recursive functions - original Lisp < 1212348517 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Plus I'm trying to work pi calculus in, since I have a pi left. < 1212348518 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Rite. Add some ha! Skull. < 1212348530 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Oh god. Pi calculus + lisp + haskell = I LUV U < 1212348542 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :µ would provide numbers, lisp would provide lists < 1212348555 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And lambdas, well, general functions I suppose. < 1212348555 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: lambda would provide functions < 1212348561 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :pi would provide AWESOME MESSAGES AND ACTORS AND STUFF < 1212348573 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and haskell would provide LAZY MONADIC JOY < 1212348585 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking of treating I/O like one of the actor fellow. < 1212348591 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Oooh, now that's clever. < 1212348596 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :and have a channel always open for it. < 1212348596 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I/O is just an opaque actor. < 1212348613 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: OK IDEA. < 1212348616 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Unify actors and monads. < 1212348622 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Ô.Ô < 1212348652 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :For instance, if x is the channel, a cat would be (x(a).x.0)! or something < 1212348681 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: You could have it that actors are just monadic actions < 1212348681 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But I still have no fucking idea what monads are. < 1212348687 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but the monadic actions have send/recv stuff < 1212348694 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: ok, do you get category theory, kinda. < 1212348698 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I mean, sorta maybe. < 1212348703 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1212348711 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: ok fine. Do you get haskell types? < 1212348718 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :a -> b -> c is a -> (b -> c) < 1212348725 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, I know type theory. < 1212348728 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and it's a function, from a to (a function from b to c) < 1212348729 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The Mathematica one. < 1212348734 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Right, of course. But do you understand that? < 1212348750 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, you're just describing priority. < 1212348758 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: No, not really. < 1212348760 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I was just explaining the syntax. < 1212348774 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: OK, and do you get what I mean when I say (m a)? It means: the type 'm', given the type argument 'a' < 1212348783 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :if we don't qualify 'a' or 'm' anywhere else, they can be anything. < 1212348787 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Got that? < 1212348797 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :And finally, a :: b means 'a is of type b' < 1212348815 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Once you've got all that, i'll explain sum of dat monadz < 1212348818 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Do you have an example of (m a) < 1212348823 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: yes < 1212348826 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(List Integer) < 1212348832 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :List is a type taking one argument < 1212348836 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and we give it the argument Integer < 1212348839 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1212348842 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: BUT < 1212348843 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :'kay < 1212348843 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :We could do < 1212348844 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(List a) < 1212348845 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :BUTT < 1212348848 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :meaning 'I don't care what we get' < 1212348850 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :as long as it's a list < 1212348853 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :with any 'a' < 1212348867 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Hokay. Ready for sum HOT MONAD ON MONAD ACKTION < 1212348868 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :? < 1212348902 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I had this conversation many time before < 1212348908 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It never fared very well :o < 1212348912 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But you can try < 1212348919 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Okay. So now that we've got that.. < 1212348929 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: we're going to explain monads, WITHOUT ANY DUMB FUCKING ANALOGIES < 1212348933 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(i'm talking to YOU, #haskell) < 1212348939 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: okay, so. < 1212348948 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Actually, I never asked #haskell < 1212348948 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: There are some types that classify as MONADS. < 1212348959 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Sure, but WHAT ARE MONADS < 1212348961 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yeah, just, shut up and say 'ok' when you've digested what i've said :P < 1212348966 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Shush < 1212348967 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1212348970 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :All these type < 1212348970 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :s < 1212348973 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :have ONE argument < 1212348975 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Like List does. < 1212348978 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: got that? < 1212348992 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't everything in Haskell have one argument? < 1212349001 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Through hot curry and kebabs. < 1212349005 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: We're talking about types here. < 1212349017 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(List Integer) <-- List is a type. Integer is a type. (List Integer) is a type. < 1212349020 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :List is a type taking one argument. < 1212349026 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: However, Integer takes no arguments. < 1212349029 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :got that/ < 1212349034 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :'kay < 1212349052 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Right. So. < 1212349060 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Every monad has some functions on it. < 1212349077 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :That is, a monad 'm' is a type taking one argument that has some functions that obey some laws. < 1212349094 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: So 'm' is our monad, right? Got that? < 1212349104 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Okay. < 1212349119 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Hokay. So. Here's the first function. < 1212349122 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :return :: a -> m a < 1212349142 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: So, return takes a value of type 'a', and gives you an 'm a'. < 1212349146 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :'a' can be anything, 'm' is our monad. < 1212349154 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Got that? I'll tell you _what_ these do later. < 1212349170 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1212349181 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: OK. Now comes the big, important function. < 1212349186 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind :: m a -> (a -> m b) -> m b < 1212349192 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: WHOOOOOAAA THAT'S A SCARY FUCKING TYPE. < 1212349199 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :The clue is in the name, Slereah. < 1212349204 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Basically. < 1212349213 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: You know 'return'? Wrong name for it. < 1212349216 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :It should be called 'wrap'. < 1212349218 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :wrap :: a -> m a < 1212349223 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: We WRAP the value into the monad. OK? < 1212349228 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Okay. < 1212349229 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Now, 'bind' lets us unwrap them. < 1212349231 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(Calm down!) < 1212349234 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind :: m a -> (a -> m b) -> m b < 1212349240 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: See that 'a'? That 'a' comes from the 'm a'. < 1212349254 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: BUT, we're not allowed to escape monads. So we have to get it as a function argument, which MUST stay inside the monad. < 1212349264 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :So we unwrap it, do our stuff, and give back a value still in the monad. < 1212349266 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Then bind gives us that value. < 1212349273 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Got that? < 1212349310 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: i'm about to explain the laws that define exactly how they should behave. < 1212349313 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: ready for that? < 1212349320 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Sooo... bind will take some monad infested argument, and return (a -> m b) -> m b? < 1212349337 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Which will then give us more g^Hmonads? < 1212349342 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Well, kinda, but that's not how you should think about it. < 1212349344 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Bind takes two arguments. < 1212349360 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :A monad infested one, a function that takes a _non-infested_ version of the first argument, and returns an infested value, and then returns that value. < 1212349367 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :So it unwraps the first value to give it to the function. < 1212349381 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: got that? < 1212349413 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1212349422 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(I'm lying to move along faster) < 1212349422 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Okay. Now here come the MONAD LAWZ < 1212349438 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :wrap a `bind` f = f a < 1212349448 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Since 'wrap' wraps something, then 'bind' unwraps it and gives it to its second argument, < 1212349452 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :that obviously holds true. Right? < 1212349488 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Is that ((wrap a) bind) f? < 1212349493 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: No. < 1212349499 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :a `f` b = f a b < 1212349505 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :It's just more convenient this way. < 1212349506 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :It's: < 1212349507 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind (wrap a) f < 1212349534 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Rite? < 1212349535 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :``bind`wrap a f? < 1212349552 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: In Haskell land we are syntaxfags. < 1212349563 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Okay final law < 1212349564 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :You functional weenies. < 1212349585 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind (bind a f) g = bind a (\x -> bind (f x) g) < 1212349595 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: that one's a bit hard to understand, but basically it means that 'bind' is associative. < 1212349618 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Now, what is an actual example of a monad? < 1212349619 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I also hate you Haskell people for using \ < 1212349626 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: WOULD YOU BELIEVE IT. List is a monad! < 1212349628 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :^ is a much better lambda < 1212349636 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: My list monad, would you like to see it? < 1212349640 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I don't believe it! < 1212349645 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1212349650 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Hokay. So for list: < 1212349652 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :wrap a = [a] < 1212349660 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: That's pretty simple, right? We're _wrapping_ a value into a list. < 1212349664 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind :: a -> List a < 1212349667 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1212349670 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Yep, List is an okay 'm' so far. < 1212349675 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :err < 1212349676 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :*wrap < 1212349679 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: And nao for bynd. < 1212349687 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind xs f = concat (map f xs) < 1212349692 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: To explain that: < 1212349696 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :concat :: List (List a) -> List a < 1212349703 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: i.e. (concat [[1,2],[3,4]] -> [1,2,3,4]) < 1212349709 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: And .. you know map. < 1212349712 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I know concatenation. < 1212349714 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Rite. < 1212349716 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :So. < 1212349717 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But not so much map < 1212349721 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Oh. < 1212349727 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Also what the fuck is xs < 1212349730 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :map f [x,y,z] -> [f x,f y, f z] < 1212349731 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: OK? < 1212349740 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and 'xs' is just a common name for a list argument. < 1212349745 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: So, let's examine bind's type again < 1212349749 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind :: m a -> (a -> m b) -> m b < 1212349752 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Well, since we're doing lists: < 1212349757 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind :: List a -> (a -> List b) -> List b < 1212349768 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: So the first argument we get is a list. < 1212349769 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :OK. < 1212349776 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :And the second one takes an element of that list, and returns another list. < 1212349787 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: So, since we've mapped it, we get (List (List b)) < 1212349795 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :So we concat it, get (List b), and voila! We have our bind return value. < 1212349799 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So what does the bind return in this case? < 1212349803 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The same list? < 1212349806 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: the concatenation < 1212349810 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: An example: < 1212349818 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind [1,2,3] (\x -> [x,1]) < 1212349820 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :turns into < 1212349823 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :[1,1,2,1,3,1] < 1212349840 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Now, the monad laws. < 1212349852 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind (wrap a) f = f a < 1212349859 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(wrap a) is [a] < 1212349860 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so < 1212349866 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind [1] (\x -> ...) < 1212349870 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Now, bind maps over it. < 1212349871 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :So < 1212349876 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :map (\x -> ...) [1] < 1212349884 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Then concats it... < 1212349887 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :concat (map (\x -> ...) [1]) < 1212349894 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Blargh, I lost you didn't I? < 1212349934 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, wouldn't f a be (\x -> [x,1]) [1,2,3], which would be [[1,2,3]]? < 1212349937 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or something < 1212349958 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: No, because of the map < 1212349964 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :map :: (a -> b) -> List a -> List b < 1212349971 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: So if we have (a -> List b) < 1212349979 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :map :: (a -> List b) -> List a -> List (List b) < 1212349984 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :which is *almost* binds type < 1212349988 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Move the arguments around: < 1212349996 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :map :: List a -> (a -> List b) -> List (List b) < 1212350000 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Success! We just have one too many levels of list. < 1212350002 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :So concat and: < 1212350005 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :map :: List a -> (a -> List b) -> List b < 1212350006 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :aka < 1212350008 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind :: List a -> (a -> List b) -> List b < 1212350012 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :aka < 1212350016 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind :: m a -> (a -> m b) -> m b < 1212350074 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: am i rite < 1212350098 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, I was talking to my mother. < 1212350112 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :My problem is < 1212350117 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :In bind (wrap a) f = f a < 1212350130 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The function in bind is supposed to be irrelevant. < 1212350130 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Wait < 1212350133 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :No < 1212350138 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind (wrap a) f = f a < 1212350140 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :look at the wrap < 1212350142 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :now < 1212350144 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :let's expand < 1212350147 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind [a] f = f a < 1212350149 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :let's expand < 1212350153 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :concat (map f [a]) = f a < 1212350156 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Do you see now? < 1212350232 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :concat [f a] = fa? < 1212350245 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: No. < 1212350250 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :concat [[f a]] = [f a] < 1212350256 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Remember, f returns a List < 1212350257 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but we map < 1212350259 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so we get a List List < 1212350262 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so we concat to get a List < 1212350273 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But map f [x,y,z] -> [f x,f y, f z] :o < 1212350283 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Wait < 1212350288 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Yes.. But f returns a list. < 1212350293 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What is f? < 1212350298 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: f is (a -> List b) < 1212350302 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :where 'a' is the type of elements in the list < 1212350302 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Isn't it supposed to be a random function? < 1212350310 0 :oklopol!i=oko@dsl-tkubrasgw1-fe30fa00-66.dhcp.inet.fi JOIN :#esoteric < 1212350311 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but it must be of a specific type! < 1212350315 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bind :: m a -> (a -> m b) -> m b < 1212350318 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :f is the second argument < 1212350320 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :m is List < 1212350336 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Man I hate Haskell's syntax < 1212350350 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Somehow I doubt your problem is with the syntax here. < 1212350363 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :*only with < 1212350391 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Could you give the I/O monad thingy? < 1212350441 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: its internal to the haskell impl < 1212350446 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :obviously, since it actually does the io < 1212350498 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Also, what would actually add a monad in my awesome thing that I won't actually ever implement? < 1212350531 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cool thing < 1212350539 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1212350791 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(Hulo?) < 1212350831 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: I have to go now for about 30 mins, soon. < 1212350832 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Sorryl. < 1212350843 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Bye. < 1212350866 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Sorry boy, but me and monads just don't mix :o < 1212350922 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Keep tryin'. < 1212350924 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Ask #haskell. < 1212351202 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What I'd like to know is, why do functional people have so much against side effects? < 1212351229 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I can understand the concern for an esoteric language, because it's fun to make a language entirely of one paradigm < 1212351235 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But why Haskell? < 1212351246 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: it helps enforce correctness < 1212351249 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and helps reasoning about programming < 1212351253 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and letsy ou do lazy evaluation < 1212351301 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Isn't "enforcing correctness" just another term for "being unpractical"? < 1212351329 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: no. < 1212351336 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :It means that if your program compiles, it probably works < 1212351339 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bye for 30mins < 1212351417 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :'kay < 1212351429 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Disregard that. Back for a few minutes. < 1212351464 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Heh < 1212351479 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So, what would add monad for the limp machine 9000 < 1212351489 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(Disregard the 9000, it's a bad habit) < 1212351538 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: define 'add monad' < 1212351553 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: My idea was - an actor is a monad. < 1212351559 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :So, your IO actor, is an actor, but it's also a monad. < 1212351563 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Or .. something. < 1212351601 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But how would this work out? < 1212351633 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: It's your language, you figure it out. < 1212351636 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :All I know is IT'D BE AWESOME. < 1212351648 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But I don't want no filthy monads in it :o < 1212351667 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And since I barely know what it is, it would be hard to work it in some actor < 1212351677 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What the fuck is a bind for an actor? < 1212351692 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The user is one! And I don't want to be bound! < 1212351699 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :At least not on the first date. < 1212351717 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Well, no. < 1212351722 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I mean that an actor is a monadic value. < 1212351725 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :actor = m a < 1212351755 0 :oklofok!i=oko@dsl-tkubrasgw1-fe30fa00-66.dhcp.inet.fi JOIN :#esoteric < 1212351764 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :My idea was mainly to do something that's vaguely usable. < 1212351774 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: this could be usable! < 1212351778 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :You just write your actors as monadic stuff. < 1212351787 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1212351813 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Doing numbers in pure Lisp is probably not very easy, and doing lists in µ is a fucking hassle. < 1212351825 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And lambda calculus is just painfully long. < 1212351833 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But what if the three were combined! :o < 1212351842 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :"painfully long", that's what SHE said < 1212351844 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What if, my friend! < 1212351870 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I also want to do some sort of library-like feature. < 1212351881 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Like you could load a list of pre-existing functions. < 1212351901 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Instead of redefining addition for every program, you could just load some arithmetic module < 1212351968 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: monads and side-effects are not very related, by the way. < 1212351973 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm pondering on what to use for compatibility between functions though. < 1212351992 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :a monad is just a monad, you can have one in any decent language < 1212352001 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Like what would happen if I try successor on something that isn't a number < 1212352025 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric : Like what would happen if I try successor on something that isn't a number < 1212352028 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it should success. < 1212352033 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :lament : isn't the I/O monad supposed to prevent side effects? < 1212352039 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: the IO monad, yes < 1212352039 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :*rimshot* < 1212352053 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: no, the IO monad is supposed to allow side effects. < 1212352057 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: the IO monad is what we refer to as a "clever trick", though < 1212352059 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Haskell would be pretty useless otherwise < 1212352092 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm not a big fan of types, but the idea of converting things into lambda calculus and lambda calculus in lists and numbers does not appeal much to me < 1212352122 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :types are fun < 1212352134 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Mainly because I'm lazy and it would be retarded to use those functions on something that isn't the right argument < 1212352219 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :in a context of non-esoteric languages, types are a good way of documenting your code. < 1212352230 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So the basic functions would be something like succ, µ, cons, car, cdr, cond, atom, eq. < 1212352234 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :often you know what a function does just by looking at its signature. < 1212352247 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :With the constants nil, true, false and 0. < 1212352259 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Though true and false could also just be 0 and >0 < 1212352281 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :brb30ms < 1212352289 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: and 'spawn' < 1212352290 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and 'send' < 1212352297 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(and'wrap'and'bind') < 1212352306 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure the projection function would be of much use if I have no restriction on the function definition < 1212352313 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What would that be? < 1212352397 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(Also lambdas and some combinators from the good old lazy bird set) < 1212352458 0 :ihope!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1212352538 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1212352558 0 :calamari!n=calamari@ip24-255-58-177.tc.ph.cox.net JOIN :#esoteric < 1212352581 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ihope, oerjan and calamari all joining at the exact same time < 1212352588 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Uh oh. < 1212352589 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1212352593 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ello. < 1212352594 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :They're coming after me! < 1212352597 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1212352599 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :To fill me with monads D: < 1212352604 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :we know what you're up to < 1212352613 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION eats Slereah's upper eyebrow < 1212352707 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION administers monads ocularly < 1212352738 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :BRAINS.. WITH MONADS < 1212352750 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's going to be a Clockwork Orange moment, isn't it? < 1212353050 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yep. < 1212353085 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Only with more monads. < 1212353120 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :"I could see a bit of the ol' functional language, when suddenly, I felt monads" < 1212353425 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1212354028 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :mh how would you display numbers with more than one digit in the best way in brainfuck? ;o < 1212354096 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i vaguely recall PEBBLE has an i2a algorithm < 1212354120 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Nocta : You use some sort of dividable - substraction algorithm? < 1212354160 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :i thought about doing something like this < 1212354183 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(PEBBLE-generated bf probably is not optimal in size though) < 1212354201 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :since it is macro-based, so will have repetitions < 1212354234 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :;o < 1212354312 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(vague recall as in i think i helped pikhq debug it) < 1212354381 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or at least the underlying division macro < 1212354473 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1212354487 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1212355183 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :i dont really know what you mean < 1212355291 0 :ihope!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1212355303 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :PEBBLE is pikhq's macro language which compiles to bf among others < 1212355344 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Is it what they used on the Flintstones? < 1212355346 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there is a macro for converting a number to digits < 1212355347 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :hm so you think i should use this as help? < 1212355374 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you might < 1212355414 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :hm i could write the numbers from 0-9 in the cells from 0-9 < 1212355426 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also, http://esoteric.voxelperfect.net/wiki/Brainfuck_algorithms < 1212355432 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it has divmod at least < 1212355450 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :and then split the number in 1, 10, 100 and 1000 steps < 1212355466 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :divmod = %? < 1212355471 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :modulo < 1212355486 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and % simultaneously < 1212355492 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er < 1212355494 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :/ and % simultaneously < 1212355499 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :ah ok < 1212355506 0 :Judofyr_!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1212355526 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :but shouldnt be too hard to make it in bf without macros < 1212355527 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :very useful for this kind of stuff < 1212355533 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1212355549 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i mean that wiki page has a divmod < 1212355568 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :yesterday i wrote the >= operator :o < 1212355569 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1212355753 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1212355771 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, divmod? a python framework iirc < 1212355964 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1212356185 0 :Slereah!n=hax@ANantes-252-1-21-153.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1212356259 0 :RedDak!n=dak@host44-85-dynamic.10-87-r.retail.telecomitalia.it JOIN :#esoteric < 1212356283 0 :Nocta!unknown@unknown.invalid PRIVMSG #esoteric :python ftw < 1212359376 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Lol back < 1212359437 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric : oerjan, divmod? a python framework iirc < 1212359449 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster knows python frameworks, but not mathematical operators < 1212359488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, yes I know what div and mod are < 1212359489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it was a joke < 1212359491 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1212359496 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But then again when is divmod used outside of computarrs?* < 1212359519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway doesn't the IDIV instruction in x86 return both div and mod results? < 1212359519 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Never. < 1212359524 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in different registers < 1212359528 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it was a pretty lame joke but that's to be expected I guess < 1212359528 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and yeah. < 1212359923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1212360507 0 :Iskr!unknown@unknown.invalid QUIT :"Leaving" < 1212362487 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1212362784 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1212363266 0 :HanDongSeong!unknown@unknown.invalid QUIT :"It's Monday morning here in South Korea. I'm going to start new week now" < 1212364629 0 :tusho!unknown@unknown.invalid NICK :ehird` < 1212364644 0 :ehird`!unknown@unknown.invalid NICK :tusho < 1212364696 0 :jix!unknown@unknown.invalid QUIT :"This computer has gone to sleep"