< 1207785842 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: 2 < 1207785842 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1207785844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: / < 1207785844 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :/ < 1207785847 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (= / +) < 1207785847 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :+ < 1207785850 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (/ 5 5) < 1207785850 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :10 < 1207785855 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1207785863 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :D: < 1207785864 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1207785883 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1207785884 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::d < 1207786159 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :let's fix that < 1207786164 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= / $/) < 1207786165 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :/ < 1207786170 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (/ 5 5) < 1207786171 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1207786220 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: no built-in-function type? XD < 1207786231 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm? < 1207786251 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: specialcasing atoms, thingy < 1207786258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: shouldn't / be a built-in function? < 1207786260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that sends the atom off < 1207786263 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :no, it's an atom < 1207786274 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :errt < 1207786286 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :the dispatch is just plain oklotalk logic < 1207786299 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :as i said, it's not (func arg arg) < 1207786302 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's (expr expr expr) < 1207786312 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :the expressions are asked to perform the operation, one by one < 1207786320 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :the one who wants to, does it < 1207786332 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and if no one wants to do it, the first one is asked to < 1207786351 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and yes, "wanting" is the official term < 1207786759 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: haha < 1207786789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: ($/ $/ $/) < 1207786789 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :/ < 1207786802 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: so, it asks $/ to $/ with $/ < 1207786805 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then asks $/ to $/ with $/ < 1207786807 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah! < 1207786808 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since neither wants to do it < 1207786812 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it asks $/ to $/ with $/ < 1207786818 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it says 'oh fuck it' and returns itself < 1207786834 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yep, it should actually try all three, but i disabled that for this version, because currently only atoms don't want to evaluate < 1207786839 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :usually, that's just what you want < 1207786860 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but the feature is useless atm < 1207786880 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it won't be once i add... well, querying what wants to evaluate < 1207786884 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :which is trivial really < 1207786894 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but has to be done in order to get done, anyway < 1207786910 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: so {} is just a ' < 1207786916 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :doer' < 1207786929 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :{} is a doer, yeah < 1207786930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and doers can want to do some things (isomorphic to function calls) < 1207786937 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and not do others (unique to oklotalk) < 1207786938 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1207786945 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207786949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and that's why you can use {} as a function < 1207786954 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :things don't want to do everything < 1207786961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: < 1207786963 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mean, 1 doesn't want to add a complex to itself < 1207786964 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'and not do others' < 1207786974 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :which is why something like __radd__ can be made < 1207786976 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207786988 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :actually i'm not sure i understood < 1207787038 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: {...} creates a 'thing' < 1207787042 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :things have a few properties: < 1207787064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- they can 'do' some things, based on whether they match one of several patterns given (pattern matching is definable and thus TC) < 1207787078 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- everything that they don't explicitly want to do, they don't, and cascade < 1207787086 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yep. < 1207787092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the 'actions' inside < 1207787093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :are closures < 1207787102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so {(-> [a b] {...})} < 1207787109 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the inner 'thing' can access the stuff given < 1207787114 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the outer 'thing' acts like a function < 1207787141 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :something like that < 1207787146 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207787163 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's really about whether a thing will evaluate any expression given a certain argument < 1207787187 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :so if a function starts with an action, it will want all args < 1207787372 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :like {outn "an function was entered"; ptrn -> smth} will always want < 1207787375 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :everything < 1207787410 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Somehow, it amuses me greatly that my math teacher from last year has offered me a ride to the Shadowmoor prerelease. < 1207787424 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what's that < 1207787436 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Shadowmoor is the next Magic: The Gathering set. < 1207787440 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: oh you can do that?! < 1207787449 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what? < 1207787459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (= myId {outn "boo"; (-> x x)}) < 1207787461 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20586168>>> < 1207787461 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And a prerelease is a tournament where you're given a bunch of cards from the upcoming set to build a deck with. < 1207787464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (myId 2) < 1207787466 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1207787468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207787470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1207787470 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :almost. < 1207787485 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :1. no output in oklotalk--, it goes in my terminal < 1207787498 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :2. no ; in oklotalk--, just space to separate expressions < 1207787506 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :3. () for application < 1207787521 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :{outn "boo"; (-> x x)} works < 1207787523 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :... < 1207787529 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :{(outn "boo") (-> x x)} works < 1207787538 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but you can't show it, because no side-effects are visible < 1207787556 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well... < 1207787602 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= x {(-> n {(-> [$set n] n) (-> $get n)})}) < 1207787603 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20547584>>> < 1207787612 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= test (x 4)) < 1207787614 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20643512>>> < 1207787616 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (get test) < 1207787618 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :4 < 1207787622 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: hah < 1207787624 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (set test 7) < 1207787627 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :7 < 1207787628 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm going to make a linked list < 1207787630 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (get test) < 1207787632 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :7 < 1207787641 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :so, we have a pointer here < 1207787643 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :now... < 1207787646 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :side-effects < 1207787667 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: is just (-> [$pb] ...) ok? < 1207787670 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(set test 8) (-> n (* n 3))} 5) < 1207787672 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :15 < 1207787676 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :test < 1207787680 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: test < 1207787682 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20643512>>> < 1207787689 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1207787692 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1207787696 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (get test) < 1207787698 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :8 < 1207787710 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :so, yes, you can do it < 1207787733 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: no it's not < 1207787736 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1207787740 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it will not match < 1207787745 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you wanna get like tail? < 1207787751 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :$pu as pattern < 1207787754 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :pattern-match unary < 1207787849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: ok, define $pb message to me exactly < 1207787854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what is sent [$pb ???] < 1207787856 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= ptr {(-> n {(-> [$set n] n) (-> $get n)})}) < 1207787857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and what should i return < 1207787859 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20667808>>> < 1207787863 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207787872 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok wait < 1207787875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in your ptr thing < 1207787880 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :when something is pattern matched on an application of the form (x y z) < 1207787883 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :does the 'n' override the upper scopes 'n'? < 1207787887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1207787890 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just continue answering < 1207787896 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :the message [$pb x] is sent to the object. < 1207787908 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and if it returns a list with 2 elems, those are put into y and z < 1207787913 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207787921 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207787935 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what do you mean? < 1207787941 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= n 1) < 1207787943 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1207787951 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= ptest (ptr 8)) < 1207787953 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20660096>>> < 1207787957 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (get ptest) < 1207787959 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :8 < 1207787965 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (set ptest 10) < 1207787967 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :10 < 1207787972 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (get ptest) < 1207787974 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :10 < 1207787976 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: n < 1207787979 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1207787987 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :does that answer you? < 1207788024 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'm fairly sure i've done all scoping *well*, at least it usually seems to work whatever i do < 1207788032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (= cons {(-> [h t] {(-> [$pb cons] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t)})}) < 1207788034 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20680136>>> < 1207788040 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (= test (cons 1 2)) < 1207788043 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20689544>>> < 1207788046 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (car test) < 1207788047 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1207788049 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (cdr test) < 1207788051 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1207788055 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (setcar test 3) < 1207788057 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :3 < 1207788058 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (car test) < 1207788060 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :3 < 1207788064 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::d < 1207788067 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207788069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i am awesome < 1207788069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207788079 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :do $pb : < 1207788082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: oklotalk is cool. could use some nicer syntax though, yeah ;) < 1207788087 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :because that's the standard < 1207788089 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :then do indexing < 1207788092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: okay < 1207788094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i won't do indexing < 1207788096 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's just a cons cell < 1207788097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not a list < 1207788098 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and we'll try quicksort :D < 1207788103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can treat it like a list though < 1207788104 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but i want to see ! < 1207788105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh alright < 1207788106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what is indexing < 1207788111 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207788115 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :[$! i] < 1207788125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: can you define setters? < 1207788128 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(= FOO BAR) < 1207788128 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in lisp < 1207788131 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can override FOO < 1207788133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :based on its car < 1207788133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like < 1207788135 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :not yet. < 1207788135 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(= (car x) y) < 1207788140 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207788141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can define a setter for (car x) < 1207788146 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1207788150 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :presumably, it would be like $pb < 1207788153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it would send off < 1207788156 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that isn't done yet, = only does vars < 1207788157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[$= car] < 1207788162 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but that's just because i'm lazy < 1207788166 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it will do that, yeah < 1207788168 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but i dunno what would be returned < 1207788170 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1207788172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah wait < 1207788175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[$= car val] < 1207788176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of course < 1207788192 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(= (X Y) Z) -> (X [$= Y Z]) < 1207788210 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm... < 1207788219 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: what is the syntax I use for indexing? < 1207788221 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207788221 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like not defining < 1207788222 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but using < 1207788233 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(! list idx) < 1207788241 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (! [1 2 3] 0) < 1207788243 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :actually... < 1207788244 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1207788261 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it might be that the quicksort doesn't work if the list isn't primitive... < 1207788267 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :depends on how i've done filter... < 1207788274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: you can implement filter in oklotalk < 1207788279 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1207788284 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and would be much cooler too < 1207788287 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :actually... < 1207788287 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1)))})}) < 1207788290 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20634360>>> < 1207788292 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :trivial < 1207788294 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: ok, try quicksort < 1207788303 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207788308 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :need to do filter first. < 1207788357 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmph < 1207788359 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1207788366 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: just try it < 1207788370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1207788371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i need a nil < 1207788373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's not hard < 1207788379 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: how do i trigger an error? < 1207788391 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :...error? < 1207788393 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :wuzzat < 1207788395 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :return $f < 1207788395 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: like this: < 1207788397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: [ < 1207788399 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :[] < 1207788401 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1207788402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: ( < 1207788406 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207788406 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Empty application. < 1207788408 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see < 1207788411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: 'An error:' < 1207788419 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you can't. < 1207788422 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :sry < 1207788424 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you should add that, sometime < 1207788436 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well, i could, in oklotalk-- < 1207788469 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but it's not very oklotalky, unless you've stored the continuation for the return somewhere < 1207788474 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well... < 1207788482 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: it should be oklotalky < 1207788483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :otherwise < 1207788484 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you get errors < 1207788486 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i guess you can just implement that without explicit continuations < 1207788486 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :propogating < 1207788488 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since nothing ever fails < 1207788491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it's really hard to debug < 1207788493 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, code doesn't get shorter < 1207788499 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since you have to manually check for errors < 1207788507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and yeah, you can just do it with exceptions < 1207788515 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which are a special, downwards-only, one-shot form of continuations < 1207788531 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well i could do that just with a simple *python exception*, in like a few lines < 1207788542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (= nil {(-> [$pb :] $f) (-> $car $f) (-> $cdr $f) (-> [$setcar h] $f) (-> [$setcdr t] $f) (-> [$! n] $f)}) < 1207788545 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20666208>>> < 1207788556 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but perhaps later, right now i need to add a thing to get filter to work < 1207788559 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :because.. < 1207788578 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (= nil {(-> [$pb :] $f) (-> $car $f) (-> $cdr $f) (-> [$setcar h] $f) (-> [$setcdr t] $f) (-> [$! n] $f) (-> $length 0)}) < 1207788583 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20716400>>> < 1207788590 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you can't dispatch on anything except what the object matches on < 1207788603 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})}) < 1207788605 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20716360>>> < 1207788611 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'll add the tst function < 1207788613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (length (cons 1 (cons 2 nil))) < 1207788615 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1207788626 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :...length? < 1207788627 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: i think i might be the best oklotalk coder next to you < 1207788628 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1207788631 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1207788631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and yeah, length < 1207788633 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hehe :D < 1207788635 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :prolly. < 1207788639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (2 + 2) < 1207788641 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :4 < 1207788644 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hahahahah < 1207788645 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207788646 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207788647 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1207788649 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk is FLEXIBLE < 1207788654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unintentionally < 1207788654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: (2 2 +) < 1207788658 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :f < 1207788660 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :awwww < 1207788662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :THAT SUCKS < 1207788666 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207788670 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: make it try ALL PERMUTATIONS < 1207788671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::DDD < 1207788672 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it will work in actual oklotalk :D < 1207788677 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that's an implementation defect. < 1207788679 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1207788681 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :3 4 + < 1207788683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :will try < 1207788684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :3 4 + < 1207788686 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :3 + 4 < 1207788689 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :4 3 + < 1207788691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :4 + 3 < 1207788693 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :+ 3 4 < 1207788694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :+ 4 3 < 1207788694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1207788696 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :until one works < 1207788698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::DDDDDD < 1207788725 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :about permutations... pattern matching will actually, when excountering an application as a pattern, first ask the function that is used for splitting if it's some special thing < 1207788740 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you can do for instance (* n) for matching any number of n's in a list < 1207788746 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :with an uplevel match < 1207788748 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :now < 1207788754 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: still < 1207788756 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :try all permutations < 1207788757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's ROBUST < 1207788758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::DDD < 1207788764 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you can have patterns in a certain kind of list < 1207788766 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1207788768 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :why not :P < 1207788772 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's just there's only 6 < 1207788781 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well... why not, why not xD < 1207788785 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :but, my point is < 1207788797 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you know when you have lots of types < 1207788812 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :if you have a program with type checks and such < 1207788828 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :so you could basically have the program just guess what arg is what based on types < 1207788845 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: however, i still think you need a propogating error message mechanism < 1207788846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1207788848 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(prm [(int x) (str y) (lst z)]) < 1207788849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk's crazy ideas are fun < 1207788850 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207788853 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but if you are actually gonna write something < 1207788856 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1207788858 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that will match them in any order < 1207788866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :c has tons of fun because it does not have exceptions < 1207788871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there's a global variable errno < 1207788875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and everything sets it if it dies < 1207788878 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :propogating error messages? < 1207788880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you have to check errno after most calls < 1207788882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :totally hilarious < 1207788885 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :uhh, yeah, that's ugly. < 1207788888 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207788889 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: if you don't handle them, they bubble up the call stack < 1207788893 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :python's do those < 1207788912 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk should just allow you to step out of the evaluation, without actually even using continuations or anything < 1207788920 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1207788934 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you can just move in the parse tree up to a try or something < 1207788941 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i've written some fun thingies with this < 1207788961 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :heh, oklotalk has so much shit... < 1207788973 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: well yeah, exceptions < 1207788977 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i know the concept < 1207789020 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that "stepping a level up" can be used for something like define-syntax < 1207789052 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207789054 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what was i gonna do.. < 1207789160 0 :ehird!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1207789211 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207789214 0 :otobot!unknown@unknown.invalid QUIT :Remote closed the connection < 1207789220 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1207789305 0 :otobot!n=otobot@a91-152-141-232.elisa-laajakaista.fi JOIN :#esoteric < 1207789424 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :" Usage: NOTICE , sends a notice. Notices are a type of message that should be auto reacted to" isn't that exactly wrong? < 1207789503 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst {(f h)})) t) (+ [h] (' f t))]) (-> [f (: h t)] (+ [h] (' f t)))}) < 1207789505 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19347336>>> < 1207789518 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(< _ 3)} [1 2 3 4 5]) < 1207789520 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :[1 2 3 4 5] < 1207789525 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :darn < 1207789539 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :({(< _ 3)} 7) < 1207789546 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(< _ 3)} 7) < 1207789548 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :f < 1207789600 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t) (+ [h] (' f t))]) (-> [f (: h t)] (+ [h] (' f t)))}) < 1207789602 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric : < 1207789603 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(< _ 3)} [1 2 3 4 5]) < 1207789606 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :[1 2 3 4 5] < 1207789678 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(> _ 3)} 7) < 1207789684 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :t < 1207789700 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1207789726 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (+ [h] (' f t)))}) < 1207789731 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(< _ 3)} [1 2 3 4 5]) < 1207789738 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric : < 1207789740 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Var instance has no attribute 'call' < 1207789749 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1207789775 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1207789792 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207789794 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207789799 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (+ [h] (' f t)))}) < 1207789801 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19507280>>> < 1207789805 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(< _ 3)} [1 2 3 4 5]) < 1207789807 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Var instance has no attribute 'call' < 1207789813 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :wtf. < 1207789880 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (+ [h] (' f t)))}) < 1207789881 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19543384>>> < 1207789919 0 :otobot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207789940 0 :otobot!n=otobot@a91-152-141-232.elisa-laajakaista.fi JOIN :#esoteric < 1207789943 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207789943 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :... < 1207789943 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :a bit slow < 1207789948 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207789959 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207789961 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1207789966 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :seems it's actually lag. < 1207789978 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (+ [h] (' f t)))}) < 1207789980 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20103296>>> < 1207789986 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(< _ 3)} [1 2 3 4 5]) < 1207789989 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Atm instance has no attribute 'call' < 1207789995 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :... < 1207790061 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> (tst {(> 3 _)}) 0)} 5) < 1207790063 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :f < 1207790072 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> (tst {(< 3 _)}) 0)} 5) < 1207790075 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1207790159 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> [n n] 0)} [1 1]) < 1207790161 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1207790168 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> [n n] 0)} [1 2]) < 1207790170 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1207790178 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> [n n] n)} [1 2]) < 1207790180 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1207790204 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hoh, that's actually a pretty bad flaw. < 1207790293 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207790295 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207790299 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> [n n] n)} [1 2]) < 1207790302 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :f < 1207790307 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> [n n] 0)} [1 2]) < 1207790309 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :f < 1207790309 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> [n n] 0)} [1 1]) < 1207790312 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :f < 1207790318 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::< < 1207790330 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :okay, command line debug < 1207790330 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1207790435 0 :wildhalcyon!unknown@unknown.invalid QUIT :"ChatZilla 0.9.81 [Firefox 2.0.0.13/2008031114]" < 1207790656 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207790659 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207790662 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> [n n] 0)} [1 1]) < 1207790664 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1207790670 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> [n n] 0)} [1 2]) < 1207790676 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :f < 1207790681 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :thank you < 1207790691 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :so *now* filter..? < 1207790695 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (+ [h] (' f t)))}) < 1207790697 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20218184>>> < 1207790702 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(< _ 3)} [1 2 3 4 5]) < 1207790707 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Atm instance has no attribute 'call' < 1207790712 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207791027 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207791029 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207791035 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (+ [h] (' f t)))}) < 1207791037 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20151032>>> < 1207791043 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(< _ 3)} [1 2 3 4 5]) < 1207791045 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :An error: global name 'self' is not defined < 1207791050 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1207791061 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207791063 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207791066 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (+ [h] (' f t)))}) < 1207791068 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20220464>>> < 1207791074 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(< _ 3)} [1 2 3 4 5]) < 1207791076 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :An error: global name 'self' is not defined < 1207791082 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm? < 1207791108 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207791110 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207791117 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (+ [h] (' f t)))})(flr {(< _ 3)} [1 2 3 4 5]) < 1207791119 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Atm instance has no attribute 'call' < 1207791125 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207791128 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :okay lol. < 1207791163 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :last attempt, i promise < 1207791168 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207791171 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207791173 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (+ [h] (' f t)))})(flr {(< _ 3)} [1 2 3 4 5]) < 1207791175 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :[1 2 3 4 5] < 1207791181 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207791186 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well at least no errors < 1207791188 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :sigh. < 1207791286 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :_oto_bot? < 1207791304 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'd understand "oklobot" but otobot? < 1207791325 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk-bot < 1207791331 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i'll rename it to oktabot < 1207791361 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1207791363 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1207791370 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (' f t))})(flr {(< _ 3)} [1 2 3 4 5]) < 1207791372 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :[1 2] < 1207791379 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f []] []) (-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (' f t))})(flr {(< _ 3)} [1 2 3 4 5 0]) < 1207791381 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :[1 2 0] < 1207791385 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1207791392 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :so... let's do quicksort < 1207791452 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= qs {(-> [] []) (-> (: h t) (+ (qs (\ {(< _ h)} t)) (+ [h] (qs (\ {(>= _ h)} t)))))}) < 1207791454 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19906312>>> < 1207791460 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs [4 5 1 1 2 4 6]) < 1207791462 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :[1 1 2 4 5 4 6] < 1207791468 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION watches all this go way way way over his head < 1207791473 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what < 1207791473 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207791476 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs [4 5 1 2 3 6]) < 1207791478 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :[1 2 3 4 5 6] < 1207791488 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :doesn't work with duplicates? 8| < 1207791513 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (= qs {(-> [] []) (-> (: h t) (+ (qs (ftr {(< _ h)} t)) (+ [h] (qs (ftr {(>= _ h)} t)))))}) < 1207791517 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs [4 5 1 2 3 6]) < 1207791517 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20328240>>> < 1207791520 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Atm instance has no attribute 'call' < 1207791521 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't know either QuickSort or Oklotalk < 1207791525 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1207791552 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION also needs a Python project to work on < 1207791561 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: oklotalk is a language of mine < 1207791569 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and it is heresy not to know quicksort < 1207791569 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, I knew that < 1207791582 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :(I meant, that oklotalk's yours) < 1207791604 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's wrong with not knowing quicksort? < 1207791622 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :that i've known it so long i can't accept others not knowing it, mostly < 1207791665 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it's like you would think someone is an idiot for not being able to solve 5x2 + 5x - 6 = 0, it's not something you often need, just known it forever, hard to understand some might not < 1207791704 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(except that is actually taught to everyone, unlike quicksort) < 1207791759 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i don't get it... < 1207791821 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: i do think you should learn the most popular algos if you want to be taken seriously at a programming channel < 1207791877 0 :adu!n=andrew@pool-71-178-14-80.washdc.fios.verizon.net JOIN :#esoteric < 1207792097 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :back < 1207792120 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :hi adu < 1207792141 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :oklofok, meh, I guess < 1207792185 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although do I really need to know e.g. quicksort in order to be able to program? I mean, it's already implemented by someone else. < 1207792230 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :he did say you should do it in order "to be taken seriously", not to be able to program < 1207792271 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :brbafk < 1207792295 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :wtf filter *just worked*, how come it's broken now :D < 1207792369 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :okay, it works now... let's try ehird's list < 1207792649 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :back < 1207792656 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ehird's list? < 1207792782 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :well ehird's cons cell < 1207792793 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :know what that is? < 1207792798 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :no < 1207792830 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :a cons cell is a 2-tuple, whose first element is called car, and second cdr < 1207792842 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and you usually use these functions to retrieve them < 1207792849 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I meant, what's ehird's cell? < 1207792867 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :(= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})}) < 1207792867 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :this? < 1207792871 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :this. < 1207792887 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh, ehird implemented a list in oklotalk? < 1207792916 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1207792926 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1207792928 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :although it doesn't fully work < 1207792932 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1207792935 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1207792937 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :it does < 1207792937 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1207792943 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: you around? < 1207792976 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk owns ass, i gotta say, when you look at how setcar and setcdr are done :D < 1207793006 0 :adu!unknown@unknown.invalid QUIT :Remote closed the connection < 1207793023 0 :adu!n=andrew@pool-71-178-14-80.washdc.fios.verizon.net JOIN :#esoteric < 1207793058 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :hi Sgeo < 1207793060 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :how are you < 1207793086 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ok. Looking at PSOX again, although no one else seems interested < 1207793087 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :you? < 1207793137 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :whats PSOX? < 1207793144 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :i'm doing taxes < 1207793148 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1207793165 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/PSOX < 1207793191 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's a layer that goes between stdio and esolang interpreters for esolangs that can only do stdio < 1207793209 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :anyone remember the url to Gregor's website? < 1207793219 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207793221 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :codu.org < 1207793224 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1207793240 0 :oklofok!unknown@unknown.invalid NICK :oklopol < 1207793558 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :I've been thinking about something like that < 1207793617 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :like you know, most languages go on the top (compiled to lower language) or on the bottom (virtual machine, assembly, etc) < 1207793627 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :I wonder how many languages take the middle approach < 1207793847 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207793849 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207793866 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adu: what's the middle < 1207793887 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, damn ehird for going to sleep < 1207793887 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll show the rest of you < 1207793888 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: something < 1207793892 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :something < 1207793892 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (' f t)) []}) < 1207793895 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19870304>>> < 1207793914 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the filter function, takes a func and a list, filters elements the func returns false for < 1207793926 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= nil {(-> [$pb :] $f) (-> $car $f) (-> $cdr $f) (-> [$setcar h] $f) (-> [$setcdr t] $f) (-> [$! n] $f) (-> $length 0)}) < 1207793929 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19893304>>> < 1207793934 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird's nil class < 1207793944 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})}) < 1207793946 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19883352>>> < 1207793952 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (string-ref "Hello" 1) < 1207793954 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :f < 1207793959 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird's cons cell class < 1207793965 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= list (cons 6 (cons 1 (cons 9 (cons 2 (cons 4 (cons 0 nil))))))) < 1207793967 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19861176>>> < 1207793975 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :list made by consing shit < 1207793980 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adu: string-ref? < 1207793986 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this isn't lisp < 1207793993 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :what is it? < 1207793999 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= qs {(-> (: h t) (+ (qs (flr {(< _ h)} t)) (+ [h] (qs (flr {(>= _ h)} t))))) []}) < 1207794001 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19931984>>> < 1207794003 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :here, generic quicksort < 1207794009 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and now the cool part < 1207794021 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(qs list) < 1207794023 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs list) < 1207794025 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :[1 2 4 0 6 9] < 1207794033 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :thats not sorted < 1207794033 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I remember that Gregor had some scans of pages he wrote out while designing c2bf.. I wonder if they are still online someplace < 1207794033 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :... < 1207794035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wtf :D < 1207794038 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it like just worked. < 1207794057 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lofl :< < 1207794063 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i swear it worked a minute ago in my cli < 1207794114 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... < 1207794119 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :reload might not work properly. < 1207794119 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :maybe it thinks "0" is "5" for some reason < 1207794133 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207794135 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207794199 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (' f t)) []})(= nil {(-> [$pb :] $f) (-> $car $f) (-> $cdr $f) (-> [$setcar h] $f) (-> [$setcdr t] $f) (-> [$! n] $f) (-> $length 0)})(= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})})(= list (cons 6 (cons 1 (cons 9 (cons 2 (cons 4 (cons < 1207794204 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Application consists of 2 or 3 expressions. < 1207794208 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207794209 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (= quicksort done) < 1207794215 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (quicksort) < 1207794219 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :done < 1207794221 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1207794224 0 :otobot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Application consists of 2 or 3 expressions. < 1207794228 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :mine is so much better < 1207794238 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, let's see what happens if i reload the whole bot < 1207794242 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adu: yes, but your call is wrong < 1207794248 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(quicksort) doesn't make sense < 1207794257 0 :otobot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207794277 0 :oktabot!n=oktabot@a91-152-141-232.elisa-laajakaista.fi JOIN :#esoteric < 1207794341 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (' f t)) []}) (= nil {(-> [$pb :] $f) (-> $car $f) (-> $cdr $f) (-> [$setcar h] $f) (-> [$setcdr t] $f) (-> [$! n] $f) (-> $length 0)}) (= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})}) (= list (cons 6 (cons 1 (cons 9 (cons 2 (cons 4 (co < 1207794343 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :does that come through? should end in (qs list) < 1207794343 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Application consists of 2 or 3 expressions. < 1207794356 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :prolly doesn't < 1207794375 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs [1,2,3]) < 1207794376 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (' f t)) []}) (= nil {(-> [$pb :] $f) (-> $car $f) (-> $cdr $f) (-> [$setcar h] $f) (-> [$setcdr t] $f) (-> [$! n] $f) (-> $length 0)}) (= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})}) < 1207794377 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[1 ,2,3] < 1207794379 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19975264>>> < 1207794392 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs [5,4,3,2,1]) < 1207794394 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[5 ,4,3,2,1] < 1207794395 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= list (cons 6 (cons 1 (cons 9 (cons 2 (cons 4 (cons 0 nil))))))) (= qs {(-> (: h t) (+ (qs (flr {(< _ h)} t)) (+ [h] (qs (flr {(>= _ h)} t))))) []}) (qs list) < 1207794397 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[0 1 2 4 6 9] < 1207794406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1207794406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :works now < 1207794421 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1207794434 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll make a list of rational numbers and sort it :D < 1207794440 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs (cons 5 (cons 4 (cons 3 (cons 2 (cons 1 nil)))))) < 1207794442 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[4 3 2 1 5] < 1207794447 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :no it doesn't < 1207794452 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the gist being that the list type and the rational number class are both mde in oklotalk < 1207794455 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1207794462 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wtf. < 1207794480 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmph, i'll start fixing again then < 1207794501 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :are you sure you're implementing it properly? < 1207794510 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs (cons 4 (cons 3 (cons 2 (cons 1 nil))))) < 1207794512 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[3 2 1 4] < 1207794519 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adu: i've tested it a lot < 1207794519 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1207794534 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= qs {(-> (: h t) (+ (qs (flr {(< _ h)} t)) (+ [h] (qs (flr {(>= _ h)} t))))) []}) < 1207794536 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20152768>>> < 1207794543 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs [4 3 2 1]) < 1207794545 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[2 1 3 4] < 1207794552 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :seriously < 1207794555 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fuck. < 1207794561 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs [3 2 1]) < 1207794563 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[1 2 3] < 1207794583 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= qs {(-> (: h t) (+ (qs (\ {(< _ h)} t)) (+ [h] (qs (\ {(>= _ h)} t))))) []}) < 1207794585 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20033584>>> < 1207794592 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs [4 3 2 1]) < 1207794595 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs (cons 5 (cons 4 (cons 3 (cons 2 (cons 1 nil)))))) < 1207794597 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[1 2 3 4] < 1207794599 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[(-> cdr t) (-> [setcar h] h) (-> [setcdr t] t) (-> [! 0] h) (-> [! n] (! t (- n 1))) (-> length (+ 1 (length t))) (-> car h) (-> cdr t) (-> [setcar h] h) (-> [setcdr t] t) (-> [! 0] h) (-> [! n] (! t < 1207794608 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm okay....... < 1207794620 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1207794623 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wtf xD < 1207794626 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (cons 5 (cons 4 (cons 3 (cons 2 (cons 1 nil))))) < 1207794627 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, right. < 1207794630 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20022016>>> < 1207794644 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: [1 2 3 4 5] < 1207794646 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[1 2 3 4 5] < 1207794653 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: [1, 2, 3, 4, 5] < 1207794655 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[1 , 2 , 3 , 4 , 5] < 1207794666 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (1 2 3 4 5) < 1207794667 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adu: i changed the implementation, doesn't work for other than primitive lists now. < 1207794669 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Application consists of 2 or 3 expressions. < 1207794676 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it seems the problem is my filter function < 1207794685 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and application takes 2 or 3 expressions < 1207794687 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not 5 < 1207794696 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1207794706 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (2 + 4) < 1207794707 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :I don't know anything about your lang < 1207794708 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (+ 2 4) < 1207794708 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :6 < 1207794712 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :6 < 1207794735 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :whats the diff between [1 2 3] and [1, 2, 3] ? < 1207794745 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well do like ehird and just start coding in it... :D < 1207794751 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1207794763 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :god i hate that dood sometimes < 1207794764 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :I have 3 languages like that < 1207794771 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(read: "envy") < 1207794772 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :who is ehird? < 1207794780 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adu: , is an atom < 1207794787 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird is a guy who lives here < 1207794803 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: so what does (,) do? < 1207794821 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(,)? that's not a proper application < 1207794826 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :, is an atom < 1207794828 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: , < 1207794833 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ok so what does it do? < 1207794834 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :, < 1207794842 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that < 1207794844 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's an atom < 1207794848 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't do anything < 1207794851 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ok, so what is an atom? < 1207794862 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :like a symbol? < 1207794866 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a retarded string, somewhat < 1207794869 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, symbol. < 1207794873 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ah ok < 1207794877 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :other name for it < 1207794878 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :I like symbols < 1207794882 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*another < 1207794887 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :me too < 1207794895 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :can I help with your language? < 1207794914 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well you can help me by telling what didn't work, i forgot. < 1207794918 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :help in what sense? :D < 1207794923 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :I know hundreds of programming languages < 1207794934 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (' f t)) []}) < 1207794939 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you do? awesome :D < 1207794945 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20326240>>> < 1207794960 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in that case i should be able to explain this to you in an instant < 1207794972 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (+ 4 5) < 1207794974 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :9 < 1207794981 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :I can guess that -> is lambda < 1207794988 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1207794993 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's pattern matching < 1207794996 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1207794996 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :{} is a lambda < 1207795003 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1207795005 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(-> ptrn expr expr expr...) < 1207795023 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :so I'm guessing [] is empty list < 1207795026 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it kinda checks the pattern, and if it matches, it continues the evaluating to the expr's < 1207795031 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1207795035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :[elem elem elem ...] < 1207795039 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :so what is ' < 1207795046 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :recursion < 1207795069 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :what is : < 1207795074 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :cons? < 1207795078 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207795079 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's in a pattern there < 1207795083 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1207795085 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically < 1207795092 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :what is @? < 1207795105 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(@ a b) matches on both a and b < 1207795113 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the object that is matched < 1207795123 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(first on b, then on a, actually) < 1207795147 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(> _ 3)} [1 2 32 454 5]) < 1207795149 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[32 454 5] < 1207795169 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(> _ 3)} (cons 1 (cons 4 nil))) < 1207795171 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[4] < 1207795187 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(> _ 3)} (cons 4 (cons 1 (cons 4 nil)))) < 1207795190 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[4 4] < 1207795204 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(<= _ 3)} (cons 4 (cons 1 (cons 4 nil)))) < 1207795207 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[1] < 1207795219 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wtf. there needs to be something wrong with it < 1207795248 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (= fac {(-> 0 1) (-> n (* n (' fac (- n 1)))) []}) < 1207795251 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20380808>>> < 1207795252 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1207795255 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (fac 2) < 1207795258 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :An error: maximum recursion depth exceeded < 1207795258 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, my cli runs it... < 1207795264 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: relad < 1207795266 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :relad < 1207795275 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :errr < 1207795280 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207795282 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207795283 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adu: you have an error < 1207795289 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not my fault there < 1207795295 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (= fac {(-> [f 0] 1) (-> [f n] (* n (' f (- n 1)))) []}) < 1207795297 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<27395616>>> < 1207795299 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (fac 2) < 1207795301 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[] < 1207795306 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1207795308 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :almost < 1207795319 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's f? < 1207795326 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :I have no idea < 1207795339 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the first one was correct, apart from a small... defect < 1207795353 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also the [] isn't needed < 1207795353 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :whats that? < 1207795362 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :oh ok, but you had it in yours < 1207795365 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's would be returned if neither pattern matched < 1207795377 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :whats the defect? < 1207795380 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, that's for returning [] for the standard case < 1207795385 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1207795387 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1207795395 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :recursion < 1207795425 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can just recurse by (fac ...) < 1207795425 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :' is a shorthand < 1207795426 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (= fac {(-> 0 1) (-> n (* n (' f (- n 1))))}) < 1207795427 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :+ making it easier for lambdas to recurse < 1207795428 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (fac 0) < 1207795429 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<27815888>>> < 1207795431 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1207795437 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (fac 2) < 1207795439 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :An error: maximum recursion depth exceeded < 1207795445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wut < 1207795451 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1207795460 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :getting closer < 1207795467 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :should "f" be "fac"? < 1207795467 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just do what you did, again, and it should work < 1207795477 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nope. < 1207795483 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (= fac {(-> 0 1) (-> n (* n (' f (- n 1))))}) < 1207795485 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<20154248>>> < 1207795485 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (fac 2) < 1207795487 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you are making the call (fac f (- n 1)) there < 1207795488 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :An error: maximum recursion depth exceeded < 1207795495 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why exactly? < 1207795495 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207795507 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(fac ..) or (' ...) for recursion < 1207795509 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :i dunno, cuz you did it like that < 1207795511 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not both < 1207795515 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ooooooooooo < 1207795515 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1207795522 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :f was the function to filter with, man :) < 1207795524 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (= fac {(-> 0 1) (-> n (* n (' (- n 1))))}) < 1207795526 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<28207504>>> < 1207795527 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (fac 2) < 1207795528 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1207795530 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :YEY < 1207795535 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1207795541 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :I made a program in oklkang < 1207795552 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk < 1207795559 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :oklotalk < 1207795561 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :right < 1207795564 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1207795566 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yarr < 1207795582 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207795588 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207795595 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (' f t)) []}) < 1207795597 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<28325208>>> < 1207795601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= nil {(-> [$pb :] $f) (-> $car $f) (-> $cdr $f) (-> [$setcar h] $f) (-> [$setcdr t] $f) (-> [$! n] $f) (-> $length 0)}) < 1207795603 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<28364472>>> < 1207795609 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})}) < 1207795611 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<28801064>>> < 1207795620 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= list (cons 5 (cons 4 (cons 3 (cons 2 (cons 1 (cons 0 nil))))))) < 1207795622 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<27836824>>> < 1207795630 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= qs {(-> (: h t) (+ (qs (flr {(< _ h)} t)) (+ [h] (qs (flr {(>= _ h)} t))))) []}) < 1207795632 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<28207344>>> < 1207795638 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs list) < 1207795640 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[4 3 2 1 0 5] < 1207795644 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :... < 1207795647 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wtf is going on < 1207795653 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll reboot the bot again.. < 1207795659 0 :oktabot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207795682 0 :oktabot!n=oktabot@a91-152-141-232.elisa-laajakaista.fi JOIN :#esoteric < 1207795687 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (' f t)) []}) < 1207795689 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19345080>>> < 1207795691 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= nil {(-> [$pb :] $f) (-> $car $f) (-> $cdr $f) (-> [$setcar h] $f) (-> [$setcdr t] $f) (-> [$! n] $f) (-> $length 0)}) < 1207795693 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19394512>>> < 1207795697 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})}) < 1207795699 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19419384>>> < 1207795706 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= list (cons 5 (cons 4 (cons 3 (cons 2 (cons 1 (cons 0 nil))))))) < 1207795708 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19445520>>> < 1207795711 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= qs {(-> (: h t) (+ (qs (flr {(< _ h)} t)) (+ [h] (qs (flr {(>= _ h)} t))))) []}) < 1207795713 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19410656>>> < 1207795717 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (= talk {(-> ["hi" x] "Why hello!") (-> ["bye" x] "Good bye!") []}) < 1207795717 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (qs list) < 1207795719 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19446680>>> < 1207795721 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[4 3 2 1 0 5] < 1207795725 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (talk ["hi" "Mr. roboto"]) < 1207795727 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1207795727 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :Why hello! < 1207795732 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (talk ["hi" "Mr. roboto"]) < 1207795734 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :Why hello! < 1207795739 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (talk ["bye" "Mr. roboto"]) < 1207795742 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :Good bye! < 1207795748 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1207795750 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207795782 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but hey < 1207795788 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ya? < 1207795791 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how come that only works on my comp :D < 1207795795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1207795795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that quicksort < 1207795801 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :i don't know < 1207795803 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just copypaste the code :D < 1207795879 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: flr < 1207795908 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :what does flr do? < 1207795920 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :filter < 1207795931 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(< _ 3)} [1 2 3 4 5]) < 1207795959 0 :oktabot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207795972 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :something is very wrong... < 1207795997 0 :oktabot!n=oktabot@a91-152-141-232.elisa-laajakaista.fi JOIN :#esoteric < 1207796008 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (' f t)) []}) < 1207796010 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric : < 1207796020 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :... < 1207796023 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [f (: (@ h (tst f)) t)] (+ [h] (' f t))) (-> [f (: h t)] (' f t)) []}) < 1207796026 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19476032>>> < 1207796049 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(< _ 3)} [1 2 3 4 5]) < 1207796051 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[1 2] < 1207796061 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})}) < 1207796064 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric : < 1207796066 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})}) < 1207796068 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19588240>>> < 1207796075 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= nil {(-> [$pb :] $f) (-> $car $f) (-> $cdr $f) (-> [$setcar h] $f) (-> [$setcdr t] $f) (-> [$! n] $f) (-> $length 0)}) < 1207796077 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19603008>>> < 1207796093 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :what does + do? < 1207796105 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= list (cons 5 (cons 4 (cons 3 (cons 2 (cons 1 (cons 0 nil))))))) < 1207796112 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19671160>>> < 1207796114 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :+ is an atom < 1207796125 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't have functionality < 1207796125 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but < 1207796127 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(+ 1 2) sends the object 1 the message [$+ 2] < 1207796133 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as does (1 + 2) < 1207796141 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because 1 *can* be called < 1207796141 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1207796163 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (flr {(<= 3 _)} list) < 1207796166 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Atm instance has no attribute 'call' < 1207796170 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207796175 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, this is a bit spooky < 1207796352 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (-> 1 2) < 1207796358 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :f < 1207796377 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ya thats spooky < 1207796387 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :where did the f come from? < 1207796426 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> 1 2) 0} 1) < 1207796428 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1207796435 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> 1 2) 0} 2) < 1207796437 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1207796496 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :what does "tst" do? < 1207796609 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (= filter {(-> [f (: (@ h (tst f)) t)] (: h (filter f t))) (-> [f (: h t)] (filter f t)) []}) < 1207796611 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19575112>>> < 1207796654 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (= qsort {(-> (: h t) (+ (qsort (filter {(< _ h)} t)) (+ [h] (qsort p(filter {(>= _ h)} t))))) []}) < 1207796656 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Unmatching parens @ row 1. < 1207796673 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :(= qsort {(-> (: h t) (+ (qsort (filter {(< _ h)} t)) (+ [h] (qsort (filter {(>= _ h)} t))))) []}) < 1207796678 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (= qsort {(-> (: h t) (+ (qsort (filter {(< _ h)} t)) (+ [h] (qsort (filter {(>= _ h)} t))))) []}) < 1207796680 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19728784>>> < 1207796688 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric ::: (qsort [1 2 3 4]) < 1207796691 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :+ < 1207796698 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1207796938 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :umm... it seems nothing works now. < 1207796949 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which is kinda weird, because i haven't really changed anything. < 1207796959 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adu: f is false. < 1207796989 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adu: it should test whatever is matched with given function, and fail if it returns $f < 1207797016 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but... nothing works now, so wtf. < 1207797139 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1207797145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i see what's going on... < 1207797166 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll fix it by removing a feature no one knows even exists. < 1207797207 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1207797213 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :let's try once more... < 1207797239 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [p (: (@ h (tst p)) t)] (outn "a") (+ [h] (' p t))) (-> [p (: h t)] (outn "b") (' p t)) (outn "c") []})(flr {(< 3 _)} [1 2 3 4 5 ])(= nil {(-> [$pb :] $f) (-> $car $f) (-> $cdr $f) (-> [$setcar h] $f) (-> [$setcdr t] $f) (-> [$! n] $f) (-> $length 0)}) < 1207797248 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :An error: Atm instance has no attribute 'call' < 1207797254 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err... < 1207797257 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :asd. < 1207797291 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: reload < 1207797291 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1207797293 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :reload < 1207797314 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= flr {(-> [p (: (@ h (tst p)) t)] (outn "a") (+ [h] (' p t))) (-> [p (: h t)] (outn "b") (' p t)) (outn "c") []})(flr {(< 3 _)} [1 2 3 4 5 ])(= nil {(-> [$pb :] $f) (-> $car $f) (-> $cdr $f) (-> [$setcar h] $f) (-> [$setcdr t] $f) (-> [$! n] $f) (-> $length 0)}) < 1207797317 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :<<<19943992>>> < 1207797327 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})})(= list (cons 5 (cons 4 (cons 3 (cons 2 (cons 1 (cons 0 nil)))))))(= qs {(-> (: h t) (+ (qs (flr {(< _ h)} t)) (+ [h] (qs (flr {(>= _ h)} t))))) []})(qs list) < 1207797330 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[0 1 2 3 4 5] < 1207797337 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :finally < 1207797372 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (= cons {(-> [h t] {(-> [$pb :] [h t]) (-> $car h) (-> $cdr t) (-> [$setcar h] h) (-> [$setcdr t] t) (-> [$! 0] h) (-> [$! n] (! t (- n 1))) (-> $length (+ 1 (length t)))})})(= list [6 5 4 3 2 1 0])(= qs {(-> (: h t) (+ (qs (flr {(< _ h)} t)) (+ [h] (qs (flr {(>= _ h)} t))))) []})(qs list) < 1207797376 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :[0 1 2 3 4 5 6] < 1207797385 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :same thing, but primitive list < 1207797418 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :interface-based stuff is quite impressive when your own language supports it <3 < 1207797451 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, i can finally leave < 1207797453 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207797472 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll leave the bot on, so if you wanna play, do so < 1207797669 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adu: if you wanna read a larger example, http://www.vjn.fi/pb/p551616525.txt < 1207797674 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the rational number class < 1207797680 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1207797680 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sleep -> < 1207798281 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I guess I can't learn oklotalk now < 1207798293 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :what is \ < 1207799811 0 :adu!unknown@unknown.invalid QUIT :"Bye" < 1207803783 0 :captluo!n=fdeaf@c-71-232-91-90.hsd1.ma.comcast.net JOIN :#esoteric < 1207803786 0 :captluo!unknown@unknown.invalid PRIVMSG #esoteric :Brainfuck! < 1207804211 0 :Sgeo!unknown@unknown.invalid QUIT :Remote closed the connection < 1207804265 0 :oktabot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207804280 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207806131 0 :Visitor-3CB98!n=Vampire_@ANantes-252-1-65-144.w81-250.abo.wanadoo.fr JOIN :#esoteric < 1207806411 0 :oklopol!n=nnscript@a91-152-141-232.elisa-laajakaista.fi JOIN :#esoteric < 1207806651 0 :GreaseMonkey!n=saru@122-57-226-168.jetstream.xtra.co.nz JOIN :#esoteric < 1207808859 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1207810514 0 :oklopol!unknown@unknown.invalid QUIT :Connection timed out < 1207811946 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1207812909 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1207814399 0 :clog!unknown@unknown.invalid QUIT :ended < 1207814400 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1207816604 0 :iebnn!n=fdeaf@c-71-232-91-90.hsd1.ma.comcast.net JOIN :#esoteric < 1207816608 0 :captluo!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207817306 0 :Iskr!n=i@host26-17-dynamic.56-82-r.retail.telecomitalia.it JOIN :#esoteric < 1207820405 0 :oklofok!n=nnscript@oklopol.yok.utu.fi JOIN :#esoteric < 1207820664 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1207821154 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"zzzzz" < 1207822579 0 :ehird!n=ehird@91.105.104.73 JOIN :#esoteric < 1207824341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :soooooo < 1207828523 0 :Visitor-3CB98!unknown@unknown.invalid PRIVMSG #esoteric :Like, dude. < 1207828528 0 :Visitor-3CB98!unknown@unknown.invalid NICK :Slereah < 1207829404 0 :Corun!n=Corun@cpc1-rdng15-0-0-cust168.winn.cable.ntl.com JOIN :#esoteric < 1207830700 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OMG < 1207830702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stupidfilter alpha is out < 1207831420 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1207834969 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207834987 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1207835985 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1207835987 0 :jix!n=jix@dyndsl-080-228-179-223.ewe-ip-backbone.de JOIN :#esoteric < 1207836425 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I think I found a way to resolve my inner-recursion woes. < 1207836502 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I will use the awesome U~ combinator, that I just made up. < 1207836513 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It is called "Seņor Turingos Combinator" < 1207836607 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Of the form ^x^y [A function of y that converts to i that performs possible outputs] ((([Some conditional, function of y](xx))i)[Some function of y]) < 1207837016 0 :Sgeo!unknown@unknown.invalid QUIT :"Ex-Chat" < 1207837578 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :\ < 1207837579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :\ < 1207837734 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Of the form ^x^y [A function of y that converts to i that performs possible outputs] ((([Some conditional, function of y](xx))i)[Some function of y]) < 1207837739 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Damn < 1207837755 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :/ < 1207837758 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Thar < 1207839088 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1207841132 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1207841452 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1207842570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207842579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :would building an Analytical Engine practical? < 1207842583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^be < 1207843579 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1207843607 0 :UnrelatedToQaz!n=chatzill@host81-159-28-66.range81-159.btcentralplus.com JOIN :#esoteric < 1207843779 0 :UnrelatedToQaz!unknown@unknown.invalid PRIVMSG #esoteric :hello all < 1207844105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1207844456 0 :UnrelatedToQaz!unknown@unknown.invalid PRIVMSG #esoteric :do you like jonathan coulton? < 1207845187 0 :UnrelatedToQaz!unknown@unknown.invalid QUIT :"ChatZilla 0.9.81 [Firefox 3.0b5/2008032620]" < 1207845678 0 :RodgerTheGreat!n=Rodger@wads-5-233-27.resnet.mtu.edu JOIN :#esoteric < 1207846286 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1207846313 0 :jix!n=jix@dyndsl-080-228-179-223.ewe-ip-backbone.de JOIN :#esoteric < 1207847611 0 :timotiis!n=timotiis@host86-166-226-102.range86-166.btcentralplus.com JOIN :#esoteric < 1207848292 0 :Sgeo[College]!i=897d6896@gateway/web/ajax/mibbit.com/x-741f5aeb1261f771 JOIN :#esoteric < 1207848334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: hello < 1207848350 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :Hi all < 1207849138 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1207849461 0 :olsner!n=salparot@79.136.60.96 JOIN :#esoteric < 1207849548 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1207850710 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :EVERYONE IS DEAAAD < 1207850902 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ehird: no, it is you who is dead < 1207851087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :olsner: no < 1207851514 0 :iebnn!unknown@unknown.invalid PRIVMSG #esoteric :Brainfuck < 1207851593 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is not dead < 1207851602 0 :iebnn!unknown@unknown.invalid PRIVMSG #esoteric :My brain is fucked < 1207851615 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1207851698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :iebnn: hello, are you new here? < 1207851709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't recognize your nick < 1207851760 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :Be back soonish < 1207851773 0 :iebnn!unknown@unknown.invalid PRIVMSG #esoteric :yes, im new < 1207851774 0 :iebnn!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1207851798 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :iebnn: welcome! < 1207851803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now, escape while you can < 1207851847 0 :Sgeo[College]!unknown@unknown.invalid QUIT :"http://www.mibbit.com ajax IRC Client" < 1207852018 0 :Sgeo[College]!i=897d680c@gateway/web/ajax/mibbit.com/x-56a71d1657d73721 JOIN :#esoteric < 1207852039 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :Back < 1207852127 0 :sekhmet!unknown@unknown.invalid QUIT :"it's a reboot!1!" < 1207852224 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :Bye all < 1207852328 0 :Sgeo[College]!unknown@unknown.invalid QUIT :"http://www.mibbit.com ajax IRC Client" < 1207853061 0 :captluo!n=fdeaf@c-71-232-91-90.hsd1.ma.comcast.net JOIN :#esoteric < 1207853113 0 :iebnn!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207853212 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1207853363 0 :sekhmet!n=pez@99.154.63.96 JOIN :#esoteric < 1207853412 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1207853499 0 :jix!unknown@unknown.invalid QUIT :Nick collision from services. < 1207853509 0 :jix!n=jix@dyndsl-091-096-054-015.ewe-ip-backbone.de JOIN :#esoteric < 1207853563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: A < 1207854225 0 :captluo!unknown@unknown.invalid QUIT : < 1207859482 0 :Iskr!unknown@unknown.invalid QUIT :"Leaving" < 1207859852 0 :ais523!n=ais523@sm01-fap02.bham.ac.uk JOIN :#esoteric < 1207859896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hello, ais523 < 1207859906 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi ehird < 1207860085 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1207860116 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1207860925 0 :Tritonio__!unknown@unknown.invalid QUIT :Remote closed the connection < 1207861152 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is trying to write an IRC client in INTERCAL < 1207861160 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I think there's a bug in CLC-INTERCAL's network connection code < 1207861178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ouch :) < 1207861182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: okoping < 1207861187 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I can send information to the IRC server, but I can't get any information back < 1207861208 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :neither on freenode, or the local not-externally-accessible IRC server I use for testing < 1207861216 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/or/nor/ < 1207861262 0 :Tritonio_!n=Tritonio@150.140.227.158 JOIN :#esoteric < 1207861303 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the strange thing is that the same code can get information back fine from an HTTP server < 1207861336 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: IRC's special chars, maybe? < 1207861339 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Beats me. < 1207861351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, it may be a problem with my code < 1207861383 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I just aimed the HTTP GET code at irc.freenode.net:6667, and got typical error messages back < 1207861448 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, how's this for a filename: ickirc-c.rstclci.in < 1207861662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: rstclci ... what is THAT < 1207861681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: CLC-INTERCAL source with syscall, INTERNET, and threads extensions enabled < 1207861703 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(n.b. INTERNET != Internet; it's the name for CLC-INTERCAL's INTERCAL NETworking extension) < 1207861744 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Speaking of IRC, I am currently writing a semantic IRC framework. < 1207861761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Which basically boils down to it understanding the semantics of the protocol innately, instead of dumbly parsing & deparsing text. < 1207861773 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e.g. 'join' messages can have callbacks, because it tracks queues of requests < 1207861807 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, because most of the numerics are responses to something or other? < 1207861814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Yes < 1207861820 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and likewise ERROR is a response to QUIT as well as being a standalone message < 1207861826 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Exactly < 1207861841 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, each type of message has its own class < 1207861847 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PRIVMSG, PING, etc. < 1207861867 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And a PRIVMSG #esoteric :foo has 'channel' and 'text' attributes, instead of relying on dumb indexing < 1207861873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Indeed it will even do WHOISes < 1207861878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and give you a simple object back < 1207861883 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whereas the actual whois output is obscene < 1207861929 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, instead of 'bot = server connection' < 1207861938 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or even 'bot = one channel' like some things assume < 1207861943 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it knows that a bot is spread across multiple networks < 1207861947 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and a network has servers < 1207861984 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the design of IRC is quite clever. Normally, you don't need to know that a network has servers unless you're a severl operator < 1207861994 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because all the messages handle them more or less transparently < 1207862001 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I mean load-balanced servers < 1207862005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like kubirck.freenode.net etc < 1207862009 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: so did I < 1207862015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: All IRC clients have a concept of 'Networks' if you look in them < 1207862021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'cause they're a useful concept :-) < 1207862026 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yes, definitely < 1207862032 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :knowing that a network has servers is less important < 1207862048 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the main difference it makes to the end-user is whether you get an idle-time notification in a WHOIS < 1207862094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: $CLIENT will also have servers in networks if you look closely < 1207862107 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, ais523_ is still online, despite not responding to pings < 1207862125 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it goes into an infinite loop rather than reading back from the IRC server < 1207862142 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but if I give it an alphanumeric buffer that's too small, it errors, so /something/ strange is going on < 1207862245 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1207862251 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i have always disliked the look of /italics/ < 1207862261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and i never use underlines, so i use _italics_ < 1207862264 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/random, i know < 1207862309 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in a man page, the .I directive writes an underline < 1207862329 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and so presumably in nroff too, when formatting for display on a terminal < 1207862342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: underlines are totally useless though < 1207862352 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :italics & bold cover everything i need to express < 1207862357 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what about links? < 1207862375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i don't manually underline links < 1207862382 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the reason that underlines fell out of favour was that nowadays people have become used to recognising them to indicate links < 1207862384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in my actual text, i have no need for underlines < 1207862392 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :even if links didn't exist < 1207862478 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was always taught to use them to indicate the final outcome of a mathematical problem or other such lengthy situations < 1207862491 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. if an exam question asked me what 2 + 2 was, I was supposed to answer _4_ < 1207862572 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not sure of the merits of the idea except to save time for examiners, though < 1207862590 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I suppose underlines have deteriorated since the days of ALGOL 68 and typewriters < 1207862603 0 :RedDak!n=dak@host123-81-dynamic.18-79-r.retail.telecomitalia.it JOIN :#esoteric < 1207862761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I prefer '4, F*CK YEAH' < 1207862767 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or some other notable exclamation < 1207862800 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :don't blame me if you get strange comments in your exam feedback, then < 1207862805 0 :RedDak!unknown@unknown.invalid QUIT :Client Quit < 1207862826 0 :RedDak!n=dak@host123-81-dynamic.18-79-r.retail.telecomitalia.it JOIN :#esoteric < 1207863019 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: ping < 1207863023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: :D < 1207863034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'2 + 2 = THE ONE THE ONLY 4' < 1207863043 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'2+ 2 = EFF OH YOU ARE' < 1207863049 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'2+ 2 = FOOOOOURRRRRRRRRR' < 1207863128 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :2 + 2 = 1 + 3 = 0 + 4 = -1 + 5 = -2 + 6 = ... = -inf + inf = undefined < 1207863155 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :lament: but NaN = 4 in this case < 1207863176 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the only reason that computers say that NaN is not equal to everything is that they can't be expected to figure out what value it actually has in that case < 1207863217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: NaN != NaN in a lot of languages < 1207863222 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because there are multiple NaNs < 1207863226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and NaN always creates a new one < 1207863230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :JavaScript behaves like this < 1207863235 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: NaN != NaN in C even if it's the same NaN < 1207863246 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and there are multiple NaNs, but they compare not equal even if they have the same payload < 1207863254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: C has NaN? < 1207863254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wow. < 1207863278 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you need C99 to be able to express it portably, though, and even then it's optional, I think < 1207863288 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the rules for it are defined if it does exist < 1207863522 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :0./0. is not guaranteed to be NaN, for instance; it might be a SIGFPE instead (or presumably another implementation-defined signal) < 1207864053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I am tempted to implement your s/// correction thing < 1207864056 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: for IRC < 1207864062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: also star-correction < 1207864068 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uses leventhsethisen distance or whatever < 1207864071 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to determine which to change < 1207864077 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*Levenstein < 1207864083 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :levenshtein actually < 1207864084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ha < 1207864120 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I doubt it could handle that, two lines up and in someone else's comment, it would need to know the context of the conversation to even think of looking there < 1207864127 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and looking there as a matter of course would be stupid < 1207864176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no, it would just scan the N latest messages < 1207864178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and choose the one most likely < 1207864186 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even other people's? < 1207864201 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've been known to correct my own most recent message after tens of minutes, with lots of intervening comments < 1207864219 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it's pretty silly, not to mention a security risk, to correct other people's < 1207864382 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1207864395 0 :Dagide!n=dak@87.10.81.24 JOIN :#esoteric < 1207864409 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: only correct as in 'repeat' < 1207864420 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1207864430 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so that avoids the security risk, at least < 1207864440 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you could have a bot doing that sort of correction, I suppose < 1207864452 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what about the times when I typo one of my own corrections and correct that? < 1207864467 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I often do s/a/b followed by s/$/\// when I realised I missed off the final slash by mistake < 1207864517 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it'd retry any stuff it corrects for correction < 1207864519 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you see what i mean < 1207864526 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1207864533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: incidentally, do you know about #xkcd-signals' ROBOT9000? < 1207864541 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the solution is not too hard to see, I was just making sure you knew the problem < 1207864543 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: no < 1207864559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Basically, if you say something that has already been said before -- ever -- it mutes you. < 1207864567 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The mutes get progressively greater the more you do it but gradually decrease. < 1207864582 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So, memes get killed off extremely quickly and only original thought is left. < 1207864586 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's an interesting idea. < 1207864593 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean by a mute, here? it devoices you, and it's a moderated channel? < 1207864611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I think the main implementation +b's you and then -b's you after the timeout < 1207864623 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But, same thing in this case < 1207864645 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Full scoop: http://blag.xkcd.com/2008/01/14/robot9000-and-xkcd-signal-attacking-noise-in-chat/ < 1207864645 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But < 1207864646 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://media.peeron.com/tmp/ROBOT9000.html < 1207864646 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it would be more interesting to see it done with voicing < 1207864648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there's the source < 1207864650 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in Perl < 1207864655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you should have no problem figuring it out < 1207864667 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so that the little V signs, or whatever the client uses, turn on and off as people accidentally repeat < 1207864678 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but you'd have to be really careful not to say things like 'yes' or 'no' < 1207864689 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Well, the idea is that you justify more than 'yes' or 'no' < 1207864694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You go 'Yes, the system is configured so that blah.' < 1207864705 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or maybe just get your client to a ppend a sequence number to the end of everything you said [1] < 1207864707 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not perfect for all cases surely. But interesting < 1207864715 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: as for that idea, < 1207864719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it'll just get you banned < 1207864729 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Just like all bad faith is dealt with in IRC channels < 1207864740 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... maybe you could do it with whitespace so people didn't notice < 1207864758 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it's probably not fair to try to work around that sort of restriction < 1207864765 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: They would notice when you say the same thing twice < 1207864774 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :depends on what that thing was < 1207864775 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But anyway < 1207864780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :My idea < 1207864787 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is a blend of Utu (you may have heard of it) and that < 1207864808 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If enough people 'hate' you (that's an actual command), it mutes you < 1207864810 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, that code you linked doesn't look like Perl at all, someone's tried to write it like C < 1207864811 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's the *basic* idea < 1207864818 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's uncomfortable seeing Perl that readable < 1207864819 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://savingtheinternetwithhate.com/design.html < 1207864825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But basically, doing the above but with an irc bot. < 1207864839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Network::IRC and all that are object-oriented, clean, callback-based frameworks. < 1207864841 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Unsuprising < 1207864878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Most 'modern' perl looks like that < 1207864881 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in my experience < 1207864925 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that isn't modern perl < 1207864936 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they call procedures using the & sigil, and that's been deprecated for ages < 1207864956 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so whoever wrote that is used to old-fashioned Perl < 1207865249 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :wow, robot9000 rules < 1207865268 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :very clever < 1207865291 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, they thought of the trailing-whitespace thing < 1207865310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: put it in #esoteric! as an experiment? ;) < 1207865316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :xkcd fed two years of logs into it < 1207865323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but the logs we have take back to 2004 < 1207865324 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they also remove punctuation and all repeated characters < 1207865328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's gotta be interesting, no? < 1207865335 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they should probably do Porter stemming as well, just for the fun of it < 1207865337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or i can do it if allowed ;) < 1207865338 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :we don't have any such issues, though < 1207865344 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: yes, but it would be interesting < 1207865355 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it might be interesting to set up a bot to report when a user would be banned, rather than actually doing it < 1207865366 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so we could see what the false-positive rate would be like < 1207865367 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that just leads to more noise though < 1207865370 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but yeah < 1207865374 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: this is just as a temp experiment < 1207865376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but yeah, i'll get on it < 1207865376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1207865381 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: can you just run it on the logs to see which lines would it match? < 1207865383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: seen StupidFilter? < 1207865388 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: no, it works there-and-then < 1207865391 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://stupidfilter.org < 1207865393 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe report in a second channel, so that people didn't have to look at it if they didn't want to < 1207865396 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they released an alpha recently < 1207865399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but its very slooooww < 1207865400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I hadn't seen it < 1207865406 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i'm sure it's easy to hack to work in batch mode < 1207865435 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and if all it does is line matching after trimming whitespace, you don't need the bot < 1207865448 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :just write a program to check that < 1207865456 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :lament: you don't even need to write a program < 1207865463 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :some combination of sort and uniq would work < 1207865467 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :right < 1207865471 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it also filters out nicks, smilies, punctuation, etc < 1207865482 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so < 1207865494 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :throw out everything except alphabetic chars < 1207865500 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also case and control characters < 1207865503 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :throw out spaces even < 1207865510 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :they can't contribute to false positives much < 1207865511 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :lament: no, do Porter stemming first < 1207865520 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh, right < 1207865527 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so that you can't just add -ing on the end of a word to create a different line < 1207865534 0 :ehird!unknown@unknown.invalid NICK :ROBOT9000 < 1207865537 0 :ROBOT9000!unknown@unknown.invalid NICK :ROBOT9001 < 1207865537 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Robot9000 doesn't do that, by the way < 1207865559 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :anyway, it seems in half an hour you could get some good estimates < 1207865570 0 :ROBOT9001!unknown@unknown.invalid NICK :ehird < 1207865585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# if the channel is quiet for too long (longer than fortune_time, in seconds), < 1207865585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# print the output of the fortune_command. Remove to disable this feature. < 1207865587 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's brilliant < 1207865600 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1207865602 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it IS based on voice < 1207865612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so that unfortunately means it needs ops < 1207865613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what a shame < 1207865615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1207865616 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it would for +b < 1207865633 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's based on both voice and ban as far as I can tell < 1207865648 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :at least, the code is capable of doing both of those < 1207865681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, I was going to suggest running it as a simulation rather than actually banning < 1207865701 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yeah, i will < 1207865703 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just setting it up first < 1207865704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : my $dbh = DBI->connect( "DBI:mysql:database=$config->{db_name}", < 1207865704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : $config->{db_user}, $config->{db_pass} ) < 1207865708 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what should that be for sqlite? < 1207865717 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i think simulating it on the logs would be more informative < 1207865723 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(by finding matching lines in the logs) < 1207865742 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you'd find out everything the bot would have done in the past ~3 years < 1207865771 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, it also bans and devoices people who change nick too often < 1207865777 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and blocks newly-arriving users for a minute < 1207865995 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207865998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it comes with nothing to import logs < 1207865999 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :damnit. < 1207866057 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: just run through each line calling the callback for someone saying something < 1207866100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Non-trivial. Network::IRC isn't simple. < 1207866112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :& the logs are not in raw format < 1207866149 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: just call irc_on_public < 1207866154 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than messing with Network::IRC at all < 1207866169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1207866169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : my ( $self, $event ) = @_; < 1207866169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : my ( $nick, $userhost ) = ( $event->nick, $event->userhost ); < 1207866169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : my ($msg) = ( $event->args ); < 1207866178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :from irc_on_public < 1207866184 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's not too complicated a call to manage < 1207866189 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it would look something like this: < 1207866195 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Add that to parsing the logs... < 1207866204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :However, I will download all the logs and munge them together < 1207866211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh wait! < 1207866222 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Your idea sucks. It will retroactively punish < 1207866230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So, e.g., most people in here will have mute times off the csale < 1207866231 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1207866234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i can fix that myself < 1207866234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1207866235 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207866236 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1207866240 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :time to brush up on my wget-fu < 1207866254 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :irc_on_public($self,(nick => "somenick", userhost => "somefakeuserhost", args => $msg)) < 1207866283 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah, and where to get the self from? < 1207866303 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Also, it interacts with irc: it will try to voice & kick etc < 1207866306 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :causing havock < 1207866307 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it only cares about it when kicking < 1207866307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*havok < 1207866321 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so just comment all the lines that use it and pass in undef or something < 1207866333 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that'll do for filling the database, then you can comment them back in again < 1207866346 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or if you're feeling clever, make it skip all those lines if $self is undef < 1207866377 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay then < 1207866390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'll make it beep when it was going to kick someone < 1207866394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :interactive lightshow :D < 1207866431 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :actually, my semantic irc framework would rock for this < 1207866434 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just give it a dummy irc server < 1207866436 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :filled with the logs < 1207866439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and let it go < 1207866469 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have to go, now, anyway. Bye! < 1207866471 0 :ais523!unknown@unknown.invalid QUIT :"(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"" < 1207866503 0 :Dagide!unknown@unknown.invalid QUIT :Remote closed the connection < 1207866561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: bespin.org is FEELING MY PAIN < 1207866569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :KILL KILL KILL, YOUR SERVER MUST DIE < 1207866665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's on to 2006 already. < 1207866666 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wheee... < 1207866908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, there? < 1207866952 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, the HRTI test of mycology adds a total of over 0.030 seconds < 1207866974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so far that is the single slowest fingerprint to test < 1207867153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1207867155 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all logs downloaded < 1207867169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :515687 lines < 1207867405 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1207867413 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1207867423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: I have 426682 lines of logs processed ready < 1207867473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :o wait < 1207867474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if (@ARGV) { # we're only loading an existing log file, not actually running < 1207867474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : print "Loading log files...\n"; < 1207867474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : &load_log; < 1207867474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :} < 1207867477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it already can do it < 1207867477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lulz < 1207867779 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: So since ROBOT9000 already supports loading logfiles, I could just quickly load it up now and then put it in here as a quick experiment. < 1207867780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Thoughts? < 1207867970 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it would take us weeks to reach any interesting conclusions; we don't talk much < 1207867996 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so simulating its actions in the logs is far more informative < 1207868003 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but feel free < 1207868025 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :as long as it doesn't actually hurt anybody :) < 1207868046 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: well, that's the problem -- it won't run without ops < 1207868046 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1207868055 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(you just said wheeee, okay, hm and lulz in the past 15 minutes - you would be very muted now) < 1207868061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and yes < 1207868062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i very would < 1207868063 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :then fix it < 1207868067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not just any kind of muted, but VERY muted < 1207868070 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's open source < 1207868075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: i don't think i can fix it, the whole architechture is based on it < 1207868117 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :why don't you just search for duplicates in the log files? :) < 1207868141 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i bet most of the duplicates are short things like "okay" < 1207868142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: because that's nothing like what robot9000 does < 1207868160 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :can't you just steal its text-processing algorithm < 1207868168 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :presumably it's a separate procedure < 1207868171 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you don't need the rest of the bot < 1207868188 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: no, its not a seperate procedure < 1207868191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1207868196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm going to load the logs into it < 1207868198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and see what happens < 1207868202 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :wow, this bot sounds more and more like a perl program :) < 1207868209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: well, it is perl < 1207868209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1207868326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: wow < 1207868326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :zsh: bus error perl ROBOT9000.pl ROBOT9000.yml logs/combined.txt < 1207868432 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and you want that thing to ban people? :) < 1207868471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: hehe, well it is processing them now < 1207868474 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what could possibly go wrong! < 1207868482 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207868482 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1207868487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this is a lot of stuff < 1207868487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1207868507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll just let it do its thing.. < 1207868585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: it keeps recording empty lines. heh! < 1207868595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Still, if xkcd are using it, it must work pretty well < 1207868791 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: Sheesh, people talk about a lot of crap in #esoteric. < 1207868802 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :I agree < 1207868816 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's pretty good now compared to what it used to be at one point < 1207868842 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the value is an anti-alias factor setting it to 1 disables the anti-aliasing feature this makes the output look bad but setting it too high makes the trace take a lot more time to complete < 1207868845 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that just scrolled past < 1207868848 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(we actually talk about programming stuff once in a while as opposed to just talking about manga and social incompetence) < 1207868852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Incidentally, I would have just been muted, ironically) < 1207869126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: sheehs, this is such a waste of cpu time < 1207869127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1207869748 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1207869756 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: Sti-i-i-hillll going < 1207869919 0 :oerjan!unknown@unknown.invalid QUIT :Client Quit < 1207870042 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1207870921 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: still going < 1207871380 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i wait with bated breath < 1207871496 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is surprised to learn that "bated" is the correct spelling < 1207871740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :process 3 killed < 1207871740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :time for new and improved garbage < 1207871740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh and that is the previous newline < 1207871740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1207871742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :latest lines