< 1194134408 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hm, ok, that isn't being printed on my console < 1194134410 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so hm < 1194134417 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194134432 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194134433 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :> (a d) < 1194134433 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unmatched ( < 1194134446 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ahh, i seeeeee < 1194134453 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :me am stoopid < 1194134478 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194134482 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :let's try now < 1194134489 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194134489 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (a d) < 1194134490 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: a < 1194134492 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :woot < 1194134505 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: there you go < 1194134516 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (a(b(c)d)e) < 1194134516 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: a(b(c < 1194134519 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1194134529 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194134530 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194134532 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :silly me < 1194134536 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1194134539 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'll implement some primitives first < 1194134727 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1194134736 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194134737 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :now it has lambda, quote, set , def, if < 1194134740 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ping < 1194134743 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set a 4) < 1194134744 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :4 < 1194134746 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> a < 1194134746 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :4 < 1194134751 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set a 5) < 1194134751 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194134752 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> a < 1194134752 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194134758 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194134758 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194134773 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if 0 (quote yes) (quote no)) < 1194134773 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194134783 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if () (quote yes) (quote no)) < 1194134784 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194134786 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1194134786 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194134845 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194134865 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194134866 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if 0 (quote yes) (quote no)) < 1194134866 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194134869 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if 1 (quote yes) (quote no)) < 1194134869 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194134873 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Retarded. < 1194134876 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1194134883 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :0 is true in all lisps i know of < 1194134887 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :not in this one < 1194134889 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :for example < 1194134892 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :my boolean function returns 1 or 0 < 1194134898 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but it isn't returning 0 for "0" which is bizzare < 1194134900 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lame < 1194134907 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ololobot's lisp does it < 1194134921 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194134934 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194134938 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if 0 (quote yes) (quote no)) < 1194134939 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194134957 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbom1dood: if C does it, it must be right. < 1194134983 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :of course < 1194134986 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194134994 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and you need a client that does last-spoken tab completion < 1194135011 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ifthis doesn't work i don't know what's wrong: < 1194135014 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194135015 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if 0 (quote yes) (quote no)) < 1194135015 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :no < 1194135017 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :woot < 1194135019 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if 1 (quote yes) (quote no)) < 1194135019 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194135022 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if () (quote yes) (quote no)) < 1194135023 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :no < 1194135024 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if (1) (quote yes) (quote no)) < 1194135025 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194135027 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hahahugjgf < 1194135032 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wtf, two false values? < 1194135036 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194135038 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :0 and () are false < 1194135050 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :0 because that's what the to-boolean returns < 1194135059 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :() because it makes no sense to have nil true < 1194135125 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it makes no sense to have 0 fale < 1194135134 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194135136 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i don't really care if you think that < 1194135140 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if (1) (quote yes) (quote no)) < 1194135141 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194135156 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(1) is an error... < 1194135169 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes, i know that < 1194135170 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194135172 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's failing at a previous point < 1194135177 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(if (1) (quote yes) (quote no)) < 1194135181 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if (1) (quote yes) (quote no)) < 1194135181 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194135232 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194135233 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if (1) (quote yes) (quote no)) < 1194135233 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) not callable: 1 < 1194135236 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if () (quote yes) (quote no)) < 1194135236 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194135259 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :all right < 1194135259 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :finally < 1194135261 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i've got it < 1194135264 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :grrr < 1194135271 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: what < 1194135274 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's been an hour and it's still not 1/255 done < 1194135281 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bookkeeping time < 1194135297 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1194135301 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ok < 1194135303 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: it's all there < 1194135304 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :everything < 1194135306 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194135306 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbom1dood: are you sure it works at all :D < 1194135309 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if () (quote yes) (quote no)) < 1194135309 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :no < 1194135311 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: you sure :D < 1194135316 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (if (quote (1)) (quote yes) (quote no)) < 1194135316 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194135320 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :pretty sure!! < 1194135322 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> if < 1194135323 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#native-function:9 < 1194135324 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> ((((lambda (a) (lambda (b) (lambda (c) ((a c) (b c))))) (lambda (a) (lambda (b) a))) (lambda (a) (lambda (b) a))) 8) < 1194135324 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: c < 1194135324 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> cond < 1194135325 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: cond < 1194135333 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :uhh < 1194135336 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :should c be unbound < 1194135341 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :c can't be unbound there. < 1194135352 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(lambda (c) ((a c) (b c))) < 1194135355 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no way. < 1194135357 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def test (x) ((lambda (y) y) x)) < 1194135358 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:86 < 1194135359 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> test < 1194135359 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:86 < 1194135365 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (test 2) < 1194135365 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194135379 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1194135381 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :def works now, oklopol < 1194135383 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :do it in chunks < 1194135412 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kay < 1194135423 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(def NAME ARGS CODE...) < 1194135425 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194135425 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:ab < 1194135427 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (def k (a) (lambda (b) a)) < 1194135427 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:bb < 1194135429 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (((s k) k) 3) < 1194135430 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: c < 1194135478 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(def s (x) (lambda (y) (lambda (z) ((x z) (y z))))) < 1194135479 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (x) (lambda (y) (lambda (z) ((x z) (y z))))) < 1194135479 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:e8 < 1194135484 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (s k) < 1194135484 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: k < 1194135492 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :fuck the what < 1194135496 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> k < 1194135496 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: k < 1194135501 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but... < 1194135515 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DSDSDSD < 1194135558 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/Q6qc8624.html < 1194135561 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea what went wrong < 1194135564 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :tell me my bug :D < 1194135586 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can tell you on monday when i have time :<<< < 1194135590 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::< < 1194135591 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :gotta go sleep now < 1194135595 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :alright < 1194135597 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bye! < 1194135598 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1194135621 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194135632 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194135633 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def k (a) (lambda (b) a)) < 1194135633 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:39 < 1194135635 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> s < 1194135635 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:29 < 1194135636 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> k < 1194135637 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:39 < 1194135637 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :godaamn so slow < 1194135646 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (((s k) k) 3) < 1194135646 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: c < 1194135654 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> s < 1194135654 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:29 < 1194135656 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> k < 1194135656 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: k < 1194135659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbom1dood: you sure it isn't just in an infinite loop or smth? < 1194135662 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i'm sure < 1194135671 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: make it print out EVERY iteration < 1194135672 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :just to be sure < 1194135682 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i've used it on shorter strings < 1194135683 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kay, reallity sleepity -> < 1194135685 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it works fine < 1194135740 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194135767 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194135779 0 :RedDak!n=dak@host107-85-dynamic.10-87-r.retail.telecomitalia.it JOIN :#esoteric < 1194135782 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def k (a) (lambda (b) a)) (((s k) k) 3) < 1194135783 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: c < 1194135785 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> s < 1194135785 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:29 < 1194135786 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> k < 1194135786 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:39 < 1194135852 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194135866 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194135885 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def k (a) (lambda (b) a)) (((s k) k) 3) < 1194135885 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: c < 1194135949 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194135961 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194135965 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def k (a) (lambda (b) a)) (((s k) k) 3) < 1194135965 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: c < 1194136013 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194136024 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194136036 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def k (a) (lambda (b) a)) (((s k) k) 3) < 1194136037 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: c < 1194136282 0 :ecl!n=felipe@unaffiliated/ecl JOIN :#esoteric < 1194136292 0 :ecl!unknown@unknown.invalid PART #esoteric :? < 1194136320 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :aah, shit < 1194136329 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :tihs ,haa < 1194136343 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :my algorithm, running on my computer, would take 460 years to compute hello world < 1194136344 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1194136405 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :AHAHAHAHAHAHAHAHAHAAHAAHAHAHAHAHAHAHAHAHAHHSAADJOASDLSKHDLKF < 1194136579 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194136601 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194136608 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set a 2) < 1194136608 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194136609 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> a < 1194136609 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194136616 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def id (x) x) < 1194136616 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:1b < 1194136618 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (id 2) < 1194136618 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194136619 0 :ehird`!unknown@unknown.invalid PART #esoteric :? < 1194136623 0 :ehird`!n=test@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194136641 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194136641 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:3e < 1194136646 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def k (a) (lambda (b) a)) < 1194136646 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:4e < 1194136650 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (((s k) k) 3) < 1194136650 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :3 < 1194136655 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: WOOT!! < 1194136658 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: IT WORKS!!! < 1194136685 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ooh, i can reduce it a bit < 1194136730 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194136732 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :there < 1194136733 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's ready < 1194136741 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194136755 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194136756 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194136768 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Um. < 1194136777 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194136806 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194136806 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:29 < 1194136811 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (s s) < 1194136811 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:2e < 1194136813 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> ((s s) s) < 1194136814 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:37 < 1194136818 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (((s s) s) s) < 1194136818 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:46 < 1194136824 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> ((((s s) s) s) s) < 1194136824 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:5b < 1194136829 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Okay. < 1194136831 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Time for gc. < 1194136833 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194137276 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :PL < 1194137278 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1194137280 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I think the gc should work < 1194137284 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194137306 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137307 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194137334 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194137338 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137339 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:29 < 1194137346 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def k (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137346 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:48 < 1194137352 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137352 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:c4 < 1194137356 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137356 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:140 < 1194137363 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137363 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:1bc < 1194137364 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137364 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:238 < 1194137366 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137366 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:2b4 < 1194137367 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137367 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:330 < 1194137370 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hm. < 1194137378 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194137395 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194137398 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137398 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:29 < 1194137428 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194137432 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that was stupid < 1194137432 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1194137455 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194137456 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137456 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:29 < 1194137461 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137461 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:48 < 1194137465 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137465 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:67 < 1194137466 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137466 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:86 < 1194137469 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137469 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:a5 < 1194137472 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137473 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:c4 < 1194137474 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137474 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:e3 < 1194137481 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> if < 1194137481 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#native-function:9 < 1194137490 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, wtf. < 1194137528 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194137557 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194137582 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1194137596 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194137601 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh hello oerjan < 1194137608 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194137610 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'm putting the finishing touches on lithpbot's gc < 1194137614 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes -- a gc written in python < 1194137635 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :but...python is garbage collected < 1194137640 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :...so you don't need one < 1194137652 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i do, because i append every object to a list < 1194137658 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :for the sole purpose of keeping them alive < 1194137660 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so my gc can run < 1194137660 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1194137666 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1194137676 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i wonder, how many objects should i let be allocated before i gc()? < 1194137684 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :well that's stupid < 1194137690 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hehe yeah < 1194137692 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but fun < 1194137703 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :give me a number :P i can't decide how many objects it can allocate before i run the gc < 1194137709 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :right now it's at 200 < 1194137728 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :424242 < 1194137737 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :far too high < 1194137737 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194137746 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :4242 then < 1194137753 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :probably too high :P < 1194137754 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1194137756 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'll leave it at 200 < 1194137761 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :with the fast turnover of irc it's about right < 1194137871 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194137881 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :made it save symbols and numbers < 1194137882 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194137882 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it should probably depend on how many objects remained after the last gc < 1194137887 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i guess < 1194137892 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> > (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137892 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: > < 1194137895 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137896 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:2b < 1194137900 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194137900 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:4a < 1194137903 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1194137909 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194137909 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194137916 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :any reason to use hex numbers? < 1194137922 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :jix: in the printout? < 1194137925 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1194137926 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :because it's a faux-memory location < 1194137926 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1194137931 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1194137933 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :twice that + 200, perhaps? < 1194137962 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194137970 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ACTION debugs to check symbol/etc saving is working < 1194137973 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194137979 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194137980 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194137982 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194137983 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194137991 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194137992 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194137999 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1194138028 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194138039 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194138046 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194138046 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194138050 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194138050 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1194138051 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hahaha < 1194138084 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194138092 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I didn't actually fill the dict =) < 1194138095 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194138100 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194138100 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194138101 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1194138102 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194138103 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194138105 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194138105 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194138108 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Hm. < 1194138111 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :It's still growing., < 1194138132 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194138158 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :s debug code < 1194138160 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ACTION adds debug code < 1194138197 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194138222 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194138223 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194138229 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194138229 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194138236 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Ok, something ELSE is making it grow. < 1194138264 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Ayee! < 1194138272 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but why would it? < 1194138275 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a monster hiding in your code, growing.. < 1194138277 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it retains quote and a < 1194138281 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and quote just returns its first arg < 1194138306 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194138310 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :more debug output time. < 1194138317 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194138321 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (quote a) < 1194138322 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :a < 1194138361 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194138363 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the cons cells in (quote a) themselves? < 1194138367 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :.. < 1194138369 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1194138371 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194138371 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i am so stupid < 1194138378 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ACTION removes debug < 1194138385 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194138395 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Um < 1194138396 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194138398 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :It should take up memory, right? < 1194138406 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I shouldn't cache cons cells should I? < 1194138410 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194138410 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:29 < 1194138411 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) < 1194138412 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:48 < 1194138428 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :unless you are using hash consing, that would be hard < 1194138438 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1194138448 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok, so the functions right now are < 1194138453 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lambda, quote, set, def, if < 1194138458 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :in which language is it written? < 1194138460 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I wonder what comes next, logically, for 'essentialness'? < 1194138463 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I'd guess cons, car, cdr < 1194138470 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :everything is so similar and anything. < 1194138472 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :jix: Python. with a gc implemented in Python! < 1194138476 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: hey! welcome back from sleep :P < 1194138481 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1194138482 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I got your example working < 1194138485 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :that has style < 1194138486 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: and I wrote a goddamn gc < 1194138486 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh, hi < 1194138490 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :A GODDAMN GC < 1194138502 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1194138502 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cüüüül < 1194138505 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :writing a realtime gc is harder < 1194138516 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :jix: yeah it does a Big Global Stop < 1194138518 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm a bit too tired to get excited right now < 1194138523 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but yay < 1194138526 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :. < 1194138537 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: you either have to add code to all reads or to all writes (which is more sane as reads are more common) < 1194138541 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :that sucks... < 1194138560 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah well < 1194138560 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :who cares < 1194138561 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1194138568 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :you do care if you need speed < 1194138589 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :so if you need speed and realtime ... :/ < 1194138609 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i don't need speed < 1194138610 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :this is a toy < 1194138618 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and you don't need realtime < 1194138622 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird` must be after speed, that's why he's simulating a gc. < 1194138624 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but i was talking about writing a gc in general < 1194138627 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ;) < 1194138653 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :two gc's on top of each other must naturally be twice as fast. < 1194138655 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :because the only thing i read about gcs is how to do a realtime gc because i thought i need that but then i didn't do that project anyway < 1194138669 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: as bf interpreted in bf is twice as fast as uh wait... < 1194138674 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll try sleeping again, see ya :| < 1194138679 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :jix: exactly! < 1194138681 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :aww, bye oklopol :( < 1194138687 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :can't you test my lexical scoping :P < 1194138687 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bye, nights -> < 1194138691 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1194138698 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i saw your tests already :)' < 1194138708 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is a fanatic logreader < 1194138709 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1194138713 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but that's not lexical scoping < 1194138716 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that's not your test < 1194138717 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194138718 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that you used < 1194138719 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :on ololobot < 1194138726 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oksy < 1194138728 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll < 1194138729 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :test < 1194138735 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (def a 5) < 1194138735 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194138739 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :LOL < 1194138741 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whooooops :)) < 1194138743 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the last nights were horrible... i was soldering stuff the last whole days and then i started to dream of soldering SOIC chips and made one solder bridge next to the other :( < 1194138747 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :def is *not* for funxx < 1194138755 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :even worse than it was in real < 1194138756 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'll stop that crapping out, wait < 1194138791 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194138803 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :now there's cons and car/cdr < 1194138804 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (set a 5 ) < 1194138804 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unmatched ) < 1194138807 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (set a 5) < 1194138808 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lol? < 1194138808 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194138813 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (cons 1 2) < 1194138814 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(1 . 2) < 1194138818 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1194138820 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you continue < 1194138835 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (set f (lambda () a)) < 1194138835 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:2c < 1194138838 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194138839 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194138845 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :looooooool? < 1194138846 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :also < 1194138849 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you can do (def f () a) < 1194138850 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :grass can be green < 1194138856 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah i know < 1194138857 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!! < 1194138861 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1194138876 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1194138880 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :reloading bot < 1194138883 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :with fix < 1194138886 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194138905 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :did.i.do.something.wrong.or.was.the.bot.the.one.doing.the.non.working? < 1194138908 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bot < 1194138911 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (set f (lambda () a)) < 1194138911 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:1b < 1194138916 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (set a 5) < 1194138916 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194138919 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (set f (lambda () a)) < 1194138919 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:2c < 1194138926 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194138926 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194138931 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cül < 1194138936 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (set a 7) < 1194138936 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :7 < 1194138937 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that isn't all of it :< < 1194138938 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1194138939 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194138940 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194138941 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194138943 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :... < 1194138944 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wait, what. < 1194138948 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hah, you have the same thing i have < 1194138949 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that's not right < 1194138960 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'll fix thanks :P < 1194138968 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the same thing i berated oklopol for < 1194138969 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fixity faxity < 1194138992 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you are all red and gooey < 1194138993 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: looool < 1194139001 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric : self.closure = table.copy() < 1194139003 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps it's the highlight. < 1194139003 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :gooey? < 1194139004 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :THAT might be the problem < 1194139006 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :do you think? < 1194139007 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1194139009 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1194139014 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :gooey was just for fun. < 1194139015 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but < 1194139018 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i only have one table < 1194139021 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :table = {} < 1194139023 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :with the bindings < 1194139027 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so, i don't see how else i could make a closure < 1194139032 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: how could I? :P < 1194139038 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :indeed you want tables by reference in scheme < 1194139049 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :right, but how would i do that here < 1194139064 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm gonna say magic. < 1194139072 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :scopes are essentially mutable objects < 1194139076 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :correct < 1194139080 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but, unlike some implementations < 1194139087 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i don't have [{},{}...{}] as a scope < 1194139089 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i just have one < 1194139092 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and copy it to get a function's closure < 1194139096 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how do i, um, fix :P < 1194139108 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: you have to keep a list of tables i think < 1194139109 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :an alternative is to have an indirection < 1194139122 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :storing a variable as a mutable cell < 1194139122 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and first look in the first table then in the next one < 1194139136 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :jix: yeah, but how do i make a closure then? when i've done that all hell breaks loos < 1194139137 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :e < 1194139140 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and storing a reference to that cell in the scope table < 1194139155 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :then you can do tables by copy < 1194139157 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :jix's sounds simpler < 1194139159 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1194139162 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but oerjan's is probably better < 1194139164 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so, oerjan < 1194139167 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'll have a class "var" < 1194139174 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :which has a property "dest", which is an object < 1194139180 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mine is used much in languages where most variables _aren't_ mutable < 1194139181 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and store {name: var-object} in the table < 1194139182 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1194139190 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1194139194 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :although with that way < 1194139196 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if you do < 1194139199 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ML, haskell etc. < 1194139205 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(def f () x) < 1194139206 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(set x 2) < 1194139206 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :without x being defined before < 1194139207 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you can't get to it < 1194139211 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but that's a problem now anyway < 1194139212 0 :pikhq!unknown@unknown.invalid QUIT :Connection timed out < 1194139214 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how would i fix that? < 1194139244 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah yes that's a problem in scheme, you have all those forward references < 1194139251 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1194139259 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :should i kill myself or is there a way out? :P < 1194139260 0 :Sgeo!n=Anonymou@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1194139262 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but i don't know the details right now... the only scoping thing i recently wrote was the one for the macro assembler i'm working on and that one is completely borked < 1194139301 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think a list of scopes fits scheme better < 1194139359 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ML/haskell essentially need a complete preparsing stage on anything that can contain forward references (the whole module in haskell, each rec block in ML) < 1194139389 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1194139392 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(well haskell even allows mutually recursive modules, but support is a bit sketchy) < 1194139399 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so how would i grab a closure? < 1194139457 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :let each scope contain a reference to its parent < 1194139462 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1194139464 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so < 1194139467 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and just use references to them < 1194139474 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :[{_p: None, ...}, ..., {_p: prev, ...}] < 1194139476 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :right < 1194139482 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but how exactly do i get a closure < 1194139509 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you store the surrounding scope with the function < 1194139528 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so... just copy the list of scopes, really < 1194139535 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :self.closure = scopes[:] < 1194139546 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1194139572 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you don't need copy, just reference < 1194139590 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that won't copy the scope mappings < 1194139592 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :just the list of scopes < 1194139605 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um, the scopes are the scope mapping < 1194139607 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*s < 1194139616 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as far as i consider it < 1194139634 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :[{k:v},{k:v},...{k:v}] < 1194139638 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :[...] is the list of scopes < 1194139642 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :each individual one is a scope < 1194139649 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :note that scope are mutable and you want changes to them to be shared < 1194139653 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*scopes < 1194139661 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194139662 0 :GreaseMonkey!n=saru@219-89-58-127.dialup.xtra.co.nz JOIN :#esoteric < 1194139664 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :coping the list of scopes < 1194139668 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :does not copy the individual scopes < 1194139708 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :however, you don't need a list, if each scope contains a reference to its parent < 1194139757 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :right, but they're basically equiv. < 1194139765 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's stack-as-linked-list vs stack-as-array < 1194139771 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: no < 1194139778 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you all have a point. hang on to it, i'll try sleeping -> < 1194139781 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :because you will get a tree < 1194139798 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1194139798 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so < 1194139802 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hmm but yeah array would work too but you'd keep more copys... < 1194139803 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :table = {_p: {...}, blah} < 1194139808 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :then copy table? < 1194139812 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but that won't work!!! < 1194139817 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :because, if a value is updated in table < 1194139820 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :then it won't be seen < 1194139821 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so.. < 1194139828 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :_no_ copying < 1194139837 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1194139840 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i think i get it now < 1194139841 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :let me try that < 1194139860 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i only need new scopes for functions, right? < 1194139865 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i.e. push a scope for funcall < 1194139867 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :pop after < 1194139949 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: right? < 1194139953 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and right before < 1194139959 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :more or less, everything desugars to lambdas < 1194140024 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think that works < 1194140059 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :maybe i should mention i only understand the theory, i've never tried to implement it :D < 1194140134 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194140140 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :let's see if this works. < 1194140146 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194140153 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set x 2) < 1194140153 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194140154 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> x < 1194140154 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194140156 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> set < 1194140156 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#native-function:5 < 1194140161 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def f () x) < 1194140161 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:22 < 1194140164 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140164 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194140169 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :apparently not < 1194140193 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1194140194 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194140196 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set x 2) < 1194140197 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194140202 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh what now oerjan. < 1194140205 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def f () x) < 1194140205 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:20 < 1194140206 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140207 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194140207 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :when you call a function you don't just push a new scope < 1194140213 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah i realised that < 1194140218 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you save the old scope-list < 1194140223 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :make the new one your closure < 1194140223 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you also replace the entire stack with the one in the closure < 1194140226 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1194140229 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :then restore it at the end < 1194140230 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i do that < 1194140233 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set x 5) < 1194140234 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194140235 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140235 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194140236 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :woot < 1194140247 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def g () (set x 7) (f)) < 1194140248 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:3a < 1194140249 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (g) < 1194140249 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :7 < 1194140252 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :damnit!!! < 1194140260 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: this is dynamic scoping < 1194140261 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> x < 1194140262 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :7 < 1194140263 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :... < 1194140264 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wait, no < 1194140266 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :this is fucked up scoping < 1194140269 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no it's correct < 1194140276 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no < 1194140279 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def g () (set x 7) (f)) < 1194140279 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:4d < 1194140281 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because you never defined x, so it's at top level < 1194140284 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :uhh < 1194140286 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i did define x < 1194140288 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :as top level < 1194140292 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :set is define too < 1194140299 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so it is shared < 1194140300 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :set x 7 should have set it in g's scope < 1194140302 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :then f should have ignored it < 1194140303 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and no < 1194140304 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194140305 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :my lisp does not work that way < 1194140345 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you agree that that is wrong? < 1194140347 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194140351 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that is a bit impractical if you _do_ want to set a variable which exists in an outer scope < 1194140352 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's dynamic scoping < 1194140358 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194140359 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and yeah whatever < 1194140363 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set x 5) < 1194140363 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194140370 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def f () x) < 1194140371 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:20 < 1194140372 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140372 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194140376 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++. < 1194140379 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hel < 1194140383 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (set x 6) < 1194140383 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :6 < 1194140385 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def g () (set x 7) (f)) < 1194140386 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:38 < 1194140386 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140386 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :6 < 1194140387 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :not optimal yet ^^ < 1194140387 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, damnit < 1194140388 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :stop that < 1194140391 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194140395 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I was trying to read my debug output < 1194140401 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh :) < 1194140402 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194140411 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set x 5) < 1194140412 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194140425 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def f () x) < 1194140426 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:20 < 1194140430 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140430 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194140437 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194140446 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i need to push a new stack AFTER replacing the closure < 1194140449 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :not just replace it < 1194140471 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194140475 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: :) < 1194140482 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194140483 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set x 5) < 1194140484 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194140487 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def f () x) < 1194140487 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:20 < 1194140488 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140488 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194140499 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def g () (set x 7) (f)) < 1194140499 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:32 < 1194140501 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (g) < 1194140502 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194140505 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hurrah < 1194140508 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set x 7) < 1194140508 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :7 < 1194140509 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140509 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :7 < 1194140510 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (g) < 1194140510 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :7 < 1194140514 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set x 50) < 1194140514 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :50 < 1194140516 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140517 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :50 < 1194140517 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (g) < 1194140518 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :50 < 1194140521 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: IT WORKS :D < 1194140584 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now let me try something more complicated < 1194140600 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1194140606 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'll implement arithmetic while yo udo < 1194140617 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh and eval < 1194140660 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i'm excited what is it < 1194140661 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194140730 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm wait < 1194140747 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no arithmetic < 1194140752 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194140756 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :what arithmetic do you need < 1194140760 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'll implement those first < 1194140776 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just + < 1194140783 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i just finished doing + < 1194140785 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194140788 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's loading now < 1194140796 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194140798 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyway i'm not sure it will work because of your strange set < 1194140800 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: there you go < 1194140803 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1194140804 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :my strange set? < 1194140846 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :better test + < 1194140846 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> + < 1194140847 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#native-function:15 < 1194140850 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (+) < 1194140850 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194140851 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (def counter (a) (set x a) (lambda () (set x (+ x 1)) x) ) < 1194140851 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unmatched ) < 1194140857 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :spaces freak it out oerjan < 1194140861 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :remove that one at the tend < 1194140864 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (+ 5 2) < 1194140864 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :7 < 1194140866 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194140867 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (def counter (a) (set x a) (lambda () (set x (+ x 1)) x)) < 1194140867 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:5e < 1194140870 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's paul graham's thing :) < 1194140883 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(set f (counter 42)) < 1194140886 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (set f (counter 42)) < 1194140886 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:68 < 1194140890 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140890 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) tried to add non-number < 1194140894 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194140895 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1194140896 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :let me fix that < 1194140917 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194140924 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i didn't eval the arguments to + < 1194140925 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1194140928 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194140929 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def counter (a) (set x a) (lambda () (set x (+ x 1)) x)) < 1194140929 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:37 < 1194140933 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set f (counter 42)) < 1194140933 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:41 < 1194140934 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140934 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :43 < 1194140936 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140937 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :43 < 1194140938 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194140938 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :43 < 1194140940 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1194140941 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alas < 1194140946 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :why does that not work? < 1194140947 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh, i see < 1194140953 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1194140958 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :should changes like that persist? < 1194140961 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there are two different x'es < 1194140968 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that would mean, all variables change < 1194140969 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :err < 1194140971 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :persist < 1194140972 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :which would be odd < 1194140978 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ok, how should i do it to make that work < 1194141006 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you need to make set not introduce a new variable if there is one in an outer scope < 1194141017 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1194141018 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :can do < 1194141035 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also you need a way to introduce one anyhow. def is fine for that. < 1194141044 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :set will introduce if it doesn't find on < 1194141045 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :e < 1194141083 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194141084 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1194141085 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :testing it < 1194141094 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194141108 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: there you go < 1194141117 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1194141125 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i changed set to do that < 1194141126 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1194141131 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (def counter (a) (set x a) (lambda () (set x (+ x 1)) x)) < 1194141132 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:37 < 1194141138 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (set f (counter 42)) < 1194141138 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:41 < 1194141139 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it searches down until it finds a var, if it doesn't find one, it creates one in the current scope < 1194141148 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i can't think when you'd need to just define a var, so :) < 1194141151 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(f) < 1194141155 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194141155 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :43 < 1194141156 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194141156 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :43 < 1194141160 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wtf :| < 1194141168 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194141168 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1194141182 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194141185 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :fixed. < 1194141194 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194141204 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so when would you want to define a var but not set it? < 1194141209 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def counter (a) (set x a) (lambda () (set x (+ x 1)) x)) < 1194141209 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:37 < 1194141212 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set f (counter 42)) < 1194141213 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:41 < 1194141214 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194141214 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :43 < 1194141216 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194141216 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :44 < 1194141217 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's just a matter of hygiene < 1194141218 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yay!! < 1194141219 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> x < 1194141220 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: x < 1194141222 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> a < 1194141222 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: a < 1194141236 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ok, well "def" defines functions < 1194141241 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (set f (counter 9)) < 1194141241 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:55 < 1194141242 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: give me a name for 'make var, but don't set it' < 1194141248 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194141248 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :10 < 1194141253 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :argh! < 1194141257 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194141258 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1194141258 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :? < 1194141261 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i messed up < 1194141266 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :heh ok < 1194141269 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but, yeah, give me a name < 1194141272 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and i'll make it < 1194141274 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (set g (counter 50)) < 1194141275 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:62 < 1194141276 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :also, it has to set the var somehow < 1194141279 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so it's in its table < 1194141281 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (g) < 1194141282 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :51 < 1194141283 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194141283 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194141283 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :11 < 1194141284 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :12 < 1194141288 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (g) < 1194141288 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :52 < 1194141289 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (g) < 1194141290 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :53 < 1194141291 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so yeah that works < 1194141292 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1194141296 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but, what should it set it to? < 1194141297 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :0? < 1194141303 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it has to set it for it to get in the table < 1194141331 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's not about not setting < 1194141339 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :what does defvar do then < 1194141402 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's about not confusing local and global variables by accident < 1194141445 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++..+++.-------------------------------------------------------------------.------------.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.--------.+++.------.--------.-------------------------------------------------------------------. < 1194141448 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194141454 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so tell me what it should do! < 1194141459 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :what does defvar do, exactly < 1194141461 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.<++++++++++++++++++++++++++++++++++++.>+++++++.<+++.>----------------------------------------------------------------.------------.<++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++.------.<-------------------.>- < 1194141462 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :--------------------------------------------------------------------------. < 1194141464 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fuck < 1194141465 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world < 1194141469 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the basic idea for this being that set should _never_ create a new variable, while def always should unless there already is one in the exactly same scope < 1194141478 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1194141482 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so what should def set the var to? < 1194141507 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1194141507 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(def x 1) would set it to 1 < 1194141514 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :*defvar < 1194141516 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :def is for functions < 1194141545 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in scheme, define is for both < 1194141550 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :this isn't scheme < 1194141587 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although think about it, you can get around the need for defvar with some lambda trickery < 1194141661 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so < 1194141668 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :tell me what def should do in pseudocode < 1194141670 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (def counter2 (a) (lambda (x) ((lambda () (set x (+ x 1)) x) x))) < 1194141670 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:94 < 1194141692 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(set h (counter2 3)) < 1194141696 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (set h (counter2 3)) < 1194141696 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:9e < 1194141703 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (h) < 1194141703 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) need 1 args, got 0 < 1194141718 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1194141733 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :counter2 returns a lambda < 1194141739 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lambda need to be given arguments < 1194141749 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1194141755 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so, can you tell me what def does < 1194141756 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :thank you < 1194141758 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i need to go like no < 1194141759 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :w < 1194141775 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (def counter2 (a) ((lambda (x) ((lambda () (set x (+ x 1)) x)) x)) < 1194141776 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unmatched ( < 1194141794 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan!!! < 1194141798 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :what does def do?????? < 1194141807 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (def counter2 (a) ((lambda (x) (lambda () (set x (+ x 1)) x)) x)) < 1194141808 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194141812 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1194141823 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you made it gc < 1194141824 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194141839 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :def introduces a new variable unless there is one in exactly the same scope < 1194141869 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :introduce < 1194141870 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :define introduce < 1194141873 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :set to something? < 1194141881 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and if there is one in the same scope what does it do? < 1194141882 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194141886 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if i know these two things, i can do it < 1194141891 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :then it just sets that instead < 1194141899 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf +++++++[>+>+++<<-]>>+++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++..+++.<+++++++++++++++++++++++++++++++++++++.------------.>++++++++.--------.+++.------.--------.<+.>>++++++++++. < 1194141901 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194141905 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :okay, oerjan < 1194141906 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I will do that < 1194141922 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ok the A* - closed list part works :) < 1194141932 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :(where - is without) < 1194141946 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :that part of the A* algorithm introduces more overhead than it does good in this case < 1194142034 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok, oerjan < 1194142034 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :done < 1194142035 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and it's like 1000 times faster than my old lisp implementation < 1194142038 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and also added -, *, / < 1194142041 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194142049 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :(/ 1 0) < 1194142053 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :> (/ 1 0) < 1194142053 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194142056 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hahaharigjdiogj < 1194142062 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1194142092 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :fixed < 1194142100 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194142101 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set a 2) < 1194142102 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: a < 1194142109 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def a 2) < 1194142109 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) need at least 3 args, got 2 < 1194142111 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194142171 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194142176 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok oerjan, here we go < 1194142182 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194142183 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set var 2) < 1194142184 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: var < 1194142187 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def var 2) < 1194142188 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194142190 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :AUWRHUIASDHSAD < 1194142203 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION calls the acronym police < 1194142205 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i did eval < 1194142207 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :instead of leval < 1194142213 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194142213 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set var 2) < 1194142214 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: var < 1194142216 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def var 2) < 1194142217 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194142222 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set var 3) < 1194142222 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :3 < 1194142226 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def var 2) < 1194142226 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194142238 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1194142241 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'll rewrite counter < 1194142251 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def counter (a) (def x a) (lambda () (set x (+ x 1)) x)) < 1194142251 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) def takes 2 arguments if not defining func < 1194142256 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh damnit < 1194142264 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194142287 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :almost there now :) < 1194142302 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194142303 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def counter (a) (def x a) (lambda () (set x (+ x 1)) x)) < 1194142303 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:3d < 1194142310 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set f (counter 3)) < 1194142310 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: f < 1194142315 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def f (counter 3)) < 1194142315 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:52 < 1194142317 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194142317 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :4 < 1194142318 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194142318 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194142320 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (f) < 1194142320 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :6 < 1194142324 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (/ 1 0) < 1194142324 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194142329 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :What. < 1194142346 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Fixing < 1194142347 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1194142354 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :btw didn't you have to go? < 1194142357 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194142358 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes i do :| < 1194142359 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (/ 1 0) < 1194142364 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (/ 1 0) < 1194142364 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) divide by zero < 1194142367 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (/ 0 1) < 1194142367 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194142373 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (* 5 2) < 1194142375 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :10 < 1194142379 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (+ 1 2 3) < 1194142380 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :6 < 1194142384 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :OKAY < 1194142385 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :finally < 1194142388 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'm going < 1194142396 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1194142397 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :tomorrow: persistance of memor < 1194142397 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :y < 1194142399 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194142463 0 :ehird`!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194143238 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++++++[->>+>++>+++>++++>+++++>++++++[<]<]>>>>>>>++++++++++++.+++++++++++++++++++++++++++++.+++++++..+++.<<++++.<++.>>>++++++++.--------.+++.------.--------.<<<+.<<. < 1194143241 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194143255 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Hello, EgoBot! < 1194143264 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's a rather long hello world < 1194143277 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the first part is a stupid hardcoded value < 1194143290 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :"++++++++++[->>+>++>+++>++++>+++++>++++++[<]<]" that part < 1194143295 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1194143313 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but when you start with that part you shouldn't be able to get below 168 bytes < 1194143319 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty much what my greedy algorithm is like < 1194143329 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :mine isn't greedy < 1194143333 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :except it tries more possibilities for the factor < 1194143343 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :orly? < 1194143356 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i use a modified A* so it is optimal < 1194143362 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :A*? < 1194143364 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :code plz < 1194143382 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/A*_search_algorithm < 1194143413 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but my heuristic is pretty bad atm so it isn't as fast as it could be < 1194143421 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1194143432 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i don't feel like understanding that now < 1194143472 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :all posibilities to print the string using ><+-. given a initial pointer position and memory state represent a graph < 1194143488 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :where each edge represents the printing of one character < 1194143544 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :you can assign weights to the edges... the number of chars it takes to output that character < 1194143561 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ostensibly it looks like A* is what i needed < 1194143568 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :then you can use any algorithm to search the shortest path in a graph to get the optimal code for that initial memory state < 1194143589 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i searched that tree by brute force < 1194143613 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1194143624 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1194143624 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :that tree is pretty large < 1194143640 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hence the 460 year hello world < 1194143710 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i skipped the part witht he closed list because i was lazy and skipping that part can't result in a wrong result < 1194143712 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it only makes it slower < 1194143726 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and it's fast enough right now < 1194143765 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i wonder what the best way to choose the initial state is < 1194143802 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i was think try all possibilities of evenly distributed ints in largestchar-smallestchar of the input string < 1194143852 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :smaller than smallest char might even be better < 1194143858 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1194143867 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :try to output 13 < 1194143879 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1194143889 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i hope that number was the right one < 1194143912 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :+++[->++++<]>+. is shorter than +++++++[->++<]>-. < 1194143923 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1194143924 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the first one generates 12 (which is below the char 13) < 1194143951 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and if you have the string 13,50,30,60 it would be bad to not generate the 13 using 3*4+1 < 1194143984 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :well, what i was doing tried up to 8 factors of [2, 256] < 1194143992 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and picked the shortest < 1194144056 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :if you had a small way to generate them you could do the most common letters in the string < 1194144160 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you might go backwards - find the initial state that makes the rest shortest < 1194144172 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(of some length) < 1194144279 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1194144451 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf +++++++++[->++++++++>+++++<<]>.+++++++++++++++++++++++++++++.+++++++..+++.>-.------------.<++++++++.--------.+++.------.--------.>+.>++++++++++. < 1194144455 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194144471 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf +++++++++[->++++++++>+++++>+<<<]>.+++++++++++++++++++++++++++++.+++++++..+++.>-.------------.<++++++++.--------.+++.------.--------.>+.>+. < 1194144475 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194146271 0 :GreaseMonkey!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1194146328 0 :GreaseMonkey!n=saru@122-57-228-246.jetstream.xtra.co.nz JOIN :#esoteric < 1194146788 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1194148887 0 :cherez!unknown@unknown.invalid QUIT :"Leaving." < 1194149108 0 :pikhq!n=pikhq@209.248.125.179 JOIN :#esoteric < 1194149778 0 :cherez!n=cherez@r02snw275.desktop.umr.edu JOIN :#esoteric < 1194158687 0 :bsmntbom1dood!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194158840 0 :bsmntbom1dood!i=gavin@rrcs-67-52-47-67.west.biz.rr.com JOIN :#esoteric < 1194160971 0 :pikhq!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1194163199 0 :clog!unknown@unknown.invalid QUIT :ended < 1194163200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1194168809 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Every time you screw up AWOS, GreaseMonkey kills a kitten." < 1194167393 0 :RedDak!n=dak@host107-85-dynamic.10-87-r.retail.telecomitalia.it JOIN :#esoteric < 1194173096 0 :Tritonio!n=Tritonio@150.140.227.205 JOIN :#esoteric < 1194174268 0 :lament!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1194174825 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1194176242 0 :Tritonio!unknown@unknown.invalid QUIT :Remote closed the connection < 1194176387 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194177169 0 :lament!n=lament@S010600110999ad06.vc.shawcable.net JOIN :#esoteric < 1194177227 0 :jix!n=jix@dyndsl-080-228-176-065.ewe-ip-backbone.de JOIN :#esoteric < 1194177277 0 :oklopol!n=oko@194.251.101.183 JOIN :#esoteric < 1194178757 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1194178918 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf +++++++++[->+++++++++++>++++++++>+++++>+<<<<]>>.<++.+++++++..+++.>>-.------------.<<++++++++.--------.+++.------.--------.>>+.>+. < 1194178921 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194179021 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf < 1194179021 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :++++++++[>++++[>++>+++>+++>+<<<<-]>+>->+>>+[<]<-]>>.>>---.+++++++..+++.>.<<-.>.+++.------.--------.>+.>++. < 1194179042 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++++[>++++[>++>+++>+++>+<<<<-]>+>->+>>+[<]<-]>>.>>---.+++++++..+++.>.<<-.>.+++.------.--------.>+.>++. < 1194179046 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello World! < 1194179068 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i know my textgen isn't perfect yet ;) < 1194179077 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Neither am I :) < 1194179144 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but i haven't implemented nested loops for the first part yet < 1194179743 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf ->++>+++>+>+>+++>>>>>>>>>>>>>>>>>>>>+>+>++>+++>++>>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>>+++>>+++>>>>>+++>+>>>>>>>>>++>+++>+++>+>>+++>>>+++>+>++>+++>>>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>>>+++>+>++>+++>++>>+>+>++>+++>+>+>>+++>>>>>+++>+>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+++>>++[[>>+[>]++>++[<]<-]>+[>]<+<+++[<]<+]>+[>]++++>++[[<++++++++++++++++>-]<+++++++++.<] < 1194179745 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :->++>+++>+>+>+++>>>>>>>>>>>>>>>>>>>>+>+>++>+++>++>>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>>+++>>+++>>>>>+++>+>>>>>>>>>++>+++>+++>+>>+++>>>+++>+>++>+++>>>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>>>+++>+>++>+++>++>>+>+>++>+++>+>+>>+++>>>>>+++>+>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+++>>++[[>>+[>]++>++[<]<-]>+[>]<+<+++[<]<+]>+[>]++++>++[[<++++++++++++++++>-]<++ < 1194179770 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf ->++>+++>+>+>+++>>>>>>>>>>>>>>>>>>>>+>+>++>+++>++>>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>>+++>>+++>>>>>+++>+>>>>>>>>>++>+++>+++>+>>+++>>>+++>+>++>+++>>>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>>>+++>+>++>+++>++>>+>+>++>+++>+>+>>+++>>>>>+++>+>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+++>>++[[>>+[>]++>++[<]<-]>+[>]<+<+++[<]<+]>+[>]++++>++[[<++++++++++++++++>-]<+++++++++.<] < 1194179774 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :->++>+++>+>+>+++>>>>>>>>>>>>>>>>>>>>+>+>++>+++>++>>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>>+++>>+++>>>>>+++>+>>>>>>>>>++>+++>+++>+>>+++>>>+++>+>++>+++>>>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>>>+++>+>++>+++>++>>+>+>++>+++>+>+>>+++>>>>>+++>+>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+++>>++[[>>+[>]++>++[<]<-]>+[>]<+<+++[<]<+]>+[>]++++>++[[<++++++++++++++++>-]<++ < 1194179782 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Hm, that's odd. < 1194179926 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf 124 (140): ++++++++++[->+++++++>++++>++++++++++>+++>+<<<<<]>++.>>+.+++++++..+++.<++++.>>++.<++++++++.--------.+++.------.--------.>+.>. < 1194179929 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194179950 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf ->++>+++>+>+>+++>>>>>>>>>>>>>>>>>>>>+>+>++>+++>++>>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>>+++>>+++>>>>>+++>+>>>>>>>>>++>+++>+++>+>>+++>>>+++>+>++>+++>>>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>>>+++>+>++>+++>++>>+>+>++>+++>+>+>>+++>>>>>+++>+>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+++>>++[[>>+[>]++>++[<]<-]>+[>]<+<+++[<]<+]>+[>]++++>++[[<++++++++++++++++>-]<+++++++++.<]++++++++++. < 1194179953 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :->++>+++>+>+>+++>>>>>>>>>>>>>>>>>>>>+>+>++>+++>++>>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>>+++>>+++>>>>>+++>+>>>>>>>>>++>+++>+++>+>>+++>>>+++>+>++>+++>>>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>>>+++>+>++>+++>++>>+>+>++>+++>+>+>>+++>>>>>+++>+>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+++>>++[[>>+[>]++>++[<]<-]>+[>]<+<+++[<]<+]>+[>]++++>++[[<++++++++++++++++>-]<++ < 1194179968 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :->++>+++>+>+>+++>>>>>>>>>>>>>>>>>>>>+>+>++>+++>++>>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>>+++>>+++>>>>>+++>+>>>>>>>>>++>+++>+++>+>>+++>>>+++>+>++>+++>>>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>>>+++>+>++>+++>++>>+>+>++>+++>+>+>>+++>>>>>+++>+>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+++>>++[[>>+[>]++>++[<]<-]>+[>]<+<+++[<]<+]>+[>]++++>++[[<++++++++++++++++>-]<+++++++++.<]++++++++++. < 1194179980 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf ->++>+++>+>+>+++>>>>>>>>>>>>>>>>>>>>+>+>++>+++>++>>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>>+++>>+++>>>>>+++>+>>>>>>>>>++>+++>+++>+>>+++>>>+++>+>++>+++>>>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>>>+++>+>++>+++>++>>+>+>++>+++>+>+>>+++>>>>>+++>+>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+++>>++[[>>+[>]++>++[<]<-]>+[>]<+<+++[<]<+]>+[>]++++>++[[<++++++++++++++++>-]<+++++++++.<]++++++++++. < 1194179984 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :->++>+++>+>+>+++>>>>>>>>>>>>>>>>>>>>+>+>++>+++>++>>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>>+++>>+++>>>>>+++>+>>>>>>>>>++>+++>+++>+>>+++>>>+++>+>++>+++>>>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>>>+++>+>++>+++>++>>+>+>++>+++>+>+>>+++>>>>>+++>+>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+++>>++[[>>+[>]++>++[<]<-]>+[>]<+<+++[<]<+]>+[>]++++>++[[<++++++++++++++++>-]<++ < 1194180127 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :maybe egobot has a line length limit? < 1194180236 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf >>>++++++++++++++++++++++++++++++++++++++++<<<++++[>++++++++++[>++++++++++[>.<-]<-]<-] < 1194180240 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( < 1194180241 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194180260 0 :oklopol!i=oko@194.251.101.183 JOIN :#esoteric < 1194180276 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Yup. 381 characters. < 1194180290 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :That quine is 392. < 1194180292 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :make it shorter then ;) < 1194180298 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1194180304 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :You. < 1194180307 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1194180425 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf < 1194180440 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf < 1194180444 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Hm, that doesn't work. < 1194180514 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf [ < 1194180534 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++++++++++++++++++++++++++++++++++++++++++++. < 1194180538 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194180548 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :!bf ] < 1194180554 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf_textgen Hello, world! < 1194180557 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1194180563 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf_txtgen Hello, world! < 1194180579 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1194180584 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1194180585 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl < 1194180618 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :121 +++++++++[>++++++++>+++++++++++>+++++><<<<-]>.>++.+++++++..+++.>-.------------.<++++++++.--------.+++.------.--------.>+. [205] < 1194180628 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :uh that one is stupid >< < 1194180706 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ah it doesn't include the newline < 1194180706 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194180720 0 :oklopol!i=oko@194.251.101.183 JOIN :#esoteric < 1194181142 0 :ololobot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194181542 0 :RedDak!n=dak@host107-85-dynamic.10-87-r.retail.telecomitalia.it JOIN :#esoteric < 1194182647 0 :oklopl!i=oko@194.251.101.183 JOIN :#esoteric < 1194182837 0 :oklopl!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194182840 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194182901 0 :oklopol!n=oko@194.251.101.183 JOIN :#esoteric < 1194183227 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf +++++++++++++++[->+++++>+++++++>++++++++>++>+++<<<<<]>---.>----.+++++++..+++.>>>-.<++.<-.<.>-----.<---.--------.>>+. < 1194183229 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194183241 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :my best one without \n so far < 1194183293 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf +++[->+++++<]>[->+++++>+++++++>++++++++>++>+++<<<<<]>---.>----.+++++++..+++.>>>-.<++.<-.<.>-----.<---.--------.>>+. < 1194183297 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194183304 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and some manual tweeking makes it even better < 1194183504 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194183592 0 :oklopol!i=oko@194.251.101.183 JOIN :#esoteric < 1194184139 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194184148 0 :RedDak!n=dak@host107-85-dynamic.10-87-r.retail.telecomitalia.it JOIN :#esoteric < 1194184733 0 :RedDak!unknown@unknown.invalid QUIT :"I'm quitting... Bye all" < 1194185197 0 :RedDak!n=dak@host107-85-dynamic.10-87-r.retail.telecomitalia.it JOIN :#esoteric < 1194185910 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf +++++++[->++++++[->++>++>+<<<]>-->+++>-[<]<]>>++.>.>--. < 1194185914 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hi! < 1194187237 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++++++[->+++++[->+>++>++>++>+<<<<<]>++>>+>++>->+++[<]<]>>++.>+.>--..+++.>>++++.>++.<<-.<.>-----.<---.<-.>>>>+. < 1194187242 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194187245 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but without newline < 1194187430 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf 113 (134): ++++++++[->+++++[->++>++>+++>+>+<<<<<]>->+++>>-[<]<]>>.>---.+++++++..+++.>>>++++.<.<-.<.>-----.<---.--------.>>+. < 1194187434 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194187861 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++[->++++++[->++>+++>+++>+++>+>+<<<<<<]>>->>++>+[<]<]>>.>-.>..+++.>>++.>----.<<-.<.>-----.<---.<-.>>>>+. < 1194187864 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194188042 0 :pikhq!n=pikhq@209.248.125.179 JOIN :#esoteric < 1194188273 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :with newline: < 1194188275 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf 119 (136): ++++++[->+++++[->++>+++>+++>+<<<<]>>->>+>++[<]<]>>.>-.>..+++.>++.------------.<++++++++.--------.+++.------.<-.>>+.>--. < 1194188278 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :+++++[->++>+++>+++>+<<<<]>>->>+>++[<]<]>>.>-.>..+++.>++.------------.<++++++++.--------.+++.------.<-.>>+.>--. < 1194188330 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :++++[->++>+++>+++>+<<<<]>>->>+>+[<]<]>>.>++.>..+++.>-.------------.<++++++++.--------.+++.------.<-.>>+.>+. < 1194188398 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194188401 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :better :) < 1194188548 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :not shorter than dbc's but it takes only 15 secs to generate that < 1194188748 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :wait dbc's generates a different output < 1194188784 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :yeah i'm getting that down to 106 bytes too ^^ < 1194188891 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but that seems to be some magicall limit < 1194188920 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it reaches 106 pretty fast and then stalls < 1194189053 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf +++++++++[->++++[->++>+++>+++>+<<<<]>>>->>+[<]<]>>.>>++.<..+++.>>----.+++.<.<++++.----.+++++.>.<--.>++++.------.>--.>+. < 1194189058 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello #esoteric! < 1194189356 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194189369 0 :oklopol!i=oko@194.251.101.183 JOIN :#esoteric < 1194191256 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194191327 0 :oklopol!i=oko@194.251.101.183 JOIN :#esoteric < 1194191610 0 :oklopl!i=oko@194.251.101.183 JOIN :#esoteric < 1194191642 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194191958 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf +++++[->+++++[->++>++<<]>->>++[<]<]>>>+.<+.+++.>+.<.>+.++++.<+.++++.-.--.++.+++.>.<-.>.>. < 1194191962 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :3.14159265358979 < 1194192171 0 :Nucleo!unknown@unknown.invalid QUIT :"Snak 5.3.1 IRC for Macintosh - http://www.snak.com" < 1194192517 0 :oklopl!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194192523 0 :oklopol!i=oko@194.251.101.183 JOIN :#esoteric < 1194192975 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194193061 0 :oklopol!i=oko@194.251.101.183 JOIN :#esoteric < 1194193176 0 :ehird`!n=test@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194193592 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194193681 0 :oklopol!i=oko@194.251.101.183 JOIN :#esoteric < 1194193814 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194193983 0 :oklopol!i=oko@194.251.101.183 JOIN :#esoteric < 1194194583 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194194743 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1194195325 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :I borrowed the exact output text from Urban Müller's hello world. < 1194195456 0 :oklopol!n=oko@194.251.101.183 JOIN :#esoteric < 1194195502 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :(capital W and no comma, that is) < 1194195586 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: hello < 1194195706 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :dbc: i'm able to get down to 106 bytes with that too... but not smaller < 1194195721 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :dbc: true hello world is: Hello, world! < 1194195722 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1194195781 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf 106 (127): ++++++++[->++++[->++>+++>+++>+<<<<]>+>->+>>+[<]<]>>.>>---.+++++++..+++.>.<<-.>.+++.------.--------.>+.>++. < 1194195784 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello World! < 1194195786 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :that's my version < 1194195800 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :!bf_txtgen Hello, world! < 1194195810 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1194195814 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1194195816 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl < 1194195818 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :!bf_txtgen x < 1194195822 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: it takes some time < 1194195832 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and it doesn't include the final newline < 1194195836 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :does it not? < 1194195837 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1194195862 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :35 ++++++++++++[>++++++++++>>><<<<-]>. [43] < 1194195866 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :117 ++++++++++++++[>+++++>+++++++>++>+++<<<<-]>++.>+++.+++++++..+++.>>++.<++++.<++++++++.--------.+++.------.--------.>+. [691] < 1194195874 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :... the second one is x < 1194195880 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hello world is tiny and "x" is huge XD < 1194195892 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wiat < 1194195892 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no < 1194195895 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the former is x < 1194195960 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf 118 (140): +++++++++[->++++[->++>+++>+++>+>+<<<<<]>>->>+>>+[<]<]>>.>++.>..+++.>-.>----.<<++++++++.--------.+++.------.<-.>>>+.>+. < 1194195964 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194195966 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :with final newline < 1194196032 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf 116 (160): +++++++++[->++++[->++>+++>+++>+++>+<<<<<]>>->>+>+>+[<]<]>>.>++.>..+++.>>-.------------.<++.<.>-----.<---.<-.>>>+.>+. < 1194196036 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1194196099 0 :RodgerTheGreat!n=Rodger@wads-5-232-170.resnet.mtu.edu JOIN :#esoteric < 1194196169 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi, everyone! < 1194196358 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf ++++++++[->+++++[->>++>+++>+++>+>+>++<<<<<<<]>+>->->-->+>-[<]<]>>>.>>+.>----.>.>++.<<<<-.>-----.+++.--.<+++.>>>>++.<<<+++.---.<<-.>.>.----.<++.<<++. < 1194196362 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hi, RodgerTheGreat < 1194196367 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1194196414 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :wahoo got a new shorter hello world!!! < 1194196429 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :106 was the old record right? < 1194196447 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :!bf 104 (109): ++++++[->++++++[->++>+++>+++>+>++<<<<<]>>->>->++>++[<]<]>>.>-.>..+++.>++.>+++.<<.+++.------.<-.>>+.>>--. < 1194196451 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Hello World! < 1194196458 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I dunno < 1194196470 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :don't most of them generate the string "Hello, World!" ? < 1194196491 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: the 106 byte version generates "Hello World!" same for the original bf hello world (according to dbc) < 1194196512 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and most generate "Hello, world!\n" this one generates "Hello World!\n" < 1194196557 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :"Hello, world!\n" is grammatically and unixly correct < 1194196576 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but i was trying to get shorter than dbc's so i have to use the same output < 1194196581 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :unless Hello World is a name or title < 1194196582 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: agreed < 1194196625 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what to name the equality predicate in his lisp < 1194196629 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :eq, equals, =? < 1194196663 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :equ? < 1194196685 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :sounds foreign < 1194196699 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(eq 1 2) (equals 1 2) (= 1 2) < 1194196716 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(eq '(1 2) '(3 4)) (equals '(1 2) '(3 4)) (= '(1 2) '(3 4)) < 1194196747 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: it's a rather 'unique' lisp in that it's implemented in Python but I wrote my own GC ;D < 1194196763 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :equ is what I use in several of my languages < 1194196772 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1194196793 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's a rather dumb stop-the-world mark and sweep gc < 1194196805 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it runs every 200 object allocations. < 1194196950 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it'd be interesting if you exposed some of the GC's parameters to programs < 1194196958 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :like what < 1194196982 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :like the number of object allocations it waits for < 1194196995 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1194197007 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :IMO the gc is an implementation detial < 1194197009 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :*detail < 1194197009 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1194197018 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(so is memory allocation) < 1194197034 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I suppose, but you could allow for greater performance tweaking < 1194197096 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :dude < 1194197098 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it runs on python < 1194197104 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194197105 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the gc cant even free because you can't free in python < 1194197109 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it just removes it from the big list < 1194197114 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :which python's gc eventually collects < 1194197118 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's sloooooow < 1194197119 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1194197121 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> 2 < 1194197121 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194197127 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (+ 5 4 1) < 1194197129 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :10 < 1194197134 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (/ 1 0) < 1194197135 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) divide by zero < 1194197137 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (/ 0 1) < 1194197137 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194197155 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (eq 1 1) < 1194197155 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1194197157 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (eq 1 0) < 1194197157 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194197160 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (eq 1 1 1 1) < 1194197160 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1194197161 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (eq 1 1 1 1 0) < 1194197162 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194197204 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def fact (n) (if (eq n 1) 1 (* n (fact (- n 1))))) < 1194197205 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:83 < 1194197212 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (fact 1) < 1194197213 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194197216 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1194197224 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1194197228 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it caused the gc to die < 1194197229 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah, i see < 1194197232 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i have a bug in the gc < 1194197266 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194197267 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def fact (n) (if (eq n 1) 1 (* n (fact (- n 1))))) < 1194197267 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:41 < 1194197270 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (fact 1) < 1194197272 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194197276 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :... wow < 1194197280 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it went on a gc spree < 1194197290 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :doing god knows what < 1194197403 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :let's try taht again :) < 1194197406 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194197408 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def fact (n) (if (eq n 1) 1 (* n (fact (- n 1))))) < 1194197408 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:41 < 1194197411 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (fact 1) < 1194197417 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194197423 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :maximum recursion depth < 1194197423 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1194197459 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :debug time < 1194197467 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194197468 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def fact (n) (if (eq n 1) 1 (* n (fact (- n 1))))) < 1194197468 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:41 < 1194197477 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (fact 1) < 1194197482 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194197512 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :... < 1194197512 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Call #function:41 with [-29] < 1194197512 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :... < 1194197514 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmmmmmmmmmmmmmmmmmmmmmmmmmm :P < 1194197530 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194197538 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def isone (n) (eq n 1) < 1194197539 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unmatched ( < 1194197542 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def isone (n) (eq n 1)) < 1194197542 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:38 < 1194197545 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (isone 1) < 1194197545 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194197550 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :loooooooooooooooooooooooooooooool? < 1194197562 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (eq 1 1) < 1194197562 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1194197567 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Nonsensical < 1194197593 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1194197595 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194197598 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :silly me < 1194197606 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194197607 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (def fact (n) (if (eq n 1) 1 (* n (fact (- n 1))))) < 1194197607 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#function:41 < 1194197610 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (fact 1) < 1194197610 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1194197617 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (fact 2) < 1194197618 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194197619 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (fact 4) < 1194197620 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :24 < 1194197631 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (fact 10) < 1194197632 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :3628800 < 1194197637 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wow, that's pretty fast < 1194197650 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (fact 30) < 1194197651 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :265252859812191058636308480000000L < 1194198073 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> evak < 1194198073 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: evak < 1194198075 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> eval < 1194198075 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :#native-function:13 < 1194198077 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (eval 2) < 1194198077 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194198078 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (eval '2) < 1194198079 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: '2 < 1194198086 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (eval (quote (eval 2))) < 1194198086 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(eval 2) < 1194198226 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194198247 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194198249 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (eval (quote (eval 2))) < 1194198249 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194198416 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194198438 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194198443 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (set a 2) < 1194198443 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) unbound: a < 1194198453 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (define a 2) (set a 5) a < 1194198454 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194198523 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (or 0 0 0 2) < 1194198523 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194198526 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1194198536 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194198553 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194198564 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194198582 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (or 0 0 0 2) < 1194198582 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194198587 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (or 2 0) < 1194198587 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194198590 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> 02 < 1194198591 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194198595 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (and 0 0) < 1194198596 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194198598 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (and 1 0) < 1194198598 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1194198600 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1194198620 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194198631 0 :lithpbot!n=lithp@user-544158a3.l5.c5.dsl.pol.co.uk JOIN :#esoteric < 1194198678 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (and 1 0) < 1194198678 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194198680 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (and 1 1) < 1194198681 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :1 < 1194198685 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (and 1 2) < 1194198685 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1194199065 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :> (and 0 2) < 1194199066 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194199071 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :> (and 0 (/ 1 0)) < 1194199071 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194199075 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1194199078 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that should give an error < 1194199082 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't < 1194199082 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (/ 1 0) < 1194199082 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :(err) divide by zero < 1194199087 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :> (and 0 (/ 1 0)) < 1194199088 0 :lithpbot!unknown@unknown.invalid PRIVMSG #esoteric :0 < 1194199089 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1194199092 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the error should bubble up < 1194199093 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :(at least i expect and to short cut) < 1194199098 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194199098 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :right < 1194199099 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194199104 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you're right < 1194199105 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194199194 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'm silly < 1194199205 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'm naming my auto-saving-to-disk InterpreterState replacement AutoPickleIntepreterState3000 :) < 1194199708 0 :lithpbot!unknown@unknown.invalid QUIT :Remote closed the connection < 1194200386 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :72/XEKOIE9yBDG3+6m8G8UrDt0Tm9iNTWg < 1194201190 0 :jix!unknown@unknown.invalid QUIT :Nick collision from services. < 1194201200 0 :jix!n=jix@dyndsl-091-096-034-157.ewe-ip-backbone.de JOIN :#esoteric < 1194201736 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :back < 1194201745 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: whut < 1194201946 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lisp object = symbol | cons pair | string | number, right? < 1194202022 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :function < 1194202028 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :vector < 1194202030 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :port < 1194202048 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah yes, lambda < 1194202058 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i think i can pass on vectors :| < 1194202063 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ports, maybe, but probably not needed < 1194202067 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :null < 1194202075 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :nil is the empty list < 1194202078 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :But yeah < 1194202088 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and you didn't have lists < 1194202115 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah well < 1194202118 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lists = cons pairs < 1194202120 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :though i may change that < 1194202124 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wrong < 1194202128 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :null isn't a pair < 1194202133 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lists = well formed cons pairs + nil < 1194202145 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1194202151 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :although, i may represent them as python lists [1,2,3] < 1194202157 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :cheaper than linked list operations < 1194202164 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(Though the slicing for cdr would be slow. < 1194202194 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :boolean, symbol, char, vector, procedure, pair, number, string, port < 1194202202 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :are scheme's types < 1194202213 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :+ null < 1194202247 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :scheme != list < 1194202248 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194202250 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :er < 1194202251 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1194202252 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lisp < 1194202255 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :scheme != lisp < 1194202260 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it is a lisp dialect < 1194202262 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :right, scheme \subset lisp < 1194202267 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1194202271 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's a superset and a subset < 1194202279 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :scheme \wonky-thing lisp < 1194202289 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :"lisp" is nothing but dialects < 1194202296 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1194202304 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :not in the 70s! < 1194202325 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yes... < 1194202360 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but anyway, i'm not sure i need booleans < 1194202367 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if NIL is false and everything else is true < 1194202375 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(i guess T will be a self-evaluating symbol too) < 1194202387 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah, cl doesn't have booleans < 1194202392 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :then again < 1194202395 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :I find nil/t kind of ugly < 1194202400 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :#t and #f is much nicer < 1194202411 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how does scheme do characters? the syntax < 1194202425 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :#\ < 1194202436 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :is that related to #t and #f in any way? < 1194202443 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :? < 1194202467 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the syntax < 1194202481 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :sure, the both start with # < 1194202490 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i mean conceptually < 1194202490 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194202497 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1194202522 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :vectors start with # too < 1194202530 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i've never got why scheme needed vectors < 1194202540 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :uhhhhhhh < 1194202545 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i mean natively < 1194202552 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :they don't seem important enough to become a core type < 1194202564 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :because there's no way to implement any O(1) access time collections without them < 1194202570 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1194202588 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so basically vectors are an implementation detail kind of thing < 1194202597 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no... < 1194202599 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :'our lists aren't arrays of memory, but we have a vector that is!' < 1194202862 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :anyway, let's see < 1194202869 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i think i need ports, so < 1194202889 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :SYMBOL, CONS, STRING, NUMBER, PORT, NIL < 1194202897 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: do you really think anything else is useful? < 1194202916 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :chars, vectors < 1194202927 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh, booleans too < 1194202929 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok, and chars < 1194202936 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but i really don't know why i would want vectors? < 1194202944 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :can you tell me a situation where they are really infinitely useful? < 1194202954 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :but really all you need to implement at first is pairs, symbols and fucntions < 1194202973 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you can't implement hash tables, arrays without vectors < 1194202980 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok, i guess < 1194202991 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no collection can have better than linear time indexing < 1194202999 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :a vector is just a list that is an array of memory, right? nothing extra? < 1194203016 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a vector is a C array < 1194203025 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :right < 1194203026 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a list with linear time indexing < 1194203032 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :*constant < 1194203073 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :anyway, i know the standard functions for lists (car, cdr, cons, set-cdr, set-car, etc.) and numbers (well duh), but what about for ports and vectors? < 1194203077 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :what are the standard functions and their names? < 1194203098 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :write-char, read-char < 1194203126 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1194203130 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :what about vectors? < 1194203145 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :call-with-input-port, call-with-output-port for opening files < 1194203163 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :wait, is that for vectors? < 1194203164 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :vector-ref, vector, make-vector, vector-set! < 1194203168 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1194203176 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i think I will start with these: < 1194203184 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :SYMBOL, CONS, STRING, CHAR, NUMBER, BOOLEAN, FUNCTION, NIL < 1194203189 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'll leave out ports and vectors until later < 1194203306 0 :sebbu2!n=sebbu@ADijon-152-1-63-110.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1194203531 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: do you think my errors should be first-class? < 1194203539 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i could do things like implement try-catch then < 1194203591 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :o < 1194203603 0 :oklopol!unknown@unknown.invalid PART #esoteric :? < 1194203603 0 :oklopol!n=oko@194.251.101.183 JOIN :#esoteric < 1194203613 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION needs logs... < 1194203624 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: hello < 1194203631 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i'm rewriting my lisp, again < 1194203632 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but cleanl < 1194203633 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :y < 1194203646 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i ditched multiple classes, now I just have a LispObject class < 1194203693 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe, i see < 1194203700 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but now logs. < 1194203730 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194203842 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: any opinions? < 1194204118 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: :S < 1194204313 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :finally < 1194204334 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i guess i should start skipping the debugging parts of logs :) < 1194204391 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: haha < 1194204419 0 :sebbu!unknown@unknown.invalid QUIT :Connection timed out < 1194204472 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: should i make lisp errors first-class lisp objects? < 1194204523 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: or... nothing < 1194204527 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i.e. just python exceptions < 1194204531 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lisp objects would be cooler :P < 1194204647 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i like having errors first class < 1194204655 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in numbda, some syntax errors are first class. < 1194204678 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can do (8 8) + 4 < 1194204682 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :8 8 is a syntax error < 1194204696 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :error evaluates to 0 < 1194204723 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lmao < 1194204728 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no i mean < 1194204733 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know what you mean < 1194204733 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it still throws by default < 1194204738 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but you can catch it < 1194204740 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and manipulate it in lisp < 1194204744 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1194204838 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :does your lisp have floats or whatever? < 1194204839 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :or just ints < 1194204901 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, i'm pretty sure it doesn't have floats if it doesn't have strings < 1194204904 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but not sure < 1194204952 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: should i have error types and descriptions or just errors < 1194204955 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :something like < 1194204968 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :"type=int-error, message=divide by zero" < 1194204978 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :instead of just "message=divide by zero" < 1194205002 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just make one error type unless you have a more flexible type system overall < 1194205008 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err i mean extendable < 1194205033 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't see any point making error types really < 1194205041 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :unless you can define your own < 1194205052 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since you can't pattern match on them or anything < 1194205056 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also asdfasdfasdfasdfasdfasdfasd < 1194205078 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tomorrow, test @ university, and i still gotta return my demos tonight. < 1194205093 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm so tired i can barely keep my eyes opn < 1194205101 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*nop < 1194205104 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :x < 1194205105 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :D < 1194205107 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :*xD < 1194205308 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also, for some reason i'm going to watch a few episodes of south park first. < 1194206121 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: are characters automatically casted to strings in scheme? < 1194207714 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: otools, what is it < 1194208411 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :otools is something i use for parsing < 1194208436 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it basically does tokenization, and there may be an infix parser, don't remember < 1194208464 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194208470 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it provides my Itr class < 1194208478 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's basically StringIO < 1194208513 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :made my own, stringio lacked something, don't remember what < 1194208519 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :.curr() < 1194208524 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :anyway, i'm writing a "tokentools" right now :) < 1194208529 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it does tokenization and also some parsing helpers < 1194208543 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :e.g. an accept([tok,tok,tok...]) method < 1194208561 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what i'd actually like is something like StringTokenizer in java < 1194208583 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although you could improve it a lot. < 1194208594 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :mine is kind of like that < 1194208610 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's very flexible as far as where it splits actually < 1194208626 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you give it a function to tell it whether a character is a splitter or not < 1194208634 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and also ignores multiple splitters in a row < 1194208642 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err kay... < 1194208653 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :basically it tokenizes and helps a lot with parsing < 1194208663 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why not give it a regexp representing a token? < 1194208668 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and split by that. < 1194208689 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :because you can pass it str.isspaec < 1194208692 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :*isspace < 1194208693 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1194208702 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :k < 1194208711 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you can't do like 4+5 < 1194208720 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or even (4 + 5) < 1194208729 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah you can < 1194208733 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194208734 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see. < 1194208739 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well not relaly < 1194208739 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lambda x: x.isspace() or x == "+" < 1194208742 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*really < 1194208752 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::O < 1194208769 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so... 4+5 would be ["4", "5"] and ignore the addition symbol? < 1194208794 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1194208797 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1194208802 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok, it'll hvae < 1194208803 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or alternatively you'd have "4 5" be tokenized into ["4", " ", "5"], in case you save the separators as well < 1194208806 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :splittokens and ignoretokens < 1194208821 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think you need to think this through a bit ;) < 1194208822 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Tokenizer(blah, x.isspace, lambda x: x == "+") < 1194208822 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1194208829 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :of course depends what you wanna use it for. < 1194208833 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :+ is a splitter and gets added on < 1194208834 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :isspace isn't < 1194208897 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :seems a bit hacky to me, but it seems to work for most grammars < 1194208902 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm hmm < 1194208921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, yeah, the demos < 1194208930 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure if that's the right word < 1194208950 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1194208953 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how should i do it then < 1194208958 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :to make 5+4 work < 1194208979 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yours will actually tokenize most things correct. < 1194209013 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how should i do it though in your opinion < 1194209013 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1194209020 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the problem with not using regexes is stuff that can be of any length naturally can't be parsed trivially, like numbers & identifiers < 1194209033 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but you rarely have those next to each other without a space in between < 1194209054 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the only stuff not always separated by ws are operators and parens, i think < 1194209073 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and what you thought of making actually parses that quite nicely < 1194209075 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*tokenizes < 1194209099 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how about i just return delimiters < 1194209103 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :seems ok, no? < 1194209104 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not telling you what to do, just analyzing that for fun; also, demos < 1194209107 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1194209115 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :java lets you do that < 1194209118 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just return delimiters? < 1194209124 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1194209126 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :new StringTokenizer(blah, "abc", true) < 1194209132 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :third optional parameter is returnDelims < 1194209137 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that's how you would e.g. parse sexprs < 1194209137 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so < 1194209142 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i'll just return 'em < 1194209145 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's not hard to do < 1194209150 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if tok.isspace(): continue < 1194209217 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: seems flexible enough, no? < 1194209243 0 :RedDak!n=dak@host107-85-dynamic.10-87-r.retail.telecomitalia.it JOIN :#esoteric < 1194209244 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :very seems. < 1194209250 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wanna do my demos for me? < 1194209262 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :demos? < 1194209288 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :these exercises we gotta do at home and demonstrate for the whole calssa < 1194209291 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :...class < 1194209302 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1194209330 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: your lisp doesn't do tail recursion < 1194209334 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1194209344 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i couldn't think of a trivial way to do that < 1194209357 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well... < 1194209371 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can now, i prolly could then too, but was too lazy even for that < 1194209378 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :while last_caller == self: ... < 1194209382 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :or rather < 1194209384 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :at the end < 1194209389 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1194209390 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if eval(car) == self < 1194209395 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :then do nothing < 1194209397 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :else break < 1194209400 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :all wrapped in a while True: < 1194209407 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, you do know when tail recursion applies? < 1194209416 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1194209420 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or was that just a simplification < 1194209421 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :prolly. < 1194209424 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :when you're at the end and there's a list with eval(car) == sel < 1194209424 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :f < 1194209432 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :end = end of execution, not function < 1194209433 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :almost. < 1194209504 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can just as well have circular recursion, and still have tail recursion < 1194209520 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in fact, in some languages, you don't even need to recurse and still have tail recursion. < 1194209539 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you can do code generation @ runtime < 1194209594 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm gonna start soon. < 1194209610 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why not now... < 1194209631 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :because you're bored < 1194209634 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and lazy < 1194209650 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not bored < 1194209663 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :lazy then < 1194209669 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that goes without saying < 1194209713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :glah, okay, i *have* to start them now; and i will! -> < 1194209773 0 :Sgeo!n=Anonymou@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1194209904 0 :dak!n=dak@host107-85-dynamic.10-87-r.retail.telecomitalia.it JOIN :#esoteric < 1194209938 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION loves doing ascii karnaugh maps... < 1194209994 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i thought you were starting them < 1194210014 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i did < 1194210021 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that what the karnaugh map is for < 1194210028 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1194210029 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194210193 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand why we have to do this stuff, base-10 addition is harder than boolean algebra < 1194210225 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :well i find base-10 addition really hard! i have 8 fingers! < 1194210335 0 :RedDak!unknown@unknown.invalid QUIT :No route to host < 1194210356 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cül < 1194214210 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1194214258 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1194214696 0 :dak!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194216237 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1194216701 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hi oerjan < 1194216763 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cleans up 10,000 blue voting credits < 1194216824 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1194216940 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I suppose no one's going to work on PSOX for me? lol < 1194216957 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :i thought you were so infatuated with it all you did was work on it :p < 1194216967 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has become distracted from it :( < 1194217931 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1194217945 0 :oklopol!i=oko@194.251.101.183 JOIN :#esoteric < 1194218401 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has removed 10,000 blue voting credits from 10,000 CFJs < 1194218428 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Shoobadafa. < 1194218582 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is it possible to do a crossing in wireworld? < 1194218614 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i remember trying to do it some time ago, but forgot to ask here where someone might actually know < 1194218826 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: my lisp is going to have loads more things in this incarnation < 1194218846 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :currently i have symbol, cons, string, character, number, boolean, procedure, primitive, error, nil < 1194218851 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and i plan to add port and vector < 1194218913 0 :sebbu2!unknown@unknown.invalid QUIT :"@+" < 1194219022 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :bindings[LispObject(SYMBOL, "prim_name")] = LispObject(PRIMITIVE, prim_func, (min, max)) # is a bit ugly though < 1194219347 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and you use port for..? < 1194219361 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1194219362 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :scheme ports < 1194219365 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i actually don't know what that is in lisp at all, perhaps i should check instead of guessing. < 1194219367 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :stdin, stdout, files, streams, ... < 1194219372 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, i did know < 1194219373 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :basically it's a stream < 1194219378 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :a socket would also be a port, for example < 1194219386 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah i guessed then < 1194219400 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyways, what are you using them for? < 1194219401 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hey < 1194219420 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :um < 1194219420 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just realized your lisp isn't made just for an irc bot, i just wanted you to put it on one. < 1194219421 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :ports < 1194219421 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194219427 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and yeah < 1194219428 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1194219435 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm a slow realizer. < 1194219445 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :this time i'm going to create a seperate program for the bot < 1194219448 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i couldn't make one of the assignments :<< < 1194219450 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and make it call out to the lisp one < 1194219452 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :exercises < 1194219453 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whatever < 1194219464 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that's bettah < 1194219465 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :so i don't add irc-specific stuff to the interp < 1194219469 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and also if it crashes < 1194219470 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the bot doesn't < 1194219871 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: you could create an irc module or something to load < 1194219929 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: possibly < 1194219933 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :but, meh