< 1167264576 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1167267231 0 :ivan`!unknown@unknown.invalid QUIT :" HydraIRC -> http://www.hydrairc.com <- IRC with a difference" < 1167269544 0 :ivan`!n=ivan`@wikipedia/ivan JOIN :#esoteric < 1167269818 0 :Asztal!n=asztal@host81-158-88-90.range81-158.btcentralplus.com JOIN :#esoteric < 1167269955 0 :Asztal!unknown@unknown.invalid QUIT :Client Quit < 1167272894 0 :Renan_s2!n=renan@unaffiliated/Renans2/x-000001 JOIN :#esoteric < 1167272905 0 :Renan_s2!unknown@unknown.invalid PART #esoteric :? < 1167276538 0 :jix_!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1167277710 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1167277728 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :howdy! What's everyone been up to during their vacation? < 1167278182 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Traveling to malodruos places < 1167281538 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... standardization should bear in mind the option of flexibility of the standard... < 1167281558 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :forwards-compatibility? < 1167281560 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Maybe there should be a meta-standard... some sort of standardization for how to define standards. < 1167281569 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :basically... yes. < 1167281597 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It can become impossible to change a standard once it gains inertia. < 1167281621 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Unless you have some way to easily redefine your standard so that all parties are aware of the change. < 1167281659 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, HTML has done a pretty good job of growing over time without breaking itself, although it's certainly starting to show it's age < 1167281703 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Telnet is strangely good at allowing changes in standard. < 1167281726 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :since you usually do a transaction to see if both sides are simplementing the same option. < 1167281747 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :You can do version checks and such. < 1167281817 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION begins crafting the "protocol protocol"... a protocol for specifying your protocol. < 1167282014 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If the data contains instrunctions about the specifics of its protocol.... making changes in a protocol become less difficult. < 1167282074 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :how you would create such a general meta-protocol is beyond me at the moment. < 1167282331 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :bonus points for creating a meta-protocol whose semantics themselves constitute a turing-complete system < 1167282396 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Neat. < 1167282441 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Once I start working out the specifics I'll begin specifying commonly used standards and protocols in my meta-protocol... so I can work out the specifics? < 1167282452 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :thiink it constitutes as an esoteric language? :D: :D :D < 1167282468 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Maybe if I make it with strange syntax and concepts... < 1167282549 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1167282562 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :sounds like you have a concept there < 1167282653 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :g'night everybody < 1167282657 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :see ya < 1167282672 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1167283318 0 :CakeProphet!unknown@unknown.invalid QUIT :"haaaaaaaaaa" < 1167285869 0 :CakeProphet!n=CakeProp@h152.243.213.151.ip.alltel.net JOIN :#esoteric < 1167286485 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1167287548 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: You can look at A/BNF for inspiration. < 1167288162 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmm? < 1167288229 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe sorry if it takes a while to reply < 1167288274 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is learning dvorakv < 1167289147 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Good god, people still use QWERTY? < 1167289180 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Augmented/Backus Naur Format. < 1167289215 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's pretty much the defact parser/protocol description pseudo-language, and it's used by parser generators to generate parsers for the protocols. < 1167289323 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :*defacto < 1167289549 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but it only expresses syntax... not what it means < 1167289648 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Yup. Same with A/BNF. < 1167289689 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I was talking about a/bnf < 1167289697 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1167289699 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't represent the meaning of syntax < 1167289712 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Inspiration, I said. < 1167289734 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :the idea is to have a language for describing your standard... so that making changes to a standard simply requires you to change the metalanguage describing your standard. < 1167289755 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :G'luck with it. < 1167289765 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so the inertia of a popular standard doesn't make it linger around longer than it should (like QWERTY persisting over dvorak) < 1167289778 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh and look at the billions of other structure descriptions out there too. < 1167289791 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :*structure description languages < 1167289799 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Like XML and stuffs. < 1167290168 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... xml doesn't seem to have protocol implementation in mind. < 1167290193 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's too verboose for something like that. < 1167290384 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1167291470 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe... there should be key layout designed for programmers < 1167292799 0 :clog!unknown@unknown.invalid QUIT :ended < 1167292800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1167294897 0 :oerjan!unknown@unknown.invalid QUIT :"Later" < 1167298051 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oh, I missed the discussion on languages of yesterday < 1167298389 0 :ivan`!unknown@unknown.invalid PRIVMSG #esoteric :i can't learn anything besides qwerty because i've got qwerty memorized in 20 different hand positions and have spinal reflexes for error-correction < 1167298397 0 :ivan`!unknown@unknown.invalid PRIVMSG #esoteric :trying to switch is the worst mental exercise ever < 1167298413 0 :ivan`!unknown@unknown.invalid PRIVMSG #esoteric :and 100wpm is fast enough for me < 1167299291 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :agree < 1167299348 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :it's like that braindamaged standard that Gnome usability "experts" are trying to impose < 1167299478 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :(the "yes" button in the far right; the "cancel" button next to it and to the left and the "no" button next to the cancel one) < 1167299513 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :e.g. in "Save work?" dialogs < 1167299740 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :re languages, I think you must be a polyglot in a sufficient number of languages if you want to take different projects, since every project has a set of "adequate" languages, a set of "inadequate but feasible" languages and a set of "infeasible" languages < 1167299768 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :here, "infeasible" means for practical purposes < 1167299807 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :(the first two sets may even be empty) < 1167299953 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :nobody would write an OS or a RDBMS in JavaScript (I think) < 1167300015 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :nobody can write anything but JavaScript and (in some cases) VBScript in a web page (with a relaxed sense of "nobody" but you get the idea) < 1167300084 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :nobody would write a program like InkScape in assembler < 1167300125 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :nobody would write a library like GMP in anything other than assembler and C < 1167300165 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :(aiming for the best possible speed, that is) < 1167300185 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :there's an orthagonally persistent operating system being written in Python. < 1167300191 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or.. "mostly" Python. < 1167300233 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :nobody would write a program to find (not just search) the factorization of Fermat numbers in Python < 1167300249 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :even if it has the support needed < 1167300270 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I didn't exclude Python for OSes :) < 1167300324 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe... a Perl operating system :D < 1167300331 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yesterday I found myself looking for the best language to write a simple application that represents a graph, with the limitation that it must support arbitrary precision (and not lots of speed) < 1167300332 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :written in one file. < 1167300448 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :after checking that my PHP installation did not support GMP, I tried generating a PBM in C and viewing it with an external viewer. It worked but it required too many steps for it to be uselful to explore the graph. < 1167300479 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I ended up learning a bit of TkInter and writing it in Python. < 1167300502 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :My point is that every project has an adequate language (and it can be subjective). < 1167300710 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :(the result is here: ) < 1167300824 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :damn, my server still breaks with python files even if they're renamed as .txt < 1167300983 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://www.formauri.es/personal/pgimeno/temp/functional-art.txt < 1167300986 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :rename to .py < 1167301147 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oh, and you can write a Malbolge interpreter in Python but it's pretty slow < 1167301171 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :(or at least that's my experience) < 1167301471 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :the 99bob takes ages (it takes 13 million Malbolge instructions to complete IIRC, not negligible if the underlaying language is slow) < 1167301961 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Python is usually adequately fast for my purposes. < 1167302048 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :its also the programmer that makes the program slow ;;) < 1167304859 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :try to write a Malbolge interpreter in Python, it's pretty simple < 1167307340 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :then compare the C version with the Python version when running 99BOB < 1167313392 0 :Asztal!n=asztal@host81-158-88-90.range81-158.btcentralplus.com JOIN :#esoteric < 1167316950 0 :jix_!n=jix@L6046.l.strato-dslnet.de JOIN :#esoteric < 1167318176 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1167318382 0 :pikhq!n=pikhq@21-173.provalue.net JOIN :#esoteric < 1167318428 0 :pikhq!unknown@unknown.invalid QUIT :Client Quit < 1167318442 0 :pikhq!n=pikhq@21-173.provalue.net JOIN :#esoteric < 1167318463 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sorry; needed IRC in my screen session. < 1167318538 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://pikhq.nonlogic.org/bfm.tar.bz2 < 1167318546 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://pikhq.nonlogic.org/basm.tar.bz2 < 1167318564 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :We're under the 5000 character mark on basm. . . :) < 1167319971 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :4629 characters for EOF=0, 4282 for EOF=-1. < 1167320595 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION assumes nobody's in the mood to care ATM < 1167320892 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ba < 1167322092 0 :theblue!n=theblue@pool-72-83-124-87.washdc.fios.verizon.net JOIN :#esoteric < 1167322098 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :'Lo. < 1167322159 0 :theblue!unknown@unknown.invalid PRIVMSG #esoteric :Hi. < 1167323205 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what to code. . . < 1167323344 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :recode it all < 1167323348 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it all sucks < 1167323352 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, everything < 1167323374 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :BFM? < 1167323378 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no < 1167323388 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But. . . I've already written that. . . < 1167323390 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Twice! < 1167323396 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not your programs < 1167323396 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1167323400 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :programs in general < 1167323403 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :they suck < 1167323403 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION no wanna < 1167323409 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you should rewrite them < 1167323411 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :really < 1167323420 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The programs I use kick-ass, actually. < 1167323421 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::O < 1167323426 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :really? < 1167323429 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what are they? < 1167323435 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ratpoison. < 1167323438 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GNU Screen. < 1167323440 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Emacs. < 1167323442 0 :theblue!unknown@unknown.invalid PRIVMSG #esoteric :Eww! < 1167323445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1167323446 0 :theblue!unknown@unknown.invalid PRIVMSG #esoteric :That one DOES suck. < 1167323446 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Firefox (with Conkeror). < 1167323463 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :firefox sucks! < 1167323464 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167323470 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There is no OS but GNU, and Linux is one of it's kernels. < 1167323474 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Not with Conkeror. < 1167323480 0 :theblue!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I know, but Emacs sucks. < 1167323480 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gives it Emacsy bindings. < 1167323481 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what is it? < 1167323484 0 :theblue!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Use vim. < 1167323506 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll prolly say it sucks if it's graphical and has a non-touring complete interface :) < 1167323506 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :theblue: Blasphemer. < 1167323514 0 :theblue!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Elitist. < 1167323514 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not and, or < 1167323519 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Javascript is Turing complete. < 1167323533 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's semi-graphical. < 1167323548 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, the browser itself is not a console with commands that load pages etc < 1167323555 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so it sucks! < 1167323555 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167323565 0 :theblue!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: elinks? < 1167323567 0 :theblue!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: w3m? < 1167323615 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Actually, with Conkeror, that's about what it is. < 1167323641 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::O < 1167323642 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1167323668 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i'll wait 10 years and hopefully be able to make my own systems < 1167323676 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or 30 < 1167323679 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have time < 1167323988 0 :Asztal!n=asztal@host81-158-88-90.range81-158.btcentralplus.com JOIN :#esoteric < 1167324018 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Saluton. < 1167324617 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hugs ratpoison < 1167324928 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::O < 1167324933 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not safe! < 1167325819 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it is. < 1167326343 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :YOU are safe! < 1167326366 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION feels his flesh melt from the laptop's compile job < 1167327265 0 :theblue_!n=theblue@pool-72-83-124-87.washdc.fios.verizon.net JOIN :#esoteric < 1167328540 0 :theblue!unknown@unknown.invalid QUIT :No route to host < 1167328745 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1167328992 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1167329002 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hey. < 1167329158 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: New release of BFM and Basm is up, if you care. < 1167329166 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :basm? < 1167329178 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :calamari: My Brainfuck->C compiler, written in BFM. < 1167329217 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :ahh, was hoping it was an assembler for bf < 1167329236 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I. . . Think you've already written on. < 1167329237 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :e < 1167329337 0 :theblue_!unknown@unknown.invalid NICK :theblue < 1167329453 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :basm, I believe, is now the smallest BF->C compiler in BF. < 1167329591 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1167329597 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :how many chars? < 1167329649 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :4629 characters for EOF=0, 4282 for EOF=-1. < 1167329675 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(the EOF=-1 build has a shorter string to output for ,) < 1167329729 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric : string string2! "*p=getchar();" < 1167329742 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :String for EOF=-1. < 1167329747 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric : string string2! "*p=getchar();if(feof(stdin)) *p=0;" < 1167329758 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :String for EOF=0. Makes for a good demonstration. ;) < 1167329796 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :is the space necessary before *p ? < 1167329801 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Probably not. < 1167329813 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's not < 1167329821 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's ugly, take it away < 1167329823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1167329841 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Done. < 1167329858 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :might also be able to use #define to squeeze things down.. for example "if(" and "*p=" < 1167329871 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what is this: string string2! < 1167329890 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Defines a C-style string named string2! < 1167329919 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :calamari: Yeah, but the #define would make the initially output string longer. < 1167329956 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yeah.. you'd have to weight the #define against the savings you'd get from it < 1167329962 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :weigh rather < 1167329984 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Wouldn't be worth it. < 1167329989 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Whole line versus a small handful of characters. < 1167330005 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :well, how many times do you use if( and *p= ? < 1167330013 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :if( is used once. < 1167330018 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*p= is used once. < 1167330023 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :p= is used thrice. < 1167330026 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :how about *p < 1167330066 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :ooh < 1167330066 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Twice. < 1167330094 0 :theblue_!n=theblue@pool-72-83-124-87.washdc.fios.verizon.net JOIN :#esoteric < 1167330123 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The initial string-setting code really isn't that large, as it is. . . < 1167330148 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :if(feof(stdin))*p=0; < 1167330148 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :*p=feof(stdin)?0:p; < 1167330156 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :^^^ one char shorter :) < 1167330173 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :1976 characters for EOF=0, 1634 for EOF=-1. . . < 1167330179 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now that might be worth-while. < 1167330187 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :calamari, *p=p is not good < 1167330198 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*p=feof(stdin)?0:*p; is the same length < 1167330216 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ahh < 1167330231 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :bummer hehe < 1167330251 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :one might turn out smaller than the other, depending on his text->bf algorithm < 1167330258 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*p*=!feof(stdin); on the other hand < 1167330267 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1167330273 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1167330279 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :My text->bf algorithm is remarkably simple. < 1167330295 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's the smallest possible. < 1167330299 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :For each character in the string, fill a cell using a stdcons call. < 1167330321 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :might also try comma to separate commands rather than ; .. might take less charas, depending on placement < 1167330324 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(look in macro.tcl, proc string, for the gory details) < 1167330335 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :calamari: In main(). < 1167330355 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Beyond that, I can't be certain. < 1167330380 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And I'm not sure if the stdcons implementation of ; is shorter than ,. < 1167330392 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which language is that? < 1167330392 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :you could try it and see < 1167330423 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: What? The language Basm is written in? < 1167330427 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: paste all the c code.. let's see what else might be optimized < 1167330430 0 :yoga!i=yoga@ip-141-139.interbild.net JOIN :#esoteric < 1167330436 0 :alpha_q!n=bobi@85.91.145.105 JOIN :#esoteric < 1167330448 0 :theblue!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1167330453 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :string string0! "#include < 1167330454 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :char b\[30000]; < 1167330454 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :char *p=b; < 1167330454 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :main()\{" < 1167330454 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :string string1! "putchar(*p);" < 1167330456 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :if-1 { string string2! "*p=getchar();" < 1167330458 0 :alpha_q!unknown@unknown.invalid PRIVMSG #esoteric :Please say "!Ola mundo!" < 1167330458 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :} < 1167330461 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :if0 { string string2! "*p=getchar();if(feof(stdin))*p=0;" < 1167330463 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :} < 1167330466 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :string string3! "while(*p)\{" < 1167330468 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :string string4! "p+=" < 1167330471 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :string string5! "p-=" < 1167330499 0 :alpha_q!unknown@unknown.invalid PRIVMSG #esoteric :hm... doesnt work < 1167330510 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :char b\[30000],*p=b; < 1167330516 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!Ola mando! < 1167330518 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1167330521 0 :alpha_q!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1167330529 0 :alpha_q!unknown@unknown.invalid PRIVMSG #esoteric :close < 1167330542 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :can remove the newlines.. so < 1167330547 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :calamari: That parses to char b[30000]=b;char *p=b; < 1167330556 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: it does? < 1167330562 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :calamari: Pretty certain. < 1167330572 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :ahh, I thought you were just outputting text < 1167330585 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :calamari: It's outputting text which is compiled into C code. -_-' < 1167330598 0 :yoga!unknown@unknown.invalid PART #esoteric :? < 1167330615 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :oh, I see what you're saying.. I'm pretty sure it doesn't parse that way < 1167330626 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'll try it. < 1167330627 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea what you're even doing :) < 1167330669 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://pikhq.nonlogic.org/basm.tar.bz2 has the full Basm source code. . . < 1167330676 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :char b\[30000],*p=b;main()\{ < 1167330684 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And http://pikhq.nonlogic.org/bfm.tar.bz2 has the BFM code necessary to compile it. < 1167330698 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(you'll need to install Tcl and Tcllib for BFM) < 1167330751 0 :alpha_q!unknown@unknown.invalid QUIT :"ako izleza ot irc s toia message znachi e stanalo neshto neobichaino" < 1167330813 0 :ihope!n=foo@cpe-071-075-184-182.carolina.res.rr.com JOIN :#esoteric < 1167330830 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I suddenly feel like going fast and such. < 1167330832 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*echm* < 1167330833 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Fuck. < 1167330863 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Code got borken somewhere. < 1167330927 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :try reverting the if( code < 1167330946 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's just it. . . < 1167330957 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's the *logic* that's borken. < 1167330978 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION disables the BFM optimizer < 1167331001 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Shit. < 1167331036 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I think it's a BFM bug. < 1167331040 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :9<<9 = 4608, so I guess 30000 is the best you can do for 30000 < 1167331067 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You know, I always thought the de facto block length thingy was a bit harsh. < 1167331103 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :>>> print 9<<99 < 1167331103 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :5704427701027032306735164424192 < 1167331105 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1167331137 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :99<<99! < 1167331141 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Not that that's too much bigger. < 1167331159 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :369729637649726772657187905628805440595668764281741102430259972423552570455277523421410650010128232727940978889548326540119429996769494359451621570193644014418071060667659301384999779999159200499899! < 1167331160 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :9<<999 would be tho < 1167331164 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yep. < 1167331182 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :48217887323382029442679127207700081475263216526749012334968767476665797300622125512193927046706313615741760281289891607133421537856154131961930599086143586617705554986709039434394835722780670138450793819688709137426118735703294454016244947757346783115570384149589439754471934242436809740767425506312192 < 1167331184 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :999<<(999<<(999<<(999<<(999<<999)))) < 1167331189 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1167331198 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :the idea is to have the shortest string < 1167331207 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yup; it was a BFM bug. < 1167331236 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Fixed with an older build of a stdlib macro. < 1167331246 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :but for length 4 or 5, regular decimal is the best you can do < 1167331334 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :what I should have said is for 1000-99999, regular decimal is the best you can do < 1167331335 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :probably not portable, but what about -1>>1? < 1167331347 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :let a 0 n=n^n;a m 0=a(m-1)1;a m n=a(m-1)$a m(n-1)in a 9 9 < 1167331347 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :that's not shorter than 30000 < 1167331365 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...Which, apparently, is 1. < 1167331380 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no but the result might be bigger < 1167331383 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION discovers more bugs < 1167331383 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hmm.. wait < 1167331384 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :let a 0 n=n^n+1;a m 0=a(m-1)1;a m n=a(m-1)$a m(n-1)in a 9 9 < 1167331389 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :-1.. that's shorter :) < 1167331394 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That's a bit bigger. < 1167331425 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :but you probably can't do char b[-1] < 1167331466 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And I've got bugs fixed. < 1167331471 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :char b[30000],*p=b;main(){ < 1167331474 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That works. :) < 1167331482 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :k good < 1167331501 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure of the definition of >> for negative numbers. is it implementation-dependent whether it preserves the sign bit? < 1167331501 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*p=getchar();*p*=!feof(stdin); < 1167331505 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That, too, works. :D < 1167331508 0 :theblue!n=theblue@pool-72-83-124-87.washdc.fios.verizon.net JOIN :#esoteric < 1167331513 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Pretty much. < 1167331519 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :so what are the new lengths? < 1167331541 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so -1>>1 _could_ be pretty big. or maybe the precedence is wrong too. < 1167331567 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :4466 for EOF=0, 4184 for EOF=-1. < 1167331587 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1167331610 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Let me try and finish up some work on itoa and divmod; those older versions are a bit longer than they should be. < 1167331871 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :. . . The hell? < 1167331884 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :My changes to itoa.bfm and divmod.bfm somehow made the source. . . longer. < 1167331911 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: why not this? char*p[30000];main(){ < 1167331973 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :calamari: Um. . . That's a pointer to an array of char arrays, I think. . . < 1167332006 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Alternately, an array of strings. < 1167332170 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1167332173 0 :theblue_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1167332173 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1167332175 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 < 1167332189 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I'll try Glass. < 1167332201 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Then again, BF might be nice. < 1167332209 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Nah, Glass is better. < 1167332406 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :4457 for EOF=0, 4175 for EOF=-1. < 1167332451 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :dbc wrote one that is 874 for EOF=0 < 1167332480 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :http://www.hevanet.com/cristofd/brainfuck/dbf2c.b < 1167332481 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :calamari: Does his optimize? < 1167332488 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :probably not < 1167332498 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :. . . No, it sure as hell doesn't. < 1167332547 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, mine is still better. :) < 1167332552 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not smaller, but better. < 1167332567 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is going to start calling basm the smallest *optimizing* Brainfuck compiler, then. < 1167332570 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :well, you had said you thought yours was the shorest, so I was clearing that up :) < 1167332585 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Thanks. < 1167332613 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :but, you might be able to learn some from his implementation.. he might be using some c tricks we haven't thought of yet < 1167332692 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :He's using unistd.h < 1167332735 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Aside from that, mine's using more C tricks. < 1167332786 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1167332805 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Flooding: < 1167332808 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :#include < 1167332809 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :char r[65536],*e=r; < 1167332809 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :main(){ < 1167332809 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :++ < 1167332809 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :++*e; < 1167332809 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :In good ol' Glass, how do I set a variable to the thing at the top of the stack? < 1167332811 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :++*e; < 1167332813 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :.. < 1167332816 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :write(1,e,1); < 1167332818 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :write(1,e,1); < 1167332821 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :,, < 1167332823 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :read(0,e,1); < 1167332826 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :read(0,e,1); < 1167332828 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :-- < 1167332831 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :--*e; < 1167332834 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :--*e; < 1167332836 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :>> < 1167332838 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :++e; < 1167332841 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :++e; < 1167332844 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :<< < 1167332844 0 :ihope!unknown@unknown.invalid TOPIC #esoteric :#esoteric - the international hub for esoteric programming language design and deployment - map: http://www.frappr.com/esolang - forum: http://esolangs.org/forum/ - EgoBot: !help - wiki: http://esolangs.org/wiki/ - logs: http://tunes.org/~nef/logs/esoteric/ or http://meme.b9.com/cdates.html?channel=esoteric - for brainfuck-specific discussion, go to ##brainfuck - NO IRP ALLOWED - Pastebin: http://pastebin.ca/ < 1167332846 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :--e; < 1167332849 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :--e; < 1167332851 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :[] < 1167332854 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :while(*e){ < 1167332856 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :} < 1167332859 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :exit(0); < 1167332861 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :} < 1167332864 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hahah. < 1167333037 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I refuse to use unistd.h, so I'm using all the tricks he does. < 1167333055 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(and quite a few more: I output a grand total of 2 newlines) < 1167333066 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/Glass < 1167333147 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yes? < 1167333257 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(name)1= < 1167333298 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That won't set the variable to 1? < 1167333306 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1167333325 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that would be (name)<1>= < 1167333337 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right. < 1167333388 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Does that leave it on the stack or take it off? < 1167333480 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :leave it. add , to take off. < 1167333528 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Thanks. < 1167333584 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you're welcome. < 1167334785 0 :CakeProphet!unknown@unknown.invalid QUIT :"haaaaaaaaaa" < 1167335479 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i learned Glass too :D < 1167335624 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1167335625 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't like the fact that function local stuff is prefixed with an underscore, temp vars should be short imo :\ < 1167335640 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now they're (_[name]) < 1167335672 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :starts to feel sensible tho < 1167335676 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :won't bother me for long < 1167335688 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah, yes, a clear break with Glass's fundamental principle of user friendliness. < 1167335696 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cackles evilly. < 1167335723 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167335936 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but as all names are treated as strings, you should be able to change them to strings, alter them and push them back as vars or functions < 1167335937 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1167335956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because you can do weird stuff anyway with that < 1167336014 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean you can have a "function pointer" (zot) referring to any (zot)-function in any class < 1167336463 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :could be useful for dictionaries. < 1167336483 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :useful? < 1167336599 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as in, making it not a complete pain to make dictionaries in Glass < 1167336620 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah as a data type :) < 1167336626 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm a little dim again < 1167336640 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i wasn't saying it is a bad thing < 1167336658 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :one never knows with esoteric languages :) < 1167336677 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :trues :D < 1167336771 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh my god that is beautiful :O < 1167336784 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :{M[m(_s)S!(_o)O!<34>(_s)(ns).?"{M[m(_s)S!(_o)O!<34>(_s)(ns).?""1(_o)o.?2(_o)o.? < 1167336785 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :1(_o)o.?2(_o)o.?2(_o)o.?0(_o)o.?2(_o)o.?0(_o)o.?]}"1(_o)o.?2(_o)o.?1(_o)o.?2 < 1167336785 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(_o)o.?2(_o)o.?0(_o)o.?2(_o)o.?0(_o)o.?]} < 1167336787 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this one < 1167336793 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION <3 esolangs. . . < 1167336795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :all the o's and the ()'s < 1167336796 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What's it do? < 1167336800 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION too < 1167336804 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :quine < 1167336821 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Purty. < 1167336843 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_s)S!(_o)O!<34>(_s)(ns).?"{M[m(_s)S!(_o)O!<34>(_s)(ns).?""1(_o)o.?2(_o)o.?1(_o)o.?2(_o)o.?2(_o)o.?0(_o)o.?2(_o)o.?0(_o)o.?]}"1(_o)o.?2(_o)o.?1(_o)o.?2(_o)o.?2(_o)o.?0(_o)o.?2(_o)o.?0(_o)o.?]} < 1167336847 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :{M[m(_s)S!(_o)O!<34>(_s)(ns).?"{M[m(_s)S!(_o)O!<34>(_s)(ns).?""1(_o)o.?2(_o)o.?1(_o)o.?2(_o)o.?2(_o)o.?0(_o)o.?2(_o)o.?0(_o)o.?]}"1(_o)o.?2(_o)o.?1(_o)o.?2(_o)o.?2(_o)o.?0(_o)o.?2(_o)o.?0(_o)o.?]} < 1167336859 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1167337009 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Nice. < 1167337096 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1167337162 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Cool. < 1167337803 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :It must be possible to shorten those (_o)o's... < 1167337963 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass < 1167337967 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :look look quine! < 1167337967 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1167337970 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1167337972 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :FUCK YA < 1167337985 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1167338003 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Glass requires a null string to return OK. . . < 1167338034 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :really? < 1167338077 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1167338142 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hard to grasp the factorial program when stupid ppl annoy me on msn :( < 1167338614 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha i'm so gonna make glass without names :) < 1167338625 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's called < 1167338627 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :. . . What's *wrong* with you? < 1167338629 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sorry, < 1167338633 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::O < 1167338637 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just too easy! < 1167338656 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(presumably the same thing that's wrong with the rest of us) < 1167338674 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha :D < 1167338683 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, you know, nameless classes and objects < 1167338697 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_s)S!o11O!o.=<34>(_s)(ns).?"{M[m(_s)S!o11O!o.=<34>(_s)(ns).?""1o?2o?1o?2o?2o?0o?2o?0o?]}"1o?2o?1o?2o?2o?0o?2o?0o?]} < 1167338717 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Did I happen to mention that something is wrong with you? < 1167338725 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha :D < 1167338726 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :darn < 1167338729 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no, it's cool! < 1167338734 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, you're my god :O < 1167338757 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(if you get that working) < 1167338778 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually it might be easy to make a quine but never made one, so < 1167338784 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :seems impossible < 1167338843 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_s)S!(_o)11O!o.=<34>(_s)(ns).?"{M[m(_s)S!(_o)11O!o.=<34>(_s)(ns).?""1(_o)?2(_o)?1(_o)?2(_o)?2(_o)?0(_o)?2(_o)?0(_o)?]}"1(_o)?2(_o)?1(_o)?2(_o)?2(_o)?0(_o)?2(_o)?0(_o)?]} < 1167338845 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :glass has the cool idea of mixing oo and stacks, but it's basically pretty "normal", gotta add some more esoteria!! < 1167338849 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to cheer it up < 1167338871 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh, wait < 1167338880 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha, now just a few chars and it's the former one :) < 1167338905 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i thought maybe i used the wrong namespace < 1167338918 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but it is something else, i think < 1167339048 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_s)S!o11O!o.=<34>(_s)(ns).*?"{M[m(_s)S!o11O!o.=<34>(_s)(ns).*?""1o*?2o*?1o*?2o*?2o*?0o*?2o*?0o*?]}"1o*?2o*?1o*?2o*?2o*?0o*?2o*?0o*?]} < 1167339066 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or maybe it's both < 1167339094 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1167339098 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :2 oerjan: ps < 1167339106 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what is that? < 1167339123 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm having a hard time figuring out how to make anything without operators... < 1167339151 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd like this lang with everything being just a stack of structures < 1167339161 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :structures as in functions and classes < 1167339171 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Woah, that's some complicated Glass code XD < 1167339195 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually i am just using search and replace on the quine < 1167339203 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You have made the inventor of Glass say that. . . < 1167339204 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :to make a shorter one. < 1167339206 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I salute you. < 1167339225 0 :CakeProphet!n=CakeProp@h152.243.213.151.ip.alltel.net JOIN :#esoteric < 1167339225 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :What, you think I'm the only one that can write complicated glass code? :P < 1167339238 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I didn't write the jixmath class, and that's pretty F***ing complicated :P < 1167339239 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Just saying that that's quite a compliment. < 1167339266 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Jixmath? < 1167339284 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(care to show me le source?) < 1167339310 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_s)S!(_o)11O!o.=<34>(_s)(ns).*?"{M[m(_s)S!(_o)11O!o.=<34>(_s)(ns).*?""1(_o)*?2(_o)*?1(_o)*?2(_o)*?2(_o)*?0(_o)*?2(_o)*?0(_o)*?]}"1(_o)*?2(_o)*?1(_o)*?2(_o)*?2(_o)*?0(_o)*?2(_o)*?0(_o)*?]} < 1167339326 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Lesse .. < 1167339335 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hmph. < 1167339340 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hahavvvv glass looks so funky < 1167339354 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's easy to make complicated code when it's wrong :( < 1167339367 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :{(JixMath)[(c)*][(c__)aA!p<9>=(ee)<2.71828182845905>=][(log)(_v)1=,(_c)<-1>=(_x)<1>=/(_x)(_v)*<1.5>a(ge).?(_x)1=(_y)1=,(_c)0*<1>aa.?=/(_y)(_v)0*(ee)*ad.?=(_c)(_y)<0>=\\(_p)p*=(_v)0*<1>as.?=(_o)(_v)*=(_s)<1>=(_i)<0>=(_x)<0>=/(_p)(_p)0*<1>as.?=(_i)0*<1>aa.?=(_x)0*(_o)*(_i)*ad.?(_s)*am.?aa.?=(_o)0*(_v)*am.?=(_s)<0>(_s)*as.?=(_x)\(_c)*(_x)*aa.?][(p)p*][(sp)p1=,][(sqrt)(_v)1=(_x)1<100>ad.?af.?=,(_q)<1>=/(_x)(_x)0*<100>ad.?af.?=(_q)0*<10> < 1167339368 0 :oklobot2!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1167339373 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1167339373 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :am.?=\(_p)p*=/(_p)(_p)0*<1>as.?=(_q)0*(_v)*1ad.?aa.?<2>ad.?=\(_q)*]} < 1167339377 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And. . . What does Jixmath do? < 1167339381 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Math :P < 1167339395 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Like. . . A description? < 1167339395 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :logarithms, square roots ... < 1167339403 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sees a sqrt function. . . < 1167339404 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Idonno, ask jix_ X-P < 1167339410 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes to eat. < 1167339411 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I need to figure out how glass works < 1167339416 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :jix_: I wish to pick your brain. < 1167339461 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And salute you for that sheer craziness. < 1167339556 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(JixMath)(_m)!O(_o)!2(_m)(sqrt).(_o)o.]} < 1167339573 0 :jix_!unknown@unknown.invalid PRIVMSG #esoteric :uhm what's crazy about that? < 1167339574 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :My Glass might be a bit rusty. < 1167339584 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :jix_: Jixmath == crazy. < 1167339590 0 :jix_!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1167339595 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Look at it. < 1167339753 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_s)S!(_a)(_o)1O!o.=<34>(_s)(ns).?"{M[m(_s)S!(_o)O!<34>(_s)(ns).?""1(_a)*?2(_a)*?1(_a)*?2(_a)*?2(_a)*?0(_a)*?2(_a)*?0(_a)*?]}"1(_a)*?2(_a)*?1(_a)*?2(_a)*?2(_a)*?0(_a)*?2(_a)*?0(_a)*?]} < 1167339792 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1167339795 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_m)(Jixmath)!(_o)O!2(_m)(sqrt).?(_o)o.?]} < 1167339796 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :2 oerjan: ps < 1167339854 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :darn! < 1167339862 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what is that? < 1167339936 0 :ihope!unknown@unknown.invalid QUIT :Connection timed out < 1167339973 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_s)S!o00O!o.=<34>(_s)(ns).*?"{M[m(_s)S!o00O!o.=<34>(_s)(ns).*?""1o*?2o*?1o*?2o*?2o*?0o*?2o*?0o*?]}"1o*?2o*?1o*?2o*?2o*?0o*?2o*?0o*?]} < 1167340001 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sighs < 1167340039 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's that quirk about not accessing member variables from functions, I presume < 1167340107 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!"o"(_o)o.?]} < 1167340110 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :o < 1167340113 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167340136 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_s)S!Q00O!o.=<34>(_s)(ns).*?"{M[m(_s)S!Q00O!o.=<34>(_s)(ns).*?""1Q*?2Q*?1Q*?2Q*?2Q*?0Q*?2Q*?0Q*?]}"1Q*?2Q*?1Q*?2Q*?2Q*?0Q*?2Q*?0Q*?]} < 1167340191 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_m)(JixMath)!<4>(_m)(sqrt).?(_o)o.?]} < 1167340278 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :gah... < 1167340279 0 :Asztal!n=asztal@host81-158-88-90.range81-158.btcentralplus.com JOIN :#esoteric < 1167340308 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Switching to dvorak makes a lot of brackets no longer work. < 1167340363 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :\]]]\\\\\\\\\\\\\\\\\\\\====\\\ < 1167340413 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Ack < 1167340418 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION was popping out keys. < 1167340474 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :]]dgd;fg[ldfg;l';l[or=======================================================================[]]===============================================================================================================================================================' < 1167340494 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1167340499 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1167340518 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric : . . < 1167340538 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?"{M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?""13?23?13?23?23?03?23?03?]}"13?23?13?23?23?03?23?03?]} < 1167340630 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1167340632 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :2 oerjan: ps < 1167340649 0 :ihope!n=foo@cpe-071-075-186-016.carolina.res.rr.com JOIN :#esoteric < 1167340844 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {T[t(_o)O!"Test"(_o)o.?]}{M[m(_t)T!(_t)t.0??]} < 1167340848 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :TestTest < 1167340907 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :!glass {[d(o_O)b]} < 1167340910 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1167340922 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!"Test"(_o)o.11?11?]} < 1167340924 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :TestTest < 1167340997 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to figure out how to do GLass... but it's very very difficult. < 1167340998 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)0O!o."Test"02?02?]} < 1167341000 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :TestTest < 1167341002 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Damn you postfix. < 1167341011 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Heheheh. < 1167341193 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m"Test"(_o)0O!o."Test"11?11?]} < 1167341216 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Argh... < 1167341224 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's hard to follow the chain of evaluation when it goes... backwards. < 1167341227 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1167341249 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wait... < 1167341254 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m"Test"(_o)0O!o.11?11?]} < 1167341258 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :TestTest < 1167341287 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :not if you're used to befunge < 1167341337 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah! < 1167341380 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?"{M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?""14?24?14?24?24?04?24?04?]}"14?24?14?24?24?04?24?04?]} < 1167341382 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :{M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?"{M[m(_s)S!(_o)0O!o.<34>(_s)(ns).?""14?24?14?24?24?04?24?04?]}"14?24?14?24?24?04?24?04?]} < 1167341388 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DD < 1167341389 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1167341408 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...you made a program that... < 1167341410 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :prints itself? < 1167341426 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually i just shortened one that already existed < 1167341446 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: That would be a quine. < 1167341501 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)0O!o."Lol"11?]} < 1167341520 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION isn't sure what the 0 is for... < 1167341526 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but it looked nice there... so I put it there. < 1167341557 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1167341576 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It breaks your code, methinks. < 1167341582 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!o."Lol"11?]} < 1167341591 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :As does 11. < 1167341602 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....damn < 1167341607 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is trying to figure out how ? works. < 1167341611 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(which pushs 1 onto the stack twice. . . And the ? tries executing 1.1, which doesn't exist) < 1167341633 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!o."Lol"]} < 1167341635 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :? < 1167341638 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It takes a variable referring to an instance of an object and a string referring to a function off the stack and executes it. < 1167341651 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :m is main... so it should execute anyways. < 1167341652 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, 11 copies the top 2 elements < 1167341653 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Thus, (_o)o? would execute _o.o < 1167341661 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Ah. < 1167341706 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and 0 copies just the top element < 1167341732 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Again: Ah. < 1167341792 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!o."Lol"(_o)?]} < 1167341814 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :to use 11? the function must be on top. otherwise use 02? < 1167341819 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That would execute Lol._o, methinks. . . < 1167341846 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oooho. < 1167341864 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Since there is no object Lol, it does. . . Nothing. < 1167341912 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually it tries to execute (_o), but this fails because it is a name not a function. < 1167341942 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for that use *? rather than ? < 1167341973 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!o."Lol"(_0)*?]} < 1167341975 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ack < 1167341978 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :except that (_o) there does not contain a function either, but an object. < 1167341979 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!o."Lol"(_o)*?]} < 1167341989 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :`.` < 1167341994 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is still getting used to this. < 1167342003 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so use o.? < 1167342014 0 :Asztal!n=asztal@host81-158-88-90.range81-158.btcentralplus.com JOIN :#esoteric < 1167342027 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :_or_ use 1? instead of (_o)*? < 1167342046 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :1 picks up the function you already have put on the stack. < 1167342059 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!o."Lol"1?]} < 1167342072 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I have trouble figuring out what's on the stack... >.< < 1167342106 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(_o)O! leaves nothing on the stack, but a variable (_o) define. < 1167342108 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah, yes. the o. doesn't work because there is no (_o) on the stack - it was removed by ! < 1167342127 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :o. gives a stack underflow. . . < 1167342127 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!<4><5>(_a)a.?(_o)O!(_o)o.1?]} < 1167342128 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :put a 0 after (_o) < 1167342140 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)0O!o."Lol"1?]} < 1167342143 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Lol < 1167342144 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :How do you tell what's on the stack? < 1167342150 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and where. < 1167342152 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Magic. < 1167342157 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :-.- < 1167342164 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you read the specification _very_ carefully. :) < 1167342177 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which is magic. < 1167342184 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!<4><5>(_a)a.?(_o)O!(_o)o.11?]} < 1167342194 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167342202 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :How do you represent input to a function? < 1167342215 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: Use the I class. . . < 1167342226 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Unless you mean, like, arguments. < 1167342228 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :That's user input. < 1167342228 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!<4><5>(_a)a.?(_o)O!(_o)o.?]} < 1167342229 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1167342231 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :arguments < 1167342246 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Leave the arguments on the stack in appropriate locations. < 1167342254 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :use on. not o. < 1167342255 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The stack is shared. < 1167342292 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!<4><5>(_a)a.?(_o)O!(_o)on.?]} < 1167342304 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!ps < 1167342307 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :2 oerjan: ps < 1167342311 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't understand... < 1167342313 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1167342338 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now i am not sure why it doesn't work < 1167342359 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Use (on) instead. < 1167342361 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!<4><5>(_a)a.?(_o)O!(_o)(on).?]} < 1167342365 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :9 < 1167342369 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_a)A!<4><5>(_a)a.?(_o)O!(_o)(on).1111111111111111?]} < 1167342373 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :9 < 1167342373 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :So... if "Lol" is the stack before the function is run... how do you represent "Lol" as a variable? < 1167342377 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :0? < 1167342389 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Lol"(variable_name)= < 1167342390 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167342398 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...I meant... in general. < 1167342403 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it could be something other than "Lol" < 1167342409 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :an argument. < 1167342415 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1167342420 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet, you're totally gotten it wrong < 1167342428 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Lol"'Function calling stuff here' < 1167342444 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah... < 1167342471 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you mean "Lol"(variable_name)1=, < 1167342499 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: That's if you want "Lol" on the stack *and* in a variable. ;) < 1167342501 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so... in the function definition... how is the "argument" (The value on the stack before execution of the function) represented? < 1167342513 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now, , is the pop command < 1167342520 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*no < 1167342525 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Um. . . < 1167342548 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Lol"(variable_name)= works just as well. IIRC, = doesn't push anything onto the stack. < 1167342570 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no it doesn't because the arguments are in the wrong order < 1167342594 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: The function just operates on the global stack. < 1167342605 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Well, *that* would screw things up. < 1167342620 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Right... but you can mimic the use of arguments by treating the value on the stack as input right? < 1167342636 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right. < 1167342639 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :(input)(function)! < 1167342653 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :how would you "get" (input)? < 1167342655 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :? not ! < 1167342656 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :in the function itself. < 1167342659 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :er... right. < 1167342661 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: ! creates an instance of an object. < 1167342666 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah yeah. < 1167342669 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :wrong punctuation :D < 1167342682 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the 0 1 2 commands etc. makes copies of things on the stack. < 1167342683 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Same way you would operate on something on the stack otherwise. . . < 1167342695 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but where is it... 0? < 1167342706 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[m(_o)O!(_o)(_a)A!(_b)B!(_c)C!f(_a)1.?(_b)1.?(_c)1.?]}{A[f0"a"1o.?]}{B[f0"b"1o.?]}{C[f0"c"1o.?]} < 1167342707 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1167342710 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has a hard time visualizing "the stack" < 1167342723 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Imagine you've got a bunch of plates on top of each other. < 1167342738 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :push equates with sticking a plate on top. pop equates with taking one off. < 1167342744 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yes yes... a stack. < 1167342747 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :sounds a lot like befunge to me. < 1167342754 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's the visualisation. < 1167342757 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I know how they work. I just don't know when it happens. < 1167342764 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Asztal: Well, a stack *is* a common datatype. < 1167342776 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: When the command for your stack operation is executed. . . < 1167342786 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... that works I guess. < 1167342794 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :0 would be whatever came before the function then. < 1167342807 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :if you use it right at the beginning of the definitionl < 1167342822 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :every Glass command has a clearly specified effect on the stack, which you can look up at the wiki. In fact I wrote those descriptions myself. < 1167342826 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You've got a copy of what's on the top of the stack. < 1167342837 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1167342843 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :which... in that case, would be (input) right? < 1167342863 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {A[f0"a"1o.?]}{B[f0"b"1o.?]}{C[f0"c"1o.?]}{M[m(_o)O!(_o)(_a)A!(_b)B!(_c)C!f(_a)1.?(_b)1.?(_c)1.?]} < 1167342869 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err... what's wrong? :D < 1167342871 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hit the Wikipedia page. < 1167342895 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :however, Glass is designed so that those effects are not always the most intuitive ones - sometimes it uses the stack for the result, sometimes a variable. < 1167342919 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so you simply _have_ to look it up. < 1167342974 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :A, B and C have a function f that prints a char with stack operation (object of type O) -> (the same object), right? < 1167342984 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in the code of mine < 1167342993 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Although the builtin class methods happen to more consistently put their results on the stack. < 1167343053 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1167343060 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {C[c0Oo.?]}{M[m"Lol"Cc.?]} < 1167343069 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION probably screwed that up. < 1167343074 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {A[f0"a"1o.?]}{B[f0"b"1o.?]}{C[f0"c"1o.?]}{M[m(_o)O!(_o)(_a)A!(_b)B!(_c)C!f1(_a)2.?(_b)2.?(_c)2.?]} < 1167343102 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :A is a builtin class that might confuse matters. < 1167343127 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders how you would mimic inheritance with Glass. < 1167343138 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :What was screwed up with the above? < 1167343143 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {C[c0Oo.?]}{M[m"Lol"Cc.?]} < 1167343176 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {A[f"a"1o.?]}{B[f"b"1o.?]}{C[f"c"1o.?]}{M[m(_o)O!(_o)(_a)A!(_b)B!(_c)C!f1(_a)2.?(_b)2.?(_c)2.?]} < 1167343202 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you cannot call methods in a class directly, you must instantiate an object. < 1167343208 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...poo < 1167343271 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {C[c0(_hehe)O!o.?]}{M[m"Lol"(_meow)C!c.?]} < 1167343280 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, can you help me with mine too? :D < 1167343306 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i would suggest you rename the A class because there is a builtin with that name < 1167343314 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1167343329 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shall make a language that uses a queue instead of a filthy stack. < 1167343362 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {B[f"b"1o.?]}{C[f"c"1o.?]}{D[f"d"1o.?]}{M[m(_o)O!(_o)(_b)B!(_c)C!(_d)D!f1(_b)2.?(_c)2.?(_d)2.?]} < 1167343368 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Perhaps a deque < 1167343380 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :queue... the turing machine! < 1167343385 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1167343388 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not a queue < 1167343391 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :stfu me < 1167343397 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :A double-ended queue would be interesting. < 1167343404 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :cakeprophet: the ! command does not leave an object nor its name on the stack. put a 0 after the object variables to keep them. < 1167343431 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {C[c0(_hehe)0O!o.?]}{M[m"Lol"(_meow)0C!c.?]} < 1167343433 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Lol < 1167343445 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :mej... I keep thinking in evaluation mode... like Lisp < 1167343471 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Whoo hoo.. I made a needless wrapper around the output class. < 1167343481 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :talk about useful. < 1167343589 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you have hit upon one of the weirdities of Glass: object names are looked up in the environment of the . so the (_o) can only be used in the m function < 1167343610 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha! < 1167343622 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i knew my code was right assuming my knowledge! < 1167343628 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but... darn < 1167343672 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :simply move the o. from the subclasses to M < 1167343681 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {B[f(_t)O!"b"1o.?]}{C[f(_t)O!"c"1o.?]}{D[f(_t)O!"d"1o.?]}{M[m(_o)O!(_o)(_b)B!(_c)C!(_d)D!f1(_b)2.?(_c)2.?(_d)2.?]} < 1167343681 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no! < 1167343683 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :never! < 1167343691 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: a single-ended queue would be more interesting. < 1167343711 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :naj... with a double-ended you could rotate around to weird places. < 1167343720 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Like a big merry-go-round. < 1167343770 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok another way is to use (_o)* in m to actually have an object rather than its name on the stack. but then you need to put it back into a variable in the subclasses before using . :) < 1167343804 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :k i'll leave that project.... xD < 1167343831 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1167343837 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why didn't the temp thing work? < 1167343842 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {B[f(_t)O!"b"1o.?]}{C[f(_t)O!"c"1o.?]}{D[f(_t)O!"d"1o.?]}{M[m(_o)O!(_o)(_b)B!(_c)C!(_d)D!f1(_b)2.?(_c)2.?(_d)2.?]} < 1167343851 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now the classes know O < 1167343865 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :!glass {M[mTO!"Test"To.?]} < 1167343867 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Test < 1167343887 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right i forgot, you can use a global variable starting with a capital :) < 1167343927 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!glass {B[f"b"1o.?]}{C[f"c"1o.?]}{D[f"d"1o.?]}{M[m(Olp)O!(Olp)(_b)B!(_c)C!(_d)D!f1(_b)2.?(_c)2.?(_d)2.?]} < 1167343929 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :bcd < 1167343933 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1167343934 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<3 < 1167343962 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my lang is starting to get a nice feel to it, {[|<>*][(<>[1-])?]} < 1167343978 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :does factorials, tho under construction :) < 1167344068 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a "class" now has a function stack and a var stack, each "object" lives while it has functions left.... and i have no idea about anything, but who cares :) < 1167344681 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con)[(c__)a1=b0=][aa*^][bb*^][(iter)(_fun)0=a*(_fun)?(_fun)b(iter).?} < 1167344684 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1167344690 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... I'm trying to build a List datatype in Glass :D < 1167344888 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that constructor doesn't look quite right < 1167344895 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah :/ < 1167344980 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think [(c__)a2=b2=,,] might work better < 1167345005 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Why 2? < 1167345061 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because that way you pick the deepest remaining argument < 1167345096 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait... < 1167345127 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that should be [(c__)a2=b1=] < 1167345141 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... I think, to feet the typical Glass syntax... the order of the list should be in reverse :D <123><4567>(pair)(Con)! (if I did the syntax right) would be a pair starting with 4567 and ending with 123 < 1167345154 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you just forgot to include the variable names on the stack, i think < 1167345162 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :when counting < 1167345192 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but you might still want ,, at the end to remove the arguments. < 1167345255 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't think you need ^ just before ] < 1167345312 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :reversing is as simple as a1=b2= < 1167345437 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think you might want a comma after 0= and BTW that should be 1= < 1167345455 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as in (_fun)0= < 1167345497 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con)[(c__)a2=b1=][aa*][bb*][(iter)(_fun)1=,a*(_fun)?(_fun)b(iter)?} {M[m(_p)<123><456>(_pair)(Con)!(_o)O! (_pair)a.(_o).o? (_pair)b.(_o).o?]} < 1167345626 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :er... < 1167345626 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con)[(c__)a2=b1=][aa*][bb*][(iter)(_fun)1=,a*(_fun)?(_fun)b(iter)?} {M[m<123><456>(_pair)(Con)!(_o)O! (_pair)a.(_o).o? (_pair)b.(_o).o?]} < 1167345818 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Don't think it worked. < 1167345818 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :missing some *'s after some (_fun)'s < 1167345818 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con)[(c__)a2=b1=][aa*][bb*][(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter)?} {M[m<123><456>(_pair)(Con)!(_o)O! (_pair)*a.(_o)*.o? (_pair)*b.(_o)*.o?]} < 1167345818 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and a . after (iter) < 1167345818 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con)[(c__)a2=b1=][aa*][bb*][(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?} {M[m<123><456>(_pair)(Con)!(_o)O! (_pair)*a.(_o)*.o? (_pair)*b.(_o)*.o?]} < 1167345818 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hehe... I'm assuming glass can handle recursiion. < 1167345818 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a ] before } < 1167345818 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :>.< < 1167345818 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con)[(c__)a2=b1=][aa*][bb*][(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?]} {M[m<123><456>(_pair)(Con)!(_o)O! (_pair)*a.(_o)*.o? (_pair)*b.(_o)*.o?]} < 1167345818 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to make a list class to conviently wrap values into pairs before I attempt any sort of iteration. O.o < 1167345818 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :too many * in the main function < 1167345818 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I thought you needed them to denote that the variable is in the current context. ;.; < 1167345819 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not for the argument of . < 1167345876 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con)[(c__)a2=b1=][aa*][bb*][(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?]} {M[m<123><456>(_pair)(Con)!(_o)O! (_pair)a.(_o)o.? (_pair)b.(_o)o.?]} < 1167345876 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :some .o should be o. < 1167345882 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1167345884 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I got it. < 1167345939 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh and numbers are printed with on. not o. < 1167345963 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con)[(c__)a2=b1=][aa*][bb*][(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?]} {M[m<123><456>(_pair)(Con)!(_o)O! (_pair)a.(_o)(on).? (_pair)b.(_o)(on).?]} < 1167346053 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :wheee.... slowly the process of abstraction takes place. < 1167346057 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :slowly... and painfully. < 1167346059 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whoops. i remember that you cannot have methods with the same name as attributes. < 1167346074 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :meh... I'll call them what they're called in Lisp. < 1167346078 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in fact it crashed Glass horribly last time i tried < 1167346078 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :what are they called in Lisp again? < 1167346087 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :car and cdr < 1167346118 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... can't you just access the variables themselves? < 1167346132 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :instead of using a function? < 1167346139 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, that was in fact what crashed Glass horribly, it's a bug < 1167346181 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Con)[(c__)a2=b1=][(car)a*][(cdr)b*][(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?]} {M[m<123><456>(_pair)(Con)!(_o)O! (_pair)(car).?(_o)(on).? (_pair)(cdr).?(_o)(on).?]} < 1167346182 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :123456 < 1167346189 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I also forgot to do a ? on the pairs. < 1167346196 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :whoooo... we made a pair! < 1167346225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is that a working list? < 1167346236 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :As far as I can tell... < 1167346243 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think the (iter) is still slightly buggy < 1167346243 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cool :) < 1167346247 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It instantiated... took the two values in front of it, stored them, and accessed them. < 1167346275 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah... I'll wait for the (List) class before figuring out the iter < 1167346283 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no wait, i misread < 1167346313 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :(List) will probably need to take the length of the list as a value... so the constructor knows how far back to go. < 1167346400 0 :jix_!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1167346444 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you need a Nil class for a start < 1167346461 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :That would be like... < 1167346480 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :{(Nil)} ??? < 1167346514 0 :jix_!n=jix@L6046.l.strato-dslnet.de JOIN :#esoteric < 1167346516 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :rather, {(Nil)[(iter),]} < 1167346592 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and probably you need a null? method too < 1167346843 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually that could be defined using (iter). < 1167346889 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :except... that would be bad on circular lists. < 1167346920 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyhow, time for bed. < 1167346923 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :{(Nil)[(iter),][(null?)1]} {(Con)[(c__)a2=b1=][(car)a*][(cdr)b*][(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?]} {(List)[(c__) (_a)A! (length)0=(tmp)(length)*=\(tmp)*a(tmp)*=b(tmp)<(tmp)*><1>(_a)s.?==]} < 1167346938 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... not done yet on the constructor for list. < 1167346983 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you need (null?) in (Con) as well < 1167347000 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1167347028 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :which would check cdr for null? right? < 1167347045 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but what would happen if it wasn't null? < 1167347055 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Is there a way to reliably check that? < 1167347068 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :null? is just a method that tells if the list is Nil or not. So Con can just return 0. < 1167347094 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ooooh < 1167347096 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :duh :P < 1167347246 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :How would you change a into a (stack push)? < 1167347316 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think that is rather awkward. in fact i think you would need to create a list class just to temporarily store away the above elements. < 1167347395 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm? < 1167347414 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't think you need the (tmp) variable btw. just decrement length in the loop. < 1167347423 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to use a length parameter and a while loop to make it do a bunch of cons < 1167347455 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Well... I was going to keep length unchanged by the loop so that it could be accessed by other things < 1167347465 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1167347495 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but you don't need it i think < 1167347537 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :In an environment built around getting values based on their position on the stack... a length variable would come in handy in tons of places. < 1167347578 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but I'm still not sure how to use tmp to get something from the stack./ < 1167347633 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you cannot. the simplest way to turn a number into a push is by using the List class you are trying to construct. < 1167347671 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :aah. < 1167347671 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :however if you do the loop the right way you don't need to access far down elements. < 1167347675 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :work backwards? < 1167347684 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and just do 0? < 1167347691 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :0, < 1167347717 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that would make the list go backwards. < 1167347720 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you may not even need 0. < 1167347759 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmm? < 1167347864 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if you are collecting elements into the variable (_l), say, then adding the top element of the stack to it (and removing it) is just (_l)*(_l)(Con)! < 1167347900 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :except you need to add those ,, i mentioned at the end of (Con).c__ < 1167347904 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1167348011 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :....hmmm, I halfway understand. < 1167348093 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so your loop would be something like /(_tmp)(_l)*(_l)(Con)!(_tmp)*<1>(_a)s.?\ < 1167348115 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :What's _1? < 1167348145 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :_l is the variable collecting the list < 1167348241 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(_l)(Nil)!/(_tmp)(_l)*(_l)(Con)!(_tmp)0*<1>(_a)s.?=\ < 1167348359 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Your *'s look like they're in the wrong place. < 1167348399 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't think so < 1167348430 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the first * is to get the content of _l onto the stack before using (Con) < 1167348461 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Why doesn't the second _l have a *? < 1167348510 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because the ! command takes an unevaluated name to put the contructed object in < 1167348528 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1167348529 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :damn postfix < 1167348544 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I forgot the _1 was just an identifier name. < 1167348575 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's a small L btw :) < 1167348675 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it may not really be appropriate for this list collection function to happen in List.c__, because we are not actually trying to construct a class List object, but a chain of Con's < 1167348717 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Eh... it's just for convience. < 1167348734 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it's probably the easiest way I could think of doinging < 1167348741 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :implementing it as a method of Con would be kind of weird. < 1167348752 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the problem is that we then get a new List object in addition < 1167348775 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If the constructer simply returns _l... it'll be a chain of cons. < 1167348794 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :by "return" I mean... but _l on the stack. < 1167348819 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, but the List object still is also created, and needs to be put in a variable < 1167348843 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm... it wouldn't work right as a Con method though... < 1167348901 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... maybe _l should be an instance variable? < 1167348913 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and you can just access List.l < 1167348919 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it could be List.list, that would be similar to the builtin classes < 1167348973 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the builtin classes just need to be instantiated once, and after that you use their methods as if they were static < 1167348987 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :more or less < 1167349110 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :on the other hand wrapping the List object might also work, but then you need to declare (iter) and stuff in (List) as well. < 1167349171 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyhow now i really need to go to bed < 1167349181 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Alright < 1167349197 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Thanks for the pointers :D < 1167349197 0 :oerjan!unknown@unknown.invalid QUIT :"Good night." < 1167349408 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :{(Nil)[(iter),][(null?)1]} {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?] } {(List)[(build)(_a)A!(_tmp)0= (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)] } {M[m(_o)O! (_l)(List)! "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"<12>(_l)(build).?(MyList)0= (_o)o.(MyList)(iter).?]} < 1167349443 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Nil)[(iter),][(null?)1]} {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?] } {(List)[(build)(_a)A!(_tmp)0= (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)] } {M[m(_o)O! (_l)(List)! "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"<12>(_l)(build).?(MyList)0= (_o)o.(MyList)(iter).?] < 1167349445 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1167349452 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... < 1167350080 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Well.. I'll figure out the bugs later. < 1167350087 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Would probably make a good built-in class. < 1167350118 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :. . . You didn't. < 1167350145 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You did. < 1167350153 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :My god. You're just crazy. < 1167350186 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I take pride in my insanity. < 1167350207 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :The cons class works fine... just need to figure out where I messed up on the list constructor. < 1167350239 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :other than it... missing a curly brace. < 1167350265 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :!glass {(Nil)[(iter),][(null?)1]} {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?] } {(List)[(build)(_a)A!(_tmp)0= (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)] } {M[m(_o)O! (_l)(List)! "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"<12>(_l)(build).?(MyList)0= (_o)o.(MyList)(iter).?]} < 1167350394 0 :tgwizard!unknown@unknown.invalid QUIT :Remote closed the connection