< 1269907502 0 :sebbu2!~sebbu@ADijon-152-1-38-23.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1269907505 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1269907523 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1269907932 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1269907955 0 :werdan7_!unknown@unknown.invalid NICK :werdan7 < 1269908539 0 :sebbu!~sebbu@ADijon-152-1-22-149.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1269909869 0 :sshc!~sshc@unaffiliated/sshc JOIN :#esoteric < 1269911949 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1269912069 0 :dev_squid!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1269912157 0 :cheater2!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1269912798 0 :oklofok!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1269912821 0 :oklopol!~oklopol@a91-153-122-35.elisa-laajakaista.fi JOIN :#esoteric < 1269912853 0 :dev_squid!~dev_squid@cpe-075-182-022-108.sc.res.rr.com JOIN :#esoteric < 1269914234 0 :sebbu2!~sebbu@ADijon-152-1-6-215.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1269914275 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 268 seconds < 1269914278 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1269914432 0 :oerjan!unknown@unknown.invalid QUIT :Quit: Good night < 1269914919 0 :dev_squid!unknown@unknown.invalid QUIT :Ping timeout: 258 seconds < 1269919012 0 :dev_squid!~dev_squid@cpe-075-182-022-108.sc.res.rr.com JOIN :#esoteric < 1269919148 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1269919889 0 :Oranjer!unknown@unknown.invalid PART #esoteric :? < 1269923093 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1269923189 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1269924750 0 :dev_squid!unknown@unknown.invalid QUIT : < 1269930877 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1269931117 0 :MizardX!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1269931155 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1269931567 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1269932644 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1269932807 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1269935406 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1269935999 0 :clog!unknown@unknown.invalid QUIT :ended < 1269936000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1269936378 0 :kar8nga!~kar8nga@91.35.72-86.rev.gaoland.net JOIN :#esoteric < 1269937573 0 :FireFly!unknown@unknown.invalid QUIT :Quit: Leaving < 1269939984 0 :coppro!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1269942363 0 :cheater2!~cheater@ip-80-226-23-27.vodafone-net.de JOIN :#esoteric < 1269943028 0 :adam_d!~Adam@aast43.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1269943066 0 :cheater3!~cheater@ip-80-226-238-186.vodafone-net.de JOIN :#esoteric < 1269943203 0 :cheater2!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1269943337 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1269944150 0 :oklopol!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1269944166 0 :oklopol!~oklopol@a91-153-122-35.elisa-laajakaista.fi JOIN :#esoteric < 1269944805 0 :lereah_!~lereah@nanpc301.in2p3.fr JOIN :#esoteric < 1269945303 0 :kar8nga!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1269945398 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1269946910 0 :adam_d!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1269947709 0 :oklofok!~oklopol@a91-153-122-35.elisa-laajakaista.fi JOIN :#esoteric < 1269947711 0 :oklopol!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1269948086 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1269952156 0 :kar8nga!~kar8nga@91.35.72-86.rev.gaoland.net JOIN :#esoteric < 1269952342 0 :Tritonio_GR!~Tritonio@ix.ceid.upatras.gr JOIN :#esoteric < 1269952932 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1269954309 0 :MigoMipo!~3e779bfd@gateway/web/freenode/x-wwhvwomfpivezvka JOIN :#esoteric < 1269954497 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1269954561 0 :adam_d!~Adam@aast43.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1269954729 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1269957263 0 :lereah_!unknown@unknown.invalid QUIT :Remote host closed the connection < 1269957497 0 :adam_d!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1269957549 0 :lereah_!~lereah@nanpc301.in2p3.fr JOIN :#esoteric < 1269959390 0 :MizardX!~MizardX@unaffiliated/mizardx JOIN :#esoteric < 1269960009 0 :MizardX!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1269960123 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1269961034 0 :adam_d!~Adam@aast43.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1269961716 0 :MigoMipo!unknown@unknown.invalid QUIT :Quit: Page closed < 1269962242 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1269962264 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*pin dropping* < 1269962512 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I didn't hear anything, the join-quit noise is so loud. < 1269962612 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and there's such a terrible lasting echo < 1269962625 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, can anyone here think of a decent way to parse reverse-polish using Parsec? < 1269962644 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :at the moment, I'm reversing the input string then parsing the resulting forward-polish, but the resulting error messages are ridiculous < 1269962694 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :like forth? < 1269962730 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: or Confloddle, which is what I'm trying to implement atm < 1269962734 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Forth isn't really parsed < 1269962763 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm that does sound weird to do without a stack < 1269962764 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(incidentally, Confloddle can be cut down from 5 to 4 characters trivially; it turns out that you can deduce the location of every < in the program even if it's not stated) < 1269962849 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i suppose you'd like to detect stack underflows at the spot? < 1269962867 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(so I'm considering making the character set just re@: where @ is > and the location of the < is implied) < 1269962871 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: hmm, maybe < 1269962888 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :both bottom-up parsers and LR(1) parsers don't have a problem with this sort of thing, although they both use stacks internally < 1269963007 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes this is a left-recursion problem isn't it < 1269963018 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1269963024 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the obvious way to write it in Parsec gives you an infinite loop < 1269963034 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've been considering just writing a parser by hand < 1269963350 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you can do the reversing while parsing instead of before at least, maybe that gives better messages? < 1269963365 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: how? < 1269963424 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1269963656 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :parseRest l = do (t <- token; let a = noArgs t; guard (length l >= a); parseRest (apply t (take a) l : drop a l)) <|> ...finished... < 1269963661 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :something like that < 1269963705 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, that's confusing < 1269963732 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you just pass in what's parsed so far, and apply to arguments immediately < 1269963762 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*(reverse $ take a), probably < 1269963779 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*(reverse $ take a l), probably < 1269963786 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1269963812 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that l should have been inside the parentheses to start with < 1269963844 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it might be a good idea to split on whether t takes arguments or not < 1269963886 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh and noArgs is numberOfArgs, not absense < 1269963942 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is it still confusing? < 1269963977 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to figure out why you care about the number of args of the first token < 1269964009 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's not the first token, parseRest l is applied recursively to get each token < 1269964027 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(well it's the first token too, called as parseRest []) < 1269964034 0 :Asztal!~asztal@host86-156-103-118.range86-156.btcentralplus.com JOIN :#esoteric < 1269964036 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: hmm, l is the list of tokens you've seen so far? < 1269964047 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm starting to see how that works now, but it's still really unintuitive to me < 1269964056 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not just tokens, collected expressions < 1269964079 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1269964139 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it essentially does a parsing using a stack, just inside parsec < 1269964175 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in which case you may as well write it by hand and make it clearer < 1269964213 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, it's just to get parsec's error messages (and it's just a sketch) < 1269964282 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that guard should be replaced with something with a proper underflow error message < 1269964323 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"t applied to too few arguments" and i suppose parsec provides the position < 1269964344 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, perhaps you could just use fail? < 1269964490 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, that looks like the right thing for user-generated ones < 1269964615 0 :ais523!unknown@unknown.invalid QUIT :Remote host closed the connection < 1269965004 0 :Tritonio_GR!unknown@unknown.invalid QUIT :Quit: Leaving. < 1269965586 0 :cheater2!~cheater@ip-80-226-233-91.vodafone-net.de JOIN :#esoteric < 1269965680 0 :cheater3!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1269965896 0 :MizardX!~MizardX@unaffiliated/mizardx JOIN :#esoteric < 1269966556 0 :lereah_!unknown@unknown.invalid QUIT :Remote host closed the connection < 1269968936 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1269969010 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1269969655 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1269971857 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1269972505 0 :charlls!~charlls@201.226.222.130 JOIN :#esoteric < 1269973656 0 :augur!~augur@129-2-175-79.wireless.umd.edu JOIN :#esoteric < 1269973917 0 :hiato!~fdulu@41.132.216.79 JOIN :#esoteric < 1269975091 0 :ehirdiphone!~ehirdipho@82.132.248.30 JOIN :#esoteric < 1269975107 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :What?! < 1269975120 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Dispatch? No; only half so. < 1269975175 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hi ehirdiphone < 1269975199 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :It is hardly dramatic with so few around. < 1269975199 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What do you mean by half a dispatch? < 1269975228 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :I am merely an illusion. < 1269975238 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1269975245 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :An iPhone, used covertly, smuggled in. < 1269975283 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :o.O < 1269975284 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :But impermanent as are all such things; I'm not of the sort required to keep such a thing hidden. < 1269975298 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Be careful :/ < 1269975317 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :The iPhone encorages verbosity... It is easier than a multitude of error correction. < 1269975332 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Oh, no worries. < 1269975368 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :If anyone asks it is my company's: and I am using it to play games. < 1269975406 0 :ehirdiphone!unknown@unknown.invalid QUIT :Quit: Get Colloquy for iPhone! http://mobile.colloquy.info < 1269975429 0 :ehirdiphone!~ehirdipho@82.132.139.17 JOIN :#esoteric < 1269975431 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Oops. < 1269975449 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehirdiphone: turns out you can remove < from confloddle < 1269975455 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as the location of the < is implied by the location of the > < 1269975456 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hail, ehird. < 1269975459 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh, so that wasn't someone walking by? Although I guess if someone walked by, it would be easier to abruptly hide it than close out of IRC < 1269975491 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Link to Confloodle? < 1269975497 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I don't see it on the wiki < 1269975499 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there isn't one, check logs < 1269975501 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I presume that you're not that well monitored at night? < 1269975523 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, it's a tarpit based on foldl and cons < 1269975660 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: It is approx 19. < 1269975688 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehirdiphone: Well: evening times. < 1269975713 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Actually for a while, at the start, they checked on me every five minutes through the night: apparently I was considered at risk of attempting suicide. < 1269975738 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Ridiculous: if I was of that disposition I'd have done it so much earlier. < 1269975762 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :But yeah; my room is the one place I am mostly alone. < 1269975779 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or at least have been much more creative about it. < 1269975810 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Rubber chicken with a pully in the middle. < 1269975816 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :See? < 1269975851 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :A reference to the Secret of Monkey Island, actually. < 1269975865 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :brb. < 1269976124 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :don't rubber chickens turn things to stone? < 1269976164 0 :ehirdiphone!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1269976552 0 :ehirdiphone!~ehirdipho@82.132.136.215 JOIN :#esoteric < 1269976567 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Since brb said? < 1269976609 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric : don't rubber chickens turn things to stone? < 1269976624 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: NetHack reference < 1269976629 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I know < 1269976632 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric : Since brb said? < 1269976671 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1269976685 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION dons gloves and throws a c at ais523  < 1269976694 0 :ehirdiphone!unknown@unknown.invalid QUIT :Client Quit < 1269976698 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION dodges, on the basis that c corpses have a 0% hit chance < 1269976707 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :..oh < 1269976717 0 :ehirdiphone!~ehirdipho@82.132.248.68 JOIN :#esoteric < 1269976745 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION throws some c eggs at ais523  < 1269976756 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: are you wearing gloves? < 1269976762 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, /me eats a lizard corpse < 1269976778 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I don't think lizard corpses help against instant petrification < 1269976779 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :eggs cause slow stoning, not instastoning < 1269976783 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Just against his.. oh < 1269977111 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Oerjan:http://www.reddit.com/r/pics/comments/bk6s0/norwegian_life/c0n6q13 < 1269977237 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Dyydydyufug < 1269977334 0 :ehirdiphone!unknown@unknown.invalid QUIT :Quit: Get Colloquy for iPhone! http://mobile.colloquy.info < 1269977353 0 :ehirdiphone!~ehirdipho@82.132.248.66 JOIN :#esoteric < 1269977374 0 :adam_d_!~Adam@aasx145.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1269977527 0 :adam_d!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1269977977 0 :oklofok!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1269978082 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :ais523: So > < 1269978088 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Tome traveling syntax < 1269978091 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Time < 1269978107 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why do you need syntax for that? < 1269978354 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION loves how right-clicking can make explorer.exe crash < 1269978356 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :*cries* < 1269978461 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Confluddle I mean < 1269978471 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :confloddle has time travel? < 1269978486 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Fucckkkk < 1269978489 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :> < 1269978490 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Is < 1269978494 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Time t syntx < 1269978498 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should probably read the logs at some point < 1269978501 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Without opener < 1269978521 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Traveling not travel < 1269978521 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, no, you can just dedcude the location of the opener < 1269978528 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by looking at arities going bacwards from the > < 1269978532 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Oh shaddup < 1269978607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, sorry < 1269978625 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1269978676 0 :charlesq__!~charlls@201.226.222.130 JOIN :#esoteric < 1269978745 0 :charlls!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1269978760 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :You have... < 1269978766 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :0 minutes < 1269978833 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Goodbye but I this week will return ...Thursday! < 1269978855 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Can you live one more day without me? :) < 1269978863 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :don't worry, we'll manage somehow < 1269978877 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Maybe two if I'm tired on Thurs. < 1269978909 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gx's l' r'v'd', m' 'm'k'. < 1269978913 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION loves how refreshing can make Safari crash < 1269978919 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :Formal goodbye time. < 1269978945 0 :ehirdiphone!unknown@unknown.invalid PRIVMSG #esoteric :--alise; in the land of Mordor where the Shadows lie. < 1269978954 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :co'o < 1269978955 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ko cinsne < 1269978980 0 :ehirdiphone!unknown@unknown.invalid QUIT :Quit: Get Colloquy for iPhone! http://mobile.colloquy.info < 1269978996 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Esperapostropho? < 1269979003 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: J's < 1269979012 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now let's talk about how we hate ehird and ought to flay him alive. < 1269979013 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1269979035 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Unfortunately, I don't know enough Esperanto to construct a meaningful response. < 1269979060 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So let me just acknowledge that you said "jes", which means "yes". < 1269979103 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :esperaco < 1269979412 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Indeed. < 1269979430 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Also, a meaningful response would just be "Mi komprenas". < 1269979431 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1269979465 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or perhaps even 'Mi komprenas ke "j's" estas "jes"'. < 1269979497 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Alternately, you could just speak English, as such is the typical language for this room. < 1269979519 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :m' sh't's 'sp'r'nt' < 1269979525 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :translation: "my shits sprint" < 1269979599 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sナtqゐエpbヴ葉Sペりうじゃギアpcvkx偽PツQ件がspd < 1269979617 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Translation: fuck if I know, I just hit Ctrl-Space and pounded on the keyboard for a bit. < 1269979932 0 :adam_d_!unknown@unknown.invalid NICK :adam_d < 1269980136 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :So, he committed without a test build, and left an infinite loop somewhere in there < 1269980147 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'm just going to shove it to the side while I try to make the deadline < 1269980155 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :His code is not deadline related in any way < 1269980938 0 :oklopol!~oklopol@a91-153-122-35.elisa-laajakaista.fi JOIN :#esoteric < 1269981072 0 :charlesq__!unknown@unknown.invalid QUIT :Quit: Saliendo < 1269981080 0 :charlls!~charlls@201.226.222.130 JOIN :#esoteric < 1269981244 0 :werdan7!unknown@unknown.invalid QUIT :Ping timeout: 615 seconds < 1269981459 0 :MigoMipo!~migomipo@84-217-3-248.tn.glocalnet.net JOIN :#esoteric < 1269983006 0 :hiato!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1269983042 0 :hiato!~fdulu@41.132.216.79 JOIN :#esoteric < 1269984056 0 :adam_d!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1269984845 0 :Oranjer!~HP_Admini@adsl-243-221-66.cae.bellsouth.net JOIN :#esoteric < 1269985435 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :this rihanna song seemed a lot nicer before i read the lyrics < 1269985760 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1269986140 0 :atrapado!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1269986278 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1269986646 0 :cheater2!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1269986719 0 :MigoMipo!unknown@unknown.invalid QUIT :Remote host closed the connection < 1269986722 0 :gigo!~gigo@unaffiliated/gigo JOIN :#esoteric < 1269986749 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :I am using L for lambda. I represent 1 = Ls.s, 2 = Ls.ss, 3 = Ls.sss and so on. I want a way to express addition operation in lambda calculus. < 1269986762 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :I mean, I want some function S such that 2S3 or S23 results in 5 = Ls.sssss < 1269986772 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :i'm a complete newbie in lambda calculus. the book had some good definitions of successor, addition, etc. but I modified the definition of 1 from Lsz.s(z) to Ls.s and now I am trying to make my own successor, addition, etc. < 1269986832 0 :mblondin!~michael@bas1-stetherese38-2925259401.dsl.bell.ca JOIN :#esoteric < 1269986838 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :isn't it just S? < 1269986843 0 :mblondin!unknown@unknown.invalid PART #esoteric :? < 1269986851 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i mean isn't your S just the S from SKI < 1269986886 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :S23f = (2f)(3f) = (ff)(fff) = (fffff) < 1269986910 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :what is SKI? < 1269986939 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Sxyz = (xz)(yz) < 1269987052 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :gigo: SKI is the SKI combinator calculus. It's Turing complete by way of equivalence with lambda calculus. < 1269987083 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It can be defined as follows: S:=\xyz.xz(yz);K:=\xy.x;I:=\x.x < 1269987085 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :is there any way to do lambda calculus on computers? < 1269987092 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Several. < 1269987105 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :I use Debian Linux. any suggestions? < 1269987107 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Are you familiar with functional programming languages? < 1269987114 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :yes, I know Scheme. < 1269987125 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Scheme is a superset of lambda calculus. < 1269987129 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1269987148 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, you already possess an interpreter. ;) < 1269987152 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1269987194 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(define s (lambda (x) (lambda (y) (lambda (z) ((x z) (y z))))) < 1269987642 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :So, if S = \xyz.xz(yz) can I say that S23 = \z.(2z (3z)) = \z.( (\s.ss z)(\s.sss z) ) = \z.zzzzz = 5 ? < 1269987849 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the last-but-one step is wrong < 1269987856 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I think, not sure < 1269987859 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :how are 2 and 3 defined? < 1269988035 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :2 = \s.ss and 3 = \s.sss < 1269988040 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :ais523, < 1269988095 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes? < 1269988247 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :ais523, i answered your question about how 2 and 3 are defined < 1269988253 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, I noticed < 1269988257 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just didn't have anything more to say < 1269988269 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :so, why is the last-but-one step wrong? < 1269988273 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't see how \z.(2z)(3z) = 5 < 1269988295 0 :cheater2!~cheater@ip-80-226-31-71.vodafone-net.de JOIN :#esoteric < 1269988305 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :2z = \s.ss z = zz < 1269988314 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :similarly, 3z = zzz < 1269988318 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, and (zz)(zzz) != (zzzzz) < 1269988324 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1269988348 0 :hiato!unknown@unknown.invalid QUIT :Quit: underflow < 1269988351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the usual definition of 2, btw, is \f.\x.f(fx) < 1269988379 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :and that of 3? < 1269988386 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :\f.\x.f(f(fx)) < 1269988400 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :why do you write the inner most thing as fx and not f(x) < 1269988409 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :how about 2 as \f.\x.f(f(x)) ? < 1269988417 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a standard abbreviation < 1269988420 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1269988457 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :abc = (a(b))(c) < 1269988470 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and langs like haskell actually let you write that < 1269988476 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than having to put all the parens in < 1269988543 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :so, abcd = ((a(b))(c))(d) ? < 1269988565 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1269988576 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :can i wrte abc = (ab)c as well? < 1269988580 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and in a lang that uses currying, that's the standard way to pass three args to a function < 1269988585 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(ab)c is fine, if you want to disambiguate < 1269988587 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1269988596 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but with a(bc) you can't remove the parens < 1269988615 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :so a(bc) = a((b)c) < 1269988629 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok, that looks weird, but yes I suppose < 1269988642 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(b)c is less usual than b(c), and bc is more common than either when talking in combinator calculus < 1269988680 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the same trick happens with data types; Int -> Int -> Int means Int -> (Int -> Int) < 1269988853 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :so for my definitions of 2, 3, etc. can I make a sum function S? < 1269988874 0 :gigo!unknown@unknown.invalid PRIVMSG #esoteric :2 = \s.ss, 3 = \s.sss, 4 = \s.ssss, 5 = \s.sssss, etc. < 1269988947 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1269988990 0 :coppro!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1269989780 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Numbers in lambda calculus are defined via 0 and the successor function < 1269989842 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1269989850 0 :jcp!~jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1269990023 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, that's the first rangeblock I've done on Esolang < 1269990029 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hopefully that should stop much of the recent untargeted spam < 1269990039 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1269990161 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :goodbye 212.235.106.0/23 < 1269990263 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, jury finds for Novell in SCO v. Novell < 1269990280 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is a momentous day, in that nobody can think of a plausible way for SCO to weasel its way out of /that/ one < 1269990291 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although I'm looking forward to what implausible ways they try < 1269990387 0 :augur!~augur@129-2-175-79.wireless.umd.edu JOIN :#esoteric < 1269990521 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it can still be appealed on procedural grounds < 1269990558 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but that seems unlikely to succeed < 1269990576 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1269990753 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, I can't think of a procedural ground where SCO would have a leg to stand on < 1269990767 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unless something happened that isn't generally known < 1269990934 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if they're stupid enough to try appealing the verdict directly < 1269990952 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so do I, actually < 1269990973 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they're running out of money pretty quickly, though < 1269991022 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :well, yeah < 1269991036 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :and it's not like appealing a jury verdict works that well in any case < 1269991120 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Our "law in network society" course requires a two-page case note on some related case; I was thinking of writing something about the SCO mess, but it's such a great mess you can't even get started in two pages; I may need to focus on some particular submess of it. < 1269991158 0 :Tritonio_GR!~Tritonio@athedsl-256698.home.otenet.gr JOIN :#esoteric < 1269991198 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :news from SCO is that they plan to sue IBM for breach of contract, because they can do that even without the copyrights < 1269991213 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't mean they can /win/, ofc < 1269991216 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : S23f = (2f)(3f) = (ff)(fff) = (fffff) < 1269991222 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the final equation is wrong < 1269991269 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :application is not associative < 1269991502 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : 2 = \s.ss, 3 = \s.sss, 4 = \s.ssss, 5 = \s.sssss, etc. < 1269991514 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i can see how to increment those, but addition looks tricky < 1269991583 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in fact to use it i would probably want to convert into the usual \fx.f(f(...(fx)...)) form first < 1269991617 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if that is possible, then it's easy to do addition afterwards < 1269991687 0 :charlls!unknown@unknown.invalid QUIT :Quit: Saliendo < 1269991698 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the tricky thing about your definition is that it is not obvious how to make an s that can be usefully used with an arbitrary number < 1269991715 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1269991719 0 :FireFly!unknown@unknown.invalid QUIT :Quit: Leaving < 1269991735 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, how do you define 0? < 1269991758 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the usual definition \x.\y.y doesn't seem to map at all to the fffff version < 1269991781 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\s.i probably works for that, actually < 1269991818 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :since (inc n) = \s.(ns)s < 1269991828 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1269991831 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh, that's the same definition as normal, isn't it? < 1269991833 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\s.ki < 1269991867 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(or in pure lambda, \s.\t.\x.x) < 1269991886 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, `k`ki? < 1269991895 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1269991904 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1269991905 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was considering making that a constant in the underlambda standard library < 1269991910 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as an "absence of value" constant < 1269991910 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is confusing himself < 1269991916 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unlike `ki, which is just 0 which is a value < 1269991929 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\s.i is correct < 1269991936 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so \s.\x.x < 1269991967 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why are we using s as a lambda variable anyway? < 1269991969 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it has a different meaning < 1269991979 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :gigo did < 1269991989 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1269991997 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and didn't seem to have heard of combinators before < 1269992047 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1269992060 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :conspiracy < 1269992152 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now an s to pass in usefully has to be appliable to itself, and somehow construct an "incremented" version of itself when doing so < 1269992202 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and to be useful, there has to be something else that it can be applied to in order to stop the gobbling up of indefinite arguments < 1269992230 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's what i mean < 1269992278 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: that's a lot to get out of the word "conspiracy" < 1269992346 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or is it? < 1269992364 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :>_> < 1269992405 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now you're getting it < 1269992651 0 :augur!~augur@129-2-175-79.wireless.umd.edu JOIN :#esoteric < 1269992711 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ROFL < 1269992732 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :My sliding blocks puzzle has a bug where you can click a piece diagonally adjacent, and it will go in < 1269992807 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :too easy < 1269993023 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's the easiest way to scramble a sliding blocks puzzle? Simulating random valid moves? < 1269993052 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: yep, to ensure it's solvable < 1269993064 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :IIRC there's a parity rule on those things < 1269993080 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think the original 14-15 was unsolvable < 1269993085 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was < 1269993117 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, what if you turn the 6 and 9 upside-down? < 1269993129 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION feels cheap for having used a 1 indexed [multidimensional] array, but it turned out to be handy < 1269993149 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The individual blocks have MoveTo() methods, that null out where the block came from < 1269993159 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :So when starting up, I just say they came from 0,0 < 1269993190 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :couldn't you use a dedicated null value? < 1269993193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :like Haskell's Nothing? < 1269993203 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than forcing an absurd use of 0 in? < 1269993217 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is as bad as Underlambda's adding 1 to all character codes so it can use 0 for EOF < 1269993226 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it's an esolang, and so can get away with that sort of thing < 1269993239 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I happened to be using 1-based indexing anyway, to ease pain on my brain < 1269993250 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although it occurs to me that it wasn't that helpful < 1269993255 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Speaking of blocks, to follow-up on llbf (LLVM-targeting brainfuck translator), I wrote a Piet compiler that targets LLVM too. < 1269993439 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Well, it did, a little < 1269993459 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :In-world, in a way that would be difficult to change, there was already a 1-indexed numbering scheme < 1269993487 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But that would just turn into a -1 in ONE place in my code, if I went with 0-indexed < 1269993498 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'm already switching x and y