< 1185062439 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :OMG, i actually compiled a hello world! :D < 1185062542 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: "What I tell you three times is true." < 1185062560 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: if you say so. < 1185062571 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :...three times < 1185062574 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that did not fit the current context, however. < 1185062589 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it did if you applied my joke. < 1185062627 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :... in the original form < 1185062635 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :did I show you people the weird language+IDE with the thermonuclear copy+paste? < 1185062639 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :what was it called? < 1185062765 0 :jix!unknown@unknown.invalid QUIT :Nick collision from services. < 1185062779 0 :jix!n=jix@dyndsl-080-228-180-134.ewe-ip-backbone.de JOIN :#esoteric < 1185062869 0 :jix!unknown@unknown.invalid QUIT :Client Quit < 1185063025 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hey, i could actually write a loop :D < 1185063027 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :no fibonacci. < 1185063029 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*now < 1185063049 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :...perhaps printing numbers first < 1185063060 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :how could you make a bloom-filter-like structure, but with no false positives possible, only false negatives? < 1185063117 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :store the complement set? < 1185063142 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :too large, not possible < 1185063200 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :define "bloom filter" < 1185063211 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ic. well iirc this is the first time i hear about them. < 1185063223 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: awaken and read your PMs! < 1185063223 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: wikipedia < 1185063274 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1185063303 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i would paste the link if i hadn't already closed the window < 1185064154 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Bloom_filter < 1185064186 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: reverse the definitions of "positive" and "negative"? :-P < 1185064287 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I guess that's what the complement is doing. < 1185064310 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1185064323 0 :ehird`!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1185064407 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hrm < 1185064494 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :zzzzzz < 1185065118 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :announce/reply, and if something gets caught in a reply, it needs to refactor itself... < 1185065137 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...of course? < 1185065155 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1185065225 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :First, announce it. If you get a reply, do it refactoredly. If you don't, do it normally. < 1185065237 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :(Wow, spellcheck accepts "refactoredly" but not "okay".) < 1185065237 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklobot: No it's not. < 1185065247 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You do now how emulators tend to work, right? < 1185065298 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1185065301 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's just a conversion < 1185065302 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :? < 1185065314 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i do not *know* < 1185065317 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i may guess right. < 1185065360 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: i recommend you use one of *my* nicks, not my bot's ;=) < 1185065395 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i guess i should've given the bot a more inventive name < 1185065395 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, my intuition is now reverting to the non-monadic. < 1185065418 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: how many of you are there, exactly? < 1185065426 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And how many of you are bots? < 1185065449 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :o < 1185065450 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :o < 1185065459 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ololobot and oklobot are bots. < 1185065467 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Where'd oklokok go? < 1185065476 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :he's rarely seen :) < 1185065535 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: i know what emulators do, but no, i've never read an emulator's source < 1185065673 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklobot: No, because of all these names, I don't care *what* tab-complete gives me :P < 1185065683 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Make a Chip8 emulator for very basic practice. < 1185065741 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i found a dead mouse! < 1185065951 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: should that be done by converting from instruction set to another or via interpretation of some sort? < 1185065959 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i've never made an emulator < 1185065969 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :nor know how you actually go about doing them < 1185066706 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You read each opcode from the rom file, and then you have to emulate the changes to a machine of those specs. < 1185066715 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :So it's interpretation. < 1185066797 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you consider writing that in asm very basic practice? :) < 1185066801 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185066814 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you mean using a language i know already < 1185066817 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1185066823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that shouldn't be too hard < 1185066887 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Writing in C. < 1185066892 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION notes that he is the only nick on o which doesn't belong to oklopol. Scary stuff. < 1185066899 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You use ASM to optimize often-called routines. < 1185066919 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: have you done that? < 1185066940 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :/nick ohipe < 1185066946 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklobot: Chip8 ? < 1185066947 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you need sound output and all... i can't say i know how to do that. < 1185066949 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in C < 1185066957 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Read over the SDL docs. < 1185066960 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i can use sdl for images < 1185066963 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and yeah < 1185066967 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :indeed, sounds too < 1185066985 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: how much more complex is nes? < 1185067001 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklobot: Not *that* bad, but still. < 1185067013 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :would be nicer if i actually had a decent c compiler < 1185067021 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :... What OS do you run ... ? < 1185067024 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm using a 20-year-old microsoft one < 1185067026 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :gcc works fine. < 1185067028 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :win < 1185067036 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :gcc works on your toaster, man. < 1185067042 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1185067047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kay, i'll dl it < 1185067086 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm a decent c coder, but i'm definately not a good c compiler installer < 1185067090 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so this might take a while, < 1185067151 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Grabbing a GCC binary shouldn't be too hard. < 1185067182 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it shouldn't, i admit that. < 1185067190 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :http://gcc.gnu.org/ < 1185067196 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what i see here is random text. < 1185067197 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1185067209 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'll search... perhaps i'll find someday. < 1185067227 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :http://gcc.gnu.org/install/binaries.html < 1185067231 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :this looks better < 1185067236 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'll click on a blue button. < 1185067251 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION watches oklofok explode. < 1185067292 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :did it! < 1185067300 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION dances a bit < 1185067410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :argh then an installation of sdl < 1185067414 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i need a secretary < 1185067551 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't two bots be enough? :D < 1185067565 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>> install sdl < 1185067570 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1185067583 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i guess i could extend that. < 1185067634 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>> install sdl < 1185067635 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :sdl succesfully installed. < 1185067652 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is a helluva coder < 1185067656 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :APT-GET INSTALL GCC < 1185067675 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185067793 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :still installing... must be a great program. < 1185067816 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, oklopol, and ololobot? < 1185067825 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: ? < 1185067861 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: my theory is he is trying to crowd out the letter o to get rid of me. < 1185067882 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or even worse, to steal my nick! < 1185067893 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you guessed correctly, actually both < 1185067909 0 :bsmntbombdood!unknown@unknown.invalid NICK :obsmntbombdood < 1185067937 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If you don't have APT, then mdo apt-get install apt < 1185067945 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i've also been oklopok at some point < 1185067958 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and also oklodok when i made an irc client < 1185068004 0 :obsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what is an oklopol, anyway? < 1185068052 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a substance with a very bitter after taste < 1185068111 0 :obsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Käyttäjäryhmä: Peruskäyttäjä? < 1185068119 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :8| < 1185068126 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :user group, basic user < 1185068131 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's finnish < 1185068140 0 :obsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i can has polylingual too? < 1185068158 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err... seven? < 1185068189 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't want to sound as stupid as i am, but how do i compile with cygwin? < 1185068227 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :obsmntbombdood: where did you find those words? < 1185068251 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1185068253 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :google < 1185068266 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :didn't know i'm a user somewhere < 1185068314 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and god i was frightened when you pasted that. < 1185068330 0 :obsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1185068338 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i do that sometimes < 1185068381 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i thought i was seeing the words wrong < 1185068385 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nothing serious < 1185068392 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Do you have gcc installed in Cygwin? < 1185068401 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err... < 1185068411 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps i'll show you which button i pushed,. < 1185068418 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185068421 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd say no, actually < 1185068435 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Use the Cygwin installer to install gcc. < 1185068451 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :See if you can get it to install all build-essential packages, actually. . . < 1185068469 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay... < 1185068476 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which command is that? :) < 1185068492 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The GUI installer. . . < 1185068496 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :cygwin-setup.exe < 1185068543 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i... don't have that < 1185068561 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :looks like a windows-ed bash < 1185068570 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cygwin.exe < 1185068680 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :here, you see, i pressed "The Cygwin Project": http://gcc.gnu.org/install/binaries.html < 1185068691 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and i downloaded it and run cygwin.exe < 1185068982 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*ran < 1185068997 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :...thank you. < 1185069006 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yw < 1185069385 0 :obsmntbombdood!unknown@unknown.invalid NICK :bsmntbombdood < 1185069441 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You download the Cygwin installer and do it. < 1185069457 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :on windows! < 1185069494 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185069503 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood's way sounded doable, i'll try that < 1185069511 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but then i can't use my laptop :< < 1185069575 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Is this your first ever experience with Windows, by the way? < 1185069585 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: no. < 1185069592 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've been using it for >13 years :) < 1185069601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, dos at first < 1185069602 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Then how come you don't know how to install a C compiler?! < 1185069621 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1185069633 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know < 1185069643 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :.... :P < 1185069654 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :If you use Windows, then you'll have to write somewhat different ASM from me. < 1185069659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm really bad at software stuff unless i know exactly what to do. < 1185069665 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll use ubuntu. < 1185069683 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because the install could actually be done < 1185069707 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I used to be really big into sysadminning too, but nowadays it's getting annoying. < 1185069718 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I want to just program and not care about my system's idiotic hick-ups. < 1185069737 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's always been my logic < 1185069739 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Still, I do like compiling most things, and I run Slack on this box. I may be getting a new box soon, and if I do, it'll run Gentoo. < 1185069781 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :gentoo is a linux distro, i have no idea about slack < 1185069793 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, let's check whether i can actually *use* gcc < 1185069803 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Slack == Slackware. < 1185069879 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the problem with the installation was that i just couldn't find any other "cygwin installer" than cygwin.exe, which was bash for windows. < 1185069889 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :..... < 1185069907 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and no, i do not know whether it's supposed to be bash for windows :) < 1185069926 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, it's all right now, i've got it < 1185069928 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You seriously have never used C in Windows before? < 1185069954 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i have some 100 programs < 1185069989 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(made) < 1185070009 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :does that mean i have to have heard of cygwin? < 1185070082 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well, I'm assuming if you use Windows on a day-to-day basis, you have heard of the utilities necessary to live in a dev environment in it. < 1185070101 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've used microsoft visual c++ 6 < 1185070106 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :...... < 1185070112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1185070123 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is why i haven't been doing c++ for a while. < 1185070135 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Emacs + GCC == Win. < 1185070140 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Emacs + JVM == Win. < 1185070150 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Emacs + Slime + SBCL/CLISP == Win. < 1185070154 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Win == Lose. ? < 1185070157 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Emacs + * == Win. < 1185070158 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :no < 1185070176 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as an lvalue it means windows. < 1185070178 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Win(Emacs, X). X=* < 1185070195 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's Japanese time. Have fun mah dev friends. < 1185070215 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :gcc test.c will not compile :P < 1185070217 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1185070219 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1185070230 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll be trying to install this for the next 24 hours, most likely. < 1185070235 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, get it working < 1185070285 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ville@ville-desktop:~/cstuff$ dir < 1185070286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :test.c < 1185070286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ville@ville-desktop:~/cstuff$ gcc test.c < 1185070286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :/usr/bin/ld: crt1.o: No such file: No such file or directory < 1185070286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :collect2: ld returned 1 exit status < 1185070290 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :once again my intuition fails. < 1185070337 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if someone wants to tell me how to use that, be my guest < 1185070393 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :``gcc -o test test.c'', assuming you're using things like stdio.h < 1185070397 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well, Japanese time. < 1185070451 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ville@ville-desktop:~/cstuff$ gcc -o test test.c < 1185070451 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :/usr/bin/ld: crt1.o: No such file: No such file or directory < 1185070451 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :collect2: ld returned 1 exit status < 1185070467 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :have fun @ your japans. < 1185070614 0 :immibis!n=IceChat7@125-238-33-245.broadband-telecom.global-gateway.net.nz JOIN :#esoteric < 1185070987 0 :GreaseMonkey!n=saru@222-154-141-161.jetstream.xtra.co.nz JOIN :#esoteric < 1185071945 0 :GregorR-L!n=gregor@c-76-27-232-8.hsd1.or.comcast.net JOIN :#esoteric < 1185072383 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Why is it asking for crt1.o? < 1185072389 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :What's it linking against? < 1185072416 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've done apt-get and written what you told me to < 1185072425 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know that crt1.o is < 1185072431 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Wait. In Windows? < 1185072437 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no < 1185072438 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in ubuntu < 1185072451 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :What's the contents of test.c ? < 1185072455 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: It should be linking against libc and GCC's support library. . . < 1185072455 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :empty < 1185072462 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :oklobot: You're missing either libc-devel or libgcc-devel < 1185072479 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just give me the necessary lines :) < 1185072482 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well, crt1.o is part of libc, IIRC. < 1185072494 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: .... < 1185072495 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Odd. I don't *have* crt1.o < 1185072498 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: I've seen it put into all sorts of strange packages :P < 1185072507 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: But yeah, it comes with glibc < 1185072507 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh. I located for crt1.so. XD < 1185072513 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Learn to use your computer at least *somewhat* please? < 1185072535 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know enough, usually. < 1185072536 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :In Ubuntu, there was a specific apt-get you use to get this stuff, but I forget what it was. < 1185072541 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :oklobot: Just run your favorite GUI package manager and you won't have to do any nasty typing that hurts boo-hoo < 1185072547 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :apt-get build-essential < 1185072551 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Err. < 1185072553 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :There we are. < 1185072553 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i already typed the boo-hoo < 1185072554 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :apt-get install build-essential < 1185072560 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :will a graphical one do it better? < 1185072569 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll install that huh? < 1185072584 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah; that provides a full build environment in *buntu. < 1185072598 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: memorizing package names isn't really learning to use a computer < 1185072617 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i'll read if you give me a computer tutorial :) < 1185072624 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :try 'apt-get upgrade libc-devel' < 1185072630 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, build-essential does not work. < 1185072635 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whoops < 1185072638 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :not sure if the command is upgrade, though, it might be something else < 1185072675 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :apt-get update iirc < 1185072684 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i never recall correctly. < 1185072691 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :isn't update for updating the list of available packages? < 1185072698 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1185072700 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :apt-get upgrade PACKAGENAME < 1185072705 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :or install if you don't have it < 1185072705 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see < 1185072719 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1185072722 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklobot: Then learn to use Google? :P < 1185072724 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i installed gcc an hour ago. < 1185072733 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :you didn't have gcc? < 1185072736 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :apt-get build-essentials ? < 1185072738 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: i know how to use it, that doesn't help. < 1185072739 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :how can anyone survive without gcc? < 1185072745 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :immibis: Magic. < 1185072752 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :See. I don't understand how he lives without gcc. < 1185072769 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't use this computer for programming < 1185072769 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I use Gentoo. . . You can't even *install* anything without gcc. < 1185072778 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is gcc? < 1185072782 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :oops wrong channel < 1185072783 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and the windows machine has visual c++ 6, as i said :) < 1185072785 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :i was testing toboge < 1185072789 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GNU Compiler Collection. < 1185072793 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1185072801 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :immibis: hah, that is what you want us to think < 1185072807 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :i knew that < 1185072814 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Eeeew. < 1185072821 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Meh. I have dev environments on all the machines I access. < 1185072821 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is gcc? < 1185072830 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :oops toboge isn't on this channel < 1185072832 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what the fuck, it actually worked. < 1185072835 0 :toBogE!n=toBogE@125-238-33-245.broadband-telecom.global-gateway.net.nz JOIN :#esoteric < 1185072839 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is gcc? < 1185072839 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :gcc is a necessity of life < 1185072839 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :thanks all, i'll do some programming now < 1185072857 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :see, it IS a necessity of life < 1185072857 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: gcc is a much nicer compiler, IMO. . . < 1185072871 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :and? visual c++ 6 has an ide. < 1185072899 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: (06:53:25 PM) ---: Ah - well you can tell him his work received props < 1185072907 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION couldn't live without constructs like (int []){1, 2, 3}; or case '0'...'9' < 1185072907 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: [re your avatar] < 1185072915 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :immibis: I'm no IDE man. ;) < 1185072918 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1185072990 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: You can do some really, really evil stuff if you just assume GNU C. < 1185073016 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :thanks, GregorR-L < 1185073032 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: i don't know what gnu is :) < 1185073037 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :gnu's not unix. < 1185073039 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i assume it's a company < 1185073045 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :toboge, gnu is not unix < 1185073047 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is gnu? < 1185073048 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :gnu is not unix < 1185073065 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :oklobot: Ow. < 1185073065 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :toboge, everything is dark right now < 1185073069 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: GNU is an operating system and a project around making that operating system. < 1185073072 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what is everything? < 1185073072 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :everything is dark right now < 1185073072 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Erm < 1185073088 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: interesting. < 1185073115 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You are currently using a large part of that operating system. . . It's properly called GNU/Linux in most people's case. < 1185073132 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :toboge, is gnu not unix? < 1185073142 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The GNU project has written things like GCC, bash, libc, etc. < 1185073145 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :it does not do natural language parsing, ihope < 1185073158 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :i programmed it with a regex to understand 'toboge, X is Y' and similiar things. < 1185073166 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :also it understands 'what is X?' < 1185073167 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :immibis: add that next, then. < 1185073174 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :what is gnu? < 1185073174 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :gnu is not unix < 1185073182 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :isn't natural language parsing supposed to be impossible? < 1185073187 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is ihope? < 1185073187 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :ihope is a user on IRC. See Ihope127. < 1185073193 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :immibis: Not really. < 1185073194 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Supposed to be? < 1185073200 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shrugs < 1185073201 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Really hard, maybe... < 1185073209 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Lojban parsing is trivial. < 1185073216 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!regex who-is [wW][hH][oO] [iI][sS] ([^ ]*)? replace ?$1 < 1185073219 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :who is ihope? < 1185073220 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185073220 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid ihope? < 1185073227 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!delregex who-is < 1185073230 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185073232 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!regex who-is [wW][hH][oO] [iI][sS] ([^ ]*)\? replace ?$1 < 1185073234 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185073235 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :who is ihope? < 1185073236 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :ihope is a user on IRC. See Ihope127. < 1185073240 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :who is Ihope127? < 1185073241 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid Ihope127 < 1185073248 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :toboge, Ihope127 is >ihope. < 1185073253 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :who is Ihope127? < 1185073253 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid Ihope127 < 1185073258 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :toboge, Ihope127 is >ihope < 1185073260 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :who is Ihope127? < 1185073260 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Ihope127->ihope < 1185073260 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :ihope is a user on IRC. See Ihope127. < 1185073264 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :!daemon bf regex +[,] < 1185073264 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon < 1185073264 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :finally < 1185073266 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185073266 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Bot spam. Yet again :P < 1185073267 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :!daemon bf delregex +[,] < 1185073267 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon < 1185073270 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185073283 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!daemon regex bf +[,] < 1185073284 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon < 1185073286 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!daemon delregex bf +[,] < 1185073286 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon < 1185073288 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Dankon. < 1185073303 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!regex THIS SHOULD BE IGNORED BY EGOBOT replace yes, it should. < 1185073303 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :having had linux for a few months, how do i *run* a program after compiling it? :) < 1185073303 0 :EgoBot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1185073313 0 :EgoBot!n=EgoBot@c-76-27-232-8.hsd1.or.comcast.net JOIN :#esoteric < 1185073316 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: What was the argument to -o? < 1185073318 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or am i getting kickbanned for noobity soon? < 1185073323 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: huh? < 1185073330 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :in a terminal: go to where it is, chmod +x PROGRAM_NAME then ./PROGRAM_NAME < 1185073331 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185073331 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"gcc -o foo foo.c" < 1185073335 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :where PROGRAM_NAME is the output < 1185073336 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :test < 1185073339 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :by default it is a.out < 1185073340 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :./foo < 1185073346 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know what the file is named... < 1185073349 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :immibis: No need. gcc does +x by default. < 1185073354 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :oh, ok < 1185073356 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :./ name? < 1185073359 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay. < 1185073360 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :no space < 1185073361 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1185073365 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklobot: ``man gcc'' < 1185073366 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Since it's in your current directory. < 1185073370 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Reading, it's what you do ;) < 1185073389 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :i haven't used linux for ages because the only linux computer i have has a 4GB hard drive, 64MB of ram, runs ubuntu linux 5, and takes about 10mins to start. < 1185073411 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: i don't wanna learn anything anymore, i have a working c compiler :) < 1185073412 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Then uh, get a better Linux machine? :P < 1185073417 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklobot: .... < 1185073423 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :\o/ < 1185073426 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: ? < 1185073442 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :oklobot: ``man gcc" < 1185073444 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Learning isn't neccesarily a bad thing :P < 1185073448 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what does oklobot do? < 1185073453 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is oklobot? < 1185073454 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid oklobot < 1185073455 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why learn more about gcc than compiling? < 1185073485 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :So you can optimize, make it unroll loops for you, profile, enable GDB symbols, do advanced linking, inline assembly, make C99 compatible, etc. ? < 1185073487 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll check what it optimizes if i make something big. < 1185073490 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :don't see what else < 1185073506 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :who is oklobot? < 1185073506 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :oklobot is oklobot!n=oklobot@194.251.101.183, a user on irc.freenode.net < 1185073510 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Learn about the GNU C extensions? < 1185073514 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :those are things i can quickly check if i need them. < 1185073517 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :who is ololobot? < 1185073517 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :ololobot is ololobot!n=ololobot@194.251.101.183, a user on irc.freenode.net < 1185073526 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :And also so that you can be a learned person? < 1185073533 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Who values learning and knowledge and employs it in practice? < 1185073541 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :and why do you have so many nicks from the same ip - freenode has a maximum number of simultaneous connections from the same ip. < 1185073563 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: everyone know so much more about unix i might as well just stay noob. < 1185073566 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*knows < 1185073580 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Lots of people know about Electrics and CS, doesen't stop me from wanting to know myself ;) < 1185073591 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :learning about a random program isn't interesting to me < 1185073604 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i guess in the same sense that learning a random sequence of numbers is < 1185073612 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Replace unix with anything else (like "living outside of mom's basement"), and you'll see the uselessness of your argument. < 1185073623 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but why learn the same random sequence everyone else is memorizing < 1185073630 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :BTW, you don't have to go at it in one go. . . < 1185073638 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's not random because you'll be using your tools on a regular basis. Ever heard the saying ``Know your tools and they will work wonders for you'' ? < 1185073644 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I find the best way to learn UNIX is to just use it. < 1185073666 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: i doubt my mom's basement is the only thing i know a lot about :) < 1185073675 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if that's what you meant < 1185073680 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(for me, "using it" involves toying once in a while with features I don't know about, just for the sake of it) < 1185073707 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: No, I'm just saying that that argument, applied to its logical conclusion, will live you right there. < 1185073722 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/live/leave/ < 1185073728 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, okay, it was a bad argument < 1185073761 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, of course i'd know a lot about linux if i'd wanted to learn about it sometime < 1185073769 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i've never wanted < 1185073782 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Why though? I know a lot about Windows too. < 1185073790 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :me too. < 1185073804 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because i've been interested < 1185073839 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I know what benefits me every day. I know basic shell scripting, because I use it to automate tasks. I know a lot of ZSH-foo because I use ZSH. *Sure* I could use Linux like a dumb user but then, what makes you unique in that? < 1185073858 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Be the best at what you do, I say. And being the best involves knowing how to do things better than other people. < 1185073886 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps someday i'll understand what's good in this os and read about it. < 1185073899 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sofar i've seen slight enhancing of windows < 1185073910 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Understanding what's good is hard to do without *learning* it. < 1185073927 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You don't care hackability, customizability, security, etc. ? < 1185073930 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :*about < 1185073945 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, but hey, i'm not gonna need your help anymore, please let me do what i *am* interested in, and code, kay? :) < 1185073961 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The UI layer is easy to do that with. With other layers, it's hard to understand what's better. . . < 1185073965 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: yes, i'm interested in those < 1185073974 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as concepts < 1185073986 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But in the end, you just want to point and click? < 1185073991 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1185073992 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid < 1185074009 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :toboge, is ! < 1185074011 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :? < 1185074012 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid < 1185074015 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(really, without knowing about kernels, how are you supposed to know how, say, the Linux scheduler is better than the Windows one?) < 1185074033 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :The source code is all there. There are dozens of APIs at every level to insert your code in whatever language you want to do whatever you want. It's a darn lot of fun living in a world where hacking is encouraged. < 1185074033 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: i hate if i don't have to do something myself. < 1185074036 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: In the UNIX world, these aren't concepts. . . These are things we try to make our software do. < 1185074062 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: i'm interested in doing them, i just don't see a connection between that and linux < 1185074074 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The whole system is designed around it. < 1185074099 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what is ? < 1185074100 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err okay, well i don't like open source, i like doing things myself < 1185074100 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid < 1185074129 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and i don't like to point and click, it's just it'd take long to program a c interpreter in bash. < 1185074135 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :so i'll dl it < 1185074149 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hell. . . Applications include a scripting language as par for the course. < 1185074155 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that isn't done in a decent language in linux, so why would i want to learn the language? < 1185074174 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i really do not see your point < 1185074178 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i don't care about linux < 1185074180 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :period. < 1185074190 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what so evil about that? < 1185074206 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Nothing, if you don't want to learn. < 1185074233 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :people who don't use kde aren't evil so people who don't use linux aren't evil < 1185074236 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :its just another choice < 1185074243 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well, i'd like to learn linux, but it's not my first choise for a thing to learn. < 1185074294 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i use linux every day, but i am interested in programming, not linux, so why would i want to learn that when there are programming concepts to be learned? < 1185074314 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :can you write bash scripts on windows? < 1185074316 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :perl? < 1185074318 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :python? < 1185074322 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :ok, maybe perl and python < 1185074328 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :but probably not bash < 1185074328 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :toboge, is ! < 1185074329 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i have a python interpreter. < 1185074330 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :? < 1185074332 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid < 1185074336 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and i have a perl interpreter. < 1185074339 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :immibis: He's got cygwin. < 1185074340 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You can write bash scripts if you have bash... < 1185074344 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :oh, ok < 1185074350 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: The answer to that is simple. < 1185074355 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Though Windows doesn't quite handle shebangs. < 1185074372 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: please tell. < 1185074385 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Think of it like this: Many years ago, artists used to all have to mix their own pigments. < 1185074395 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err yes < 1185074402 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :ihope: the solution to that is to name all your bash scripts with the extension .bash and to associate .bash with bash < 1185074406 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: Imagine if you decided "I don't want to learn tools; I'm interested in construction concepts, not tools." < 1185074411 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!! < 1185074412 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Caught a java.lang.ClassNotFoundException! toboge.Execer_! < 1185074414 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185074420 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric : !! < 1185074430 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Nowadays, most nobody does. But there are some people who do make their own pigments (maybe not from scratch, but, still themselves). It's called pride in workmanship. < 1185074446 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err okay. < 1185074458 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!toboge, question marks and exclamation marks is !? ? ! ! ? ! ? ! ? ! ? ! ? !? ?! ? ! ! ! < 1185074458 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Caught a java.lang.ClassNotFoundException! toboge.Execer_toboge, < 1185074459 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :so i have pride. < 1185074460 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185074461 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :toboge, question marks and exclamation marks is !? ? ! ! ? ! ? ! ? ! ? ! ? !? ?! ? ! ! ! < 1185074462 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :is that bad? < 1185074468 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185074469 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :is what bad? < 1185074473 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You *don't* have pride in workmanship. < 1185074494 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :For an intellectual to create the tools to test their concept themselves is a pride in themself. Just the same as the engineers who either order cheap low-wage workers to do their job for them, while they focus only on the engineering, or they build models at home themselves that work on a smaller scale. < 1185074495 0 :oklobot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1185074496 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :...because i'd rather write my c compiler myself rather than learn how to do it the easy way? < 1185074500 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oklobot sucks <3 < 1185074517 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: http://www.thomasscoville.com/PCarticle.html < 1185074534 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :you still haven't answered my question "what does oklobot do?" < 1185074545 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :immibis: runs the oklobot language. < 1185074557 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :~help() < 1185074561 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's what rubs me about most engineering professions but electrical -- you have no pride in workmanship. You can't build a system up with your hands. < 1185074583 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's a show of true intellectual prowess to display that you have enough knowledge not to rely on the knowledge of others. < 1185074619 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oaky. < 1185074627 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's basically the hacker mentality. Hacking it together *yourself*. < 1185074627 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i do rely on other people's things < 1185074632 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i didn't invent numbers < 1185074636 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and such < 1185074656 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But you should take a day some day to investigate number systems and maybe rewrite the math axioms from the axioms, no? ;) < 1185074669 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1185074671 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :*math relationships from the axioms < 1185074678 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and i should make my own os some day as well < 1185074685 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :As a concept, yeah. < 1185074693 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :a real os. that'd be cool < 1185074744 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :anyway, i still don't know your point < 1185074757 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it seems you have somewhat misunderstood me somewhere, but hey, that's life < 1185074770 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :UNIX is the OS for people who think like that. . . < 1185074783 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Exactly. < 1185074788 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :who think like what? < 1185074793 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that making an os would be cool? < 1185074796 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :We all have our own imaginary operating systems and programming languages, don't we? < 1185074811 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ihope: oklotalk & okloOS < 1185074811 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :For people who find pride in building things from the ground themselves. < 1185074814 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1185074833 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :um, i have a real operating system and programming language < 1185074837 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :although neither is very good < 1185074849 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: how imaginary is oklotalk? < 1185074856 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: okay, unix seems to be just *made* for me... does it make me a bad person i don't think it'd actually make my life any better? < 1185074859 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :still < 1185074869 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: if you want to make an os, i suggest you join #osdev and browse to http://osdever.net/bkerndev/ < 1185074875 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ihope: it is in the sense it's not real yet. < 1185074881 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :numbda is kinda close to it < 1185074886 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but it's a long way still :) < 1185074892 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: Do you use an OS as a tool or do you use it as a way of life? < 1185074897 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(plus numbda is a bit different in other ways too) < 1185074914 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: tool, unless someone makes a good one some day < 1185074925 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mean, one i find good. < 1185074934 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :There's the distinction. < 1185074939 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i haven't seen aything good about unic, about which i'm sorry < 1185074944 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*unix < 1185074953 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Most UNIX hackers use it as a way of life, for which Windows is a failure. < 1185074981 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :There is no one killer app that makes UNIX superior. < 1185074984 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :immibis: i actually joined already :) < 1185074989 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :UNIX is a superior system, not a system with a superior tool. < 1185075048 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err... sure < 1185075061 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :toboge, Linux is superior to UNIX. < 1185075063 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :toboge, Linux is superior to UNIX < 1185075068 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :toboge, UNIX is inferior to Linux < 1185075076 0 :GregorR-L!unknown@unknown.invalid PRIVMSG #esoteric :Well, there's some truth to that too :P < 1185075089 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is Linux? < 1185075089 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Linux is superior to UNIX < 1185075092 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :immibis: Sounds like you need Prolog. < 1185075099 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :heeh < 1185075101 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is prolog? < 1185075101 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*heh < 1185075102 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid prolog < 1185075103 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :superior(Linux, UNIX). < 1185075115 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :inferior(UNIX, Linux). < 1185075117 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185075127 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :sukoshi: what < 1185075137 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :superior(Linux, Windows). < 1185075141 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :superior(UNIX, Windows). < 1185075145 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :superior(MacOS, Windows). < 1185075148 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :superior(BSD, Windows). < 1185075151 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :superior(Hurd, Windows). < 1185075152 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :better(X,Y) :- superior(X, Y), inferior (Y, X). < 1185075158 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :superior(DOS, Windows) < 1185075163 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1185075167 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :superior(Windows, DOS) < 1185075169 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :better(DOS, Windows). < 1185075178 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :windows may be inferior to a lot of things, but not dos! < 1185075184 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: i think lowercase is for atoms < 1185075188 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(Windows, DOS) < 1185075194 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION listens to Pink Floyd - The Wall < 1185075203 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185075206 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :no they aren't. < 1185075209 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :worse(Y,X) :- better(X, Y) < 1185075215 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :worse(DOS, Windows) < 1185075221 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You're forgetting the `.' < 1185075223 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1185075225 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185075227 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yes they are. < 1185075227 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :immibis: I'd much rather use DOS than Windows. < 1185075239 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :1) start windows < 1185075239 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :superior(windows,dos). then < 1185075241 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(and yes, I *have* done so) < 1185075245 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :2) start -> run -> command.com < 1185075252 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :3) press alt-enter < 1185075283 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(windows,dos) < 1185075285 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(windows,dos). < 1185075289 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(linux,windows). < 1185075294 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Learn Prolog y'all! < 1185075298 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(unix,windows). < 1185075302 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(macos,windows). < 1185075306 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :everyone knows prolog! < 1185075306 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(bsd,windows). < 1185075309 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(hurd,windows). < 1185075313 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :wtf is prolog? < 1185075317 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :immibis: .... :P < 1185075329 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :That's like saying ``WUTZ LISP?!'' < 1185075330 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(windows,hurd). < 1185075334 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :even my father's 60-year-old professor friend knows prolog < 1185075336 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :good question. what is lisp? < 1185075358 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :immibis: those are two programming languages, old, but kinda nice < 1185075361 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :better(linux, X). X={unix, windows, dos). < 1185075378 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(windows,dos). < 1185075383 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Errr X={unix, windows, dos}. < 1185075385 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(oklofok,sukoshi). < 1185075387 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: you sure about that? < 1185075403 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :errrrrrrrrrrr you should be sure about it < 1185075407 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :immibis: the question. < 1185075421 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*same < 1185075425 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what question? < 1185075432 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you sure about that? < 1185075442 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(ubuntu6,debian3). ubuntu6=linux. debian3=linux. < 1185075443 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i've just been trying to install gcc for 2 ohurs. < 1185075454 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you don't make me arg1 of better() ;) < 1185075459 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*hours < 1185075473 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :don't you need gcc to install gcc? < 1185075477 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :ok then < 1185075482 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(sukoshi,oklofok). < 1185075488 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(X,Y). X=Y. Y=X. < 1185075513 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, how do you ask oklobot which is better out of a set of two things? < 1185075525 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that is not correct Prolog. < 1185075545 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :oklobot uses prolog? < 1185075552 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :immibis: your code isn't < 1185075555 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :oklofok said it used oklobotspeak. < 1185075566 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(X,Y). X=linux. Y=linux. < 1185075569 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :is that? < 1185075570 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :we tried to let you away with it, but oerjan just couldn't :) < 1185075571 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :i don't know prolog < 1185075588 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and Sukoshi's wasn't correct either. < 1185075592 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :immibis: i don't have an in-built better-than function. < 1185075592 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :print X. < 1185075595 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :print linux. < 1185075604 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Now if i could just remember what the correct way was... < 1185075605 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, you need :-? < 1185075620 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I think better(X,Y) declares that better always gives yes. < 1185075620 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(X,Y). X :- Y. Y :- X. < 1185075622 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::- and commas < 1185075628 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :better(X,Y). X :- Y, Y :- X. < 1185075630 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :s(A,B):-A,B. < 1185075631 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :better(linux,linux) < 1185075640 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :, is & < 1185075641 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :s(linux,linux) < 1185075643 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :; is | < 1185075644 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :& is and < 1185075646 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :| is or < 1185075654 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :periods at the end of statements < 1185075661 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :how to output? < 1185075669 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :immibis: you usually don't < 1185075675 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but "print"? < 1185075678 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i don't remember < 1185075679 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :then whats the point. < 1185075683 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :print "Hello". < 1185075692 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :print "Hello World!" < 1185075695 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :print "Hello World!". < 1185075699 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you probably need parentheses < 1185075700 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :immibis: it brute forces you results and gives them to you :) < 1185075707 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :print("Hello World!"). < 1185075711 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :not strictly brute forces < 1185075713 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :print(Hello World!). < 1185075718 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but it seems it does < 1185075723 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's magic you know < 1185075725 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :print(i suck if i can't output!). < 1185075735 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :print("Hello World!"). i'd say < 1185075742 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :i suck if i can't output! < 1185075754 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Hello World! < 1185075774 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :print("Hello World!"). < 1185075774 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :aaaa < 1185075780 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's not print < 1185075782 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's write. < 1185075785 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :printf("Hello World1"); < 1185075789 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :write("Hello World!"); < 1185075790 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :write("Hello World!"). < 1185075795 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :write "Hello World!" < 1185075796 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :write "Hello World!". < 1185075804 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :write(X). X=linux < 1185075806 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :write(X). X=linux. < 1185075817 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :immibis: wrong again < 1185075820 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :is prolog an esoteric language? < 1185075823 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :no < 1185075829 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's a logic language < 1185075834 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :X=linux, write(X). < 1185075835 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :one of the dying categories < 1185075842 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :write(hello).? < 1185075843 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :X=linux, write(X). < 1185075846 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :write(hello). < 1185075849 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ihope: 'hello' < 1185075853 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :logic languages are not dying! < 1185075855 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :write('hello') < 1185075856 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :write('hello').? < 1185075856 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :write('hello'). < 1185075863 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :X='hello', write(X). < 1185075866 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: oh < 1185075881 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i thought functional languages addressed all their positive shitz. < 1185075891 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185075902 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :parsers are actually hellishly easy to make in prolog < 1185075913 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :they seem to be even simpler than haskell ones < 1185075918 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :logical variables are awkward in functional languages. < 1185075925 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hellish ease is nice. < 1185075955 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: are there logic languages used widely? < 1185075977 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea what's going on, really, i just predict and miss. < 1185075977 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185075991 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't know what's big. < 1185076027 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Haskell is still smaller than Prolog, i believe. < 1185076029 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :a char[1024*1024*1024*1024] is big < 1185076036 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Smaller than Prolog? < 1185076040 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :As in less used? < 1185076052 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :21 users on #prolog, 340 on #haskell < 1185076057 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :a char[SIZE_T_MAX] is big. ;) < 1185076060 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I thought Prolog wasn't a practical language. < 1185076069 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :someone posted a link of some comparison < 1185076076 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :site < 1185076115 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is size_t_max? < 1185076116 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid size_t_max < 1185076128 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :actually there were 20, oklofok. < 1185076131 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you know other logic languages? < 1185076134 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :immibis: i was one. < 1185076141 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :just got out fast before you came. < 1185076148 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :immibis: The maximum size of a size_t. < 1185076165 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(size_t being the return type of the sizeof operator) < 1185076176 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :actually, a char[1024*1024*1024*1024] is so big you need a 64-bit processor. < 1185076183 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1185076184 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :one terabyte. < 1185076191 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :SIZE_T_MAX scales with bits. < 1185076195 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Mercury, Curry (based on Haskell) < 1185076201 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...Scales with bits? < 1185076205 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What's Mercury? < 1185076206 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :On my system, that's a char[pow(2,64)] < 1185076212 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :the more the bits, the bigger it is. < 1185076223 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a pure logical language, statically typed < 1185076224 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that guy has gotten quite a lot of stuff after his name < 1185076226 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The bits don't change size, you mean? < 1185076233 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...oh. < 1185076237 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :er, no < 1185076253 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :SIZE_T_MAX depends on the bittage of the processor? < 1185076267 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :(Eek, spellcheck things "bittage" is a word but "okay" isn't.) < 1185076271 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :the bittage of the processor gcc was compiled on, more likely. < 1185076297 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh, spellcheck isn't enabled. < 1185076313 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :No wonder it wasn't saying "no, not a word". < 1185076321 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Indeed, it rejects. < 1185076327 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :a long long[1000000000][1125899906842624] is amazingly big. < 1185076329 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185076343 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :eight billion petabytes < 1185076348 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :mercury seems to be a bit more purer about output < 1185076352 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*-more < 1185076356 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is mercury? < 1185076356 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid mercury < 1185076358 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :immibis: pff, tiny. < 1185076363 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It will be, that is. < 1185076369 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The bittage of the target arch, actually. < 1185076412 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :ok, 2.076918743413931051412198531688e+34 is 2^64 < 1185076419 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :is that big? < 1185076426 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is 1 + 1? < 1185076426 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :1 + 1 is 2, but that's all i'll ever calculate. < 1185076431 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is 2 + 2? < 1185076431 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :2 + 2 is not compute. < 1185076482 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what is 3 + 3? < 1185076483 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :No such factoid 3 + 3 < 1185076490 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :toboge, 3 + 3 is 65536 < 1185076507 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also Oz is a multiparadigm language with logical bits, used in the quite well-received textbook Concepts, Techniques, and Models of Computer Programming (which i haven't read) < 1185076589 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mercury made me wonder if definite clause grammars (which mercury uses to wrap up i/o) is some logical version of monads. < 1185076597 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: of those languages i've just bumped into prolog and most programmers i know have no idea about that even; hence my "dying category" definition < 1185076600 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :couldn't find anything about it though. < 1185076608 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :toboge, Oz is a multiparadigm language with logical bits, used in the quite well-received textbook Concepts, Techniques, and Models of Computer Programming (which oerjan hasn't read) < 1185076613 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i had that exact thought myself < 1185076628 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but i don't actually know monads that well, so... < 1185076628 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185076702 0 :GregorR-L!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1185076707 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: making that interpreter shouldn't take that long (if i get sdl installed... which i doubt), but it'll have to wait till i get new batteries for my keyboard < 1185076712 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it died just now < 1185076723 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ha. http://en.wikipedia.org/wiki/Orders_of_magnitude_%28data%29 < 1185076728 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i do have another keyboard though, so forget what i said. < 1185076732 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The biggest thing there is "amount of information which can be stored in 1 gram of DNA" < 1185076742 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :2.25 zettaoctets... < 1185076761 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: ;P < 1185076785 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not quite. < 1185076792 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :So we won't run out of storage space any time soon. < 1185076793 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION imagines 1kg of DNA < 1185076800 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I'm gonna have to resume Esperanto studies before college, so I can Esperanto-localize everything before I leave, so that nobody can understand my desktop in the off-chance it's unlocked when they are there. < 1185076814 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :since categorical monads exist in a lot of categories other than functions... < 1185076841 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but i know just about nothing about those < 1185076972 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i've been thinking about creating myself a font with no connection to this one and learning to read and write it < 1185076976 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that'd be fun < 1185076994 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :connection=similarity < 1185077018 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How easy would English be if word order were reversed? < 1185077024 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :now co[dk]e -> < 1185077051 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Say i'ld, easy pretty. < 1185077057 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ihope: easier to learn for me, a *lot* easier to crack < 1185077074 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :is it wise to install every single extension when you upgrade php? < 1185077076 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shrugs < 1185077091 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: "i'ld"? < 1185077131 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION suddenly goes to bed < 1185077256 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thought that was the correct contraction for "I would" < 1185077266 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i'd < 1185077267 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185077273 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that's not what i was gonna say < 1185077301 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: state variables in mercury, they anywhere near monads ? < 1185077313 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i guess you don't remember that language fully, though. < 1185077338 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :indeed not. < 1185077354 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :which one? < 1185077392 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'll assume the latter and keep reading. < 1185077469 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders how he could have messed up such an elementary part of english grammar. < 1185077502 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you do io_action(arg, io_state1, io_state2), io_action(arg, io_state2, io_state3) normally to chain the action in the correct sequence < 1185077506 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Did your parser miss a case? < 1185077572 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and you can have a state variable !var that can be used like io_action(arg, !IO), io_action(arg, !IO) < 1185077579 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually it seems to have added one that wasn't there :) < 1185077580 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :for a syntactic sugar for the chaining < 1185077636 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: do you use contractions? < 1185077644 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :normally < 1185077657 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i don't recall you using that before < 1185077682 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well i use don't and can't and such, at least < 1185077698 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i use "i'd've" pretty often < 1185077704 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's my favorite < 1185077746 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :"i'll've" beats it though, but that's even iffier and i've never seen it used :) < 1185077819 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :what about "i'll've'nt"? < 1185077826 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :i will have not < 1185077840 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :err, "i'll'ven't" < 1185077844 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's "i will not have" < 1185077845 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1185077850 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185077851 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :no < 1185077867 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :"'nt" must end the contraction < 1185077871 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(imo) < 1185077883 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :this is a matter of opinion, obviously. < 1185077886 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :i'll is i will < 1185077896 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :anyway, where is my code, where is my coke? < 1185077897 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :'ve is have < 1185077900 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :and n't is not < 1185077902 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :not here, i say. < 1185077913 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :immibis: sorry, "n't" must be last < 1185077916 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i < 1185077917 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :.. < 1185077928 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'lln't've < 1185077935 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :not i'll'ven't < 1185077945 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :i will not have < 1185077954 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1185077968 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i will not have had = i'lln't've'd < 1185078009 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'm pretty sure i'lln't've'd sex before i'm 40 < 1185078025 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :because i use comtraction extensively < 1185078043 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*contractions < 1185078245 0 :ihope!unknown@unknown.invalid QUIT :Connection timed out < 1185079864 0 :immibis!unknown@unknown.invalid QUIT :Excess Flood < 1185079881 0 :immibis!n=IceChat7@125-238-33-245.broadband-telecom.global-gateway.net.nz JOIN :#esoteric < 1185080480 0 :suifur!unknown@unknown.invalid QUIT :"leaving" < 1185081130 0 :immibis_!n=IceChat7@125-238-37-9.broadband-telecom.global-gateway.net.nz JOIN :#esoteric < 1185081178 0 :immibis!unknown@unknown.invalid QUIT :Nick collision from services. < 1185081181 0 :immibis_!unknown@unknown.invalid NICK :immibis < 1185081374 0 :toBogE!unknown@unknown.invalid QUIT :Nick collision from services. < 1185081402 0 :toBogE!n=toBogE@125-238-37-9.broadband-telecom.global-gateway.net.nz JOIN :#esoteric < 1185081808 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!bf_txtgen ACTION is a bot. Didn't you know that? < 1185081808 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Caught a java.lang.ClassNotFoundException! toboge.Execer_bf_txtgen < 1185081890 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :331 ++++++++++++[>+++++++>+++++>+++>+++++<<<<-]>>+++++.++.<.>++++++.++++++.-.>----.<<+++++++++++++++++++++.++++++++++.>>.<+++++++++++++++++++.>.<+.<----.+++++.>>>--------------.<.>++++++++++++++++++++++.<<<-----------.>++.<+++++.>>+++++++.<++++++++++++++++.>-------.<+++++.<+.>----.>.<<----.+++.+.>++.>.<---.<-------.-------.>.>>-----. [948] < 1185081942 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!bf8 ++++++++++++[>+++++++>+++++>+++>+++++<<<<-]>>+++++.++.<.>++++++.++++++.-.>----.<<+++++++++++++++++++++.++++++++++.>>.<+++++++++++++++++++.>.<+.<----.+++++.>>>--------------.<.>++++++++++++++++++++++.<<<-----------.>++.<+++++.>>+++++++.<++++++++++++++++.>-------.<+++++.<+.>----.>.<<----.+++.+.>++.>.<---.<-------.-------.>.>>-----. < 1185081943 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is a bot. Didn't you know that? < 1185081944 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is a bot. Didn't you know that? < 1185081982 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!bf8 +.+++++++++++[>+++++++>+++++>+++>+++++<<<<-]>>+++++.++.<.>++++++.++++++.-.>----.<<+++++++++++++++++++++.++++++++++.>>.<+++++++++++++++++++.>.<+.<----.+++++.>>>--------------.<.>++++++++++++++++++++++.<<<-----------.>++.<+++++.>>+++++++.<++++++++++++++++.>------ -.<+++++.<+.>----.>.<<----.+++.+.>++.>.<---.<-------.-------.>.>>-----.[-]+. < 1185081983 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is a bot. Didn't you know that? < 1185081986 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is a bot. Didn't you know that? < 1185081989 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :that was what i originally wanted it for < 1185082046 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i guessed as much. < 1185082130 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :niiice < 1185082149 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :"wouldn't've'd to've" < 1185082179 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1185082179 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :All known commands: !bf !bf8 !binascii !chanlist !delregex < 1185082181 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :!factoid !hello !help !irp !magritte !minimum !nil < 1185082182 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1185082183 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :!persist !raw !regex !rot13 !userlist < 1185082184 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl < 1185082186 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185082188 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185082235 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!help is what you should not say at the beginning of a line < 1185082235 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :All known commands: !bf !bf8 !binascii !chanlist !delregex < 1185082237 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :!factoid !hello !help !irp !magritte !minimum !nil < 1185082238 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :To use an interpreter: Note: can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem. < 1185082239 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :!persist !raw !regex !rot13 !userlist < 1185082240 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185082242 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185082301 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it might be a good idea to have toBogE use a different command prefix. < 1185082342 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :or make egobot ignore it < 1185082355 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!daemon factoid +[,[-]+] < 1185082355 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon < 1185082361 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But EgoBot was here first. < 1185082361 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!daemon persist +[,[-]+] < 1185082362 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :Caught a java.lang.ClassNotFoundException! toboge.Execer_daemon < 1185082372 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :but toboge was here before egobot joined, as well < 1185082380 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1185082380 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :All known commands: !bf !bf8 !binascii !chanlist !delregex < 1185082382 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :!factoid !hello !help !irp !magritte !minimum !nil < 1185082382 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1185082384 0 :toBogE!unknown@unknown.invalid PRIVMSG #esoteric :!persist !raw !regex !rot13 !userlist < 1185082384 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl < 1185082386 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185082388 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185082391 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :EgoBot's been in this channel for ages. < 1185082401 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :yes but i wrote toboge when it wasn't. < 1185082406 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :!raw PART #esoteric < 1185082408 0 :toBogE!unknown@unknown.invalid PART #esoteric :? < 1185082424 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Are you being idiotic on purpose? :P < 1185082448 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :i say so < 1185082467 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :So this is weird. One element is randomly not being added to the hash table. < 1185082472 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :And I have absolutely no idea why. < 1185082497 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's being read and parsed, but not being added, for reasons I can't understand. < 1185082519 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :is it already in the hash table? < 1185082544 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1185082563 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Stupid faulty hash table implementations. *Grumble*. That's what you get for relying on others. < 1185082679 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and a randomly changing element, too? < 1185082868 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1185083004 0 :pikhq!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1185084706 0 :Sgeo!unknown@unknown.invalid QUIT :"Ex-Chat" < 1185088227 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1185089013 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :'night, guys < 1185089021 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :LIke you talked a lot :P < 1185089030 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :<:/ < 1185089038 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :silence can be a virtue... < 1185089053 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :virtue(silence) -> no. < 1185089056 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :would you prefer I babble mindlessly? < 1185089071 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yes. Like immibis and his bot testing. < 1185089100 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, then, I'll start bringing Archos, my chatterbot, in here more often < 1185089119 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yes. Do it. And spam!!! < 1185089141 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :By the way, this Hashtable seems to randomly place null instead of one element each time I use it. < 1185089147 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :And the element changes each time it runs. < 1185089147 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :your will is my command, oh queen of #Esoteric < 1185089178 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1185090378 0 :Haikz!unknown@unknown.invalid PRIVMSG #esoteric :uprhghg' < 1185091199 0 :clog!unknown@unknown.invalid QUIT :ended < 1185091200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1185093654 0 :sebbu!n=sebbu@ADijon-152-1-109-166.w86-218.abo.wanadoo.fr JOIN :#esoteric < 1185094125 0 :edwardk!unknown@unknown.invalid PART #esoteric :? < 1185096557 0 :immibis!unknown@unknown.invalid QUIT :"Man who run behind car get exhausted" < 1185100438 0 :jix!n=jix@dyndsl-080-228-180-134.ewe-ip-backbone.de JOIN :#esoteric < 1185100716 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :night all < 1185100747 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"MULTIPLAYER NOTEPAD IS WORKING! :D Will release it tomorrow." < 1185105089 0 :ehird`!n=test@user-514f618c.l4.c3.dsl.pol.co.uk JOIN :#esoteric < 1185105967 0 :jix!unknown@unknown.invalid QUIT :Nick collision from services. < 1185105981 0 :jix!n=jix@dyndsl-085-016-237-192.ewe-ip-backbone.de JOIN :#esoteric < 1185110430 0 :ihope__!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1185110448 0 :ihope__!unknown@unknown.invalid NICK :ihope < 1185110952 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, I've figured out just what it is I want with this lambda/SKI and monad stuff. < 1185111047 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I want to be able to pretend that every lambda calculus construct has an equivalent SKI calculus construct. < 1185111090 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it does < 1185111245 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ihope: ololobot has a convertor for that < 1185111308 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That to convert \x.E to SKI, you can convert E to SKI and return something that includes the result. < 1185111357 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand < 1185111366 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^xE < 1185111367 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :`kE < 1185111387 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Where E is some expression that may or may not contain x. < 1185111416 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you want to convert any expression from lambda to ski? < 1185111430 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yup. < 1185111435 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pl. < 1185111438 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^xx < 1185111438 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :`kx < 1185111441 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^xy < 1185111441 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :`ky < 1185111447 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl s < 1185111448 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :s < 1185111450 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl `ss < 1185111450 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :`ss < 1185111453 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It translates ^xx to `kx? < 1185111462 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1185111464 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it uses $ < 1185111464 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^a^b^c``$c$b$c < 1185111465 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s``s`ks``s`kk`ks``s`kk`ki``s``s`ks``s`kk`kk`ki``s`kk`ki < 1185111467 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x$x < 1185111468 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :i < 1185111471 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it has no optimization < 1185111473 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x^y`$x$y < 1185111474 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``s``s`ks``s`kki`ki < 1185111481 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x$x < 1185111482 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :i < 1185111483 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :``s``s`ks``s`kki`ki is the apply function. i didn't know that. < 1185111491 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Why does it do that? < 1185111493 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x^y^z``$x$y$z < 1185111494 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk``s`kki``s``s`ks``s`kk`kk`ki``s`kk`ki < 1185111495 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: the apply function? < 1185111503 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x^y^z``$x$z`$y$z < 1185111504 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh, hmm. < 1185111504 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk``s`kki``s`kk`ki``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk`ki``s`kk`ki < 1185111509 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :why doesn't that optimize to S < 1185111509 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Indeed, that's sort of bad. < 1185111525 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: it does *not* optimize *anything* < 1185111535 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x < 1185111535 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``^x^y^z``$x$z`$y$z^x^y$x^x^y$x < 1185111536 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have a list of lenght optimizationsi gathered < 1185111542 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :... that is broken < 1185111543 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but didn't implement yet < 1185111547 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x # broken < 1185111548 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``^x^y^z``$x$z`$y$z^x^y$x^x^y$x < 1185111556 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185111556 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :``xz`yz -> ``sxy -> `sx -> s < 1185111562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it seems so < 1185111566 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope, 'xactly < 1185111570 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that's SKK, aka I < 1185111577 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :x -> `kx -> k < 1185111578 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but, it doesn't even fully convert < 1185111582 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've always kept separately application and lambda creation < 1185111586 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't be hard to fix < 1185111613 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: it seems i don't recurse on application. < 1185111616 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll try and fix that now < 1185111619 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185111684 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, back to optimization/compilation/interpretation: would you be happy if pl reduced the whole lambda expression, then just gave you the >result< of evaluating it in SKI? < 1185111688 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it wouldn't be a compiler would it? :) < 1185111736 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's a convertor, not a compiler :| < 1185111745 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Same thing, really. < 1185111756 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Except that with a compiler, you're generally converting downward. < 1185111758 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: also, it returnsthe result < 1185111764 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*returns the < 1185111778 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it should, that is. < 1185111784 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope, i was responding to how oklopol said that a brainfuck compiler should optimize so much, that anything without input should be optimized to its result < 1185111801 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so e.g. a factorial function called with hardcoded 7 would be compiled as just "7"... it'd execute at compiletime < 1185111810 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :++++++++++++++++++++++++++++++++++++++++[.] < 1185111834 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :well, if you wrote a factorial for 7 - code to do it - in BF < 1185111837 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :then compiled that < 1185111840 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the resulting c code would be like < 1185111853 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :"*p = 5040; putchar(*p);" < 1185111857 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and it'd have run at compile time < 1185111859 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i think that's absurd. < 1185111910 0 :RedDak!n=dak@host115-89-dynamic.16-87-r.retail.telecomitalia.it JOIN :#esoteric < 1185112075 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :no wonder < 1185112077 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :elif a[1][0]!='`': < 1185112077 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric : ret=["`",["k"],a[1]] < 1185112090 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it effectively just returns whatever was given unless it's a lambda. < 1185112109 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Whoa. < 1185112109 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl `^x$xi < 1185112111 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :`^x$xi < 1185112118 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1185112120 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl `hello, world! < 1185112120 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :`he < 1185112124 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Darn. < 1185112134 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :why not `k^x$xi? < 1185112164 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ihope: normal application applied still, though :) < 1185112167 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x^y^z``$x$z`$y$z < 1185112168 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk``s`kki``s`kk`ki``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk`ki``s`kk`ki < 1185112177 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :beware excess flood... < 1185112185 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ``^x^y^z``$x$z`$y$z^x^y$x^x^y$x < 1185112186 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``^x^y^z``$x$z`$y$z^x^y$x^x^y$x < 1185112189 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1185112190 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ski is a bit verbose, especially unoptimized and autoconverted < 1185112193 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: er, does `k^x$xi make sense? < 1185112216 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ihope: that'd be wrong, indeed. < 1185112223 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x```sksk < 1185112224 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``s``s``s`ks`kk`ks`kk < 1185112231 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1185112237 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh, may be correct < 1185112240 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that's muddled < 1185112242 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x`s`s`s`s`s`s`s`ss < 1185112242 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1185112243 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``s`ks``s`ks``s`ks``s`ks``s`ks``s`ks``s`ks``s`ks`ks < 1185112248 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yah, fix. < 1185112249 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :sksk does what? < 1185112253 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :SKSK=K < 1185112259 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x```sksk < 1185112260 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``s``s``s`ks`kk`ks`kk < 1185112263 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh no wait < 1185112265 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :SK(SK) = K < 1185112265 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :```sksk -> ``kk`sk -> k < 1185112266 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x`$x$x < 1185112267 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``sii < 1185112274 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope, it's ``sk`sk < 1185112274 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :>>> ul ````s``s``s`ks`kk`ks`kk i i < 1185112275 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric : -> ('k', 'i') < 1185112277 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x`$x$x < 1185112277 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``sii < 1185112281 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :well that works! < 1185112281 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :>>> ul ````s``s``s`ks`kk`ks`kk A B < 1185112282 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric : -> ('k', 'B') < 1185112286 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: um, I have it ```sksk. < 1185112286 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm... < 1185112290 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl `^x`$x$x^x`$x$x < 1185112291 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :`^x`$x$x^x`$x$x < 1185112295 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope, well, that's wrong i think =p < 1185112298 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :>>> ul `````s``s``s`ks`kk`ks`kk A B C < 1185112299 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric : -> B < 1185112304 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Wrong? < 1185112307 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl `^x`$x$x^x`$x$x <-- should translate to ```sii``sii < 1185112308 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :`^x`$x$x^x`$x$x < 1185112312 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x`$x$x < 1185112313 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``sii < 1185112317 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but ` is still borked. < 1185112320 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you need to recurse < 1185112324 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :okay, i'm pretty sure that works correctly unless you actually apply a lambda :) < 1185112328 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1185112343 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I think we've concluded that the bot is terribly horribly not well very badly broken. < 1185112362 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and cue.... < 1185112370 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And cue? < 1185112375 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and cue... < 1185112384 0 :blahbot`!n=blahbot`@user-514f618c.l4.c3.dsl.pol.co.uk JOIN :#esoteric < 1185112399 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :blahbot to the rescue! < 1185112412 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ah, *now* i found the problem < 1185112419 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric : else: < 1185112420 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric : ret=a < 1185112422 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :my bad influence? < 1185112429 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it effectively just returns with *no* conversion. < 1185112452 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :i like bots! < 1185112456 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ``sii < 1185112457 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``sii < 1185112469 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x^y$y < 1185112470 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :`ki < 1185112497 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x^y^z^a^b^c``$x$a``$b$c$z < 1185112498 0 :ololobot!unknown@unknown.invalid QUIT :Excess Flood < 1185112500 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1185112514 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how long was that < 1185112601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185112605 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i cantry on console < 1185112611 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*can try < 1185112695 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oph btw < 1185112703 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it should be fixed < 1185112743 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :restart it < 1185112751 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1185112752 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1185112755 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1185112777 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should really make threading and autoreconnect... < 1185112800 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :threading is simple < 1185112803 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :what language is ololobot in < 1185112808 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p652565215.txt < 1185112808 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if ruby, then killing threads is really easy < 1185112810 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :c++ < 1185112812 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ewww < 1185112813 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185112817 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's python. < 1185112821 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1185112826 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's easy in ruby < 1185112829 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ps = Thread.list < 1185112829 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :anyway, there's your lambda < 1185112832 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1185112833 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ski < 1185112834 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :kill = Thread.list[x].kill < 1185112840 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :thats an insane lambda < 1185112844 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%cmds < 1185112845 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce (use %help for argument information) < 1185112845 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah, not that easy in python, but almost < 1185112851 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i should get rid of reduce < 1185112852 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't work < 1185112854 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185112859 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what to add to it < 1185112862 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i should make >>> help me < 1185112866 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :any particularly interesting languages> < 1185112868 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> help < 1185112870 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> commands < 1185112884 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%bf +++++++. < 1185112890 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%bf +[] < 1185112891 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%ps < 1185112892 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :0. bf +[] < 1185112892 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :1. ps < 1185112894 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%kill 0 < 1185112908 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'd love to add stuff to my bot if you gimme btw, any python program that has a function run() that takes a string and returns a string < 1185112910 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1185112913 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1185112915 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl < 1185112940 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i assume malbolge uses an external interp < 1185112946 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(though i'll change it to take as arguments a string and give it an object to use for message passing or something alike) < 1185112955 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: they all do < 1185112967 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i embedded a BF interpreter for my bot < 1185112971 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :whooops < 1185112972 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :more elegant i think considering its simplicity < 1185112980 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :forgot to join the bot here < 1185112996 0 :ololobot!n=ololobot@194.251.101.183 JOIN :#esoteric < 1185113008 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :>>> `^x$xi < 1185113015 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl `^x$xi < 1185113016 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :`ii < 1185113043 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl `^x`$x$x^x`$x$x < 1185113043 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :```sii``sii < 1185113046 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :good < 1185113052 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :test its correctness will you? i can't test my own programs, i'm just too empathetic about hem... < 1185113053 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*them < 1185113056 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1185113104 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Hmmmmmmmmmm < 1185113129 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x$x < 1185113130 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :i < 1185113135 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :>>> pl ^x^y$x < 1185113136 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :``s`kki < 1185113141 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Wrong. :-P < 1185113142 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :A brainfuck with two bignums is turing-complete, right? < 1185113166 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :with +, -, *, / (* / = +- for second int), and [] and {} < 1185113173 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err nope < 1185113175 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1185113182 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :then it might just be < 1185113197 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :minksy machine or something < 1185113204 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :minsky isn't tc < 1185113222 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it is, isn't it? < 1185113222 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185113233 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/Minsky_machine < 1185113235 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i could make the bot upload long returns automatically < 1185113236 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Minsky machines with two or more registers have been shown to be in the same computational class as Turing machines. Because of this, and because of their simplicity, they can be used to prove several esoteric programming languages to be Turing-complete as well. < 1185113282 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :okay, sorry, i confuse terms quite often. < 1185113290 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well, anyway, some machine was not tc. < 1185113329 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185113336 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :actually you don't even need * and / < 1185113348 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you don't have < > so yes you do < 1185113362 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :+-*/[]{} < 1185113404 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :not according to that page < 1185113424 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :why not < 1185113431 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>+ -> * < 1185113436 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>- -> / < 1185113442 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :>[ -> { < 1185113454 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i guess maybe you need to wrap the poiner < 1185113498 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :according to that page you need two numbers, + and - < 1185113593 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ACTION keeps thinking what language to botify < 1185113683 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: wanna tell me how to list all files in a folder in python? < 1185113690 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :guess i could google. < 1185113706 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :!ls < 1185113709 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :bf/, glass/, linguine/ < 1185113711 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wtf! < 1185113715 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :egobot exposes the fs?! < 1185113718 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :!ls bf < 1185113721 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :LostKng.b, numwarp.b < 1185113744 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :!ls `echo hi > bf/hello` < 1185113747 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :/bin/ls: ./files/`echo hi > bf/hello`: No such file or directory < 1185113753 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :!ls $(echo hi > bf/hello) < 1185113755 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :/bin/ls: ./files/$(echo hi > bf/hello): No such file or directory < 1185113758 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :!ls ;echo hi > bf/hello < 1185113761 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :/bin/ls: ./files/;echo hi > bf/hello: No such file or directory < 1185113771 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :!ls --help < 1185113775 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :/bin/ls: ./files/--help: No such file or directory < 1185113851 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185113862 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :is a language comprising of this TC: < 1185113899 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :? - if the next char in the source code is greater than \000, jump one character after it and ignore the next ?. Otherwise, jump to after the next ?. < 1185113902 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :anything else - nop < 1185113915 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :maybe anything else - add to tape < 1185113925 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no i don't think it is... < 1185113932 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :maybe if you had ! replace the next char with the previous one < 1185113977 0 :pikhq!n=pikhq@c-75-70-43-34.hsd1.co.comcast.net JOIN :#esoteric < 1185113978 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's not tc < 1185113981 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's finite < 1185113993 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah yes < 1185113997 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you'd need infinite source code < 1185114094 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe, you could add a metalanguage to that < 1185114125 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... a finite language that produces a new code in it to run < 1185114130 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and yes,i realized that's been done. < 1185114151 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's it callednow... < 1185114222 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'm working on a spec < 1185114238 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1185114328 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.caboo.se/81136 this should be able to do something < 1185114356 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wait, also : duplicate tape head < 1185114476 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.caboo.se/81137 new spec < 1185114564 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>> help programs < 1185114565 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :bf, bs, expr, help, install, numbda, otools, pl, pybooot, ul < 1185114574 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can't have just help yet < 1185114587 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also < 1185114599 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that also shows the bot and otools. < 1185114610 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :neither of which is usable... i hope :P < 1185114674 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, pybooot should return "". < 1185114678 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>> pybooot okokokokokokokoko < 1185114713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err... except it also reconnects the bot xxxxxxxxxxxxxD < 1185114739 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps... i make a separate folder for external programs... < 1185114746 0 :ololobot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1185114890 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185114890 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185114892 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%cmds < 1185114892 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce, wapr (use %help for argument information) < 1185114897 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr A < 1185114897 0 :blahbot`!unknown@unknown.invalid QUIT :Remote closed the connection < 1185114924 0 :blahbot`!n=blahbot`@user-514f618c.l4.c3.dsl.pol.co.uk JOIN :#esoteric < 1185114927 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr A < 1185114950 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr A < 1185114953 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%cmds < 1185114953 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :quit, eval, ps, kill, cmds, help, reload, join, part, send, topic, raw, bf, parse, reduce, wapr (use %help for argument information) < 1185114954 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr 2 < 1185114962 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%ps < 1185114962 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :0. wapr 2 < 1185114962 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :1. wapr A < 1185114962 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :2. wapr A < 1185114962 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :3. ps < 1185114965 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%kill 0 1 2 < 1185114967 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%kill 0 < 1185114968 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%kill 1 < 1185114970 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%kill 2 < 1185114970 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :PID 2 out of range < 1185114971 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%ps < 1185114971 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :0. wapr A < 1185114971 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :1. ps < 1185114973 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%kill 0 < 1185114977 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%ps < 1185114977 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :0. ps < 1185114981 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr 2 < 1185114983 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%ps < 1185114983 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :0. wapr 2 < 1185114983 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :1. ps < 1185114985 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%kill 0 < 1185114986 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185114986 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185114988 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr 2 < 1185114988 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[18] < 1185115012 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr ~ < 1185115012 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[94] < 1185115017 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr ~~+ < 1185115017 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[188] < 1185115042 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr "? < 1185115044 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%ps < 1185115044 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :0. wapr "? < 1185115044 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :1. ps < 1185115046 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%kill 0 < 1185115060 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok, " #?" (anything apart from space for #, well apart from ? - ! + :) < 1185115063 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :is an infinite loop < 1185115069 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :because # is above 0 < 1185115072 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and the spaces are 0 < 1185115076 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so it jumps to 0, and repeats < 1185115083 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so, this thing can do infinite loops < 1185115093 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr # < 1185115093 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[3] < 1185115095 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr ##+ < 1185115095 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[6] < 1185115100 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr #:-+ < 1185115100 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[0] < 1185115109 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr #,. < 1185115109 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[3, 12, 14] < 1185115183 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115183 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115214 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr % < 1185115214 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[10] < 1185115227 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115228 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115228 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr % < 1185115228 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[17] < 1185115237 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115238 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115238 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr % < 1185115238 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[nil] < 1185115244 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115245 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115245 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr % < 1185115246 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[nil] < 1185115255 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115255 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115257 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr a < 1185115257 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[60] < 1185115259 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr % < 1185115259 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[nil] < 1185115262 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr & < 1185115262 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[1] < 1185115265 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr % < 1185115265 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[nil] < 1185115272 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval ?% < 1185115273 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> 37 < 1185115279 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval (?% % 127) < 1185115279 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> 37 < 1185115281 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval (?% % 127) - 37 < 1185115281 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> 0 < 1185115286 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so WHY is it pushing nil... < 1185115286 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :OH < 1185115309 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115309 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115311 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr % < 1185115311 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[0] < 1185115316 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr &+ < 1185115316 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[1, 6] < 1185115319 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr & < 1185115320 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[1] < 1185115343 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval s = [1]; x, y = s.pop, s.pop; puts y + x < 1185115343 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :NoMethodError: undefined method `+' for nil:NilClass < 1185115346 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :odd < 1185115348 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh well < 1185115375 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr %%& < 1185115375 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[0, 0, 1] < 1185115377 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :grr < 1185115412 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115412 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115416 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr & < 1185115431 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%ps < 1185115431 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :0. ps < 1185115476 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115476 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115477 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr & < 1185115477 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[2] < 1185115483 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115483 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115484 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr & < 1185115484 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[1] < 1185115489 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115490 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115494 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115494 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115508 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115508 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115516 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%reload < 1185115516 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded. < 1185115522 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr a a < 1185115523 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[59, 59] < 1185115525 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :good < 1185115539 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr & < 1185115540 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[0] < 1185115549 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr &&'! < 1185115550 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%ps < 1185115551 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :0. wapr &&'! < 1185115551 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :1. ps < 1185115552 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%kill 0 < 1185115689 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok final wapr spec: http://pastie.caboo.se/81141 < 1185115709 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :first person to write tape = [hello world] wins :) < 1185115723 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(You can even do something silly like 0=h,1=e...) < 1185115748 0 :pikhq!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1185115752 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185115794 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :for a second i was hoping the name of the language was "jumping to -1 is exciting" < 1185115797 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1185115800 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1185115801 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1185115804 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that is its name < 1185115806 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and all in lowercase < 1185115822 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :([0,1,2,2,3,4,5,3,6,2,7] -> 0=h,1=e,2=l,3=o,4=space,5=w,6=r,7=d) < 1185115835 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(As long as you didn't just write the values for that in its literals...) < 1185115839 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(Calculation :P) < 1185115875 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how does jump work? < 1185115916 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :well < 1185115919 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :jump X jumps to X position in code < 1185115925 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :first char = 0, second char = 1 etc. < 1185115940 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :maybe, i will add a "continuation" function, which appends the current character to the tape) < 1185115971 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i can't print, hard to do hello world < 1185116039 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :([0,1,2,2,3,4,5,3,6,2,7] -> 0=h,1=e,2=l,3=o,4=space,5=w,6=r,7=d) < 1185116041 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :produce that tape < 1185116046 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :also: http://esoteric.voxelperfect.net/wiki/Jumping_to_-1_is_exciting < 1185116063 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i think it's TC < 1185116071 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the problem is i can't see output < 1185116091 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes you can < 1185116095 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the tape is displayed at the end < 1185116103 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr ''+ < 1185116103 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[1, 1, 5] < 1185116106 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1185116107 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hm wtf < 1185116108 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that's wrong < 1185116114 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1185116117 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i got the commands wrong < 1185116120 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr ''$ < 1185116120 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[2] < 1185116121 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, you know, i'm blind. < 1185116134 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'llplay with that soon < 1185116141 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you're IRCing while blind and with no screen reader? :P < 1185116145 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :1337 sk1llz! < 1185116157 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :brairclle < 1185116162 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm brainblind < 1185116172 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1185116178 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :just use the rules 0=h,1=e,2=l,3=o,4=space,5=w,6=r,7=d < 1185116186 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :which means you want to produce the tape [0,1,2,2,3,4,5,3,6,2,7] < 1185116191 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but without just using the literals ;) that's cheating < 1185116197 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :with literals it's < 1185116230 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr &'(()*+),'- < 1185116231 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[0, 1, 2, 2, 3, 4, 5, 3, 6, 1, 7] < 1185116238 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185116241 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr &'(()*+),(- < 1185116242 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :[0, 1, 2, 2, 3, 4, 5, 3, 6, 2, 7] < 1185116248 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but, to do it programmatically... :) < 1185116299 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean programmatically? < 1185116306 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :well you could write a BF hello like < 1185116314 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :add up to H>add up to e....... < 1185116322 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but instead, you use loops etc to shorten the program < 1185116348 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'll can the ascii codes < 1185116350 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*make < 1185116398 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%wapr &&'"$&! < 1185116400 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%ps < 1185116400 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :0. ps < 1185116401 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :good < 1185116405 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :jump -1 works < 1185116575 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i am inclined to think it is turing complete < 1185116578 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i think i can compile BF into it < 1185116602 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Well maybe a bit hard because of the pointer < 1185116605 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but i think it's possible < 1185116608 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if the pointer is the top of the stack < 1185116621 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and you keep using # to grab from the tape itself < 1185116645 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :+ is just GETPOINTER&#'$ and then putting it back < 1185116664 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :def curry(f):return (lambda x:eval(reduce(lambda a,b:a+b,["lambda "+i+":"for i in x])+f.__name__+"("+",".join(x)+")"))(__import__("pydoc").inspect.getargspec(f)[0]) < 1185116677 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :is that a python currier < 1185116683 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :somewhat < 1185116684 0 :pikhq!n=pikhq@c-75-70-43-34.hsd1.co.comcast.net JOIN :#esoteric < 1185116691 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it can't curry a lambda yet < 1185116717 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :def k(a,b):return a < 1185116722 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :curry(k)(5)(2) >>> 5 < 1185116743 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def curry(f, x); proc {|y| f(x, y);}; end; curry(puts, "Hello") < 1185116743 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> # < 1185116752 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def curry(f, x); proc {|y| f(x, y);}; end; curry(method(:puts), "Hello") < 1185116752 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> # < 1185116755 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def curry(f, x); proc {|y| f(x, y);}; end; curry(method(:puts), "Hello").call("world") < 1185116755 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :NoMethodError: undefined method `f' for # < 1185116757 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmmmm < 1185116765 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i do it really badly, don't know how to do assembly in python < 1185116766 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1185116769 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :python bytecode < 1185116779 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def curry(f, x); proc {|y| f.call(x, y);}; end; curry(method(:puts), "hello").call("world") < 1185116779 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1185116779 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :world < 1185116779 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> nil < 1185116799 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def curry(f, x); proc {|y| method(:f).call(x, y);}; end; curry(:puts, "hello").call("world") # prettier < 1185116799 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :NameError: (eval):1:in `method': undefined method `f' for class `Blahbot' < 1185116801 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :er. < 1185116803 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh whatever < 1185116805 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you get the idea < 1185116814 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1185116818 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185116820 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1185116851 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you want a function that takes a function as argument and returns the curried function. < 1185116857 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| self.call(*args, x)}; else; old_call(*args); end; end < 1185116857 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER < 1185116879 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| call(*args, x)}; else; old_call(*args); end; end < 1185116879 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER < 1185116882 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| call(*args, x)}; else; old_call(*args); end; end; end < 1185116882 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER < 1185116885 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| call(*args, x)}; else; old_call(*args); end; end < 1185116885 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER < 1185116960 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| call(*args, x)}; else; old_call(*args); end; end < 1185116961 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER < 1185116962 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc; alias :old_call :call; def call(*args); if args.length < arity; proc {|x| call(*args, x)}; else; old_call(*args); end; end; end < 1185116963 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER < 1185116964 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185116983 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :can you ask a function how many arguments it takes in ruby? < 1185117008 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :actually i could just do the currying "the right wya" < 1185117010 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*way < 1185117013 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'll do it now < 1185117046 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes you can < 1185117050 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's called arity < 1185117065 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval proc {|x,y|x}.arity < 1185117065 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> 2 < 1185117069 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval proc {|*a|a}.arity < 1185117069 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> -1 < 1185117071 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval proc {|x,*a|a}.arity < 1185117072 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> -2 < 1185117077 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval proc {|x,y,a=2|a}.arity < 1185117077 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected '=', expecting '|' < 1185117079 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :er < 1185117080 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :actually, i don't think you can do that in python without evaö < 1185117081 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*eval < 1185117086 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you don't have atoms. < 1185117093 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :-> impussible < 1185117114 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you do have atoms < 1185117122 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :strings are atoms in python < 1185117126 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :do you mean rubys symbols? < 1185117127 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::x < 1185117133 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that's more like smalltalk's #x symbols < 1185117137 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :not lisp's (quote x) or 'x < 1185117276 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well, strings aren't really atoms... < 1185117286 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :they can be used as such in python, yeah < 1185117324 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i don't know ruby that well, all i know is what you taught me some days ago. < 1185117390 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmmmmmmm < 1185117414 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def compose(x, y); proc {|*args| x.call(y.call(*args))}; end < 1185117414 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> nil < 1185117423 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmmm, i want to write a @pl < 1185117424 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but for what lanuage. < 1185117426 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :*language < 1185117554 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :someone should make a board game based on cellular automata < 1185117572 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but like, where you can move peices according to rules < 1185117577 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and... don't say "Game of Life" :P < 1185117585 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :because thats cheesy < 1185117661 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Game of Life where you can modify the board a little bit when it's your turn? :-P < 1185117679 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1185117690 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :im thinking of colours for cells < 1185117703 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and you arrange an initial pattern, then you can move each cell and it's subjected to the death/birth rules etc < 1185117706 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and maybe an extra rule for capture < 1185117707 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :or something < 1185117713 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Game of Life with colors where you can modify the board a little bit when it's your turn? :-P < 1185117718 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1185117729 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, ehird`: did you make currying? < 1185117740 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, currying in ruby is simple, relaly < 1185117742 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :*really < 1185117750 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :well, the < 1185117752 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can i see it in action? :)) < 1185117756 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :curry(f, x).call(y) -> f(x, y) type < 1185117775 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the curry(f).call(x).call(y) -> f(x, y) type requires that ruby extension allowing you to see methods parsetrees < 1185117818 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :all i care about is whether you can show me that :P < 1185117819 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :try and implement it yourself, all you need is to override Proc#call, while alias :old_call :call, and use Proc#arity, to check if enough arguments < 1185117819 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :also < 1185117827 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :def m(*a) makes a a list of all the arguments < 1185117835 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :for some reason, mine syntax errors on one line < 1185117835 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185117881 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and you think *i* might do better with my unbelievable ruby experience :D < 1185117894 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185117910 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how do i get the arity of a function? < 1185117942 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i told you - Proc#arity < 1185117952 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Class#method means (an_instance_of_Class).method < 1185117961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :aaaa < 1185117993 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n);3;end < 1185117993 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> nil < 1185117999 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n);3;end;test(4) < 1185117999 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> 3 < 1185118018 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n);Proc#arity(n);end;test(4) < 1185118018 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected $end, expecting kEND < 1185118030 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Class#method means Class_instance.method < 1185118032 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n);n.arity;end;test(4) < 1185118032 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :NoMethodError: undefined method `arity' for 4:Fixnum < 1185118038 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :... < 1185118042 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :4 is a number... < 1185118043 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n);test.arity;end;test(4) < 1185118043 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1) < 1185118043 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :not a function. < 1185118048 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1185118050 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you want < 1185118053 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :method(:test).arity < 1185118058 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :test.arity is test().arity < 1185118073 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: do not correct me right away, i get it as fast as you but it takes a second to fix < 1185118075 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185118076 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185118086 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n);test.arity();end;test(4) < 1185118087 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1) < 1185118089 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n);test.arity(test);end;test(4) < 1185118089 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1) < 1185118105 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now you can correct me. < 1185118117 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n);test.arity(3);end;test(4) < 1185118117 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :ArgumentError: (eval):1:in `test': wrong number of arguments (0 for 1) < 1185118121 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :method(:test).arity < 1185118127 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :guess i did need to correct you.. < 1185118131 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n);method(:test).arity(3);end;test(4) < 1185118132 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :ArgumentError: (eval):1:in `arity': wrong number of arguments (1 for 0) < 1185118135 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :why (3) < 1185118136 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :... < 1185118138 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n);method(:test).arity();end;test(4) < 1185118138 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> 1 < 1185118144 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because i suck! < 1185118145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185118152 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :copypaste. < 1185118154 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n); method(:test).arity; end; test(4) < 1185118154 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> 1 < 1185118156 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n, x=2); method(:test).arity; end; test(4) < 1185118157 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> -2 < 1185118162 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n, x=2, *args); method(:test).arity; end; test(4) < 1185118162 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> -2 < 1185118166 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n, *args); method(:test).arity; end; test(4) < 1185118166 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> -2 < 1185118171 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n, x=2, y=3); method(:test).arity; end; test(4) < 1185118171 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> -2 < 1185118178 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n, b, x=2, y=3); method(:test).arity; end; test(4) < 1185118178 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :ArgumentError: (eval):1:in `test': wrong number of arguments (1 for 2) < 1185118182 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n, b, x=2, y=3); method(:test).arity; end; test(4, 2) < 1185118182 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> -3 < 1185118189 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :see how that works? < 1185118193 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :with optional arguments, arity is: < 1185118194 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it doens't have to account for * or = in argument lists < 1185118195 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185118198 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :-(number of required arguments + 1) < 1185118208 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :otherwise, it's (number of arguments) < 1185118217 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n); method(:test).arity; end; test(4, 2) < 1185118217 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :ArgumentError: (eval):1:in `test': wrong number of arguments (2 for 1) < 1185118219 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n, bmethod(:test).arity; end; test(4, 2) < 1185118219 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected '(', expecting ')' < 1185118224 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n, b); method(:test).arity; end; test(4) < 1185118225 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :ArgumentError: (eval):1:in `test': wrong number of arguments (1 for 2) < 1185118225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see, i'm not going to care about those. < 1185118226 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def test(n, b); method(:test).arity; end; test(4, 2) < 1185118226 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> 2 < 1185118226 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :though < 1185118229 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1185118239 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :unless you can tell me how to react to them when currying < 1185118264 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not making a lazy() function to make it possible to curry a variable number of arguments into a function... < 1185118299 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :convert this into a oneliner: < 1185118322 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.caboo.se/81146 < 1185118340 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what is *args for? < 1185118363 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def x(*args); args; end x(34324, 2, 3, 3) < 1185118363 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting $end < 1185118367 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def x(*args); args; end; x(34324, 2, 3, 3) < 1185118367 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> [34324, 2, 3, 3] < 1185118372 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def x(*args); args; end; x() < 1185118372 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> [] < 1185118373 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def x(*args); args; end; x(2) < 1185118373 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> [2] < 1185118380 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def x(a, b, *args); args; end; x(2, 3, 4, 5) < 1185118381 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> [4, 5] < 1185118383 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you see < 1185118385 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :va-args. < 1185118396 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :also that #call doesn't support va-args, yet, but meh < 1185118404 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see now < 1185118421 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can make currying implicit in ruby < 1185118439 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1185118452 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1185118453 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185118456 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1185118458 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :my mod makes < 1185118473 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :def hello(x, y, z); z; end; method(:hello).call(1, 2).call(3) -> 3 < 1185118474 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you really do x([list],another_arg)? < 1185118486 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if x takes a variable number of args < 1185118500 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, that should make it x([list,another_arg]) < 1185118506 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which is wrong when currying < 1185118515 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :def x(*args); args; end; x([1,2],3) < 1185118519 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lists are nested < 1185118521 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval def x(*args); args; end; x([1,2],3) < 1185118521 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :=> [[1, 2], 3] < 1185118536 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :proc {|x| call(*args, x)} -> proc {|x| call(*args+[x])} ? < 1185118557 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah - thanks for finding my bug < 1185118560 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if *argsis a list < 1185118564 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you're right, it should be *(args + [x]) < 1185118566 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yar < 1185118571 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah that way around < 1185118586 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that is the bug i think < 1185118588 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it should work now < 1185118594 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :replcae the newlines with ; and try it < 1185118598 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kay < 1185118647 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(*args, x)};else;old_call(*args);end;end;end < 1185118648 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected tIDENTIFIER, expecting tAMPER < 1185118654 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tAMPER? < 1185118658 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :tAMPER = & < 1185118668 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you didn't fix the bug < 1185118671 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ity;proc {|x| call(*args, x)} < 1185118674 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(*(args+[x])};else;old_call(*args);end;end;end < 1185118674 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected '}', expecting ')' < 1185118680 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(&(args+[x])};else;old_call(*args);end;end;end < 1185118680 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected '}', expecting ')' < 1185118685 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :get rid of & < 1185118686 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you want * < 1185118693 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(*(args+[x])};else;old_call(*args);end;end;end < 1185118693 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: (eval):1: syntax error, unexpected '}', expecting ')' < 1185118696 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just tried. < 1185118705 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because it asker for the ampersandorz < 1185118708 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*asked < 1185118717 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(*(args+[x]))};else;old_call(*args);end;end;end < 1185118717 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :NameError: (eval):1:in `cmd_eval': undefined method `call' for class `Blahbot::Proc' < 1185118739 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185118764 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :%eval class Proc;alias :old_call :call;def call(*args);if args.length < arity;proc {|x| call(*(args+[x]))};else;old_call(*args);end;end;end; Proc < 1185118764 0 :blahbot`!unknown@unknown.invalid PRIVMSG #esoteric :NameError: (eval):1:in `cmd_eval': undefined method `call' for class `Blahbot::Proc' < 1185118769 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :somethign is wrong < 1185118797 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hard to say... what's alias < 1185118797 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :?= < 1185118812 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :class X; alias :x :y; end; X.x -> X.y < 1185118832 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185118833 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that code works in irb < 1185118837 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :just not on the bot < 1185118842 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :probably i need an extra thread < 1185118843 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1185118870 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but it curries every function when you do that? < 1185118875 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's like insanely cool < 1185118878 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :well < 1185118885 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you can't do func(blah) to curry < 1185118887 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :because I changed Proc < 1185118893 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you need method(:func).call(blah) < 1185118895 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :which is a but ugly < 1185118898 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but yeah < 1185118899 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :apart from that. < 1185118926 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh nice < 1185118933 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :irb(main):024:0> proc {|x,y|x}.call(2).call(3) < 1185118934 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :=> 2 < 1185119069 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :god i wish i had oklotalk... < 1185119084 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :implement it :) < 1185119092 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :doing file io in *any* language is a pita < 1185119120 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :in which sense - implementing the IO for oklotalk is why you're not implementing oklotalk? or the fact that you want to do file IO only in oklotalk and that's why you want it < 1185119145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :errr... hmm < 1185119156 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :latter < 1185119178 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'm willing to implement oklotalk :P < 1185119181 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if you can give me a rough spec.. < 1185119207 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :meh, i'm making progress, and as long as i am, i < 1185119211 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :'d rather do it myself. < 1185119219 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so it's mine. < 1185119222 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok then < 1185119232 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd implement my own anyway :) < 1185119242 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :still, you'd have it sooner for the time being < 1185119261 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you think you'd implement it fast? :) < 1185119285 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can tell you it's harder than c to parse. < 1185119306 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :parser generators work wonders, sometimes < 1185119312 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :especially if you can manually extend them < 1185119340 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, try oklotalkspec @ www.vjn.fi/mb < 1185119351 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ask me if you don't get something < 1185119404 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how on earth do you work that < 1185119408 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185119412 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah, i see < 1185119416 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :shitty interface =p < 1185119429 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's removed < 1185119439 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with the interface? < 1185119443 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Any '"' will begin a character array ending in another '"', '\' can be used for escapes. '\n' for linefeed, '\\' for '\', more added as needed, most likely the same ones as in other langs. <-- why not have " as a command < 1185119447 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you specify project name and press load. < 1185119457 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as a command? < 1185119490 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i do not understand. < 1185119496 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with the interface? < 1185119502 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :For example "($$: :." would be tokenized into ["($$:", ":", "."]. <-- don't tell people how to tokenize, or how their parse tree should look... just describe the syntax ;) < 1185119505 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's better < 1185119512 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i wasn't talking about the interface < 1185119531 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : shitty interface =p < 1185119557 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: how should i describe syntax then?= < 1185119558 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wow, you "fix" misplaced brackets < 1185119560 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that's insane! < 1185119574 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, just... don't tell people how their final picture should look, just say what is valid and what is not < 1185119601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in oklotalk, everythingis legal. < 1185119605 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*everything is < 1185119607 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so... < 1185119612 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can rewrite the spec for you < 1185119625 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :.* <- check for that regex < 1185119626 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185119658 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ture < 1185119672 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can make the parser faster than me. < 1185119681 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because i want to do it a bit differently than that. < 1185119855 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: that's the basic guidelines, the spec is not complete < 1185119902 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also, that is oklotalk 1, in oklotalk 2, there's also typing and real-time parsing, which kinda affect parsing. < 1185119916 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk 1 was so that i could actually get something done. < 1185119930 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i design about 100 times faster than i implement < 1185120208 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i think i might put down, in words, my syntax-morphing language, < 1185120212 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and my functional language < 1185120233 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that spec is wrong in saying the tokenization isn't always greedy < 1185120246 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the concept i actually mean i think doesn't have a term < 1185120257 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: go for it < 1185120277 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Tokenizing is the easy part < 1185120294 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i just need to write a list of terminals, and some extra rules < 1185120381 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see. < 1185120408 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tokenizing is easy, i wasn't saying it isn't < 1185120425 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm just saying one sentence was wrong < 1185120547 0 :ololobot!n=ololobot@194.251.101.183 JOIN :#esoteric < 1185120554 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay,got it working < 1185120561 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but not the way i wanted to :| < 1185120626 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: what languages have you implemented? < 1185120638 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :a few < 1185120644 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1185120653 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i've implemented a few. which one do you mean? < 1185120657 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there's a bit of a difference between languages :=) < 1185120659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1185120661 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what languages :D < 1185120664 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :list a few < 1185120671 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i don't know, i implement languages all the time < 1185120677 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :esoteric or non-? < 1185120684 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :non < 1185120691 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :esotericones are usually trivial < 1185120697 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*' ' < 1185120717 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, do you know your parsing, oklotalk has the hardest parsing i know of < 1185120732 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :parsing is trivial < 1185120739 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see. < 1185120768 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what have you implemented, now out of curiousness? < 1185120787 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand. i implement lots of languages, why do you want a complete list? < 1185120795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1185120802 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a random example. < 1185120804 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no reason < 1185120808 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just asked < 1185120814 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you don't have to tell me :D < 1185120819 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :well, i've implemented lots, mostly simple < 1185120837 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lots of stack-based ones, a Lua-alike called slang for Simple Languge < 1185120839 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :those are the main ones < 1185120842 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just never found parsing trivial. < 1185120844 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'm generally minimalistic in syntax, though < 1185120849 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but i can parse more complex things < 1185120852 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk isn't easy, though < 1185120868 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then again, i don't use regexes or parser generators of course, might make it trivial < 1185120873 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and skill as well. < 1185120945 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, you can't know parsing is trivial if you never tried, so i asked if you ever tried. < 1185121038 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(on an unrelated note, here's an example of my self-morphing parser: http://pastie.caboo.se/81154) < 1185121043 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(it can even create tokens on the fly)| < 1185121069 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :error in there, you need e.g. cond instead of < 1185121075 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :cond, maybe better < 1185121078 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but you know what i mean < 1185121147 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tokenization isn't fully free there, but of course, it can never be. < 1185121170 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185121172 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :why not? < 1185121173 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes it can < 1185121176 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you can delete tokens and everything < 1185121192 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you could, for example, replace the whole syntax with lisp s-expressions < 1185121198 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and make everything else illegal < 1185121203 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, that isn't fully extendable < 1185121206 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or is it? < 1185121207 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes it is < 1185121213 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :see above < 1185121230 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :make if BEGIN END mean if { } < 1185121241 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok: < 1185121296 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :tokens("BEGIN", "END"); syntax begin_end = ("BEGIN", exprs, "END") = ; < 1185121303 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :actually, make that < 1185121305 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :tokens("BEGIN", "END"); syntax begin_end = ("BEGIN", exprs, "END") = block; < 1185121309 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you get the idea, though < 1185121344 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :actually, you could drop exprs and make it < 1185121349 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :since it's just passing the params to block < 1185121378 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :expr? < 1185121388 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric : is like < 1185121389 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the pointer to the upmost rule? < 1185121401 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :syntax X = (blah); lets you use < 1185121404 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :in other syntaxes. < 1185121410 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's just a reference to a rule < 1185121424 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :although, for BEGIN->END you probably want < 1185121426 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :which is statements < 1185121429 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(For the ; seperation) < 1185121446 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(Statements are just expressions with a seperator) < 1185121559 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :write a parser for it and i'll learn it fully :) < 1185121567 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll be coding now, see ya! -> < 1185121572 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!/gh < 1185121575 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1185121636 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i don't see why i need to parse that for you to understand it :P < 1185121686 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't see why i'llneedto understand it if no one will parse it for me :P < 1185121692 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*i'd need to < 1185121711 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i do understand that much, of course < 1185121729 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's a pretty straightforward c-style syntaxextension :| < 1185121733 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, gooone -> < 1185121751 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how come? the whole syntax, is definable in terms of the syntax objects < 1185121755 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you can manipulate them, change them, etc < 1185121761 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you could even change the "syntax" syntax < 1185121766 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185121790 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a syntax command will affect parsing after it? < 1185121800 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you didn't tell me *what* parsing it affects < 1185122021 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i "got the main idea", i do *not* know the spesifics < 1185122064 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i'm pretty sure the complete spesification wasn't implicit in the few examples you showed :) < 1185122072 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but really, code. < 1185122591 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes, it will < 1185122594 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it affects all parsing < 1185122609 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that example is a program < 1185122612 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :well, if you get rid of the initial "if" < 1185122614 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"all parsing" ...after that line < 1185122616 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it parses fine < 1185122621 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there'sa crucial difference < 1185122634 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*there's a < 1185122639 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :as soon as you run tokens() you can use those tokens in the "syntax" syntax < 1185122646 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the "syntax" syntax, after it, adds that syntax to the parser. < 1185122788 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :will everything be parsed once or can you affect the parser in a loop? < 1185122808 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there's a million things i don't know yet based on your explanation :) < 1185122870 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :void*(*matchers[])(char*)={num_match,oper_match}; you gotta love c < 1185123280 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :everything is parsed as much as possible < 1185123284 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes you could do it in a loop < 1185123295 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the speed penalty doesn't matter much, today's interpreters/compilers can optimize to hell < 1185123318 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :also < 1185123326 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :void*(*matchers[])(char*)={num_match,oper_match}; does that actually change c's syntax? < 1185123332 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :because im 99% sure c's syntax is fixed < 1185123349 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :..huh? < 1185123353 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that was just c code :) < 1185123368 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should use < 1185123449 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :=P < 1185123455 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh is that from the oklotalk parser < 1185123466 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm making numbda in cfirst < 1185123469 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1185123469 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*c first < 1185123480 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i suggest using something like, ML for oklotalk parsing < 1185123485 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it'd make things a lot simpler < 1185123494 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :doesn't sound like something i would do :) < 1185123498 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ML? < 1185123515 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :aaa < 1185123534 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :SML < 1185123539 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i like SML < 1185123541 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i dont like ocaml < 1185123544 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm making it in c, it has to be low. < 1185123580 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd make it if in asm, but i've become a coward after using so much python the whole summer < 1185123597 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :why does it have to be low? SML can be compiled. < 1185123601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>> numbda ulkiuliuli < 1185123601 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :nonsensical < 1185123602 0 :ololobot!unknown@unknown.invalid PRIVMSG #esoteric :error:no-such-variable:ulkiuliuli(-1) < 1185123628 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: anyway, i do not care what is sensible, i'll make it in c. < 1185123642 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just want to code, the harder the better < 1185123644 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :naturally < 1185124194 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i forgot how unbelievably great this language is<3 < 1185124201 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(c) < 1185124676 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha, segmentation fault < 1185124682 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this language is great < 1185124765 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :C sucks =P < 1185124797 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, perhaps < 1185124802 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i kinda like it < 1185124840 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... i can't imagine anything more fun than making a generic list construct in c. < 1185124848 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll make it now < 1185125028 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1185125047 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :SML ftw < 1185125112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sml looks easy to learn < 1185125391 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :c is actually pretty functional, i wonder why i was so afraid of function pointers when i was little < 1185125489 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :SML combines the nice syntax of Haskell with the imperativeness of scheme < 1185125498 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :beware the evil OCaml < 1185125659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1185125663 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :because it is horrid < 1185125675 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric : # let rec fact n = < 1185125676 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric : if n =/ Int 0 then Int 1 else n */ fact(n -/ Int 1);; < 1185125680 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, it killed your father and raped your mother? < 1185125682 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :don't tell me that looks nice. < 1185125693 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hey, i love every language :) < 1185125707 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hehehe < 1185125709 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why the /? < 1185125715 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you have to use different operators for floating-point stuff too < 1185125719 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :3 / 1.0 MMMNOPE < 1185125720 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :.+ < 1185125725 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :3 ./ 1.0 ewwww < 1185125725 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :+. i mean < 1185125725 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1185125726 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1185125729 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :+. < 1185125732 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :3.0 +. 1.0 < 1185125735 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I just realised that functional programmers don't often suffer from the exit-from-middle-of-loop problem < 1185125758 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Also ". .~(power 5 ..)>.;;" do you like how that looks. < 1185125759 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :true < 1185125804 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :what about: < 1185125807 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand that < 1185125811 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :code < 1185125815 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :let rec init n f = if n=0 then [] else init (n-1) f @ [f n];; < 1185125841 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's that do? < 1185125849 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Ah, this is the best example: < 1185125851 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can't quite figure the end < 1185125859 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Compare http://www.codecodex.com/wiki/index.php?title=Insertion_sort#OCaml and http://www.codecodex.com/wiki/index.php?title=Insertion_sort#Standard_ML < 1185125863 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the standard ML one is much nicer/. < 1185125936 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :What about, calculating, say, e? < 1185125937 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :# let rec e ?(fact=1) ?(i=1) = function < 1185125938 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric : | 0 -> 0. < 1185125938 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric : | n -> 1. /. float fact +. e ~fact:(i*fact) ~i:(i+1) (n-1);; < 1185125938 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :val e : ?fact:int -> ?i:int -> int -> float = < 1185125941 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that's some ugly code. < 1185125958 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so, yes, beware of OCaml, don't beware of SML. < 1185126004 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :float = ... that's what a lazy swimmer would say < 1185126013 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hahaha < 1185126046 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to be honest i don't mind it's looks, but i can't imagine a syntax i wouldn't like :)( < 1185126047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1185126052 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*its < 1185126072 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :more fuel: http://www.podval.org/~sds/ocaml-sucks.html < 1185126075 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :why ocaml sucks :P < 1185126113 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :most of the more serious of those problems do not exist in SML < 1185126304 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :good for him :) < 1185126574 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll use sml if i ever have to choose between those two. < 1185126608 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :SML is a good language for implementing languages :) < 1185126853 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1185127682 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :c is hard to debug though, unless i actually get a debugger < 1185127694 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(or already have one and start using it.) < 1185127831 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :gdb, i guess < 1185127845 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but hooray for debugging-is-just-loading-your-program-and-running-a-repl languages < 1185127848 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(Forth, Lisp, etc) < 1185129926 0 :RodgerTheGreat!n=Rodger@wads-5-232-125.resnet.mtu.edu JOIN :#esoteric < 1185130979 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: your egobot's brainfuck code is really, really, terrible < 1185131283 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :? < 1185131373 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :he uses global variables to pass parameters to functions < 1185131386 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :his brainfuck-interpreter? < 1185131390 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*-- < 1185131681 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But SML is a weenie-only language :( < 1185131713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just for boys? < 1185131761 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :SML is rock language! < 1185131765 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185131923 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Weenies == Those who get nothing but algorithms done in life (goes the joke). < 1185131998 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185132004 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's a funny one < 1185132006 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1185132525 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: I assume you mean egobfi? < 1185132531 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1185132547 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'd say that it's a damned efficient interpreter. . . < 1185132555 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Although it's tempting to rewrite some bits. < 1185132557 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it all compiles the same < 1185133073 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I'm a little confused here. Why is one entry not being added to the Hashtable?! Is the implementation not perfect, or something? < 1185133091 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I *know* it's being attempted to be added, the table just doesen't want it though. < 1185133103 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Grrrr! < 1185133146 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :are you using the wrong form of datastructure? Possibly using a Map when you want a Dictionary? < 1185133160 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :not to insult your intelligence or anything, but it's an easy mistake to make < 1185133191 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :isn't a map a dictionary? < 1185133200 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :a map is a dictionary < 1185133205 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :a dictionary is not a map < 1185133215 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :map (1 key to one result) < 1185133229 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :dictionary (1 key to several results) < 1185133234 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well, it could be, because I'm not certain what the equivalent Java classes are. But conventionally, I'd use a hash table that accepts an object as a key and then I get a value. < 1185133245 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :No. 1 key to 1 result. < 1185133261 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ok, then a HashMap is what you want. hm... < 1185133265 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :That's what a hash table *is* after all. < 1185133285 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :use an alist! < 1185133295 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :... :P < 1185133302 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Use a binary tree! < 1185133322 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I may just use an alist because the elements aren't too huge. < 1185133332 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But a hash table should scale infinitely huge, if neccessary. < 1185133340 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :(Which is why I want it.) < 1185133351 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :size of elements doesn't matter, just number of them < 1185133358 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Obviously. < 1185133369 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's not what you said < 1185133371 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Since pointers are probably stored in the table anyways. < 1185133380 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :*number of elements aren't too huge. < 1185133436 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :In the interface to the HashTable I have the key to be added printed out before its added, so I can tell it's *trying* to be added, but then when I loop through the Enumeration containing the keys, the Enumeration gives me the correct number of elements, but one of these elements is null. < 1185133441 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :scheme48 has a function named ASS, hurr hurr < 1185133456 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Programatically, it seems that I'm doing nothing wrong. < 1185133500 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Also bsmntbombdood, size *does* matter, because the hashing algorithm has to able to operate on something the size of the element that is the key. < 1185133520 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1185133525 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not in an alist < 1185133537 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: java? < 1185133538 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :An alist isn't a HashTable. < 1185133541 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: Yeah. < 1185133560 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it uses the addressof the object as the hashvalua < 1185133563 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*hashvalue < 1185133569 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*address of < 1185133592 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, but a larger pointer will not fit into an algorithm meant for a smaller one :P < 1185133610 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :so java's builtin hashtables don't work? < 1185133625 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: huh? :) < 1185134813 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I'm guessing so? < 1185134842 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a larger pointer? < 1185134855 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: 64-bit pointer vs. 32-bit pointer. < 1185134879 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i... kinda think only one type is used at a time < 1185134922 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well you know, just in case. < 1185134924 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1185135085 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err... sounds feasible. i haven't read *every* jvm's binary. < 1185135178 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :128 bit pointers for wins < 1185135229 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bignum pointers < 1185135683 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :new proccessors should have 128 bit addresses and 260 bit words < 1185135743 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :260? < 1185135748 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err why? < 1185135767 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :4 tag bits and 256 data bits < 1185135908 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see < 1185135938 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :New processors should have scaling pointers. < 1185136450 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Scaling pointers? < 1185136472 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Wouldn't you have to store their length somewhere? < 1185136509 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1185136705 0 :GregorR-L!n=gregor@c-76-27-232-8.hsd1.or.comcast.net JOIN :#esoteric < 1185136831 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1185136955 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ihope: It works via magic, of course. < 1185136970 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1185136976 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Bigpointers! < 1185136981 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Actually, bigpoints! < 1185136992 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I know one way for it to work. . . < 1185137002 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :0-delimited unary. :p < 1185137025 0 :atrapado!n=openfil@233.Red-81-47-3.staticIP.rima-tde.net JOIN :#esoteric < 1185137361 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Now I can sit down and code again. < 1185137377 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :So, either I get this Hashtable to work or I have to write an AList class. < 1185137444 0 :RedDak!n=dak@host115-89-dynamic.16-87-r.retail.telecomitalia.it JOIN :#esoteric < 1185137943 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is an infinite board go tc if considered a multiway system? < 1185137957 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185137980 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Where did this myth that languages cannot be sow come from? < 1185137991 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Languages can be slow. < 1185137998 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Doubtful, since one has no control over the two players. Now, if you specify how the two players play, it might be. < 1185138007 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :For example Oroogu is a slow language, as is BF < 1185138014 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: do you know what a multiway system is? < 1185138020 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Apparently not. < 1185138041 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: Brainfuck's not terribly slow, actually. . < 1185138041 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it means *every* *single* way to play it is simultaneously played. < 1185138047 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1185138053 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Possible. < 1185138070 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :A slow language is one for which it is a PITA or even impossible to create a fast implemtation. < 1185138075 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is interested in how one could test it < 1185138082 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185138087 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: Define "fast". < 1185138104 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think ankos had some multiway system proofs... or just one... i could check there how to do it < 1185138121 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I mean that the program goes (almost) as fast and anything one could write by hand. < 1185138136 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :A good C or LISP compiler is "fast" < 1185138155 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it produces asm as good as or better then humans < 1185138167 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1185138177 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION would argue that Egobfc is fast, then < 1185138189 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :OTOH, Python is not as fast, especially in the OO areas. < 1185138193 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: any language that has the same level operators the underlying system has is *fast*. < 1185138207 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1185138211 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :but not just those < 1185138256 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, if you must somehow do thing *harder* than the asm will, the ocmputer cannot always convert it to the fastest possible asm < 1185138261 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*things < 1185138265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*computer < 1185138276 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :but often nearly gets there < 1185138277 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if not that, then it most likely can < 1185138290 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, but i'm talking in theory < 1185138294 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i am very very hungry < 1185138295 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Python is non-fast because you often need lots of work to prove that (e.g.) methods can be resolved at compiler time. < 1185138311 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, which asm doesn't have to do < 1185138339 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :The more you can fuck around with things at runtime, the slower the language will be, roughly. < 1185138340 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :BF is difficult but entirely possible to optimize via compiler, generating fast code. I'd gauge "slowness" of a language by the difficult in efficiently translating the language into machinecode (when compiled). < 1185138341 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Assembly notation is fast. ;) < 1185138355 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :*difficulty < 1185138384 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: As proven by Gregor's Egobfc, which does a whole lot of loop unrolling, detects copy loops, etc... < 1185138388 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Now that I'm implementing an AssocList class in Java, I'm finding less and less reason not to use Lisp :P < 1185138412 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Also, would someone mind testing for me if gcj supports the generics when specifying LinkedLists ? < 1185138420 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :(Or other such things.) < 1185138464 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's fairly easy detecting stuff like copying and carrying a value aroung in the memory, but once you start doing stuff like division, the compiler is screwed < 1185138528 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: yes < 1185138554 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then again, division isn't all that fast on the asm level either < 1185138567 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you've seen the stuff people do to avoid it... < 1185138587 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like 20 lines of assembly to avoid a division < 1185138595 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Ah, I have discovered why laziness sucks. < 1185138602 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1185138609 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1185138621 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Forget all the talk about space and time usage, and unpredicatbility... < 1185138633 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :forgotten. < 1185138656 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :It stops you from re-defining things at run-time! < 1185138667 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :you can't change function definitions at run-time < 1185138680 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :you can't change classes at run-time < 1185138680 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1185138684 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure you can < 1185138714 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the function will check it's location in memory, if there is a pointer to it, it will not mutate in-place, < 1185138720 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that simple < 1185138721 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1185138740 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yes- the entire challenge of good BF optimized compiling is *recognizing* the structures you can translate into higher-level (and faster) operations < 1185138745 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: well... < 1185138753 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :suppose you have: < 1185138760 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Here's an oddity. A Hashtable shouldn't even accept a null value. < 1185138763 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the language allows for the creation of these things, but they're harder to pick out than, say, C or BASIC. < 1185138765 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: My method for doing that is cheating. . . < 1185138767 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Grr. < 1185138772 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :foo = zipWith bar xs ys < 1185138785 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I've just got a higher-level language, wherein you just say that you're using those structures. ;) < 1185138786 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: o < 1185138793 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Makes it easier to recognise when compiling to C. < 1185138806 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :now, after having read a few elements of foo, you change the definition of bar... < 1185138811 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: naturally, if you use libraries to *create* these synthetic high-level things, you know exactly how to recognize and translate them < 1185138822 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: why don't ya secretly ignore the assembly completely ;) < 1185138826 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185138829 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1185138834 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :s/assembly/braeinfuk < 1185138835 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :,., < 1185138842 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :we all got what you meant < 1185138844 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :would you use the new or old definition when you look at new elemnts of foo < 1185138845 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, i can't type < 1185138847 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1185138848 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185138849 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :what about old elements of foo? < 1185138862 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: old < 1185138865 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :right < 1185138882 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :so, we have static lexical scope < 1185138889 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err yeah < 1185138897 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh scoping in assignation < 1185138902 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185138910 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :therefore, when you load a new definition of a function, no-one will use it, making it a bit pointless < 1185138911 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, something funny i found about that. < 1185138931 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can just use it after changing it. < 1185138943 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or allow mutators < 1185138968 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :define "using" it < 1185138983 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: Like I said: cheating. < 1185138989 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1185138991 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err... redoing foo= bar etc zippers < 1185139001 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok... < 1185139008 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1185139013 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's there for efficiency < 1185139021 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :what if the function is used in 12 places in your program... < 1185139022 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you want it to behave as if it didn't exist < 1185139031 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hih? < 1185139034 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1185139042 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err... that is why you don't mutate. functions < 1185139045 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*-. < 1185139058 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because it gets hard to read < 1185139067 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :you will need to re-define everything that uses it to get the new definition to be used < 1185139079 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no, if you allow mutators < 1185139085 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this isn't lazinesses problem < 1185139097 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that exact same thing happens lazy or not. < 1185139100 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1185139124 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, laziness lets you do more complete in-place mutation < 1185139129 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you wanna do it < 1185139131 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :erm... < 1185139134 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and who doesn't. < 1185139160 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :of course it does, you can even mutate a calculation that was done in the past if it wasn't actually done. < 1185139166 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but lazied out. < 1185139179 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :in some languages, you can re-define a function and the new definition gets used immediately, because the idea of whether a function call has taken place at a particular time makes sense. < 1185139197 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that works for laziness as well. < 1185139200 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you aren't making much sense. < 1185139202 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, in that case < 1185139203 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :waiut. < 1185139205 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait. < 1185139212 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can just evaluate, then change. < 1185139218 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :be lazy when you need to. < 1185139225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :don't be if it hurts you < 1185139230 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1185139243 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can evaluate whatever had the function non evaluated < 1185139246 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric : you can just evaluate, then change. <-- what exactly does that mean < 1185139253 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1185139263 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so hard to type i'm concentrating on that :P < 1185139267 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1185139268 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric : oklopol: you aren't making much sense. < 1185139272 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, let me collect my thoughts. < 1185139311 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :and a good compiler for a lazy language will spot strictness in lots of places, so the amount of optimisation will affect the behaviour of the program! < 1185139319 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so... why does it matter if a function changes its meaning in a lazy language? < 1185139349 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :because laziness is fundamentally about not knowing when a function call has been evaluated yet < 1185139349 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can use the old definition if you do as i said and just not change it in-place < 1185139383 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tpyes < 1185139397 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i've always thought about it as an optimizing technique and a way to have infinite structures, what are you referring to about it ? < 1185139406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1185139413 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :let me finish! < 1185139419 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm referring to stuff where the programmer need not know it's there < 1185139443 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :But if you don't mutate in-place, then you can only update to use the new version by re-defining the things that use it. And the things that use those. And so on, so you end up needing a mechanism to re-define lots of things. < 1185139461 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I am talking about laziness that is in the language, not just the implementation < 1185139465 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :e.g. Haskell < 1185139466 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and you don't need that if you'd already evaluated those things? < 1185139488 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185139512 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1185139516 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1185139528 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i don't see how it can ever be a problem, you just have a way to tell what kinda mutation to use at each assignation < 1185139541 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :erm... < 1185139543 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :um... < 1185139576 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in-place (all the thing you know aren't evaluated, will evaluate the new way) or out-of-place evaluation < 1185139577 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :that doesn;t help much < 1185139584 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wwwwwwwwhy? < 1185139601 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :because you often don't know what has been evaluated < 1185139619 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :and different compilers will do different optimisations < 1185139624 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then you don't have the laziness as a usable helper in the language. < 1185139630 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you don't always know whether it's being used < 1185139635 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1185139684 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hey < 1185139687 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1185139688 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :very hard < 1185139691 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to explain < 1185139697 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :when typing is like aoeirjhg < 1185139706 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my keyboard is not my favorite. < 1185139710 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1185139717 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err... i'll try to rephrase < 1185139784 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think most languages have lazyness in such a way that the programmer need never get vad consequences out of it, right? they can code as they would without lazyness, BUT they can also do stuff they couldn't do without it, like infinite stuff, right?= < 1185139794 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*bad < 1185139833 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :correct < 1185139852 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so basically you can just have *everything* be done as if nothing was lazy and the language just happened to have infinite storage, because the laziness is just something to keep the infinite math fun going. < 1185139866 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1185139868 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(infinite math fun... stuff that can't exist but can be toyed sith) < 1185139870 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1185139887 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, well then just have everything not mutate in-place as you would without laziness < 1185139898 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so that everything is *as if* it had been evaluated < 1185139908 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :even though the advanced programmer knows it's not. < 1185139964 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok... < 1185139976 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :suppose bar uses foo, and you re-define foo. < 1185139996 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :do you ned to re-define bar to get it to use the new version of foo? < 1185140010 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you *want* to change a function so that something will be affected somewhere else (because there were copies of that function unevaluated), you're in a luck, you *can* do that in a lazy language if you know exactly what hasn't been evaluated < 1185140028 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I win \o/ < 1185140032 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: either yes or know, lazy or not. < 1185140043 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Hashtable is faulty, someone needs to tell Java about that. HashMap works fine though. < 1185140050 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: me and SimonRC's conversation? < 1185140051 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1185140065 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: you tell those bastards < 1185140071 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: when yes and when no? < 1185140072 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklofok:Alright. I will. < 1185140080 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is it faulty in all implementations? < 1185140084 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you said you tried multiple < 1185140105 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: whichever you want in a lazy language < 1185140113 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :right < 1185140117 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :laziness only gives you another possibility < 1185140125 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :There is a replacement for the Haskell list functions that uses stream fusion. This ultimately means that you can write a function that is completely strict where it can be and lazy to some degree otherwise. The programmer cannot be expected to know where it is strict and where it is lazy. < 1185140140 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :but the possibility is uncontrollable ^^^ so you can't really use id < 1185140178 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, so he'll just use everything as if it had been evaluated < 1185140206 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :only if you know it hasn't been evaluated will you be able to mutate in-place < 1185140211 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I don't call that a useful form of re-definition. < 1185140221 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well you don't have to do that < 1185140222 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: if *who* kows? < 1185140225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but you *can* < 1185140229 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the programmer... < 1185140245 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :the programmer *can't* know < 1185140249 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :almost never can know < 1185140270 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :evaluation can be anywhere from speculative to completely optimised away < 1185140275 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if it isn't useful, why did you say you will need to re-define everything that uses it to get the new definition to be used < 1185140291 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :so anything that depends on the order of evaluation sux < 1185140298 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Gawd. The more I use Java, the more I'm missing dynamic languages ;-; < 1185140301 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: to check which you meant < 1185140312 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see < 1185140345 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, you don't have to use that and it doesn't sound like something you want to do (and if you do, you'll most likely want to mark it lazy *explicitly*) < 1185140359 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, the cry of the lisp -- do you hear it? < 1185140369 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it says "metapatterns, metapatterns" < 1185140370 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just said it can be done in lazy evaluation, because you said it has *less* mutating capability < 1185140380 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :while in fact it has more imo < 1185140384 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and cars which fortook. < 1185140387 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: Actually, it's saying ``REPL, REPLLLLL'' < 1185140389 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :So you have one option (use old defs) that doesn't really count as "re-defining" and one option (replacing things that are not yet evaluated) that is unpredictable. < 1185140397 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, Syntax error :r1 Abooooooort < 1185140404 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1185140407 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: then just use the first one < 1185140412 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I want my SLIME inspector to inspect data structures on the fly. < 1185140426 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Having to run j/gdb is a PITA compared to on the fly debugging. < 1185140427 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: right < 1185140465 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the latter can be used if you *know* what's not evaluated - and you sometimes do - usually you don't, in which case just pretend it's already evaluated and use it as if it was. < 1185140490 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i hate water, why don't i have a coke tap. < 1185140493 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :608 lines and going. < 1185140502 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :you can never be certain something in Haskell isn't evaluated < 1185140525 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: well you were the one saying laziness is somehow inherent in it < 1185140530 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Anyway, we have just concluded that there is something LISP can do that lazy languages will never be able to do sanely. Therefore, laziness sucks (even if only a bit). < 1185140532 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: Because Haskell is st00pd! *leaves quickly*. < 1185140552 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185140557 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what can it do more sanely? < 1185140567 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :LISP can < 1185140570 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :laziness can always simulate non laziness, that's what i've been saying < 1185140576 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :no < 1185140581 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: No, other way 'round. < 1185140582 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :errr < 1185140587 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tell me an example < 1185140588 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :even better, Smalltalk can < 1185140599 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: Read the SICP exercise that implements lazy streams in Scheme. < 1185140612 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure i will :) < 1185140614 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can gimme alink < 1185140616 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*a link < 1185140618 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :.... :P < 1185140622 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i might < 1185140630 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :otherwise, doubt it :) < 1185140645 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :in smalltalk, all method lookup is dynamic < 1185140645 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have a lot of stuff to do, not important, but a lot < 1185140657 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Smalltalk :33 < 1185140665 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whn can't laziness simulate strictness? < 1185140667 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :if you re-define a method, everything instantlyswitches to the new version < 1185140668 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*when < 1185140684 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: there's no problem in laziness with that < 1185140703 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :because with strictness you have a defined order of evaluation and with laziness you don't < 1185140712 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: yes there is < 1185140720 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just evaluate the stuff that was lazy and you have everything as if strict evaluation had been used all along. < 1185140741 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :laziness will just not do it if not necessary. < 1185140745 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's the idea. < 1185140762 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mutation can always be simulated in it, any way. < 1185140775 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: if you computer something with the old version, then switch to the new version, in a not-explicitly-lazy language you would expect the computation to use the old version < 1185140813 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in a strict language the old one would be used? < 1185140822 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, you can do that in a lazy language as well., < 1185140843 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5 < 1185140868 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Shame shame if you haven't read SICP. < 1185140872 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: am i wrong in what i said? < 1185140873 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1185140877 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know lisp < 1185140883 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But it's SICP!!! < 1185140916 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1185140918 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :SICP is incredible in how it teaches your basic, interested, lay person how to think about computer programs in terms of abstractions and computations. < 1185140926 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's lovely in that way, in fact. < 1185140937 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I think I may have got a bit confused, but only a bit... < 1185140962 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: you think i lack basics or..? < 1185140970 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i will read that, sure, but why? < 1185140978 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know what laziness is < 1185140991 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Practice != theory. < 1185140998 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185140999 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1185141030 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :if you do do { r1 <- comp ; change_foo ; r2 <- comp ; return (r1, r2) } ... < 1185141038 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You do SICP for the same reason you do brain teases -- to keep your mind sharp. < 1185141071 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :then it is a PITA to sort out where you should use the new and old definitions of foo < 1185141076 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err okay, anyway, in what case is lazy evaluation unable to carry out what strict evaluation would? < 1185141105 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :actually, it is able to do so < 1185141122 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it is just difficult to implement < 1185141127 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: i think in my first sentence i explained how to make that code do the exact same thing lazy or not. < 1185141137 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :first sentence in this thread of lazying < 1185141188 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I was mentally editing it into something that could be implemented sanely < 1185141202 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :to be able to do do { r1 <- comp ; change_foo ; r2 <- comp ; return (r1, r2) } ... < 1185141203 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: i can assure you i read enough theory to keep my brain teased. < 1185141226 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: i've *never* used laziness in practice < 1185141232 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i misread what you said earlier < 1185141237 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :... you must track down every reference to foo and figure out if it should point to the new version. < 1185141269 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err no < 1185141293 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the old function definition will be left alone, the new one finds some other place in memory < 1185141308 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :once the old functions are evaluated, they are gc'd < 1185141331 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and if you don't want that, you just evaluate every copy of the function when you change the function. < 1185141359 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no, it's not that much more inefficient, you just do what you didn't do earlier < 1185141366 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :should the runtime create a second version of comp that uses te new version of foo? < 1185141383 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :suppose that there are an infinite number of invocations of foo possible... < 1185141419 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see what you mean now, anyway, here you'd have to evaluate all lazy things. < 1185141452 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the copying thing doesn't always work with globals < 1185141466 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well not globals, but external variables < 1185141491 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :globals don't exist in many lazy languages. < 1185141497 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :If comp uses bar, and bar uses foo, then after loading the new version of foo you would have two copies of each function lying around, until r1 was GCed < 1185141536 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: okay, i admit that's a problem, however, most problems of that kind can be fixed at compile time < 1185141563 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a function using non-argument variables would give a warning that it can't be lazy < 1185141582 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and that's it. < 1185141589 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :of couse, there is a silly way around it... < 1185141630 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how many functional language interpreters lambda lift all functions then convert them to macros? < 1185141634 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :with pattern matching < 1185141636 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i.e. a list of replacements < 1185141650 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it seems like that's not a conventional way, mostly interps seem to use a call stack... traditional way < 1185141654 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I suspect you can write wrapersthat do all the lookup at runtime by reading IORefs, assuming that you are only redefining IO action functions < 1185141774 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: i now see that is structure and interpretation of computer languages and not a random article < 1185141780 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, the book < 1185141789 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1185141795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i do know *that*, but apparently not it's acronym < 1185141833 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i admit i should read that, sorry, everyone should read that :) < 1185141852 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also ankos, you should read it < 1185141952 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i guess its not common < 1185141973 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(also with rewrite rules like that youd need to convert "if"s to inner functions with pattern matching) < 1185142045 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. SICP is Structure and Interpretation of Computer Programs. < 1185142052 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :didn't realize that < 1185142107 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'll read it now < 1185142179 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Do the exercises. < 1185142212 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yes, ma'm. < 1185142245 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'm pretty sure i won't get a lisp interpreter :) < 1185142260 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It introduces you to Scheme along the way. < 1185142271 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, SICP makes you write a scheme interpreter in a scheme interpreter < 1185142275 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that is what it is all about < 1185142278 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :also, i'm pretty sure i know lisp already, just from reading stuff over the years. < 1185142281 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you >must< follow it along, step by step. < 1185142284 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's enlightening < 1185142291 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1185142294 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :sounds fun < 1185142311 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :eventually, you used a highly structured, metaprogramming-supporting language to implement itself, peice by peice reimplementing everything < 1185142313 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's nice < 1185142331 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i admit that sounds cool < 1185142335 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :By the end of SICP, you'll realize why all the dynamic languages suck. < 1185142341 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but isn't scheme insanely easy to implement anyway? < 1185142352 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :In *theory* ;) < 1185142359 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i see. < 1185142361 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::\ < 1185142375 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, dynamic languages don't suck :) < 1185142381 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :dynamic languages lend themselves to metaprogramming < 1185142382 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :scheme has static scoping or...? < 1185142384 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :metaprogramming can be very useful < 1185142386 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, of course < 1185142395 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :scheme is a modern language used in both academia and production. < 1185142412 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i like dynamic more. < 1185142415 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :s/suck/don\'t suck/ < 1185142416 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Sorry. < 1185142418 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :scheme is dynamic :P < 1185142419 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, ah < 1185142425 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :scheme is far more well-designed and "pure" than common lisp (ugly!) < 1185142428 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I meant why all the static languages suck. < 1185142435 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I love CL. Moret than Scheme. < 1185142444 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if you're not quite uptodate on scheme, read http://en.wikipedia.org/wiki/Scheme_%28programming_language%29 < 1185142461 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :The brevity of Scheme seems to make it more useful for academic purposes, and its SRFIs destroy it. < 1185142476 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no way, Sukoshi < 1185142480 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :srfis are golden < 1185142494 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :all of scheme is a wonderful little powerful gem < 1185142503 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :common lisp is a sprawling, over-engineered system of doom < 1185142513 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Purity almost *never* translates into an oft-used-language. < 1185142522 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Because real world problems are ugly. :) < 1185142533 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :scheme allows you to express ugliness purely. :) < 1185142548 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :If you want to program and go ``Oooh. Aaah. Beautiful.'' use Scheme, if you want to program and get things done, use CL, says I. < 1185142559 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :That's what Paul Graham says. Incidentally, he's wrong. < 1185142567 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Scheme is a beauty to get things done in. < 1185142576 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Don't dismiss it because of its academic roots < 1185142578 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If you want to program and go "Oooh. Aaah. Beautiful." use combinator logic. < 1185142595 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I'm not dismissing it because of its roots, I'm dismissing it because *I've* gotten a lot more done in CL than I have in Scheme. < 1185142599 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, haha < 1185142610 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if you want to program and go "Oooh. Aaah. Beautiful" use iota. < 1185142617 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's so nice and simple and elegant ;) < 1185142617 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You see? < 1185142636 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, Maybe because you didn't really try. < 1185142644 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: Why does *everyone* say that? :P < 1185142664 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Plus Scheme pushes functional style too much over imperative style. < 1185142673 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, Because everybody that everybody knows who has really tried scheme loved it. < 1185142676 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :The rest didn't really bother. < 1185142683 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :And Scheme is an imperative language... < 1185142686 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :It just has a functional core. < 1185142687 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: I love it too ... for academic purposes. < 1185142714 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i ought to write a lengthy rant about scheme not being just for academic purposes. < 1185142715 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185142715 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :But the lack of standardization of anything *but* the language core kills a lot. < 1185142723 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :SRFIs are basically standards. < 1185142736 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :... Which different implementations implement differently :P < 1185142757 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :The main implementations implement the vast majority of *useful* SRFIs in much the same way < 1185142767 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Most scheme interpreters are just someone's toy < 1185142786 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ACTION likes every languages, some for the easy programming, some for the challenge in it < 1185142789 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*language < 1185142801 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i like... well most languages with PHP being a notable exception < 1185142808 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Plus there are even fewer libraries written in Scheme than there are in CL. < 1185142853 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :CL suffers from library creep. :) < 1185142861 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :And Scheme doesen't even include a default object system or any functions for binary data manipulation! < 1185142871 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :(To change somewhat in R6RS, I know.) < 1185142888 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Anyways, I think it's time we drop this, before we restart the ages old Scheme vs. CL debate. < 1185142892 0 :jix!unknown@unknown.invalid QUIT :Remote closed the connection < 1185142894 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Tcl doesn't include a default object system, but that doesn't make it useless. . . < 1185142905 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(although you may argue that point. :p) < 1185142911 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :object systems are generally not needed by default.. < 1185142918 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :especially in lisps. < 1185142927 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Neither are hash tables, huh? ;D < 1185142930 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Suuure. < 1185142942 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Implement everything in a list and make everything O(n) and slow. Suuure. < 1185142944 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hash tables are in an srfi < 1185142969 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Anyways, this debate is pointless, because I like CL more than Scheme and you like Scheme more than CL. < 1185142993 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :And I think both of us have used the two enough to realize that this petty argument won't change our opinions. < 1185143138 0 :jix!n=jix@dyndsl-085-016-237-192.ewe-ip-backbone.de JOIN :#esoteric < 1185143207 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :what is the difference between oklofok and oklopol < 1185143226 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :computer. < 1185143266 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i have two now, but i usually have fullscreen irc only on the other < 1185143275 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :have you not heard of ssh? < 1185143300 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1185143427 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: yes < 1185143431 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :a lot < 1185143436 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: klo^3(fk-lp) < 1185143437 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what is it? < 1185143449 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :a way to communicate between computers? < 1185143467 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1185143468 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: pretty much, I'd say. < 1185143476 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods < 1185143478 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :takes me a while, i know exactly what it is. < 1185143495 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :anyway, what good would that be? < 1185143499 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'd have one nick :O < 1185143505 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric ::O? < 1185143510 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'd feel like i was buried alive. < 1185143514 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh noes. The unspammage. < 1185143528 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'd feel like i was buried alive. < 1185143530 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :all i can say < 1185143531 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: you'd feel trapped? < 1185143533 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1185143535 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :very. < 1185143537 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Like atrapado over there? < 1185143550 0 :atrapado!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1185143578 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: spammage? < 1185143585 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :is it spamming to have multiple nicks :) < 1185143598 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but yes, i couldn't live without spamming < 1185143600 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yup. Reffered to as nick spamming on lots of networks. < 1185143608 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Spamming the nick list! < 1185143617 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that's not spamming. < 1185143618 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What's it do that's bad? < 1185143817 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh my god i've been an idiot... < 1185143840 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :just realized what i didn't manage to do yesterday with numbda could be done by a dead monkey < 1185143851 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: how long is this book? < 1185143975 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, long, i guess: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html < 1185143981 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :certainly not for one reading < 1185144008 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't look all that long to me... < 1185144018 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :if it's < 500, i'll prolly read it tonight < 1185144029 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :unless people start harrassing me about something :) < 1185144039 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :OKLOFOK PLEASE BRING LESS BOTS HERE < 1185144044 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Do the exercises! < 1185144048 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ACTION likes his bots <3 < 1185144056 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: i promise i might < 1185144087 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i can try and find a scheme interpreter if it's that important to you < 1185144090 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but you owe me. < 1185144138 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: since i'd do every exercise in my head otherwise, that can only speed up the process. < 1185144138 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :chicken < 1185144144 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1185144149 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err < 1185144149 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :evaluating an interpreter in your head. < 1185144151 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Suuure. < 1185144153 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1185144156 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. Chicken is awesome. < 1185144157 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and i have no idea what my point was < 1185144158 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :http://www.call-with-current-continuation.org/chicken.html chicken scheme < 1185144171 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :or i guess http://www.gnu.org/software/mit-scheme/ if you're crazy < 1185144183 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Hey. That's the implementation I started with. < 1185144185 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I liked it a lot too. < 1185144192 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah but chicken is nicer, i think, < 1185144196 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It is. < 1185144199 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :not so much on the debugging side, but on the other sides. < 1185144205 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: well, i tend to do everything except the stuff that aren't about "coming up with a solution" but rather about keeping it together, since my head has quite limited memory. < 1185144219 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :What I miss, is something like a cross between Forth and the CLISP implementation < 1185144220 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :"keeping it together" < 1185144222 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1185144227 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :You can debug and fix on the fly < 1185144238 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You can do that in SBCL also! < 1185144241 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Chicken sucks at it, MIT only marginally better < 1185144250 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: You don't actually learn something until you do the exercises. < 1185144251 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Forth is basically the best at it < 1185144257 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Forth debugging, well, IS forth < 1185144261 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: i do not think that is true. < 1185144269 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :And, I guess for the cynical, you can say Forth = Forth debugging :) < 1185144275 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Reading makes you like, a historian. Like an Art Historian, or a Military Historian. < 1185144275 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, SICP is different < 1185144292 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, SICP is all about EVAL :) < 1185144318 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well, why don't you stop trying to make me think that way by *saying it's so* and just let me dl the interpreter and do it? i *did* promise i will < 1185144340 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Switch windows? :P < 1185144402 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :err.. god idea, perhaps it isn't entirely your responsibility. < 1185144410 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :whether i read < 1185144420 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :*switch!* < 1185144494 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: how long is the book? < 1185144502 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i assume you know that < 1185144508 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :because 1) you've read it < 1185144515 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and 2) you've read a live version of it < 1185144537 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I haven't done 2. < 1185144544 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :With the exercises? It takes a while. < 1185144564 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i just care about lenght, how much time you and me take may be different. < 1185144575 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(i'm slower prolly, that is) < 1185144588 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I like the commenting fomat that SICP reocmmends. < 1185144598 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hey, lambda-lifted rewrite rules are awesome for interpretation < 1185144605 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but if you read online, then most likely you don't know, bye again -> < 1185144606 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :tail-recursion optimization? absolutely free! < 1185144609 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :It recommends that you mput in the information that you would put in a Haskell type sig. < 1185144612 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1185144619 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :complex call stacks? all gone! < 1185144621 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1185144624 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Ewww. Haskell. < 1185144631 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :plus you can inspect a program replacement by replacement < 1185144636 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that's gotta be a useful debugging tool! < 1185144640 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ACTION likes saying that over and over again for comic effect. < 1185144750 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :tried it? < 1185144831 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1185144849 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Not bad, for its domains. And invaluable, IMO, for realizing just what state is useful for. < 1185144867 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so i say to hell with lambda calculus! to hell with beta-reduction and alpha-conversion! < 1185144875 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :long live rewrite rules! < 1185144877 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Then you throw that away and say, ``Holy Jeebus thank Turing for state!'' < 1185144936 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :holy jeebus thank rewrite for rules! < 1185144968 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :why didn't i think of rewrite rules before! < 1185144991 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1185145005 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Haskell made me a much better programmer, and I have to thank it for that. < 1185145011 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I never programmed imperatively the same way again. < 1185145222 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm... now i feel like writing a partial lisp interpreter into my bot :P < 1185145236 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :concentrate, oklofok, concentrate. < 1185145270 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lisp is easy < 1185145290 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's basically lambda calculus with multiple arguments and macros. < 1185145296 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and variables. < 1185145452 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, of course Lisp is a superset of Lambda calculus. . . < 1185145456 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Sure. < 1185145458 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :But it's not much more. < 1185145470 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :core lisp is simple < 1185145483 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Most of the stuff in Lisp is trivial to do in Lambda calculus. . . < 1185145498 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I think if you just add named functions and variables, the rest comes naturally. < 1185145520 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, that *and* do it in sexp syntax. < 1185145563 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :named functions and variables - you only need the latter < 1185145574 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :just (set var func) < 1185145577 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, yeah. . . < 1185145585 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sorry. < 1185145736 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :So, add some simple scoping, add macros, and add multiple function arguments.. < 1185145742 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :And parse it with sexps. < 1185145744 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Tada, lisp, done. < 1185145786 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If you're going to be really anal, implement some of Lisp's usual builtin functions. < 1185145806 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Still, not all that hard. . . < 1185145818 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Another disadvantage of Scheme: Only stupid Europeans use it ;) (This is a joke, if you don't understand.) < 1185145822 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's almost like doing Brainfuck in terms of P''. < 1185145873 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, Sure -- Oh, you'll also want lists and atoms < 1185145877 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Which are stupidly simple to implement. < 1185145986 0 :atrapado!unknown@unknown.invalid QUIT :"e" < 1185146168 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :lisp has arrays, strings and hashmaps, no? < 1185146175 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hashmaps are not in core core lisp. < 1185146177 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :nor strings < 1185146185 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :nor arrays - lisp never uses arrays < 1185146190 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lisp is drunk on linked lists < 1185146190 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i think they all were in common lisp....... < 1185146200 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :common lisp is not core lisp... < 1185146203 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :common lisp is bloated lisp < 1185146203 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i see < 1185146206 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1185146213 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i thought it was teh olde one. < 1185146223 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :common lisp is quite modern < 1185146244 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it was standardized by ansi in 94 < 1185146272 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: No, CL uses arrays. < 1185146276 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Quite regularly. < 1185146280 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi, Common Lisp Is Not Core Lisp! < 1185146285 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh, Core Lisp. < 1185146292 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. Core Lisp does not have arrays. < 1185146298 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Common Lisp Is Not A Pure, Functional Lisp That You Might Implement For A Simple IRC Bot! (TM) < 1185146307 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I Hate People WHo Talk Like This. < 1185148717 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :The Python triple-quote convention is great for real life too.