< 1175472164 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1175472176 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think I might need to do a genetic algorithm for this... < 1175472185 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for what? < 1175472205 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is testing strings for "closeness" < 1175472258 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, you need to decide on a metric < 1175472292 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(metric=distance function) < 1175472350 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is this something like finding a minimal set of changes? < 1175472358 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(diff-like) < 1175472522 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1175472585 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: There is an algorithm for that in the python stdlib < 1175472682 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lets see < 1175472690 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :/usr/lib/python2.5/difflib.py < 1175472731 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :from 2.1 it says < 1175472743 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :SequenceMatcher.ratio < 1175472827 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :get_close_matches is a cool function from that module < 1175473047 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :looks pretty simple < 1175473082 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :gives 2*/ < 1175473089 0 :Pikhq!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1175473156 0 :CakeProphet!unknown@unknown.invalid QUIT :Success < 1175473263 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1175473271 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to recode it a little < 1175473536 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :well, I think I'm a kde convert < 1175473562 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ion ftw < 1175473621 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1175473646 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ion rocks < 1175473796 0 :CakeProphet!n=CakeProp@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1175473828 0 :sebbu!unknown@unknown.invalid QUIT :"@+" < 1175474694 0 :Figs_!n=Figs@pool-71-126-177-121.washdc.fios.verizon.net JOIN :#esoteric < 1175474724 0 :Figs!unknown@unknown.invalid QUIT :Nick collision from services. < 1175474743 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it works! < 1175474747 0 :Figs_!unknown@unknown.invalid NICK :Fogs < 1175474751 0 :Fogs!unknown@unknown.invalid NICK :Figs < 1175474997 0 :dog4_!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1175476476 0 :anonfunc!n=dholman@ppp-67-121-238-228.dsl.chic01.pacbell.net JOIN :#esoteric < 1175477251 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ok, I have some code to compare two strings < 1175477303 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ratio("apple", "apple") => 1.0 < 1175477321 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ratio("apple", "appl") => .888 < 1175477355 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ratio("apple", "orange") => .363 < 1175477369 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ratio("apple", "appel") < 1175477383 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :.8 < 1175477486 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ratio("aaa", "bbb") => 0. < 1175477631 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :is that like hamming distance? O.o < 1175477711 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ratio("abcde", "edcba") < 1175477719 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1175477765 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: .2 < 1175477783 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so, only one match < 1175477791 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's kinda broken < 1175477796 0 :Figs!unknown@unknown.invalid PART #esoteric :? < 1175477798 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no consideration of swapping < 1175477871 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1175477876 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not sure how to handle this < 1175477916 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't think the python library handles swapping either, if i read the documentation correctly < 1175477971 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :difflib.SequenceMatcher("abcde", "edcba").ratio() => 0 < 1175477987 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that's strange < 1175478021 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i dunno how to remove the matches from strings after they are counted < 1175478062 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :slicing? < 1175478072 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :well, yeah < 1175478122 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :an idea might be to sum something like squares of lengths < 1175478217 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :then a reversed sequence would match completely in pieces, but the sum would not add up to as much as for equal strings < 1175478330 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1175478385 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :on the other hand, matching "abcdef" with "acdebf" might give an unintuitive result if you simply remove the match and match the remainder < 1175478406 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because after removing "cde", the strings become equal < 1175478439 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1175478454 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :gah < 1175478462 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well.. < 1175478467 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I just created my own thing. < 1175478477 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...that takes into account transposition. < 1175478484 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION didn't realize you were talking about it. < 1175478487 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :simply removing the matches gives ratio("abcde", "edcba") => 1.0 < 1175478500 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course < 1175478512 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because every piece matches somewhere < 1175478530 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1175478534 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's not acceptable < 1175478542 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :except this one uses a decision tree to find the shorted possible way to do it. < 1175478555 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that's what my square suggestion meant to fix < 1175478645 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :this looks ok < 1175478660 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :4*/**2 < 1175478686 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and just removing common substrings as we find them < 1175478827 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :actually, the square root of that < 1175478871 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ratio("abcde", "edcba") => 0.4472135955 < 1175478931 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...I could actually split off the recursions into threads... if necessary < 1175479046 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/420272 <--- < 1175479142 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh man < 1175479151 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :sum of squares doesn't work very well < 1175479162 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ratio("apple", "appel") => .44 < 1175479201 0 :anonfunc!unknown@unknown.invalid QUIT : < 1175479210 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's not good < 1175479251 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you need to find the _longest_ match first < 1175479255 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :modification to hamming distance tend to work nicely. < 1175479290 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you seem to be matching single characters < 1175479306 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :who me? < 1175479312 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, bsmntbombdood < 1175479332 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1175479341 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah, this finds the first one first < 1175479427 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm.... mine works really well for what I'm using it for (finding the closest match to a string within a list of strings) < 1175481949 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1175482175 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Oh, a convience function < 1175482672 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...yes, I'm lazy < 1175482743 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a function for black people with braids? < 1175482786 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :methinks python ints should have an __iter__ method < 1175482847 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :to iterate over what? < 1175482857 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :n.__iter__ = range(n) < 1175482877 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm.... don't think that would make much sense < 1175482885 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :for num in 6: < 1175482900 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1175482920 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :makes me think of "every possible floating point value of 6"... which would go on forever. < 1175482971 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :6.next() == 0 < 1175483020 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1175483359 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1175483979 0 :Figs!n=Figs@pool-71-126-174-109.washdc.fios.verizon.net JOIN :#esoteric < 1175483986 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hey < 1175483988 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you guys seen this, right? < 1175483990 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://www.nata2.info/d/pictures/f/americans.gif < 1175484101 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right. < 1175484206 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://www.glowfoto.com/viewimage.php?y=2007&m=03&img=30-224100L&t=jpg&rand=2971&srv=img4 < 1175485315 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I doubt highly that that's real. (The first one) < 1175485415 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :http://www.snopes.com/military/lighthse.htm < 1175485594 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :woo < 1175485598 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i joined facebook!! < 1175485605 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh boy < 1175485606 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION bops lament's nose. < 1175485608 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :BAD LAMENT < 1175485609 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :NO BISCUIT < 1175485610 0 :Arrogant!n=Arrogatn@239.orlando-09-10rs.fl.dial-access.att.net JOIN :#esoteric < 1175485628 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :is there an esoteric programming group? < 1175485686 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Psuedo Hadamard transform! < 1175485725 0 :Figs_!n=Figs@pool-71-126-172-203.washdc.fios.verizon.net JOIN :#esoteric < 1175485732 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"pseudo" < 1175485798 0 :Figs!unknown@unknown.invalid QUIT :Nick collision from services. < 1175485801 0 :Figs_!unknown@unknown.invalid NICK :Figs < 1175485814 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1175485816 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ther we go < 1175486290 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :there isn't even a brainfuck group :( < 1175486320 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lame < 1175486330 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you're just a lame-nt < 1175486528 0 :jix!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1175486566 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So, I'm thinking of allowing function overloading by allowing calls to arrays of functions. < 1175486569 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :[In Plof] < 1175486691 0 :Pikhq!n=pikhq@c-75-70-225-157.hsd1.co.comcast.net JOIN :#esoteric < 1175486865 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :function overloading? < 1175486901 0 :Arrogant!unknown@unknown.invalid QUIT :"Leaving" < 1175487264 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :... you know, multiple functions with the same names, differentiated by their signature... < 1175487344 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :...no? < 1175487360 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :... what was that no to? :-P < 1175487381 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I don't know < 1175487389 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : ... you know, multiple functions with the same names, differentiated by their signature... < 1175487403 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ah :-P < 1175487409 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i understand plof is dynamically typed, so the functions would have to check argument types and backtrack to the next function on failure. < 1175487454 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Plof is dynamically typed with some static typing operators. There is such an operator in function signatures, which enforces that the function is called with the proper arguments. < 1175487496 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :e.g.: var println = (x as string){...} < 1175487496 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ic, so you can declare signatures. < 1175487500 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1175487544 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if you wanted you could probably extend that to pattern matching < 1175487555 0 :Figs!unknown@unknown.invalid PART #esoteric :? < 1175487602 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and guards < 1175487706 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Um, would pattern matching in that scenario not be a guard by definition? < 1175487777 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :except a pattern could also deconstruct arguments into variables, and a guard could be a general boolean expression < 1175487807 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I think that's getting a bit more complicated than is actually valuable :) < 1175487856 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just guards then, perhaps. < 1175487999 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :say, (x as inrange(1,10)) < 1175488006 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That I can see. < 1175488043 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually it would be a function to boolean < 1175488047 0 :Pikhq!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1175488050 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Especially if I implement function overloading as above. < 1175488124 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :could even have an alternative syntax: (x where x >= 1 and x <= 10) < 1175488158 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I like that. < 1175488501 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1175489363 0 :CakeProphet_!n=CakeProp@h84.240.213.151.ip.alltel.net JOIN :#esoteric < 1175490254 0 :CakeProphet!unknown@unknown.invalid QUIT :Connection timed out < 1175494551 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is reading about objective C < 1175495106 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :looks nice < 1175495446 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I wonder why C++ and Java caught on < 1175495540 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Apple <3 Obj-C < 1175495647 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1175495832 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :What? I speak only truth. < 1175495844 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :if obj-c is as fast as C, that would be fantastic < 1175497322 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1175497331 0 :Sgeo!unknown@unknown.invalid QUIT :"Ex-Chat" < 1175497351 0 :helios24_!unknown@unknown.invalid NICK :helios24 < 1175498219 0 :GreaseMonkey!n=Greasemo@222-154-160-126.jetstream.xtra.co.nz JOIN :#esoteric < 1175500799 0 :clog!unknown@unknown.invalid QUIT :ended < 1175500800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1175501576 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ObjC is nothing to :3 about. < 1175501603 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's like someone grafted on two dissimilar things together into one weird ununiform conglomerate. < 1175501612 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Of course, it's a lot better than C++, so there you go. < 1175501642 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So, it's like Plof X-D < 1175501652 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :My theory about Java is that a long time ago, Java programmers didn't suck and Java ran reliably. I coded a whole bunch of signal processing and NN tools for it, and it was really fast/light. < 1175501693 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It worked with 64-bit precision numbers the whole time too, and processed about 6 MB of data per-pass, averaging somewhere in the millions for number of passes. < 1175501777 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :My conclusion was that, because Java is the New Thing (TM), every bum coder and his mentally addled half-cousin he slept with ends up using Java and turning codebase into poop. That and I don't like Java's emphasis on New Technologies and the annoying abbreviation technologies. < 1175501864 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :CL would probably be like that too if it had caught on. < 1175502088 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :afk food < 1175502592 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1175502610 0 :Sukoshi!unknown@unknown.invalid QUIT :"愛してた。アンタの高い姿を見たことの最初から、見とれた。アンタの真っ黒髪が風の勝手 < 1175502770 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wtf? < 1175502839 0 :ShadowHntr!unknown@unknown.invalid PRIVMSG #esoteric :excuse me? < 1175502839 0 :ShadowHntr!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1175503998 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :back < 1175504496 0 :ShadowHntr!unknown@unknown.invalid QUIT :"End of line." < 1175504915 0 :dog4!n=dog4@xdsl-81-173-230-144.netcologne.de JOIN :#esoteric < 1175504924 0 :dog4!unknown@unknown.invalid QUIT :Remote closed the connection < 1175506066 0 :Sukoshi!n=user@user-11faauk.dsl.mindspring.com JOIN :#esoteric < 1175507174 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1175507978 0 :sebbu!n=sebbu@ADijon-152-1-108-66.w86-218.abo.wanadoo.fr JOIN :#esoteric < 1175509482 0 :nooga!i=nooga@xdsl-6552.lubin.dialog.net.pl JOIN :#esoteric < 1175509584 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :what happened with that c2bf compiler? < 1175510045 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :nooga: asking me? < 1175510080 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1175510100 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :oh, then you want GregorR < 1175510120 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i c < 1175510125 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :but i got to go ; < 1175510592 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :gonna go zzz, night all < 1175510631 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nn < 1175510733 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"yays for stack-based thingies!" < 1175510871 0 :calamari!unknown@unknown.invalid QUIT :Remote closed the connection < 1175511081 0 :evilC!n=clive_gi@ip-58-28-157-60.ubs-dsl.xnet.co.nz JOIN :#esoteric < 1175511115 0 :evilC!unknown@unknown.invalid PART #esoteric :? < 1175515221 0 :jix!n=jix@dyndsl-091-096-051-178.ewe-ip-backbone.de JOIN :#esoteric < 1175517358 0 :dog4!n=dog4@xdsl-81-173-230-144.netcologne.de JOIN :#esoteric < 1175519944 0 :nazgjunk!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1175520172 0 :RodgerTheGreat!n=Rodger@wads-5-232-13.resnet.mtu.edu JOIN :#esoteric < 1175520180 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi guys < 1175520769 0 :jix!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1175520833 0 :jix!n=jix@dyndsl-091-096-051-178.ewe-ip-backbone.de JOIN :#esoteric < 1175527955 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :juju < 1175527965 0 :_filippo_!n=pippo@host135-3-dynamic.6-87-r.retail.telecomitalia.it JOIN :#esoteric < 1175527967 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i've got my raytracer in sadol working < 1175527969 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1175528227 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/419385 :D < 1175528254 0 :dog4!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1175528379 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :make graphics output < 1175528414 0 :_filippo_!unknown@unknown.invalid PART #esoteric :? < 1175528526 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: echo "2" | BDSM2 raytracer.sad > output.ppm < 1175528544 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :and then open the pm file with some graphic viewer < 1175528549 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah okily < 1175528553 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not now though < 1175528557 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm gonna study! < 1175528565 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i had an exam today, but i slept over it < 1175528566 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :good luck < 1175528581 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have one tomorrow as well, hope i have better luck with the alarm < 1175528610 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric ::} < 1175528620 0 :crathman!n=chatzill@216.140.54.104 JOIN :#esoteric < 1175528625 0 :crathman!unknown@unknown.invalid QUIT :Client Quit < 1175530494 0 :crathman!n=chatzill@209.11.151.115 JOIN :#esoteric < 1175541006 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1175543897 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Changes for Plof2: 1) Ability to call arrays of functions for overloading, 2) null operator for object combination, 3) Remove ternary comparison and re-add builtin if et cetera, 4) Change return rules: If a value returned from a thin function is actually used (e.g. on the right side of an assignment), it does not continue to fall through. This will allow if() and pals to be used in both the imperative sense and the functional sense. < 1175544492 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I see that you're all endlessly fascinated :-P < 1175544869 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1175544886 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think the return thing works but STILL i don't like it < 1175544927 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i find it quite unintuitive it checks whether it's used for something < 1175545006 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So do I :( < 1175545008 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :still can't find any problem with it < 1175545010 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :though < 1175545016 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to find a nice middle ground, but can't *sigh* < 1175545017 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1175545025 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So I'm going for a good-enough middle ground ;) < 1175545048 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm pretty sure some kind of quoting might help, but i'm having a hard time grasping the concept fully even < 1175545060 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since that's rarely an issue with languages :) < 1175545100 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Basically, here's what it would mean: < 1175545130 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :var foo = :{ if(:{1 == 1}, {return(3);}, else, {return(4);}); }; // returns 3 < 1175545141 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :var foo = :{ var a = if(:{1 == 1}, {return(3);}, else, {return(4);}); }; // sets a to 3 < 1175545186 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whose a? < 1175545258 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :var foo's level's a of foo's a? < 1175545294 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :will foo become something like struct{int a(==3);} < 1175545300 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1175545430 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the "else" thing is quite confusing imo :) < 1175545496 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but so... hmm, why does the second one have :{ in the beginning? < 1175545563 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :":{" means ":{expression without ; and implicit return }" and "{" means "{ expression; expression; etc.; insert return issue here; }" ? < 1175545567 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reappears. < 1175545619 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric ::{ is a thick function, a function that the return will conclude at. A { is a thin function. I may be able to remove this distinction with my latest change, or not :) < 1175545640 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And because I said "var a", I was declaring an a at that scope, so it sets that a. Not very useful :) < 1175545676 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah, so foo will become nothing in the latter? < 1175545683 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because you don't return anything < 1175545686 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1175545691 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's a contrived example :P < 1175545789 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1175545824 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The thin/thick functions is a concept which helped make returning less ridiculous, but didn't necessarily make it less confusing >_> < 1175545827 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm still working on it :P < 1175545844 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :var foo = if(:{1==1}, :{return "1 equals 1!";}, {return "the whole function failed"}); < 1175545846 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1175545855 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :couldn't thick/thin fix the if problem < 1175545861 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like that i mean ^^^^^^^^^^^^ < 1175545875 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The problem is, if is going to be calling those functions. < 1175545890 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So the return value will go to 'if'. < 1175545891 0 :helios24_!i=helios@gaia.quasar-net.de JOIN :#esoteric < 1175545909 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Not (in your example) to foo. < 1175545932 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's what the whole problem with returns was :) < 1175545977 0 :helios24!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1175545984 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, obviously... this is too hard for me, i should think about this quite a lot to even be of help at brainstorming :) < 1175546007 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh, "::{" < 1175546009 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I hate how, no matter what concept of programming you follow, there's always a nasty corner :P < 1175546124 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :: == evaluate at upper level -> :{ would be a normal return given to an "if"... since it would do an expression level return, while a ::{ function would evaluate at the function's level the if is claled at < 1175546138 0 :helios24_!unknown@unknown.invalid NICK :helios24 < 1175546143 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1175546151 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's totally legitimate to pass in functions that you didn't write in right there. < 1175546159 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So where the bork would they return to :) < 1175546192 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, they obviously wouldn't be upperlevelized with : < 1175546221 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1175546223 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1175546869 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Welcome to my hell ;) < 1175546978 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... you could like... use a bunch of different concepts... perhaps thwarting nasty corners where they breed. < 1175547055 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The nasty corner comes from the merging of two concepts :-P < 1175547060 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Namely functional and imperative. < 1175547091 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Or rather, "every-block-is-a-function" and imperative programming. < 1175547730 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i do quite the same thing with oklotalk actually, but i do everything functionally, just let functions modify upper level variables < 1175547786 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure what i do differently, but there are no problems.... might just be the fact i've not thought that much about that side of the language :P < 1175547803 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1175548413 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1175548684 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: how's your learning? < 1175548717 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh the studying... i browsed through the first 50 pages or so :D < 1175548724 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :;p < 1175548729 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :run teh raytracer < 1175548737 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... maybe i should < 1175548803 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :echo "10" | BDSM2 raytracer.sad > test.ppm < 1175548814 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it will output 1200x900 image < 1175548835 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1175548858 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That interpreter name makes my brain bleed. < 1175548863 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :D: < 1175548867 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :it's cool < 1175548868 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :1. relink it, i've lost the page, 2. i assume i write that on this channel, specify where otherwise :) < 1175548891 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :i'm porting it to SymbianOS 9 < 1175548905 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you run it in bash < 1175548951 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i thought so < 1175548956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i don't have bash < 1175549134 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :pitty -.- < 1175549164 0 :jix__!n=jix@dyndsl-091-096-044-220.ewe-ip-backbone.de JOIN :#esoteric < 1175549216 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: i could name the interpreter "CSI - Cool Sadol Interpreter" but it wouldn't be such funny < 1175549245 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nooga no windows way to do it? :P < 1175549266 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1175549282 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :BDSM2 ray.sad > test.ppm < 1175549296 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :and then input some number from 1 to 10 < 1175549301 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :and press enter < 1175549306 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :and wait < 1175549307 0 :crathman!unknown@unknown.invalid QUIT :"Chatzilla 0.9.77 [Firefox 2.0.0.3/2007030919]" < 1175549322 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :and open test.ppm in irfanview or such thingy < 1175549376 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the link? < 1175549382 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you have it somewhere? < 1175549432 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/419385 < 1175549553 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm so... bdsm2.exe takes for 1. argument the source and for second argument the arguments for the sadol program? < 1175549676 0 :jix!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1175550532 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: what about nested thick/thin function < 1175550538 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's not very pretty < 1175552326 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :but it is esoteric! < 1175552340 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :call them "function" and "block"? < 1175552884 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :dynamic and lexical scope. < 1175552921 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :function = lexical block = dynamical < 1175553189 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1175553270 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :you would use blocks as loops and conditions and all that jazz... and functions would be your... well... functions. < 1175553320 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :maybe you could make functions into thin sugar around blocks < 1175553371 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :blocks would need a stack anyway, I suspect, so you could just say that a function is a variable containing a block with a little invisible code in it or something. < 1175553393 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :in haskell, a function is just an expression with arguments, after all... < 1175553395 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :they could always just be... separate entities entirely... :) :) :) < 1175553462 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :I always find things work strangely when you attempt to de-primitify your primitives. < 1175553524 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Alright... so an integer is an object... so what part of the object gives it its value? What gives a string object its value? ...no one seems to know. :P < 1175553582 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean 'what part'? < 1175553599 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :...nothing specific. < 1175553605 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand < 1175553611 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :integers are objects, clearly < 1175553618 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :...just... a part... with all the vagueness entailed. < 1175553629 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, you have special egofield for that, .__value__= < 1175553630 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure if integers have any 'parts' to speak of < 1175553648 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1175553688 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... so would the __value__ of 5 be? 5? hehe... makes sense in a strange way. < 1175553691 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :THE VALUE OF SAM IS SAM < 1175553700 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, CakeProphet_, i don't see why you'd have to know the field, an object hides it's value, integer hiding it's value is essentially that value < 1175553720 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :INCREMENT CakeProphet_ BY CakeProphet_ GIVING TOQO < 1175553764 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :mostly that question arises when I subclass an integer... when your working in the integers enternals there's nothing directly accessible that gives 5 its 5ness. < 1175553802 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :well < 1175553815 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's just a matter of representing your integers nicely. < 1175553830 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :the whole "everything is an object" notion is infinitely recursive... you have objects consisting of objects.... the tree needs leaves at some point. < 1175553839 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1175553841 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the problem is that preferred representations in math care about operations more than about objects themselves < 1175553864 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :"Integers are a set (of featureless objects, that is) that behaves in a certain way under certain operations)" < 1175553877 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :however, you can define them in different ways, for example peano arithmetic < 1175553881 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :then it's easy < 1175553895 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you have a magical singleton object zero < 1175553898 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_ what's wrong with infinite recursions? < 1175553905 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and then you have objects with field 'pred' < 1175553913 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :...it would make more sense to me to simply have an unexplained axiom... the integer... the string... there's nothing more under the hood to know. < 1175553917 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just a conceptual recursion and does not do any harm < 1175553918 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and if your objects pred is zero, then you know the object is one < 1175553979 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :haha... that's pretty cool. < 1175553981 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but in most cases, math treats integers as labeled "points" with no content < 1175554049 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :two integers are distinguishable if their labels are different < 1175554063 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you can't say anything more than that unless you define operations on the integers < 1175554078 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :there's nothing wrong with a conceptual recursion... in msot cases. It really doesn't harm anything... it just seems silly to confuse everything with the notion that everything needs an underlying explaination. < 1175554121 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_: "needs an underlying explanation" is different from "consists of parts" < 1175554186 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i think it's pretty silly for integers to have "properties", certainly < 1175554316 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :consisting of parts amounts to an explaination... What's a bench? Wood and metal.. What's wood? Cellulose. What's Cellulose? (C6H10O5)n. What's Carbon? 6 electrons. What's an electron? < 1175554341 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :electrons, however, don't consist of parts < 1175554353 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :we can still "explain" them by detailing their behavior < 1175554417 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :derailing from computer science... this would get into notions of identity, THE LEAVES OF THE REALITY GRAPH, and human cognition. -wiggles his philosophers hat pre-emptively- < 1175554569 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :fortunately integers are not 'real' in any way :) < 1175554584 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :PUN NOT INTENDED AND I SHALL SMITE YOU IF YOU MAKE IT < 1175554720 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lament: ACTUALLY INTEGERS ARE REALS, THEY'RE A SUBSET OF REALS < 1175554744 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waits < 1175554893 0 :ChanServ!unknown@unknown.invalid MODE #esoteric :+o lament < 1175554897 0 :oklopol!n=villsalo@194.251.102.88 JOIN :#esoteric < 1175554901 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1175554903 0 :lament!unknown@unknown.invalid MODE #esoteric :-o lament < 1175554915 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sorry :< < 1175554926 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i couldn't resist < 1175554946 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :HMMM, NO < 1175554948 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :THAT'S A GOOD POINT < 1175554962 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm... Let's turn OO on its head. < 1175554978 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :and now stuff is defined by what its a part of. < 1175554978 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can't we do that tomorrow? :| < 1175554989 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_: hmmm < 1175554994 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_: that's Prolog i think < 1175555002 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_: the "is a" relationship :) < 1175555009 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh, i guess that's different < 1175555017 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :well.... is a is something like... a type check < 1175555037 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is just having a little thought experiment here. < 1175555039 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :object a contains fields foo and bar < 1175555046 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :fields foo and bar are contained in object a < 1175555049 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's the same thing... < 1175555119 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :ah... hmmm... but what is a? < 1175555145 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :a is a part of the universe. < 1175555187 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... same thing essentially... just... backwards. HMMMM HOW SURPISING < 1175555193 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :THAT SOMETHING REVERSED IS THE SAME THING REVERSED. < 1175555264 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :let's close the loop while we're at it. < 1175555275 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :The universe is a part of an integer :) < 1175555326 0 :helios24!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555326 0 :calamari!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555326 0 :Sukoshi!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555326 0 :GregorR!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555327 0 :sekhmet!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555327 0 :SimonRC!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555327 0 :ShadowHntr!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555328 0 :bsmnt_bot!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555328 0 :tokigun!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555328 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555328 0 :nazgjunk!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555328 0 :CakeProphet_!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555328 0 :gg_!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555330 0 :Sgeo!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555330 0 :lament!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555331 0 :puzzlet!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555331 0 :sp3tt!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555331 0 :wooby!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555331 0 :Izzy7!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555332 0 :cmeme!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555332 0 :meatmanek!unknown@unknown.invalid QUIT :zelazny.freenode.net irc.freenode.net < 1175555350 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1175555350 0 :lament!n=lament@S010600110999ad06.vc.shawcable.net JOIN :#esoteric < 1175555350 0 :puzzlet!n=puzzlet@122.46.198.22 JOIN :#esoteric < 1175555350 0 :sp3tt!n=sp3tt@80-162.cust.umeaenergi.com JOIN :#esoteric < 1175555356 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1175555356 0 :Sukoshi!n=user@user-11faauk.dsl.mindspring.com JOIN :#esoteric < 1175555356 0 :GregorR!n=GregorR@c-24-22-56-63.hsd1.mn.comcast.net JOIN :#esoteric < 1175555356 0 :sekhmet!n=pez@76.201.145.21 JOIN :#esoteric < 1175555356 0 :SimonRC!n=sc@bylands.dur.ac.uk JOIN :#esoteric < 1175555363 0 :helios24!i=helios@gaia.quasar-net.de JOIN :#esoteric < 1175555366 0 :wooby!n=alan@cpe-66-67-60-51.rochester.res.rr.com JOIN :#esoteric < 1175555366 0 :Izzy7!i=senji@cleopatra.thy.me.uk JOIN :#esoteric < 1175555366 0 :cmeme!n=cmeme@boa.b9.com JOIN :#esoteric < 1175555366 0 :meatmanek!n=meatmane@cpe-65-29-79-179.indy.res.rr.com JOIN :#esoteric < 1175555369 0 :dog4!n=dog4@xdsl-81-173-169-44.netcologne.de JOIN :#esoteric < 1175555369 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1175555369 0 :bsmnt_bot!i=gavin@abacus.kwzs.be JOIN :#esoteric < 1175555369 0 :tokigun!n=tokigun@haje8.kaist.ac.kr JOIN :#esoteric < 1175555402 0 :RodgerTheGreat!n=Rodger@wads-5-232-13.resnet.mtu.edu JOIN :#esoteric < 1175555402 0 :nazgjunk!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1175555402 0 :CakeProphet_!n=CakeProp@h84.240.213.151.ip.alltel.net JOIN :#esoteric < 1175555402 0 :gg_!n=gg@71.237.177.112 JOIN :#esoteric < 1175555424 0 :dog4!unknown@unknown.invalid PART #esoteric :? < 1175555487 0 :wooby!unknown@unknown.invalid QUIT : < 1175555639 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes. < 1175555826 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :to see the world in a grain of sand < 1175555830 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and heaven in a wild flower < 1175555837 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hold infinity in the palm of your hand < 1175555842 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and eternity in an hour < 1175555857 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i never realized that poem was about OOP. < 1175555967 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand it < 1175556074 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh i do, now that i think about it < 1175556076 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh :) < 1175556193 0 :CakeProphet_!unknown@unknown.invalid PRIVMSG #esoteric :.....I just think this is incredible. http://en.wikipedia.org/wiki/Attosecond < 1175556500 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has a hard time keeping up with all this intellectualism < 1175556520 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet_: what's incredible? < 1175557674 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :1 attosecond is the amount of time it takes for light to travel the length of three hydrogen atoms < 1175557678 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :O.o < 1175557832 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :theoretical physics is funny