< 1207440337 0 :atsampso1!unknown@unknown.invalid NICK :atsampson < 1207440758 0 :Judofyr!unknown@unknown.invalid QUIT : < 1207441471 0 :Tritonio_!unknown@unknown.invalid QUIT :Remote closed the connection < 1207442674 0 :Tritonio_!n=Tritonio@150.140.226.19 JOIN :#esoteric < 1207442917 0 :jix!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1207443215 0 :carl!n=carl@216.Red-83-45-255.dynamicIP.rima-tde.net JOIN :#esoteric < 1207444118 0 :tola_!unknown@unknown.invalid QUIT : < 1207444399 0 :tola_!n=tola@82-36-97-250.cable.ubr01.king.blueyonder.co.uk JOIN :#esoteric < 1207444965 0 :carl!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1207445534 0 :tola_!unknown@unknown.invalid QUIT : < 1207447804 0 :ehird_!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1207447804 0 :ehird!unknown@unknown.invalid QUIT : < 1207449845 0 :Overand_!i=overand@dissociative.net JOIN :#esoteric < 1207449917 0 :Overand!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207449924 0 :Overand_!unknown@unknown.invalid NICK :Overand < 1207451697 0 :adu!n=andrew@pool-71-178-14-80.washdc.fios.verizon.net JOIN :#esoteric < 1207451957 0 :GreaseMonkey!n=saru@122-57-226-168.jetstream.xtra.co.nz JOIN :#esoteric < 1207452555 0 :adu!unknown@unknown.invalid PART #esoteric :? < 1207456245 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :bed-time < 1207457348 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is curious: how many people here went to their high school prom? < 1207457548 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i didn't. < 1207457580 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is going to his senior prom. w00ts. < 1207457595 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(and went to his junior prom) < 1207458363 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :LOOOOSER < 1207458376 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: No, a loser goes to prom without a date. < 1207458389 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I had a date the first time, and I have a girlfriend now. < 1207459112 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm back < 1207459642 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I went to my senior prom. I was glad I went at least once, I guess. < 1207460176 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Congrats: you're ahead of the average computer geek. < 1207460274 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION notes that this year, prom ought to be cheaper, by merit of *owning* a tux. . . < 1207460332 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I went with a friend, but I did have a date (and she was pretty cute, too.) < 1207460456 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :overall, I'd say it was a fun experience, but not really my style. I'm not big on parties. < 1207461292 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION went to his high school prom < 1207461300 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Without a date :( < 1207461340 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I did ask a girl if she would go to the prom with me. She said something about how she wasn't sure if she was going :( < 1207461345 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :She did end up going though < 1207461398 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ouch, yeah that's something like what happened with the first girl I asked. < 1207461412 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :but, nothing ventured, nothing gained < 1207461436 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I kept wondering if I should keep waiting for her to get back to me < 1207461961 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The girl I asked this year was apparently almost ready to ask *me*. XD < 1207464611 0 :Sgeo!unknown@unknown.invalid QUIT :"Ex-Chat" < 1207464987 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :welcome to #esoteric-i-had-more-sex-in-high-school-than-you! < 1207465045 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :lament: Some people don't have a "alright, I'll date, wait a bit fuck, break up, repeat" attitude with relationships. < 1207465088 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: some people commit suicide due to unrequited love < 1207465098 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I, however, agree with lament in the sense that this is bordering on becoming a pissing contest. As they say on somethingawful, "MY GIRLFRIEND" < 1207465137 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: It had been done with for almost an hour when he brought it back up. :p < 1207465144 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :if you have a happy relationship, good for you. Not everyone needs to hear about it. < 1207465156 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: That's what she said. < 1207465167 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Grrr. < 1207465171 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION takes a bow. < 1207465182 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now you just reminded me of my Japanese teacher saying that in Japanese. < 1207465205 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Needless to say, nobody was expecting it. < 1207465251 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: BTW, it's not so much a pissing contest as it is a dick-measuring contest. :p < 1207465287 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :an inability to interpret straightforward metaphor and common figures of speech is not a virtue < 1207465323 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: that's what she said. < 1207465332 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :lament: ... in bed. < 1207465349 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Anyways, this has now degenerated into a series of cliches. < 1207465351 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :... in the type system < 1207465358 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1207465366 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :A type system based on common cliches? < 1207465424 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :cliches are memetic macros, serving to obviate active thought. < 1207465428 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :discuss. < 1207465441 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Kanojou ha sou itta. < 1207465446 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(that's what she said.) < 1207465481 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :palpable irony < 1207465482 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: TAKE OFF EVERY ZIG. MOVE ZIG. < 1207465483 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Anyways, yes, that much is obvious. < 1207465499 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :PLEASE TAKE OFF EVERY ZIG ... IN BED < 1207465508 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In fact, arguably, it is exactly the same in purpose, if not in form, as extensive psuedointellectualism. < 1207465522 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(as most commonly seen in Basketweaving Monthly. ;p) < 1207465545 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :what's interesting, though, is what seems to be an inherent tendency toward cliched behavior and thought patterns < 1207465579 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :if this is the case, what drives the impetus for novel behavior, and what can we draw from this as a whole? < 1207465580 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's almost a herd mentality. < 1207465619 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I would argue that it *is* a herd mentality. Humans are significantly more instinctual creatures than we like to think. < 1207465644 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The impetus for novel behavior is, surely, a moderately rare, and therefore not terribly succesful, evolutionary strategy. < 1207465667 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sure, we see the rare genius: eccentric and brilliant. < 1207465672 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :How many of them breed? < 1207465706 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(answer: not as many as those who follow the herding instincts of most of homo) < 1207465723 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Is meme-forging a trait that exists in all humans, and if so does this tendency come in many weights? Is there a genetic predisposition, a shared neurological background? < 1207465736 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :geniuses aren't a race, though. Genius is not genetic. < 1207465740 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or perhaps it's culturally based? < 1207465744 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so it doesn't matter if they breed or not < 1207465745 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :lament: It could be a rare genetic mutation. < 1207465756 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :their children are normal. < 1207465771 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or it could be a damned rare application of persperation. < 1207465785 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Is it even important that these individuals reproduce? Perhaps the ideas they generate, memetic children so to speak, represent as great a degree of success as biological reproduction? < 1207465786 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I don't think "genius" is well-defined enough that it can be associated with any particular genetic factor, upbringing, etc, etc. < 1207465801 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which would indicate that the lack of novel behavior is more of a cultural detail. < 1207465812 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :"exceptionally talented people" is a pretty well-defined group < 1207465824 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :A tendency that requires a specific environment to blossom? < 1207465835 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: Perhaps. < 1207465837 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you tend to notice when somebody's exceptionally talented (so they become world-class at some endeavour) < 1207466071 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, good night everyone < 1207466085 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1207468309 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1207468466 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.com/m5c392293 <<< rational class with just multiplication implemented in oklotalk-- < 1207468486 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where oklotalk-- is the name for oklotalk with this retarded syntax < 1207468520 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if anyone is at all interested, i would, naturally, love to explain < 1207468564 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :multiplies 4/9 by 3/2 and simplifies to 2/3 < 1207468621 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm surprised i'm actually capable of keeping on a project for over a day when i have a deadline < 1207468634 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i do like the results < 1207468639 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now kebab -> < 1207468799 0 :clog!unknown@unknown.invalid QUIT :ended < 1207468800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1207472356 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1207472573 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1207476140 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p441122612.txt pretty much complete < 1207476159 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although i'm sure gcd fails on negatives, since i don't even know what it should return :P < 1207476168 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to make the numbers work that is < 1207476196 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps there is a simple way, haven't given any thought to it, because this is just a small example of making new types in oklotalk < 1207476243 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why is everyone so quiet now that THERE IS SOMETHING INTERESTING GOING ON FOR ONCE! :D < 1207476255 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know, i know, no one cares < 1207476264 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should eat something < 1207476271 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the fucking kebab place was closed :< < 1207476782 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Maybe you should then use a normal kebab place instead of a... uh, procreation-oriented one. < 1207476871 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :BUG ... SO ... STUPID ... < 1207476876 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :CAN'T ... BREATHE ... < 1207476884 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well fucking kebab was really en euphemism for hot gay love. < 1207476907 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Let's say you have a byte, arranged something like this: aaaaabbb, and you wanted to get just the 'a' part, multiplied by 4. < 1207476918 0 :ais523!n=ais523@147.188.254.202 JOIN :#esoteric < 1207476920 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yarr < 1207476928 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you fibble a few rotations < 1207476934 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If you're an idiot, like Gregor is, you would simply shift it right by 1, leaving some random-arsed part of the 'b' part still in tact BECAUSE YOU'D BE A DUMBFUCK < 1207476937 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or do an andance < 1207476944 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207476953 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha lol, let's all point at GregorR and laugh < 1207476955 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So, uh, JSMIPS works much better now >_> < 1207476973 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION would never make such a dumb mistake < 1207476979 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And it is beyond shocking how much actually worked with that bug in place. < 1207476995 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :btw. spent 3 hours yesterday just to do a add->try_add fix. < 1207477006 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, changed the variable add to try_add. < 1207477023 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :In what? < 1207477027 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my oklotalk interp < 1207477030 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ah < 1207477037 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And couldn't quite find every last instance? :P < 1207477042 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :these adds copy around function namespaces < 1207477048 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(Shouldn't smart compilers be able to tell you these things?!) < 1207477078 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and in almost every case, add works, but in some corner cases, it overwrites some variables with old ones, when you create an inner function in another function < 1207477078 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"nighty" < 1207477097 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i kinda assumed after sk worked, scoping worked... but noooo < 1207477116 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sk doesn't really test dynamic scoping though, i had separate tests for it < 1207477132 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk has both <3 < 1207477166 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe, pressed on another channel's name by accident, for a second i though saying that got me kicked :P < 1207477181 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"both? GET THE FUCK OUTTA HERE, SICKO" < 1207477188 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i guess it's not that weird < 1207477200 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uhhh i need to pee, god i'm talkative today < 1207477201 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1207478007 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207478119 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1207478217 0 :oklofok!n=nnscript@spark.turku.fi JOIN :#esoteric < 1207478436 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: what was the bug? < 1207479082 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ais523: he told already < 1207479093 0 :Judofyr!n=Judofyr@c0F9CBF51.dhcp.bluecom.no JOIN :#esoteric < 1207479102 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: I only caught the second half of the explanation < 1207479116 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Let's say you have a byte, arranged something like this: aaaaabbb, and you wanted to get just the 'a' part, multiplied by 4. < 1207479123 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :sorry, i didn't see you join < 1207479130 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :this is what you missed < 1207479335 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1207483561 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :'.1$#248'~'#0$#252' < 1207483575 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(translation of that operation into INTERCAL, hopefully correct) < 1207484576 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1207484604 0 :oklofok!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1207486529 0 :ais523!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1207487979 0 :ais523!n=ais523@pp01-fap02.bham.ac.uk JOIN :#esoteric < 1207491573 0 :Iskr_!n=i@host81-16-dynamic.56-82-r.retail.telecomitalia.it JOIN :#esoteric < 1207491654 0 :Iskr!unknown@unknown.invalid QUIT :Nick collision from services. < 1207491662 0 :Iskr_!unknown@unknown.invalid NICK :Iskr < 1207492734 0 :Tritonio_!unknown@unknown.invalid QUIT :Remote closed the connection < 1207494794 0 :vixey`!n=vicky@amcant.demon.co.uk JOIN :#esoteric < 1207495508 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: 'Nice'. < 1207498216 0 :ehird_!n=ehird@91.105.71.115 JOIN :#esoteric < 1207499954 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :doot to doot < 1207499997 0 :vixey`!unknown@unknown.invalid PRIVMSG #esoteric :hmmmmmmmmmmmm Hi ehird < 1207500156 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric : welcome to #esoteric-i-had-more-sex-in-high-school-than-you! < 1207500173 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :you can't join < 1207500174 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1207500309 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pfft i had more than lament < 1207500395 0 :vixey`!unknown@unknown.invalid PRIVMSG #esoteric :was this during study time? < 1207500445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :study time? < 1207500478 0 :RodgerTheGreat!n=Rodger@wads-5-233-27.resnet.mtu.edu JOIN :#esoteric < 1207500684 0 :vixey`!unknown@unknown.invalid QUIT :"Leaving" < 1207500718 0 :vixey!n=vicky@amcant.demon.co.uk JOIN :#esoteric < 1207502746 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I had an idea for an operator like and/or < 1207502748 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :'but' < 1207502759 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: there's a BUT in TriINTERCAL < 1207502773 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :search the logs for its definition (I discussed it recently), or look at the C-INTERCAL manual < 1207502783 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i'm talking about a logical operator though < 1207502784 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(it exists in CLC-INTERCAL too, but its docs say 'see the C-INTERCAL manual') < 1207502786 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :i guess: < 1207502787 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: it is < 1207502792 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :TRUE but TRUE = FALSE < 1207502793 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it can be used like AND or OR < 1207502798 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :FALSE but TRUE = TRUE < 1207502801 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :TRUE but FALSE = FALSE < 1207502804 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it works on ternary logic levels < 1207502805 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :FALSE but FALSE = FALSE < 1207502816 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: you've just defined not-reverse-implies < 1207502830 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, that's too wordy. I call it 'but' < 1207502835 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: how is that not xor? < 1207502845 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: TRUE xor FALSE = TRUE < 1207502846 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :er, wait < 1207502848 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :TRUE but FALSE = FALSE < 1207502852 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I missed one < 1207502857 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207502861 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :SHOULD 'true but false' be false? < 1207502865 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :it seems so < 1207502883 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: just use the INTERCAL definition < 1207502891 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: naww, i want a binary definition < 1207502905 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: stop being so attached to binary! < 1207502916 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ternary is the NUMBER SYSTEM of the FUTURE < 1207502921 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1207502926 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :i want < 1207502928 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :'if not x but y' < 1207502932 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :to do the intuitive < 1207502974 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :*Main> not test `but` test1 < 1207502974 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :False < 1207502975 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :darn < 1207503031 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :but :: Bool -> Bool -> Bool < 1207503031 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :True `but` True = True < 1207503031 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :True `but` False = False < 1207503031 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :False `but` True = False < 1207503031 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :False `but` False = False < 1207503049 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and < 1207503050 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: `but` is just `and` in the not a but b situation < 1207503059 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :yes, that is true < 1207503060 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :i guess < 1207503061 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1207503066 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :there's no new operators under the sun < 1207503076 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure there ae < 1207503076 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :just ones that don't have common names < 1207503077 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :are < 1207503080 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: crz was pretty weird < 1207503089 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(the only logical operation available in Malbolge) < 1207503094 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :there's 32 of them < 1207503098 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :there are exactly 16 binary logical operators < 1207503100 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, the problem with but is it's not purely a logical operator, it has expectancy integrated < 1207503111 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and expectancy doesn't occur in programming languages < 1207503126 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :vixey: 2^4 < 1207503159 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: 2^4 == 6 in C < 1207503180 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that's because in C, a carat has nothing to do with powering < 1207503196 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: i'm sure ais523 didn't know that :D < 1207503207 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :xor is, conveniently, binary addition without carries < 1207503216 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, xor is subtract-without-borrow < 1207503221 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :add-without-carry is sharkfin < 1207503226 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's just that they happen to be the same in base 2 < 1207503230 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :... < 1207503234 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric ::O < 1207503244 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ooh, wait a second.. < 1207503263 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: what was your 'natural language OR' again? < 1207503265 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :NMOR or something < 1207503277 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what < 1207503277 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :it was 'exclusive maybe or' or something lik ethat < 1207503288 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you said it a while back < 1207503288 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure what you are referring to < 1207503294 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I conclude that C's ^ is actually sharkfin, because it uses the same character as INTERCAL's sharkfin < 1207503302 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but C only works in binary, so it's hard to tell < 1207503303 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207503305 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :did i now < 1207503310 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I guess that makes as much sense as anything < 1207503310 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :you said that natural language's "OR" was not the OR in programming languages < 1207503312 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :which is obvious < 1207503317 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :you said it was NMOR, or something like that < 1207503325 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :which was "Exclusive maybe or", or something like that < 1207503355 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know what you mean, sorry :D < 1207503378 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's "a while back"? < 1207503386 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :like < 1207503388 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :a few months < 1207503414 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i was thinking i'd implement a natural language or in oklotalk, though, for instance (4 or 7) + 2 == 6 ==> true < 1207503437 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this needs to be done in a dirty fashion, though, because oklotalk is a dirty language. < 1207503448 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :meaning it doesn't work 100% < 1207503480 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :once i do state lists, this should be possible, but that's not for this implementatino < 1207503484 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :implementation < 1207503486 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: oh that's easy < 1207503489 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :that's like amb < 1207503498 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: show it to me in a language < 1207503507 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :x = amb(4,7); if (x+2 == 6) { print("yay"); } else { amb(); } < 1207503515 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :'yay' will be printed < 1207503518 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the definition of or < 1207503533 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: well, its isomorphic to 'amb' < 1207503533 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :http://www.randomhacks.net/articles/2005/10/11/amb-operator < 1207503535 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :DO .1 <- #4 MAYBE DON'T .1 <- #7 DO .2 <- #2 DO (1000) NEXT DO ABSTAIN '.3~.3'~#1 FROM (1) (1) DO GO BACK DO GO AHEAD < 1207503537 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :there is an implementation < 1207503538 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :its ruby < 1207503540 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :but its very clear < 1207503542 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :see, it's possible in INTERCAL too < 1207503551 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: it uses callcc, though, so make sure you understand that ;) < 1207503557 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: is that using the continuation lib? < 1207503562 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: no < 1207503567 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's using MAYBE/GO BACK/GO AHEAD < 1207503572 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Backtracking INTERCAL < 1207503575 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: but yeah, http://www.randomhacks.net/articles/2005/10/11/amb-operator. it includes a simple explanation of it and a simple implementation < 1207503580 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: i know all this, naturally, that doesn't necessarily make implementing or trivial < 1207503588 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you know amb? < 1207503588 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207503592 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :you can implement or kind of well < 1207503595 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :if you can overload == < 1207503597 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :and + < 1207503605 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :just make the + etc provide a temp object < 1207503606 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well that doesn't sound too convenient < 1207503608 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :then == to morph itself correctly < 1207503609 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :using amb < 1207503613 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: but really, look at amb < 1207503618 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1207503622 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the amb part is trivial < 1207503640 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the problem is about generic operator type checking, at least in oklotalk < 1207503668 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :amb((char*)x, (int*)y)+1 < 1207503676 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but anyway, i still don't know what you mean by NMOR < 1207503680 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I made amb in C once < 1207503686 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: bet it couldn't handle that < 1207503687 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: why should i look at amb, it's a fairly simple operator < 1207503687 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :It used a continuation lib using stack smashing < 1207503692 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*function < 1207503692 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :and a macro TRY(x) < 1207503696 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :TRY(x) is like return x; < 1207503698 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :but you can backtrack to it < 1207503708 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :FAIL; backtracks to the latest TRY(x) and resumes from there < 1207503722 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it could handle mostly anything < 1207503724 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :it was something like this < 1207503731 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1207503734 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the C implementation was quite interesting, i gotta admit < 1207503734 0 :Judofyr!unknown@unknown.invalid QUIT : < 1207503734 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but you needed to specify the argc < 1207503742 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :since c cannot do varargs without knowing that < 1207503750 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :(amb x y z) < 1207503751 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: you still can't change the type of the return value < 1207503760 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, no :) < 1207503762 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is needed for that expression to work < 1207503795 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :typedef int amb_t; amb_t amb(size_t argc, ...) {va_list ap; amb_t x; va_start(ap, argc); while (argc--) {x = va_arg(ap, amb_t); TRY(x);} FAIL;} < 1207503814 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :the end FAIL will mean that we exhausted the args, but maybe things can get better if some other thing changes < 1207503821 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :mostly it'll just terminate the program since there's no previous backtracks < 1207503826 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :anyway, here's an amb usage example in c < 1207503848 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: that's really bad C, because you didn't use va_end < 1207503850 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :Scheme is a better place to describe AMB :/ < 1207503863 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :int x = amb(3, 1, 2, 3); int y = amb(3, 4, 5, 6); if (x*y == 8) {printf("%i %i\n", x, y);} else {amb(0);} < 1207503869 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: just add it before the FAIL < 1207503870 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :vixey: that's the charm, of course < 1207503870 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :not hard < 1207503871 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1207503876 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i just typed that out now, anyway < 1207503889 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :vixey: But you need two callcc's in Scheme to do it < 1207503892 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :It's a little ugly < 1207503893 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: no it is hard, because you don't call va_end before TRY returns < 1207503899 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1207503902 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1207503909 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but that's alright, because we have to return there < 1207503912 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: think about it like a coroutine < 1207503914 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :you -are- mad ehird < 1207503917 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :it is still running, just blocked < 1207503918 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: you have to call va_end before you return < 1207503921 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or the stack may be wrong < 1207503923 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: TRY() is not return < 1207503929 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: TRY() ACTS like return < 1207503932 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: but it can act like return < 1207503934 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :it in fact does some stack magic < 1207503939 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it is implemented totally differently < 1207503943 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :http://rosettacode.org/wiki/Amb < 1207503943 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and if you return while the stack is wrong, you /will/ end up jumping to a random location < 1207503966 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :vixey: I talked to marshmallows when he made that page. < 1207503969 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :however, va_end is a NOP in most C implementations, which is why you never noticed < 1207503977 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Sigh... http://homepage.mac.com/sigfpe/Computing/continuations.html < 1207503983 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :Read the implementation (it's old-style C though) < 1207503993 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :vixey: That AMB is horrific, and he agreed. < 1207504000 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: then you can get away with it, because you're using varargs not stdarg < 1207504007 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: No < 1207504015 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :the C is only old-style in that it casts malloc < 1207504017 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :and some other stuff < 1207504075 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: that definition of TRY may fail if va_end hasn't been called < 1207504086 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: did you look at the actual code that it calls? < 1207504093 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: yes < 1207504094 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1207504095 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1207504102 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1207504103 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1207504103 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1207504104 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1207504104 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :fine < 1207504106 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :i agree then < 1207504106 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1207504110 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :but anyway < 1207504113 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :Haskell's amb is really nice < 1207504115 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :it's [] in the list monad ;) < 1207504119 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207504119 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :it's id < 1207504124 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :foo <- [1,2,3] < 1207504125 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :saving the context does not alter the stack, so va_end is still necessary! < 1207504128 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :and [] < 1207504144 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :and what's more, the list it generates is the bag-of < 1207504148 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :to get just one, you use 'head' < 1207504155 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :so 'head' is the list monad's run :) < 1207504162 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wonder if i can manage amb without continuations in oklotalk... < 1207504165 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and here's the [] monad's >>= < 1207504173 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :xs >>= f = concatMap f xs < 1207504176 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :return x = [x] < 1207504180 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :(>>=) = flip concatMap -- !! < 1207504183 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1207504192 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :return = (:[]) < 1207504196 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :it's a really elegant way to use amb < 1207504202 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :upside down robot ninja ! < 1207504208 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :vixey: Pointless Haskell considered harmful in most cases. < 1207504217 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :upside down robot ninja > "harmful" < 1207504224 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :amb in prolog is nice < 1207504226 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :(from the wiki:) < 1207504226 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :amb(E, [E|_]). < 1207504226 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :amb(E, [_|ES]) :- amb(E, ES). < 1207504233 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :amb = member in Prolog yeah < 1207504236 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :but then prolog implementations practically have 'amb' built in < 1207504237 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: every single operation in Prolog is amb, more or less < 1207504241 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :ais523: exactly < 1207504257 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :nah < 1207504260 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :I disagree < 1207504334 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1207504336 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, apart from cut, which is really anti-Prolog < 1207504346 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :cut is very Prolog < 1207504348 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1207504355 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :when doing a Prolog interp in Prolog, you have to use weird things like nonlocal cuts < 1207504376 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :vixey: yes, it's a useful part of the language, but it goes horribly against the theoretical foundations it's built on < 1207504425 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird_: amb in Cyclexa: ('abc')^ is amb('a', 'b', 'c') < 1207504440 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Prolog's one of those cases where the theory is more interesting than the application. < 1207504459 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :did you just math is interesting?! < 1207504476 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :just say * < 1207504492 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cut == !? < 1207504495 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :I definitely agree < 1207504497 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: yes < 1207504500 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :!/0 is cut < 1207504505 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1207504530 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :ACTION pets EgoBot < 1207504543 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION spoons EgoBot < 1207504593 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :implementing Prolog with cut using streams is very natural < 1207504622 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :It's hard to do it with explicit choice point stack though :[ < 1207504650 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :vixey: why is that? < 1207504659 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Backtracking INTERCAL uses at least one choice point stack < 1207504666 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :more if you have multiple threads < 1207504683 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and stack elements are refcounted so they can belong to more than one thread, allowing you to backtrack past a fork < 1207504705 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(= w { < 1207504707 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(-> (@ n [$any [1 2 3]]) n) < 1207504709 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(-> (@ n 0) 4)}) < 1207504711 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(+ (w 2) (w 0)) < 1207504713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :==> 6 < 1207504713 0 :wildhalcyon!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207504719 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk does have something of an amb, for pattern matching < 1207504722 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :just because I don't know what , does < 1207504728 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :in terms of choice points < 1207504736 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, not amb < 1207504738 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :vixey: it's a NOP < 1207504747 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a, b means run a, then run b < 1207504748 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i mean... whazzitcalled that declarativeness < 1207504754 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if a backtracks then b is never run < 1207504770 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if b backtracks then it can backtrack into a, because it was run earlier < 1207504771 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :say you have, < 1207504787 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :( member(X,[a,b,c]) , member(Y,[x,y,z]) ) < 1207504808 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then member sets X=a and sets two choicepoints < 1207504818 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then the other member sets Y=x and sets two more choicepoints < 1207504821 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't see the problem < 1207504825 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :if you solve the LHS then the RHS, backtrack, RHS, backtrack, RHS, backtrack < 1207504834 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :next you should redo member(X,[a,b,c]) < 1207504852 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :but once you do, how do you know to solve member(Y,[x,y,z]) next? < 1207504859 0 :wildhalcyon!n=chatzill@c-69-243-94-185.hsd1.md.comcast.net JOIN :#esoteric < 1207504861 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :it was popped off the stack < 1207504868 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :vixey: that's correct < 1207504885 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you put it back on the stack starting from the start, because the next thing that runs after member(X... is member(Y... < 1207504890 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because it follows it after the comma < 1207504910 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :so the choice point stack also holds the entire rest of the program? < 1207504910 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :imagine (member(X, http://en.wikipedia.org/wiki/Special:Search?go=Go&search=a,b,c],[d,e,f],[g,h,i), member(Y,X)) < 1207504916 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1207504919 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1207504929 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :vixey: well, reconstruct what I said < 1207504935 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the choicepoint stack holds continuations < 1207504952 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which do hold the entire rest of the program conceptually, but that can normally be optimised < 1207504966 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :oh right < 1207505000 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to write this out in code < 1207505006 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. in INTERCAL you can deduce the rest of the program from the IP and the NEXT stack < 1207505406 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and the variables? < 1207505420 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: they're stored in the continuation too < 1207505428 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but don't apply to deducing what the rest of the program is < 1207505428 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1207505459 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :what about conditional jumps? < 1207505472 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :unless I misconstrue your meaning < 1207505677 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: the route through the rest of the program varies, of course, but all the information needed to be able to work out the place in the program where execution would have proceeded, and should proceed after a choicepoint returns, is available in the IP and NEXT stack < 1207505701 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1207505704 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :that makes sense < 1207507551 0 :jix!n=jix@dyndsl-085-016-238-158.ewe-ip-backbone.de JOIN :#esoteric < 1207507914 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"" < 1207508201 0 :jix!unknown@unknown.invalid QUIT :Nick collision from services. < 1207508213 0 :jix!n=jix@dyndsl-091-096-046-063.ewe-ip-backbone.de JOIN :#esoteric < 1207509579 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1207510505 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1207511437 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1207513302 0 :AnMaster!unknown@unknown.invalid QUIT :No route to host < 1207514805 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :So what's going on? < 1207514993 0 :ehird_!unknown@unknown.invalid PRIVMSG #esoteric :five things < 1207515107 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :yes? < 1207515391 0 :ehird_!unknown@unknown.invalid NICK :cboat < 1207515399 0 :cboat!unknown@unknown.invalid NICK :ehird < 1207515611 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1207515678 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :wildhalcyon: well, I think that TechDawg's "Discarded" is art. < 1207515680 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Some disagree < 1207515690 0 :tola_!n=tola@82-36-97-250.cable.ubr01.king.blueyonder.co.uk JOIN :#esoteric < 1207515705 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :wildhalcyon: BTW, http://www.youtube.com/watch?v=cW44BpXpjYw < 1207515714 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :line rider is lovely < 1207515795 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :in fact, several of TD's things are art < 1207515825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.youtube.com/watch?v=rn8ULJGboOE&feature=related is hilarious < 1207515845 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :"hillarious"? < 1207515859 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :great, certainly, but n ot"hillarious" < 1207516001 0 :Tritonio_!n=Tritonio@150.140.226.19 JOIN :#esoteric < 1207516023 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :I do enjoy linerider < 1207516080 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Its a great form of art, too. I agree SimonRC < 1207516118 0 :Quendus!unknown@unknown.invalid QUIT :"Reconnecting" < 1207516129 0 :Quendus!n=Quendion@145.175.adsl.brightview.com JOIN :#esoteric < 1207516158 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :but the smb 1-1 level ehird posted was better < 1207516209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: I found it funny < 1207516266 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :odd < 1207516272 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :but not that odd < 1207516548 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :This stuff is giving me a headache < 1207516558 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1207516587 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :I've been reading about "pure" object-oriented programming < 1207516595 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1207516616 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :what is that? < 1207516620 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :A lot of academic papers and things < 1207516626 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :my favorite text on object orientation is AMOP < 1207516633 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :do you have a link? < 1207516645 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :Art of the Metaobject Protocol < 1207516711 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :I think that might have been one of the ones I read yesterday, I'll have to double-check < 1207516738 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION drags out his usual text on what OO is: http://www.paulgraham.com/reesoo.html < 1207516747 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: you just quoted paul graham < 1207516782 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :It list 9 things that make up OO, and points out that no-one agrees which are the essence of OO < 1207516786 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yes, and? < 1207516786 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :loool < 1207516803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :paul graham is a blabbering moron with nothing worthwhile to say who is wrong about just about everything he talks about < 1207516804 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :actually, that is Jonathan Rees, not PG < 1207516814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wish i could be less harsh, but experience gives me no choice < 1207516823 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :is he really that bad? < 1207516834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: IMO, yes. < 1207516839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A Plan for Spam wasn't all that bad, though. < 1207516840 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :I guess I'm glad I don't know who Paul Graham is < 1207516850 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :http://www.dreamsongs.com/ObjectsHaveFailedNarrative.html < 1207516872 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :wildhalcyon: I disagree. He is a good person to read if you disagree with him. < 1207516875 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1207516876 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :wildhalcyon: He wrote a couple very bad books about Lisp and some very seductive essays < 1207516889 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :wildhalcyon: He also wrote Roots of Lisp which -is- very good and worth reading though < 1207516904 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :vixey: "seductive"? < 1207516907 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Well, I've read up on lisp a bit. < 1207516921 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, haven't you heard about the XXX-oriented paradigm? < 1207516924 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :on lisp is rubbish < 1207516932 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :you should burn it or delete < 1207516949 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :wildhalcyon: "XXX-oriented"? < 1207516953 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :aiming for high penetration, i assume < 1207516962 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :*groan* < 1207516994 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :that was pretty bad < 1207517005 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Thank you, thank you. < 1207517020 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC - there was an esolang proposed once in which operations were sex acts < 1207517022 0 :ais523!n=ais523@pp01-fap02.bham.ac.uk JOIN :#esoteric < 1207517032 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :You know how folks are in this channel < 1207517049 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ooh, didn't encounter that one < 1207517114 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207517132 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :god it's fun debuggin' with vista < 1207517160 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whole computer crashes for 10 minutes when it infloops < 1207517161 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :it is? < 1207517165 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :are you a masochist? < 1207517197 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well si don't like waiting. < 1207517200 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*i < 1207517205 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so no, it's not actually that fun < 1207517277 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :huh, an app can crash Vista? < 1207517279 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :how? < 1207517334 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Existance? < 1207517350 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :App says, "I exist, therefore I can crash Vista" < 1207517361 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: I saw a 'review of Windows XP' that was a disguised version of a Vista review < 1207517378 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was talking about how downgrading to XP added pre-emptive multithreading to your computer < 1207517392 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Sum ergo Vistam, er... < 1207517468 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: dunno, but both my J interp and python interp do that quite often < 1207517479 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :gaaah < 1207517485 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it should not be possible damnit < 1207517509 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: someone pasted it here < 1207517509 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :?!? < 1207517514 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :I want J interpreters! < 1207517517 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: indeed it shouldn't < 1207517524 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :lots of people seem to have written ones and not released them < 1207517527 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :j602 < 1207517534 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :... < 1207517538 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :you wrote that? < 1207517542 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh no. < 1207517556 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :oh I see < 1207517556 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm new to J. < 1207517567 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :when you said "my J interp" you meant the one I'm using :P < 1207517568 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :sorry.... < 1207517578 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, it doesn't seem too hard, J isn't all that extendable < 1207517580 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm frago perhaps < 1207517594 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :vixey: i realized one might think i meant i'd coded them < 1207517616 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but didn't fix < 1207517624 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cuz i'm evil < 1207517659 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Sum, ergo Vistam frangere possum < 1207517716 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i still have no idea what the use of boxing is in J < 1207517726 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps one of you explain that < 1207517758 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :changes the way things compose and operate < 1207517786 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :also they are useful as tuples < 1207517787 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/downgrading/upgrading/ < 1207517855 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i recall pasting that < 1207517868 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I wasn't online at the time < 1207517884 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it's just a happy coincidence < 1207517903 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i vaguely recalled it was oerjan < 1207517914 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but thought oerjan isn't really the pasting type < 1207517922 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no you didn't! I do the vague recalling here! < 1207517927 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::-----------) < 1207517974 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :before you know it, i'm also talking haskell gibberish and making pun out of nowhere. < 1207517978 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*puns < 1207518042 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as long as you don't vaguely recall talking gibberish about haskell puns < 1207518117 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't seem to < 1207518128 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or... perhaps i do < 1207518133 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my memory is a bit vague here. < 1207518148 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :GAAH < 1207518161 0 :ais523!unknown@unknown.invalid TOPIC #esoteric :http://bespin.org/~nef/logs/esoteric/ --> .pr POINT .pr STRING p=".pr POINT .pr STRING p=?;print(p[:22]+REPR 34+p+REPR 34+p[24:])";print(p[:22]+REPR 34+p+REPR 34+p[24:]) < 1207518178 0 :ais523!unknown@unknown.invalid TOPIC #esoteric :http://bespin.org/~nef/logs/esoteric/ --> .pr UPPER .pr STRING p=".pr UPPER .pr STRING p=?;print(p[:22]+REPR 34+p+REPR 34+p[24:])";print(p[:22]+REPR 34+p+REPR 34+p[24:]) < 1207518226 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :?_? < 1207518239 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I'm making the topic portalbe < 1207518243 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/albe/able/ < 1207518257 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Of course, it requires your interp to be case-sensitive < 1207518284 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :hahahahaha < 1207518285 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :WOW < 1207518320 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry, I accidentally wrote the wrong stropping style first time < 1207518323 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is this still ALGOL? < 1207518327 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yes < 1207518343 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders in what ways PG's thing on bosses is BS. < 1207518386 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :"Lots more people could start startups if they wanted to. In fact, our business model depends on it. If the pool of founders was limited to a few rare geniuses, Y Combinator wouldn't work." <-- Proof by business model requirements. < 1207518390 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1207518501 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... how many languages actually have extendable pattern matching? < 1207518508 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't seem to recall any < 1207518520 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haskell? < 1207518533 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Perl clames to be able to, but that's done by putting a preprocessor on regexen < 1207518555 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i didn't even know perl had pattern matching < 1207518559 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then again, i don't really know it < 1207518559 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :can you define extendable pattern matching? < 1207518566 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk has it < 1207518569 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1207518580 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my rational numbers can be pattern matched on (/ d n) < 1207518582 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :I still don't have an oklotalk interpreter and user manuel < 1207518583 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1207518586 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207518596 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :and I am waiting < 1207518599 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should have oklotalk-- by wednesday < 1207518605 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1207518609 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207518625 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :should be --oklotalk-- or something, because it's both a subset *and* a different syntax. < 1207518630 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but at least it's something... < 1207518636 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :haskell has had discussions on adding generalized "views" but they haven't made it into ghc at least < 1207518653 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this must be my first project in years where i've actually been on one project for over 2 days < 1207518660 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :s/discussions/research papers/, i think actually < 1207518664 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've heard about view, ya < 1207518675 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :well I can easily do this in a Lisp or Prolog but I think you mean something more general < 1207518686 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for me, adding extendable pattern matching was a 15 minute scribble, but i guess you can think about it for years too :P < 1207518694 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whatever suits the language designers < 1207518709 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :you still haven't defined it :/ < 1207518712 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(okay, oklotalk does it fairly dirty) < 1207518716 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :defined? < 1207518717 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :so I'm just guessing I know what you mean < 1207518720 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1207518730 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can show my rational number class again < 1207518741 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and explain where you can see extended pattern matching < 1207518775 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p441122612.txt < 1207518791 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<-- addition with another rat --> < 1207518791 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(-> [$+ (/ dd dn)] < 1207518791 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(= g (gcd dn n)) < 1207518791 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(rat (+ (* d (/ dn g)) (* dd (/ n g))) (/ (* dn n) g))) < 1207518813 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :addition, we match on the pattern [$+ (/ dd dn)], so addition by something that can be split by / into dd and dn < 1207518826 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a rational number can be split this way, defined in the same class... < 1207518833 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<-- pattern match on division --> < 1207518833 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(-> [pb $/] [d n]) < 1207518834 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :here < 1207518851 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :})}) <-- I like this language already --> < 1207518854 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pb means pattern match both, there are a few match tag kinda things like this < 1207518872 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :vixey: this is not actually the real syntax, although i'm beginning to like it as much as the original :P < 1207518884 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is much prettier. < 1207518891 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but... not very concise < 1207518921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i guess i could make a hybrid of the old and the new < 1207518927 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :revolutionize everything < 1207518935 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :does sound like something i would do < 1207518962 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking about making a new language < 1207518969 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :it's kind of rubbish though < 1207518974 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :it seemed good earlier :/ < 1207518993 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually, i'll change the whole tag system now, so stuff will prolly stop working for 6 hours now. < 1207518997 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :I made a prototype anyway and it really needs lazyness < 1207518998 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*- other now < 1207519006 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :(which I have no idea how to implement) < 1207519008 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :vixey: SHOW IT < 1207519021 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lazyness is fairly simple < 1207519029 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you simply don't evaluate stuff until you have to < 1207519046 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :instead of evaluating the ast, you just pass it one < 1207519047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*on < 1207519072 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not that i've ever done anything with lazyness, perhaps i should < 1207519076 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :layztalk < 1207519079 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*lazytalk < 1207519099 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://www.codu.org/jsmips/test.html // can anybody say JSMIPS FIBONACCI? < 1207519102 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's right! < 1207519117 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And JEBUS it's slow X-D < 1207519145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :did you write that manually? < 1207519157 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or was it that compileration you did some months ago < 1207519161 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/8dTURb60.txt < 1207519162 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://www.codu.org/jsmips/test.c < 1207519171 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yarr < 1207519172 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it was < 1207519206 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Not sure what you mean by "that compileration you did some months ago" :P < 1207519243 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :length([])=0. < 1207519243 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :length([_|xs])=1+length(xs). %% not sure about this (how could this generate lists of a given length?) < 1207519250 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :vixey: what do you mean? < 1207519251 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :yes it can I tested it < 1207519257 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :you would be able to go < 1207519263 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :3=length(x) < 1207519268 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :thought so < 1207519269 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :and it would result in () < 1207519274 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1207519275 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1207519278 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :but also binding x to [g1,g2,g3] < 1207519286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't it result in each and every list of length 3? < 1207519292 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :yes g for gensym < 1207519298 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :they are new variables < 1207519307 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1207519309 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's the prob < 1207519317 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :well you can't write permutation([x|xs])=insert(x,permutation(xs)). < 1207519323 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: indeed, i don't always speak human. < 1207519337 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can't? < 1207519338 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :you have to write permutation(insert(x,xs))=[x|permutation(xs))]. < 1207519346 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :which is much less natural, and that's because of strictness < 1207519373 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :(I tested both in my interp, the one I -wanted- to write loops but the other works) < 1207519397 0 :Sgeo_!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1207519402 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with the first one? < 1207519419 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't terminate < 1207519433 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well should it? < 1207519433 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207519440 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :I would rather it did :P < 1207519464 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :the plan is that lazyness finds an evaluation order that terminates if one exists < 1207519477 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :so it would be very nice to have that property in a logic lang < 1207519481 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1207519485 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :I don't know if it would translate across though < 1207519601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe, that rational number example is fun to run, 4000 lines of output < 1207519661 0 :Sgeo_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207519668 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1207519676 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :ehird did you see it? < 1207519769 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: wait, MIPS under Javascript < 1207519779 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yup < 1207519843 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1207519851 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :is MIPS a simple architecture? < 1207519953 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Extremely. < 1207519958 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :MIPS I has about 60 operations. < 1207519975 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :nicer than x86 < 1207519993 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you probably already told me, but how do you do the compilation? < 1207519998 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :"rep strtostr" and all that < 1207520009 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: with a normale compiler I think < 1207520020 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :then he has a translating program < 1207520033 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: GCC < 1207520050 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://www.codu.org/jsmips/patches/ < 1207520052 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Target mips-jsmips < 1207520077 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And make sure you use CFLAGS="-g -O0" when compiling newlib ... something in the -O2 version borks :( < 1207520161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: slow? hardly < 1207520175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :runs in about 4 seconds in total over here < 1207520180 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it freezes a tiny bit at the start < 1207520184 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then runs without lag < 1207520188 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The freeze at the start is loading the ELF. < 1207520193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1207520196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1207520196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fast < 1207520199 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The 4 seconds is much slower than a real MIPS X-P < 1207520215 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: If I write a c program will you test it on jsmips? < 1207520216 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207520221 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I want to try ridiculous things < 1207520223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Like mucking with memory < 1207520240 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Mucking with memory is perhaps the /least/ ridiculous thing you could try. < 1207520246 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: use that C continuation program < 1207520249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OH YES < 1207520254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I will do that! < 1207520265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It'll just require a little modding < 1207520266 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Make your own cross-compiler and try it yourself :P < 1207520268 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :amb on MIPS? lol < 1207520273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I'll have a crazy program for you, stat :D < 1207520290 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :can the thing to set/longjmp? < 1207520294 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh gods not the one that memcopys functions about is it? < 1207520304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: memcpy's the stack actually < 1207520306 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: not functions, just the call stack < 1207520307 0 :Iskr!unknown@unknown.invalid QUIT :"Leaving" < 1207520323 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :vixey: I haven't tested it, but it's in the standard library - in the grand scheme of things it's not that complicated, so it ought to work. < 1207520326 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :once you've done that, try a multithreaded C-INTERCAL program < 1207520332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: This will be fun < 1207520337 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or one that uses the external calls system < 1207520350 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1207520361 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If I published a binary cross compiler for x86, would you people compile your own stuff? :P < 1207520369 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION starts tackling quicksort in oklotalk < 1207520392 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has qemu-mips over here < 1207520398 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: For OS X? Sure. < 1207520399 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ais523: GIVE ME THE ROM < 1207520400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but presumably that isn't identical to JS-mips < 1207520402 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ais523: DO IT < 1207520404 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I NEED THE ROM < 1207520405 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1207520424 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: you mean from the qemu sourcecode? < 1207520435 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I thought qemu-mips needed an external ROM? < 1207520446 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: no idea, I've never tried to run it < 1207520452 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :X-P < 1207520458 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I did - wanted Windows NT 3 on MIPS. < 1207520465 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :But alas, no ROM, no fun. < 1207520507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :almost done evil.c :D < 1207520660 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: seems that qemu-system-mips can only run Linux on a simulated Malta board < 1207520670 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/x/x,/ < 1207520822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Almost done with the prog < 1207520899 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: okay < 1207520939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: http://rafb.net/p/tpuvWN89.html < 1207520943 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :compile with 'gcc foo.c -o foo' < 1207520946 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has the evil idea of implementing Brainfuck using a single one-byte auto variable to hold all stack elements and using stack-smashing < 1207520947 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. nothing special < 1207520955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: the expected output is at the end < 1207520966 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you put it on your site, i want to seeee it :D < 1207520979 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: take a look at my link: it implements a generator using the continuations < 1207521008 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yes, I looked at it before you said that < 1207521010 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :TRY() is yield, and generator() ... FAIL is an implicit loop through the items < 1207521038 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :are "generators" not just streams? < 1207521048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :vixey: yes < 1207521049 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :it's python terminology right? < 1207521054 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1207521066 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :never heard it outside of there < 1207521069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Generators first appeared in CLU (1975)[1] and are now available in Python[2], C#, and JavaScript[3]. (In CLU and C#, generators are called iterators.) Generators are also a prominent feature in the string manipulation language Icon. < 1207521075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but the most common usage is in python yes < 1207521156 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, MAYBE COME FROM is a trivial way to do a generator in INTERCAL < 1207521166 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1207521170 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :what does MAYBE COME FROM do? < 1207521183 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :COMEs FROM a line, but after backtracking don't come from that line < 1207521200 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :o_____O < 1207521216 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so exactly like the TRY in ehird's program, except in the calling not the called function < 1207521218 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :do people write real programs with INTERCAL? < 1207521225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :vixey: INTERCAL is an esolang.. < 1207521227 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :depends on what you mean by 'real program' < 1207521235 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :like webservers .. and stuf.. < 1207521244 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's an INTERCAL CGI script running somewhere < 1207521252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :vixey: INTERCAL is an esolang.. < 1207521258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This is #esoteric. < 1207521262 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and a CLC-INTERCAL version of a highly simplified wget < 1207521265 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :why does that change anything ehird? < 1207521266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You know. Like Brainfuck < 1207521276 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :vixey: Would you ask if people made webservers with brainfuck? < 1207521293 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: do people make webservers with brainfuck? < 1207521327 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: :) < 1207521333 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PLEASE DO ASK < 1207521347 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :PLEASE CREATE (1450) ASK < 1207521361 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :PLEASE NEXT FROM [22:35] < 1207521365 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :PLEASE CREATE (1650) ASK < 1207521371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :DO RESUME #1 < 1207521376 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1207521390 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry I realised that the CREATE statement had to come /before/ ehird's message < 1207521391 0 :AnMaster!n=AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1207521439 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what you mean the compiler doesn't look for future CREATE commands? i sense a feature missing ;) < 1207521464 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I thought of doing it like that, and decided the case where it didn't was more interesting < 1207521480 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :after all, there are a range of ways to work around the problem in your own software < 1207521498 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and once I implement computed CREATE, it'll be possible to do things like DO CREATE .1 ABC DO ABC as a computed NEXT < 1207521516 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you'd lose all that if CREATE happened at compile-time < 1207521548 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh i didn't mean for it _always_ to happen at compile-time. perish the thought! < 1207521594 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :ehird did you see my lang though :( < 1207521598 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so what's you're plan? < 1207521605 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :allow some commands to work retroactively? < 1207521614 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :DO CREATE (1850) ASK RETROACTIVELY #50 < 1207521619 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i have a plan? < 1207521634 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I didn't realise you did, but I assumed you had something or other in mind < 1207521665 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(RETROACTIVELY would be basically impossible to implement in INTERCAL by the way; I think it might be able to solve the halting problem with the semantics I have in mind and therefore be truly impossible) < 1207521728 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nothing wrong with that < 1207521760 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1207521765 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :you could have it try to solve the halting problem and crash if it's too hard < 1207521766 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: but I can't implement any theoretically impossible commands in C-INTERCAL < 1207521780 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :vixey: that would be INTERCAL's style, I agree < 1207521789 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it would still be basically impossible in a compiled language < 1207521792 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can implement the non impossible parts of them < 1207521795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and make rest crash < 1207521802 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :every language has programs that cannot run through < 1207521802 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe I'll suggest it to CLC-INTERCAL's maintainer < 1207521819 0 :vixey!unknown@unknown.invalid PRIVMSG #esoteric :oklopol not true :P < 1207521824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :every tc language < 1207521947 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: even oerjan's crazy HQ9+ extension? < 1207521968 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207521973 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's not entirely clear whether that was TC, because any given program designed to be TC only had a 1 in 256 chance of working < 1207521977 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and errored the rest of the time < 1207521988 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :like the random-bug in INTERCAL, but much worse < 1207521997 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the language now specifies how to make it tc? < 1207522011 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: it had an X command < 1207522020 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :specified as "Makes the language Turing-complete". < 1207522024 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but the perl extension was just one wait to do it < 1207522028 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1207522044 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :meaning you could do it so that it's always tc < 1207522044 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right < 1207522055 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i consider the extension a parametrizable language < 1207522065 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because it's clear the language's semantics aren't complete as such < 1207522089 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just a framework for another language to fill (be tc given X) < 1207522094 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno < 1207522095 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was going to suggest a language whose semantics were expandable at runtime, but CLC-INTERAL already does that (and C-INTERCAL to a much lesser extent) < 1207522101 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :qsort might work soon < 1207522102 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :exciting < 1207522674 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://elliotthird.org/mirror/c-intercal/ick-0.28/pit/sort.i <--- see if you can figure out how the flow control in this works, it took me ages to write < 1207524195 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sees what looks like a mistake in http://qntm.org/?frontier < 1207524200 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :"We appear to have gravity in here because the screw drive in the ship skeleton is accelerating upwards and pulling the ship up with it at nine point eight one metres per second per second." < 1207524205 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But they should be at a point above Jupiter where they feel equivelent gravity.. or am I missing something here < 1207524209 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :does escape velocity being the same not mean that the gravity they feel is the same? < 1207524296 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i haven't read the article but they might be falling freely towards jupiter, rotating it or something < 1207524308 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in which case no gravity is perceived < 1207524325 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :(not an article, it's fiction) < 1207524327 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but fuck, another problem with scoping :D < 1207524338 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a piece of text, so i call it an article < 1207524445 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :They started out in the basement, and jumped to equivelent gravitational potential energy somewhere above Jupiter, conserving momentum < 1207525175 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1207525746 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :escape velocity is proportional of the root of the intergral of gravitational potential out to infinity < 1207525765 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :um, gravitational *field* < 1207525786 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :there is no formula that directly relates escape velocity and gravitational field < 1207525874 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :and, as oklopol pointed out, they might not be at a constant height < 1207525884 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :and up might not be directly away from Jupiter < 1207525885 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1207525941 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :if you really wanted to nitpick, you could point out that they are ignoring special relativity too < 1207525976 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207526026 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric