< 1193789397 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1193789508 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: if smetana+1 compacts the infinite smetana program to finite size, then it's obviously turing-complete < 1193789563 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: the question is whether we can consider smetana to be turing-complete, despite infinitely large programs < 1193789651 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and "smetana+1 is just a notation" would be a good argument for that. < 1193789715 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if it is turing complete < 1193789719 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it can hardly be said to be just a notation < 1193789759 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: that doesn't make any sense. < 1193790049 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: Any more pebble.bfm insanity? < 1193790055 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: damnit!!! i forgot < 1193790062 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: =( < 1193790078 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: it'll also be harder than i thought due to lack of strings in pebble < 1193790097 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Meaning that you'd have to do string functions first. < 1193790104 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1193790116 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the hardest part would be coming up with an efficient representation < 1193790136 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i mean, H1e1l1l1o1w1o1r1l1d is... bigger than neccessary < 1193790270 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Only by a constant factor. < 1193790278 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i mean linear. < 1193790283 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And "Hello world\0x00" is. . . Not useful for string insertion in Brainfuck. ;) < 1193790338 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lament: yeah well :( < 1193790351 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i guess, i'll do the swapping-algorithm < 1193790355 0 :jix!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1193790355 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Helloworld0 < 1193790358 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :to insert to string < 1193790375 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :make 0 the index of the string from the end you want to access < 1193790379 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :swap and -1 repeatedly < 1193790397 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :of course, to iterate < 1193790403 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :just go from H until you find 0 < 1193790471 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :good algorithm? < 1193790477 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :though the swapping could be inefficient < 1193790558 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: lament: comments? < 1193790581 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i bought sheet music paper! < 1193790602 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :related comments? < 1193790633 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :10 staves per sheet, 40 sheets (related to my previous comment) < 1193790660 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :related to my algorithm < 1193790739 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1193791017 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i guess the swapping would be slow < 1193791018 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1193791203 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1193791875 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric : no/yes? ;) (lament,pikhq) < 1193792159 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Are you looking for minimal Turing-complete systems? < 1193792181 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and PEBBLE in PEBBLE < 1193792365 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION creates a parser called convertNewZealand < 1193792375 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :haha, what < 1193792379 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh -- welcome back < 1193792383 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1193792385 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ello. :-) < 1193792395 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It converts from unary to decimal with New Zealand. < 1193792397 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :is the unary->anything converter actually possible/easy in your subst lang? < 1193792403 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It's certainly possible. < 1193792404 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hahahaha < 1193792404 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :one second difference < 1193792418 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so how does it utilize new zealand < 1193792440 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :By New including a Zealand if the string is "". < 1193792457 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...including New Zealand, I mean. < 1193792483 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so what is a New Zealand < 1193792485 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :apart from a country < 1193792500 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :A backronym for "no zero". < 1193792517 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And now for another regex mnemonic: "Look up there! It's money!" < 1193792530 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I'm dumb. explain < 1193792542 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(By the way, what regexps do you use? Custom?) < 1193792544 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :"" is converted to "" instead of "0". < 1193792550 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Undefined, really. < 1193792559 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1193792563 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Though $ is a pretty important part of it. < 1193792661 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Does your language have a way of putting anything to the screen? < 1193792675 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :A primitive or something, that does no substitutions, but has a side effect of output < 1193792684 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It could easily be extended to include one. < 1193792703 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Input as well. < 1193792732 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Because you could make a program basically identical to fibonacci.b < 1193792741 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :bleach(): {/[ab]/; "w" + bleach()} < 1193792742 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Writes out fibonacci numbers in decimal, one per line, until halted. < 1193792751 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :(With an invisible period on the end.) < 1193792758 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope: what does that do? < 1193792767 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It replaces a and b with w. < 1193792775 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :And... why. < 1193792782 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...and gives an error when it reaches the end of the string. < 1193792806 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It was going to make input more friendly for convertNoZero, but I just realized it's actually completely unnecessary. < 1193792828 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Just match . instead of w :-) < 1193792851 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, I was thinking [ab]. < 1193792854 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :But yeah. < 1193792859 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders < 1193792867 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :You want it to be generalized < 1193792873 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I guess so. < 1193792885 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :since unary is just a way of encoding a string as its length, the actual contents is arbitary < 1193792907 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods < 1193793006 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION decides to go for little-endian increment < 1193793029 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :So what is your language called? < 1193793032 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :is it implemented? < 1193793071 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :No implementation. I think I'll call it Redivider. < 1193793086 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :It's really interesting, I might implement it :) < 1193793104 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Should I finish the program or the spec first? < 1193793105 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Does it have a spec or similar? I mean, defining regexps beyond the basics could be hard... < 1193793109 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hahah < 1193793113 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1193793114 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :<1 second difference < 1193793121 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and program! :) < 1193793130 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Will do! < 1193793373 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Is it okay if I use the word "guts" in the spec? :-P < 1193793388 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Sure < 1193793389 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1193793391 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :As in ::= "/" "/" < 1193793395 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :But I want to see the program first! < 1193793397 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1193793400 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :as long as you define regexguts < 1193793401 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1193793402 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I'm still doing that. < 1193793409 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Pff, why would I do that? :-) < 1193793421 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :because otherwise i won't implement it, having no spec :P < 1193793428 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'm not going to use a third-party regexp spec < 1193793431 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Okay. < 1193793434 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that'd be inconsistant with other implementations! < 1193793439 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I'll write my own minimalistic one, then. < 1193793442 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :think of all the regexp libs... you gotta define your own for portability ;) < 1193793448 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :just give it enough to be comfy for use < 1193793453 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods < 1193793461 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ranges, exclusion... < 1193793471 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Plus /[]/, the regex that doesn't match. < 1193793473 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :there's not much to regexps < 1193793491 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :So is Redivide TC? < 1193793501 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i doubt it, personally, but.. < 1193793514 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I might try and write a bf interp in it. :) < 1193793526 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Redivider is almost certainly TC. < 1193793528 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hm, i think that would be possible < 1193793530 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :even simple < 1193793532 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that would be cool :) < 1193793535 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If http://pastebin.ca/679421 has no bugs, it is. < 1193793549 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Of course. < 1193793551 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :But brainfuck = far more fun < 1193793552 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1193793586 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :very crazy suggestion for regexps < 1193793608 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric : means "anything function x matches" < 1193793620 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :this would make, e.g. parsing brainfuck braces trivial < 1193793624 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That sounds rather complicating. < 1193793625 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :though perhaps it's too bloated in your mind ;) < 1193793635 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i don't know, it'd just make a lot of stuff you could think of easier < 1193793649 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :This language is inspired by Parsec, which is a completely ordinary combinator parser as far as I can tell :-) < 1193793688 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Well, yeah, but with parsec you could insert random haskell in the middle < 1193793693 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Something like (i don't know haskell) < 1193793704 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :match "abc" ++ callParser ++ match "def" < 1193793708 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :with these regexps, you can't < 1193793722 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I think you can still do that here. < 1193793740 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Hmm < 1193793740 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how? < 1193793752 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :/abc/ + parser() + /def/ will work and return "abcwhatevertheparserreturneddef". < 1193793784 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh, cool < 1193793784 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so < 1193793791 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :/[/ + bf() + /]/ < 1193793791 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :First it runs /abc/, which consumes the abc and returns "abc", then it runs parser(), which consumes something and returns something, then it runs /def/, which consumes the def and returns "def". < 1193793794 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :should parse braces? < 1193793798 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1193793802 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yup. < 1193793826 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If bf() parses "foo" into "bar", that'll parse "[foo]" into "[bar]". < 1193793863 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If you don't like the brackets around it, then there's {/[/; x <- bf(); /]/; x} < 1193793869 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1193793875 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :what is a function that parses nested parens with anything in < 1193793876 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i.e. < 1193793876 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That parses "[foo]" into "bar". < 1193793893 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(abc) ((ab)c) (a(b)(c((d)))) parses, (a etc don't < 1193793905 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :More importantly: some way to get the inner contents < 1193793909 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(abc) returns abc < 1193793914 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :((ab)c) returns (ab)c < 1193793922 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but, of course, ONLY if the whole thing has well-formed braces < 1193793925 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Is it possible? < 1193793926 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What does (ab)c return? < 1193793932 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Possible, yes. Probably easy, too. < 1193793933 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope: ab < 1193793935 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :well < 1193793937 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i guess that's undefined < 1193793945 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but yeah ab < 1193793952 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i just mean, if you can do that, then you can parse brainfuck < 1193793973 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :check(): /(/ + check() + /)/ + check() | /[^()]/ + check() < 1193793976 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if you have "code[SENTINEL]tape", then you can run a brainfuck program trivially, iirc < 1193793979 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...with that invisible period. < 1193793988 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :That just checks for well-formedness. < 1193794028 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :grab(): {/(/; x <- check(); /)/; x} < 1193794033 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Cool. < 1193794037 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...period again, gah. < 1193794041 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :So what are these "x"s etc? < 1193794048 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Just arbitary variables that are "" by default? < 1193794056 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :By default, they're errors. < 1193794060 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise, yes. < 1193794066 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :So how does grab(): {/(/; x <- check(); /)/; x} work < 1193794068 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :They always hold strings, never parsers. < 1193794103 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It runs /(/ and throws away the result, then runs check() and stores the result in x, then runs /)/ and throws away the result, then runs x and returns the result. < 1193794111 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :A string is the same thing as a parser that does nothing and returns that string. < 1193794115 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :But what is x < 1193794120 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :It should be an error < 1193794123 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :x is a local variable, I guess. < 1193794123 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :You did not define it < 1193794135 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :x <- check() is what introduces it. < 1193794136 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :<- is append right? < 1193794149 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :No, it stores. < 1193794152 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Ah < 1193794154 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :How do you append? < 1193794155 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Or creates or some such. < 1193794157 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :x <- x + y? < 1193794161 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :<- is obviously borrowed from haskell's do notation < 1193794172 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I guess you can do it that way. You might as well do z <- x + y, though. < 1193794189 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :These behave pretty much exactly the same way as in Haskell's do notation, yeah. < 1193794196 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Why, ihope? Why have unneeded vars? < 1193794220 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Less confusion, I guess, if you find that sort of thing confusing. < 1193794313 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I think this is right, apart from the fact that it outputs the numbers all smooshed together if output doesn't automatically add a newline: http://pastebin.ca/755940 < 1193794345 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :a few questions < 1193794363 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :is main a special name? or is it just what you called it as a convention? and, what's []? < 1193794383 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :There's not necessarily anything special about it. < 1193794404 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :foo()[blah] makes foo parse blah; otherwise, it parses from whatever it's called in. < 1193794412 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Could you like put it in the spec? "If there is a main function, it is called at runtime, otherwise you are dropped in to a REPL?" < 1193794419 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The "current string", I guess. < 1193794424 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sure. < 1193794428 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :foo()[blah]... why not just foo(blah)? < 1193794433 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I can't see the ()s being used for anything else there < 1193794453 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Plus it would look nicer. < 1193794481 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :They're for when you want parsers to take parameters other than the current string. < 1193794507 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so foo(extra)[str]? < 1193794513 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :If so, may I humbly suggest just foo(str, extra)? < 1193794525 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Good idea, yes. < 1193794530 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1193794537 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Though I rather feel foo(extra, str) would be better. < 1193794546 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Although... What if you want extra args, but default string? < 1193794554 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Maybe some kind of seperator < 1193794557 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :foo(str | extra) < 1193794565 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no, no... that won't work nicely < 1193794566 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1193794573 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how to resolve that? < 1193794582 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Extra arguments but the default string would just be foo(extra). < 1193794597 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :How can it tell the difference between foo(str) and foo(extra)? < 1193794624 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Each parser has a parameter number. If it's given that many parameters, then they're all actually parameters; if it's given one more, the last one is the input string. < 1193794648 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Parser with 1 parameter number: < 1193794650 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :foo(str) < 1193794654 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I just want to pass it a special string. < 1193794683 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If foo's parameter number is 1, then str is the parameter. < 1193794696 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Right! BUt I don't want it to be. < 1193794701 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If foo's parameter number is 0, then str is the input string. < 1193794704 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I just want to pass it an extra string, with no extra parameters. < 1193794709 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Foo's parameter number is 1. < 1193794711 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Tell me how. < 1193794721 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If foo's parameter number is 1, then use foo(parameter, inputstring). < 1193794729 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I don't want to give it an extra parameter < 1193794743 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If foo's parameter number is 1, it must take a parameter. < 1193794749 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Ah, ok. < 1193794752 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :No optional parameters < 1193794754 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1193794786 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If you like those optional parameters, go the Haskell Way and use foo("J" + parameter) or foo("N") :-) < 1193794787 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I suggest making inputstring the first < 1193794802 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :It feels like it's what the parser is being called /with/ < 1193794806 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Everything else is just additional info < 1193794815 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Also, it makes sense. < 1193794825 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I sort of have the opposite opinion for the same reason. < 1193794828 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :For increasing parameter num: foo(str), foo(str,1), foo(str,1,2) etc < 1193794841 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :str - the main part of the parser, it's what its actually parsing - moves, in your smantics < 1193794843 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :which is not nice < 1193794879 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, if parameter numbers can vary, you need some way of differentiating a parameter from an input string. < 1193794892 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :First parameter: string < 1193794898 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Rest: parameters, function dependena < 1193794921 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Function what? < 1193794933 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :dependant < 1193794941 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :The string is there regardless of the function < 1193794945 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :The rest is stuff added on "after the tail" < 1193794956 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The input string's being optional is sort of necessary. < 1193794956 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :It makes so much more sense for the string to be first. < 1193795007 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You need some way of making reference to the current string... or maybe this could be done without the current string stuff? Hmm. < 1193795022 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :look: < 1193795027 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func() # current string < 1193795034 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1193795035 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1193795039 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i get you < 1193795044 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you can call a function with a parameter < 1193795046 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but with the current string < 1193795050 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :OK, you're right, yours is better < 1193795059 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1193795062 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Some way to mark it < 1193795063 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :How about < 1193795072 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :[abc] means "abc as string argument" < 1193795078 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and can be anywhere, but is generally at the start < 1193795086 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :for a function with parameter value 2: < 1193795089 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func(1,2) # normal < 1193795093 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func([str], 1, 2) # using str < 1193795107 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How would varying numbers of parameters work, anyway? < 1193795112 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :They wouldn't < 1193795115 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I'm not talkng about that < 1193795118 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :But, < 1193795122 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func(1,2) and func(1,[str],2) would work < 1193795128 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i.e. [] just mean "string argument" < 1193795134 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Seems a little pointless. < 1193795134 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func2(str) # I guess, for parameter value 0, the []s would be optional, for nicety < 1193795152 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so, progression: func(str) func([str],1) func([str],1,2)... < 1193795169 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope: Well, it's nicer than allowing one additional argument. Think of the bugs - it's just not obvious at a glance < 1193795188 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders < 1193795201 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I think it's nicer, IMO < 1193795202 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Just cleaner. < 1193795204 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :More free-form < 1193795205 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, the input string is quite a bit like just another parameter. < 1193795222 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but: < 1193795226 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func(1,2,oops-an-additional-arg) < 1193795231 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :That could so easily be a bug. < 1193795235 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :And explicitness is better, I'd say < 1193795238 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Indeed, it could. < 1193795249 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func(1,2,oops) would be an error - "too many arguments, perhaps you need []?" < 1193795258 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func(1,2,[oops]) would do what you intend < 1193795263 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Though I like the look of semicolons better. < 1193795271 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(Probably [] would by convention go at the start, though - func([oops], 1, 2)) < 1193795276 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :func(1, 2, oops;) and func(1; 2, oops) and such. < 1193795277 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :So, I think that'd be good. < 1193795283 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but [oops] at the start or end by convention? < 1193795291 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope: Well, it just seems not noticable enough to me < 1193795305 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... < 1193795320 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :"It's an esoteric language; get over it"? :-P < 1193795331 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Esoteric language != unplanned language < 1193795342 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I think that [] here makes more sense < 1193795353 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :OK, How about this < 1193795360 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How about func(1, 2; oops] and func[oops; 1, 2)? < 1193795363 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Instead of func()[blah] < 1193795369 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func[blah]() < 1193795372 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :or just func[blah] < 1193795373 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1193795374 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so: < 1193795376 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func[blah] < 1193795377 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func() < 1193795381 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func[blah](1,2) < 1193795387 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ah, I like that. < 1193795395 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :func[blah] would be sugar for func[blah](), since the former looks nicer < 1193795401 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods < 1193795409 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Though maybe func[blah]() would be nicer, as its more consistant - func[blah] is the parser that matches on blah < 1193795431 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Hmm < 1193795442 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, there are no first-class parsers here. < 1193795446 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :output[reverse[unary()]] output[reverse[unary()]()]() < 1193795449 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :The former is definately nicer < 1193795450 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1193795452 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1193795460 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :a[b] is a[b]() < 1193795465 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :a() is a[current_str]() < 1193795467 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hey, maybe we could get rid of () entirely. < 1193795472 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I mean, make it optional. < 1193795474 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :a[b](c,d) is what you expect < 1193795481 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :a(b,c)[d] is an error < 1193795482 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :And how? < 1193795488 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :a[b],c,d? Ugly. < 1193795496 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I think the above is probably the best < 1193795500 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I mean just (), not (stuff). < 1193795509 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :No foo(); just foo. < 1193795509 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :run(): {x <- step(); output()[reverse()[unary()]]; run()[x]}. < 1193795509 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1193795516 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :output[reverse[unary]] < 1193795517 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :run(): {x <- step(); output[reverse[unary()]]; run[x]}. < 1193795521 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Hmm < 1193795528 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope: I think in that case () provides more information < 1193795533 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Because, otherwise < 1193795537 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :You could mistake it for a variable. < 1193795545 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yes, that's true. < 1193795556 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I'll rewrite your paste using that proposed syntax < 1193795584 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/755956 < 1193795590 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :IMO, it looks really clean and easy to understand. Very nice. < 1193795616 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Likewise, func[a](b,c) follows naturally from that syntax. < 1193795618 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yes, you're right. < 1193795620 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods < 1193795621 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :OK. < 1193795629 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :So, can I expect a spec tomorrow maybe? ;) < 1193795630 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I'm going now < 1193795637 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yup. Bye. < 1193795639 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Very interesting langugae < 1193795645 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :It's esoteric but looks really easy to program in too < 1193795649 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods < 1193795656 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :OK. Leave me a memo with MemoServ if you get it done :) < 1193795660 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Will do. < 1193795720 0 :ehird`!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1193804758 0 :tokigun!n=tokigun@haje8.kaist.ac.kr JOIN :#esoteric < 1193806272 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :THIN FUNCTIONS WILL BE THE DEATH OF ME < 1193806372 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :GAUNT ZOMBIE FUNCTIONS, LOOKING FOR BRAINS... < 1193806582 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Unfortunately, I believe that the solution is to abandon my dictum that all blocks are functions :( < 1193806610 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You *could* do it as Tcl does. . . < 1193806628 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Provide an "uplevel" command, which executes something up a level in the stack. < 1193806641 0 :ihope!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1193806660 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Wow that's gross >_> < 1193806699 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that's not very higher-order. a function should not necessarily know where it was called. < 1193806703 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I guess it's not Plofy, though. < 1193806708 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Mind you, it's better than thick and thin :P < 1193806792 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But not much better. < 1193806911 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... isn't a thick function essentially one that binds its escape continuation to return? < 1193807945 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's a truly bizarre way of looking at it :P < 1193807986 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :A thick function is the point in the call stack that a return will drop do. < 1193808828 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alternately, a thick function is one which catches the return exception. you could generalize that. < 1193808837 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and good night. < 1193808843 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1193808878 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oooh, that's a good way to think about it. < 1193808883 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Returns become throws with special syntax. < 1193808901 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Thick functions are just functions with implicit try/catch blocks. < 1193808918 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Now, how can I use that to get rid of thick functions :P < 1193813936 0 :staplegun_!n=staplegu@CPE-124-184-221-101.nsw.bigpond.net.au JOIN :#esoteric < 1193813987 0 :staplegun_!unknown@unknown.invalid NICK :i4nic8 < 1193814055 0 :i4nic8!unknown@unknown.invalid PRIVMSG #esoteric :howzit < 1193814204 0 :i4nic8!unknown@unknown.invalid QUIT :Client Quit < 1193814224 0 :i4nic8!n=i4nic8@CPE-124-184-221-101.nsw.bigpond.net.au JOIN :#esoteric < 1193814310 0 :i4nic8!unknown@unknown.invalid PRIVMSG #esoteric :piss < 1193815074 0 :i4nic8!unknown@unknown.invalid QUIT :"ChatZilla 0.9.78.1 [Firefox 2.0.0.8/2007100816]" < 1193815602 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1193815610 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1193817599 0 :clog!unknown@unknown.invalid QUIT :ended < 1193817600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1193826010 0 :ttm!unknown@unknown.invalid PRIVMSG #esoteric :Hm. < 1193826393 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1193826397 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1193826754 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1193826760 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1193828974 0 :bsmntbom1dood!i=gavin@rrcs-67-52-47-67.west.biz.rr.com JOIN :#esoteric < 1193829680 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1193831354 0 :jix!n=jix@dyndsl-080-228-189-006.ewe-ip-backbone.de JOIN :#esoteric < 1193831364 0 :jix!unknown@unknown.invalid QUIT :Remote closed the connection < 1193831391 0 :jix!n=jix@dyndsl-080-228-189-006.ewe-ip-backbone.de JOIN :#esoteric < 1193832915 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :o < 1193834265 0 :Tritonio!n=Tritonio@150.140.229.49 JOIN :#esoteric < 1193839009 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1193839106 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1193843309 0 :ehird`!n=test@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1193843575 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: that try/catch idea for thick functions is good but it doesn't help you vanquish thick/thin functions < 1193843605 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hence, " Now, how can I use that to get rid of thick functions :P" < 1193843632 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1193843639 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :in fact it probably complicates it < 1193843647 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :because you introduce syntactic sugar etc and even more thick/thin semantics < 1193843668 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok, show me a recursive factorial again so i can see thick vs thin and i'll try and figure out a way to resolve it < 1193843783 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1193843784 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://www.pastebin.ca/756432 < 1193844212 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: make it always run the program with every single combination of thick and thin functions at the same time, and introduce another, declarative, language, you have to use with the actual plof code to tell the interpreter what the correct behavior is; it can then resolve the right combination of thick/thin functions automatically < 1193844218 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you're welcome. < 1193844230 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1193844265 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so < 1193844267 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :{} = thin < 1193844272 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::{} = thick < 1193844872 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :right? GregorR? < 1193844895 0 :Tritonio!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1193844976 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: pebble.bfm will be called Calculus ;) I'm working on it no < 1193844977 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :w < 1193844980 0 :Tritonio!n=Tritonio@150.140.226.196 JOIN :#esoteric < 1193845724 0 :bsmntbombdood!i=gavin@rrcs-67-52-47-67.west.biz.rr.com JOIN :#esoteric < 1193845735 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1193846259 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: how does eval work? does it run at compile-time? < 1193846402 0 :bsmntbom1dood!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1193847858 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reappears. < 1193847860 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: Yes. < 1193847861 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: No. < 1193847872 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1193847882 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: How about < 1193847889 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :If {} is seen in the context of an assignment < 1193847894 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :It's thick < 1193847896 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise, it's thin < 1193847903 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :You still have thick/thin, but it's internal only. < 1193847905 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The first argument to 'if' is thick. < 1193847914 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it does not need to be, though. < 1193847926 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yes it does, it returns a value that 'if' needs to catch. < 1193847940 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :wait, is this a new language? < 1193847944 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, but {value} works < 1193847947 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :You don't need to use "return" < 1193847950 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: plof is not new < 1193847959 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :oh, ok- false alarm < 1193847968 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: there is a new language though! < 1193847973 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1193847982 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: Well, in Plof2, returning and evaluating to a value are identical, but I suppose that doesn't need to be the case :) < 1193847994 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Exactly. < 1193847995 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So, lemme mull over cases where that might be wrong. < 1193848009 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: return will zoop down the stack, but a value at the end will just evaluate to it. < 1193848015 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Right < 1193848031 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :"zoop" being of course the technical term. < 1193848037 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: It's ihope's. It's called Redivide, and it's a turing complete substitution language. Fibonacci numbers: http://pastebin.ca/755956 < 1193848068 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/679421 SK calculus implementation < 1193848073 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Actually < 1193848073 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no < 1193848077 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that syntax is the old version < 1193848083 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I'l update it (the SK calculus one) < 1193848083 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1193848104 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/756513 new SK calculus < 1193848117 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :to explain () vs []: < 1193848130 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :[x] means "parse string x", it defaults to the current string if not speciified < 1193848141 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you can also pass extra parameters (if defined in the function) with (a,b...) < 1193848148 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but, you cannot omit both [] and () < 1193848175 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so, parser() for no arguments, parser(a) for one argument, etc. or with a different string: parser[str] (note no () - it looks nicer), parser[str](a), parser[str](a,b) etc < 1193848188 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :apart from that, the rest is pretty self-evident I think < 1193848225 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :zomg halloween < 1193848230 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :main(), of course, is run with an empty string by default if it's there, when interpreting/running the compiled version < 1193848234 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if it's not there, it drops into a REPL. < 1193848242 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :A full spec is being written by ihope, it should be ready sometime today < 1193848246 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :But I thik it's very interesting. < 1193848666 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: BOO! < 1193848673 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :eek! < 1193848681 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::O < 1193849912 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1193850694 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1193850919 0 :jix!n=jix@dyndsl-080-228-189-006.ewe-ip-backbone.de JOIN :#esoteric < 1193851616 0 :jix!unknown@unknown.invalid QUIT :Nick collision from services. < 1193851626 0 :jix!n=jix@dyndsl-080-228-180-003.ewe-ip-backbone.de JOIN :#esoteric < 1193853785 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1193854149 0 :jix!n=jix@dyndsl-080-228-180-003.ewe-ip-backbone.de JOIN :#esoteric < 1193857129 0 :RedDak!n=dak@host107-85-dynamic.10-87-r.retail.telecomitalia.it JOIN :#esoteric < 1193859209 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1193860533 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lalaalalalalala < 1193860623 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i wish i could fly < 1193861239 0 :sebbu2!n=sebbu@ADijon-152-1-5-117.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1193862439 0 :sebbu!unknown@unknown.invalid QUIT :Connection timed out < 1193863046 0 :Tritonio_!n=Tritonio@150.140.226.169 JOIN :#esoteric < 1193863053 0 :Tritonio!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1193865825 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oi < 1193865827 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :er < 1193865830 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :typo < 1193866858 0 :bsmntbombdood!n=gavin@75-166-178-248.hlrn.qwest.net JOIN :#esoteric < 1193866938 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1193867056 0 :ehird`!unknown@unknown.invalid QUIT :"Leaving." < 1193867145 0 :ehird`!n=test@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1193868037 0 :ihope!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1193868205 0 :ihope!unknown@unknown.invalid QUIT :Client Quit < 1193868753 0 :ihope!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1193868924 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ello! < 1193868934 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :!ollE < 1193868938 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1193868979 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope: yay < 1193868980 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you're here < 1193868991 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yup. < 1193869000 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :any work on the redivide spec? :) < 1193869066 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I'm still working on it. < 1193869068 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :woo < 1193869080 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat said that redivide was interesting earlier today :P < 1193869096 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yay. < 1193869121 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :one comment though < 1193869154 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :output[str] gets away from non-purity by saying "Does no substitutions. (In an interactive interpreter, this is printed as debug output)" sneakily, < 1193869157 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hah, i said it was interested before it was famous! < 1193869160 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but what about input()? < 1193869171 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*interesting < 1193869175 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I was interested in it when ihope first mentioned it ages ago < 1193869178 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I just didn't mention it at the time :P < 1193869183 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1193869207 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: can't input() be the same way as output()? < 1193869224 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope: Well, no, because it has to return the string from input. < 1193869241 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ihope: You can't get away from non-purity there, unlike my above output[] definition < 1193869253 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right. < 1193869262 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Who cares about purity? :-P < 1193869272 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Evaluation order already matters. < 1193869278 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Well, if it's a substitution language it's expected that you know what's happening to the program :P < 1193869297 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :You know what I mean? It's like a list of rules... putting non-purity in there (that isn't carefully worded) could damage that < 1193869304 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... < 1193869343 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I still don't think there's much of a problem if evaluation order already matters. < 1193869405 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I guess < 1193869490 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :multithreaded parsing! < 1193869500 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ihope: please add thread support <3 < 1193869507 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :NO! < 1193869514 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :libpurple < 1193871425 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :default name = purple < 1193871436 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: So what is RodgerTheGreat's name? < 1193871456 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION grins < 1193871501 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :Rodger Therrickson Handlebrock Entrepreneur Gullible Russell Ensonava Aeota Therrickson? < 1193871530 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :"Gullible" = awesome name :P < 1193871541 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :"Wow. My name isn't in the dictionary" < 1193871552 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :"Gullible is one of my middle names" < 1193871555 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :"What's your name?" "Gullible." "Really? Wow!" "No, gotcha bitch!" < 1193871564 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :"...actually, yes it is." < 1193871566 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1193871569 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`: hm, you actually don't have a presence on the esolangs wiki? < 1193871579 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :thought that might have been it < 1193871583 0 :IhopE!unknown@unknown.invalid PRIVMSG #esoteric :Rodger Thomas Harry Elliot Graetz-Russell-Erickson-Aritz-Thomson! < 1193871598 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm totally renaming myself Gregor Van Von O'McFitzsonovichstein < 1193871606 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :believe it or not, my name in real life *isn't even Rodger!* < 1193871614 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: WHAT < 1193871617 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's Susan. < 1193871623 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1193871626 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is gullible < 1193871632 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :... i think? < 1193871636 0 :IhopE!unknown@unknown.invalid PRIVMSG #esoteric :Or Rodger Tokigun Helios EgoBot Gregor-Reddak-Ehird-Anmaster-Tritonio, which would be very weird. < 1193871647 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :IhopE: indeed < 1193871650 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has a reflex that coils on sight of "Elliot" and corrects people to "Elliott" < 1193871655 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: of course not, your real name is Spot < 1193871660 0 :IhopE!unknown@unknown.invalid PRIVMSG #esoteric :But it's "Elliot"! < 1193871666 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :my name is Elliott < 1193871667 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric ::< < 1193871674 0 :IhopE!unknown@unknown.invalid PRIVMSG #esoteric :Well, too bad! :-P < 1193871706 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :today's special VISUAL CLUE! < 1193871706 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :http://rodger.nonlogic.org/dump/images/1190852142-understanding.png < 1193871711 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i knew EhirD`'s name. < 1193871724 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :yes but that's because its littered in various code and i might have told you < 1193871755 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`: maybe i got it from your code too < 1193871764 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :i doubt it, though < 1193871768 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :i haven't shown all that much code here < 1193871770 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that was my second theory anyway < 1193871908 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`: perhaps, although i'm pretty sure i've just deduced it from your behavior, just like i did with GregorR < 1193871924 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :you deduced Elliott Hird from my behaviour? < 1193871931 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :well, of course you could deduce E Hird < 1193871934 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :But Elliott? i doubt it < 1193871942 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: olds! < 1193871950 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :olds? < 1193871953 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`: no no i'm pretty sure < 1193871957 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, i've seen that :P < 1193871968 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm aware < 1193871970 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: james randi might want to giv e you $1mil < 1193871982 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :fine, have some doodles from my statistics class today: http://nonlogic.org/dump/images/1193866302-sket2.png < 1193871985 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :i'm pretty sure being able to determine names from behaviour is psychic < 1193871986 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :http://nonlogic.org/dump/images/1193866315-sket1.png < 1193871986 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't like randy men < 1193872036 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe, a guy in my class does that too < 1193872042 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :IhopE: how's the spec going? < 1193872057 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if there's a pause in taking notes, he draws a random picture < 1193872101 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :as you can see, I don't really wait for a pause < 1193872113 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean? < 1193872127 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you use both hands and take notes while drawing? < 1193872132 0 :IhopE!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`: I'll post it in exactly one moment. < 1193872132 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :or he omits notes < 1193872136 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I generally don't take notes < 1193872136 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :IhopE: :D < 1193872142 0 :IhopE!unknown@unknown.invalid PRIVMSG #esoteric :What I have, I mean. Not the whole thing. < 1193872153 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm pretty sure i saw a graph in there! :) < 1193872171 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :because I find statistics extremely uninteresting, considering how many times I've done it in various classes over the years < 1193872212 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :statistics does have an ugly sound to it. < 1193872225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, i'll sleep for a moment now, you all have fun -> < 1193872235 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I have oodles of fun in my CS classes < 1193872256 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Or Rodger Tokigun Helios EgoBot Gregor-Reddak-Ehird-Anmaster-Tritonio, which would be very weird. <-- huh? < 1193872268 0 :IhopE!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: don't you think that would be a very weird name? < 1193872269 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: hello < 1193872282 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :IhopE, stupid highlights < 1193872283 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hate them < 1193872295 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway yes < 1193872305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :IhopE, none of these are real names < 1193872306 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so what? < 1193872332 0 :IhopE!unknown@unknown.invalid PRIVMSG #esoteric :GregorR mentioned pretending everyone's nick was derived the same way as his. < 1193872354 0 :bartw!unknown@unknown.invalid PRIVMSG #esoteric :why is stdcall right to left with arguments ? < 1193872364 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Gregor isn't a real name? :) < 1193872364 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :bartw: because stdcall is evil < 1193872372 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :could have fooled me < 1193872374 0 :bartw!unknown@unknown.invalid PRIVMSG #esoteric :is it ? < 1193872392 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : GregorR mentioned pretending everyone's nick was derived the same way as his. <-- and how is it? < 1193872402 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mine IS based on my initials (AN) yes < 1193872408 0 :IhopE!unknown@unknown.invalid PRIVMSG #esoteric :First name, last initial. < 1193872432 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :my name is obviously Oerja Nilsson. Sorry for fooling you all about my gender so long. < 1193872434 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my real name is oklovonimol polokolmonopotol < 1193872448 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :Ehir Dickinson < 1193872458 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, hm, sounds Scandinavian < 1193872465 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is from Sweden < 1193872479 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Norwegian here < 1193872482 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1193872490 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: YOU FAKED YOUR PHOTO?!12567862874623784234 < 1193872491 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Gotta tell you, "Oerja" doesn't strike me as male or female :P < 1193872494 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, still don't know gender of name < 1193872503 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`: no i'm just very ugly. < 1193872512 0 :bartw!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: nice drawings < 1193872525 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1193872526 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, wait, "oe" O with / in? < 1193872535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, same as Swedish örjan then? < 1193872537 0 :bartw!unknown@unknown.invalid PRIVMSG #esoteric :luckily im BartW < 1193872541 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then male < 1193872542 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yeah < 1193872543 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: well if it was norwegian it would be female. The only exception i recall is "Ola" < 1193872554 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yep < 1193872564 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(ending in -a that is) < 1193872613 0 :IhopE!unknown@unknown.invalid QUIT :"http://tunes.org/~nef/logs/esoteric/06.08.09" < 1193872647 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my name can be found in the source code of the brainfuck interpreter in bash I coded: http://rage.kuonet.org/~anmaster/bzr/index.py/get/bashfuck/head/bashfuck < 1193872652 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :optimizing, using byte code < 1193872655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes I'm insane < 1193872669 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm also working on a modular irc bot in bash (http://envbot.org) < 1193872670 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :In bash? 8-D < 1193872673 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That = awesome < 1193872695 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I imagine you have a library of functions that turns bash into a bit more of a general-purpose language? < 1193872696 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, still, just compiling LostKing.b to byte code = about 10 minutes on my amd64 < 1193872696 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :yeah, he is insane < 1193872700 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has always enjoyed writing shell scripts :) < 1193872702 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :i was about to say < 1193872707 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :his lostkng.b performance is terrible < 1193872714 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`, yes indeed it is < 1193872724 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: and no, iirc < 1193872726 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :he just uses bash < 1193872728 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if someone can make it faster, please branch it < 1193872785 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"We're all mad here. I am mad. You're mad." "How do you know that I am mad?" asked Alice. "You must be," said the Cat, "or you wouldn't have come here." < 1193872804 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, I do have some stuff I reuse sometimes, stack functions, associative array emulation < 1193872813 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :ah yes -- quoting alice in wonderland. The post-ironic hippy way to be cool on the internet. < 1193872814 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but for bashfuck I didn't reuse anything < 1193872822 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`, ahahaha < 1193872857 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess quoting Terry Pratchett doesn't work? < 1193872869 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :no, that's the post-hippy ironic way < 1193872895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`, eh? I got all Terry Pratchett books (except a few short stories that are out of print) < 1193872914 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`, and what is the post-hippy post-ironic way? < 1193872919 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually i am quoting Narbonic, which quoted Alice in Wonderland. < 1193872921 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :killing yourself < 1193872925 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sort of anyhow :) < 1193872929 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`, I see < 1193872941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, "Narbonic"? < 1193872964 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :my favorite mad science webcomic so far < 1193872975 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :link? < 1193872984 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(hm what is a "mad science webcomic"?) < 1193872985 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: google gives it as #1 result < 1193872994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just reads user friendly < 1193873002 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :http://www.narbonic.com/ < 1193873008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for the last 5 years or so < 1193873015 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :pff, user friendly < 1193873053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`, what? I used to read that nethack one too, dudly or whatever the name was < 1193873093 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, there is no strip on the page? < 1193873094 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1193873100 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or do I have to enable java script < 1193873102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I hope not < 1193873125 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :no JS there < 1193873131 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :sheesh, you could just view source < 1193873135 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :and also stop being JS-paranoid < 1193873136 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the webcomic is finished, read the archive < 1193873140 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :
< 1193873142 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`, ? < 1193873151 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :alright then < 1193873153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :noscript tells me there is java script < 1193873154 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1193873176 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :disable noscript becaues it's a stupid, paranoid extension with no real practical value < 1193873190 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, btw envbot's performance is very good < 1193873201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :EhirD`, what? I use tor when I browse < 1193873204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I AM paranoid < 1193873206 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh right, director's cut rerun. i haven't read that. < 1193873214 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric ::| hah, tor < 1193873222 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :i guess you wear a tinfoil hat too < 1193873266 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh, today's rerun is pretty good < 1193873276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : i guess you wear a tinfoil hat too <-- no? < 1193873664 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :Not Invented Here strikes again! < 1193873669 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :I have found myself writing a code editor. < 1193873694 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: does http://www.webcomicsnation.com/shaenongarrity/narbonic/series.php?view=archive&chapter=9763 work better? it's the first page of the archive. < 1193873843 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :whoa, AnMaster < 1193873864 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, yes it does < 1193873866 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, what? < 1193873872 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :nothing < 1193873890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, yes I coded brainfuck interpreter in bash. Yes I'm mad. Do you want anything else? :P < 1193873909 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :writing a brainfuck interpreter in bash doesn't make you mad around here < 1193873916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rage.kuonet.org/~anmaster/bzr/index.py/get/bashfuck/head/bashfuck and http://envbot.org is proof enought I'm mad < 1193873937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, using bytecode and optimiztions in the interpreter AND coding it in bash IS mad < 1193873944 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :writing bash in brainfuck, that would make you mad < 1193873949 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: haha < 1193873958 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :mad for doing the impossible < 1193873993 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :impossible is nothing < 1193874036 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, what about bash to C translator coded in bash? < 1193874048 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :possibly < 1193874279 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1193874280 0 :EhirD`!unknown@unknown.invalid PRIVMSG #esoteric :wxPython is nice < 1193874594 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :mad science webcomics, eh? How about Phil Foglio's Girl Genius? (http://nonlogic.org/dump/images/1193870414-idee.png) < 1193874632 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: reading that too :) < 1193874692 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :among other defunct/ended ones: Casey and Andy, A Miracle of Science < 1193874793 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :lmao. "..It heartens me to look ahead and see the bright future each and every one of you will create, using your disciplines to improve our world. Except for the computer-science majors. They're more likely to perpetrate evil."