< 1198972868 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :FUCK orange broadband and their GOD DAMN ROUTER < 1198973298 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1198973300 0 :puzzlet_!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1198973303 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :How do I access modules that are above the current directory? < 1198973306 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :re puzzlet_ < 1198973321 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :You can't, Sgeo. < 1198973381 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: I took up the task of making a language like oklotalk, but logical and cleaner < 1198973384 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I am crazy :D < 1198973409 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :"+\1 2 3" is 6 < 1198973425 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :import sys < 1198973425 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :sys.path += ['../..'] < 1198973426 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :+ is what you expect, \ is NOT a binary 'fold' operator but instead a postfix operator < 1198973431 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Well yes < 1198973435 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Would that work or fail on Windows, though? < 1198973437 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and what \ does, here +\ < 1198973448 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :returns a function which does the folding < 1198973467 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :so +\'s result is an operator taking a list and folding it over + < 1198973471 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :then the list 1 2 3 < 1198973480 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ergo, "+\1 2 3" is 6 < 1198973485 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :/ is \ but for 'map' < 1198973654 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1198973666 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1198973695 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :rere puzzlet < 1198973723 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I don't know python < 1198973773 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :btw, you won't need to learn Python to use PSOX < 1198973778 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Just to implement domains.. < 1198973843 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :My code looks FUGLY < 1198973897 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, on Windows, does printf() wait for just a 0x0A, or would it be expecting the other thing too? < 1198973912 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/NpqVc215.txt < 1198973976 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :can view the graphs with that < 1198973994 0 :ehird`!unknown@unknown.invalid QUIT :Success < 1198974041 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Since printf("\n") works in every Windows CC I've ever used, I would imagine just \n. < 1198974057 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ty < 1198974095 0 :puzzlet_!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1198974096 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: i already show them in a similar fashion, i meant graphically < 1198974112 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :graphviz can render those formats < 1198974120 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1198974122 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1198974147 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hahahahahaha, they're advertising a magnet you put on your left ear that helps you quit smoking X-D < 1198974148 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :anyhow, did you try the lang? < 1198974153 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Can you say "placebo"? < 1198974160 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :you don't need to know python to be able to < 1198974168 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :heh, lol < 1198974175 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION worries that PSOX.py might be something of a slapdash implementation < 1198974261 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :GregorR : Might work if you're a robot. < 1198974267 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Remember Futurama? < 1198974318 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric ::[ < 1198974332 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks... general purpose languages should have multiline comments < 1198974514 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: you can't say you wanna try it and then not :) < 1198974523 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is trying to make a web < 1198974528 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :GregorR!!!!!!!! < 1198974540 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :No, I'm not here. < 1198974542 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :stop stop stop stop stops tops tops tops tospt ostpsotpsotsptosptsotpsotpstosptostpsotpstosptosptospsotsptosptsoptsotspooo < 1198974544 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :oh I just realised how to do multiline comments in python < 1198974550 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :YOU ARE WRONG :( < 1198974557 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :in C \n does not mean 0x0A < 1198974560 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it means newline < 1198974562 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :which in windows is CR LF < 1198974564 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :not LF < 1198974569 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the compiler does this, it is standard < 1198974584 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :"""multiline commen""" < 1198974591 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: oh god python no :( < 1198974597 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I got a ticket on a project of mine because it put non-Windows newlines in a file on Windows. < 1198974606 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It did that because I used \n. < 1198974611 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I did not fix it, since it wasn't broken. < 1198974631 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :But the point is, it didn't use CR LF. < 1198974712 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1198975528 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :this is hard to use :p < 1198975533 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :A ticket? < 1198975679 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: it was opened in binary mode < 1198975880 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: did you try it? :D < 1198975894 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1198975908 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I'm still trying to make this thing without infinitelooping < 1198976092 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1198976106 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :currently, you need to actually have the pattern die out < 1198976113 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i mean, in the version you have < 1198976131 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i made it stop when the same object is found twice < 1198976194 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :this is cool http://img339.imageshack.us/img339/8556/picture5mx0.png < 1198976202 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :that's the grid one though < 1198976216 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :(using a stupid layout) < 1198976297 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1198976303 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what's that? < 1198976318 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :Grid2d 15 15 < 1198976330 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1198976338 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ACTION knows a better graphical representation < 1198976387 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :that's the same one energy minimized http://img174.imageshack.us/img174/8382/picture6id6.png < 1198976480 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh, that's actually pretty close < 1198976504 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders elegant-but-alien-looking languages < 1198976517 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i.e. simple, but not too simple, and no does-everything features, no hacks < 1198976520 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :but still strange < 1198976530 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :lambda calculus is ofc the classic in that area < 1198976575 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :What do you mean, lambda calculus is alien? :-P < 1198976590 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :i think that I can trick people into using lambda calculus for real programming < 1198976604 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :because.. if you just add enough syntax... < 1198976606 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Pi calculus is either the ultimate in artificial intelligence stuff or actually quite unremarkable. < 1198976611 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :...you get Haskell! < 1198976619 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I think combinators are harder than lambda calculus. < 1198976625 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :oh damn it's been done already! < 1198976633 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's not too hard to define a function in lambdas. < 1198976636 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I want to try some other lambda calculi though < 1198976642 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Well, you can algorithmically translate lambdas to combinators. < 1198976663 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :You can do it for all languages! < 1198976664 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Depending on the algorithm, it might actually do a decent job. :-P < 1198976698 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :pi calc is fun < 1198976718 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to check up on just what it is. < 1198976722 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :can't I have more than 2 parameters? < 1198977059 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ah, indeed, after reading up on it, pi calculus is fun. < 1198977113 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I like λ∏ but most of the theory is way too hard for me right now < 1198977170 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You like what? < 1198977176 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Lambda and pi? < 1198977229 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: if you have any interest left, wanna draw http://www.vjn.fi/pb/p165564435.txt for me? < 1198977240 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :or is it just for bidirectional graphs? < 1198977246 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :not that it matters really < 1198977253 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :anyhow, directed graphs should work now < 1198977271 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I think explains it ok http://people.cs.uu.nl/andres/LambdaPi.html < 1198977329 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Lambda and pi stuck together? < 1198977363 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Lambda calculus with dependent typing? < 1198977424 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :It's lets you define functions whose return type depends on it's arguments < 1198977431 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1198977447 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I imagine it doesn't have a full first-order logic system taking full advantage of the Curry-Howard isomorphism and all. < 1198977492 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: it's just a circle < 1198977671 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1198977692 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i wondered whether it gets it circle, or if it'd be eight'y or something < 1198977987 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :RANDOM SILLY IDEA < 1198977991 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :A lambda calculus CPS transformer < 1198978157 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: your bot has lambdacalculus infrastructure < 1198978157 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :do eet < 1198978164 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What, a giant robot that can transformate into a lambda expression? < 1198978226 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: o < 1198978233 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :e < 1198978238 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: heh < 1198978246 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :making a lambda calculus infrastructure is a 20 min job :\ < 1198978259 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i have things to do, gotta look at my parser! < 1198978273 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :and hope it codes itself. < 1198978300 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :yeh well i don't like writing cps transformers < 1198978303 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :(cps=http://en.wikipedia.org/wiki/Continuation_passing_style) < 1198978383 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION had fun writing one first time around < 1198978460 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i haven't written one, but given a parsed code, i don't think it's hard < 1198978523 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: It's not really hard, no < 1198978528 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :but irritating < 1198978534 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. I want to implement ISWIM < 1198978556 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ooh it's by Peter J. Landin < 1198978613 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1198978621 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it's the 'the next 700 programming languages' language < 1198978684 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is back < 1198978703 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Once PSOX 1.0 is out, would anyone here be willing to make an IRC domain? < 1198978739 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no < 1198978768 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks an answer from someone who thinks positively of PSOX would be more useful < 1198978900 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :there is no point < 1198978926 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: you actually see no point in the whole io wrapper thing? < 1198978936 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :i think it's an awesome idea :\ < 1198978943 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i said not that < 1198978946 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i said no point in the irc domain < 1198978957 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :oh, right, guess it's just bsmnt < 1198978988 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :what's an irc domain? < 1198978992 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :irc network? < 1198979113 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :irc domain = spec for PSOX stuff to access IRC < 1198979122 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And implementation of such < 1198979132 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :a domain, in PSOX, is roughly like a library < 1198979141 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :eah that would be cool < 1198979146 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :(having ISWIN implementation) < 1198979150 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ISWIM* < 1198979162 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ISWIM? < 1198979174 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :http://www.cs.utah.edu/~eeide/compilers/old/papers/p157-landin.pdf < 1198979178 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :It's got the J operator < 1198979188 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://trac2.assembla.com/psox/browser/trunk/spec/psox.txt < 1198979197 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I think it's a bit like the infinite improbability drive < 1198979359 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :haskell etc are descended from iswim < 1198979369 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it has the off-by-one rule and all that < 1198979375 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it would be interesting < 1198979400 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :What's the off-by-one rule? < 1198979417 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION isn't going to write the IRC domain himself.. at least not until after PSOX 1.0 is released < 1198979419 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: indentation for braces < 1198979425 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :err < 1198979427 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :off-side rule < 1198979428 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :oh right < 1198979430 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :heh :) < 1198979440 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :but the cool kind < 1198979452 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :instead of just indenting N places, you line it up < 1198979634 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklofok: you should form an Oklotalk Comittee < 1198979655 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :"The bikeshed comittee" < 1198979658 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :that means you're licensed to release the standard as "Report on the Oklotalk algorithmic language" < 1198979683 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and provide a black-on-really-dark-gray in times-roman html version < 1198979693 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :with tacky gifs on your home page with 3d graphics of the language name < 1198979700 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and form an Oklotalk Advocacy Group < 1198979716 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :sgeo@ubuntu:~/dev/psox/trunk/impl$ python PSOX.py bf test.b < 1198979716 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Client's PSOX Ver: PSOX 0.5-11 < 1198979716 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Running PSOX 0.9 < 1198979761 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't like it when I try to make one of the parts of the version 10 < 1198979767 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION isn't going to fix that yet < 1198979794 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :PSOX 1.10 is still a ways off < 1198979824 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :oh PSOX is also an interpreter? < 1198979830 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :or is it executing the bf program? < 1198979845 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :PSOX.py is the name of the interpreter, which executes the bf command < 1198979851 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :(is executing) < 1198979858 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :why not just bf test.b | python PSOX.py < 1198979862 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I have the bf program in my path < 1198979874 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :would that be possible too? < 1198979876 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia, because I need the PSOX server on both sides < 1198979884 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :on both stdin and stdout < 1198979889 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ohh I see < 1198979946 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thought of an interesting change to the PSOX spec < 1198979951 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But it would be a major change < 1198979978 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :instead of using 0x00 before all functions, all output chars, unless 0x00, specify the domain of the function, as thought there was an implied 0x00 < 1198979987 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :0x00 would just be regular output < 1198980034 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Probably not PSOX 1.0 though < 1198980109 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: about that ISIWM interpreter, i might have a go < 1198980120 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :good luck :D < 1198980125 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :It'd be fun to mess with < 1198980128 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the paper doesn't specify what typing < 1198980132 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :so i can do dynamic or inferenced < 1198980136 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :inferenced seems the purest, but harder < 1198980142 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :wiki said probably dynamic, but I don't see any reasons to go either way < 1198980153 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :hmm, someone offer help in writing it :P < 1198980161 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :yes YOU! < 1198980164 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :what're you going to write it in? < 1198980174 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: beats me. Scheme maybe? < 1198980181 0 :ihope!unknown@unknown.invalid QUIT :"CGI:IRC" < 1198980186 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Not C, let's put it that way < 1198980193 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :That's a good idea :D < 1198980204 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Does someone have any idea how to make a 2D tape for a Turing machine on Python? < 1198980212 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :That is, infinite in all direction. < 1198980221 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: use a hash table :P < 1198980225 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :can you make an infinite 1D tape? < 1198980227 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I don't really want to program some N->ZxZ isomorphism. < 1198980236 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :N->NxN though? < 1198980237 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I made one. < 1198980239 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :oh right.. < 1198980247 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :N->Z is easy. < 1198980252 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: do you know scheme? :P < 1198980262 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Yeah < 1198980265 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :N-> NxN isn't, but the function already exist, it's the pairing function. < 1198980266 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :yaey < 1198980284 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I tried to make N->ZxZ, I really don't want to program that. < 1198980292 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the thing with scheme is that you have to choose an implementation and stick with it < 1198980301 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :they are just too different < 1198980409 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The PSOX spec will probably be finalized soon < 1198980423 0 :ihope!n=474bba10@gateway/web/cgi-irc/ircatwork.com/x-d540a141b33e1be9 JOIN :#esoteric < 1198980439 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :re ihope < 1198980444 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ello. < 1198980469 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The people of Sine aren't wondering if I'm dead, are they? < 1198980479 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: annoyingly most scheme systems aren't batch which makes this kind of stuff a pain :-) < 1198980501 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :chicken, gambit, bigloo are considerations then i guess < 1198980666 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i guess i'll quiz in #scheme < 1198983926 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has an idea to make things like a version 1.10 easier < 1198984021 0 :ihope!unknown@unknown.invalid QUIT :"CGI:IRC (Ping timeout)" < 1198984304 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION can't help thinking that PSOX.py is incredibly ugly.. < 1198984364 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :A lot of the code is probably WTF quality.. < 1198984832 0 :ehird`_!unknown@unknown.invalid QUIT : < 1198985334 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :sgeo@ubuntu:~/dev/psox/trunk/impl$ python PSOX.py bf test.b < 1198985334 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Client's PSOX Ver: PSOX 0.0-10 < 1198985334 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Running PSOX 0.0 < 1198985654 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :PSOX.py now has support for the possibility of a client saying Version 10 < 1198986094 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :PSOX! < 1198986106 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric ::D YAY PSOX! GO PSOX! < 1198986125 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now is the time. . . The time to implement psox.pebble. < 1198986139 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :you're doing that? < 1198986152 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No; I don't know where the spec is. < 1198986161 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hand it to me, and I shall have PEBBLE using PSOX. < 1198986175 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Spec isn't quite finalized yet, but it's close < 1198986180 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :At least, the main part anyway < 1198986189 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Still working on the specs for the builtin domains < 1198986208 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://trac2.assembla.com/psox/browser/trunk/spec/psox.txt < 1198986219 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shall work on a Rubik's cube while waiting < 1198986223 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I give you 2 minutes. :p < 1198986291 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Waiting for what? The specs for domains to be complete? < 1198986340 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sure. < 1198986342 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is done < 1198986342 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Or for finalization of psox.txt? < 1198986346 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :>.> < 1198986346 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Either. < 1198986380 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think psox.txt is final < 1198986384 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mmkay. < 1198986405 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Of course, I have the ability to change everything completely, but I don't think there will be. < 1198986430 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :There were some changes I remember wanting to make, but I think I made all of them < 1198986461 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Actually, psox.txt isn't done.. the List of Builtin Domains isn't complete.. < 1198986483 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :and the url for simple utilities is wrong < 1198986499 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But everything else should be good < 1198986512 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although the implementation so far violates the spec < 1198986567 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And will probably keep violating it < 1198986578 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is this a problem, pikhq? < 1198986634 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :" After that, the server responds with its minorver" should probably be "the minorver in use" < 1198986639 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But that's not the vio < 1198986688 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION will go in 10min to watch Seinfeld < 1198986688 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not yet. < 1198986693 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What's the violation? < 1198986740 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :According to the spec, if the client isn't PSOX, or if it's the wrong version, the Server lets it know, and lets the client keep running without PSOX features. The implementation exits on those conditions.. < 1198986834 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Think you could provide a version-invariant method of exitting if the client is using the wrong version? < 1198986931 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :? < 1198986958 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :When the implementation exits, the client is killed >.> < 1198986977 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh. NM. < 1198987034 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has the psox.bfm header set up. < 1198987044 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :May I see? < 1198987071 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just a sec. < 1198987133 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/838136 < 1198987233 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :You're forgetting the 0x0A < 1198987263 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The spec did not say a \n was needed there. < 1198987274 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Also, that's PSOX 0.0 < 1198987290 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which the spec claims to be. < 1198987315 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I can only code to the spec. ;) < 1198987339 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :When PSOX 1.0 is released, you'll need to change the code >.> < 1198987351 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But that should be easy enough < 1198987442 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's a good think you did the psox.bfm now < 1198987448 0 :ihope!n=474bba10@gateway/web/cgi-irc/ircatwork.com/x-8d3b7a79aba52a26 JOIN :#esoteric < 1198987456 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Ok, psox.txt updated < 1198987491 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hi ihope < 1198987667 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, updating the header? < 1198987780 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Updated. < 1198987855 0 :Overand!unknown@unknown.invalid PRIVMSG #esoteric :this is twisted < 1198987860 0 :Overand!unknown@unknown.invalid PRIVMSG #esoteric :I'm glad I'm idling here. < 1198987877 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, where? < 1198987891 0 :Overand!unknown@unknown.invalid PRIVMSG #esoteric :PSOX is a fantastic concept =] < 1198987910 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ty Overand < 1198987911 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Lemme post a tarball of my stuff when I'm done implementing all the stuff in the basic spec. < 1198988237 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ihope, you know Sine has a web-irc gateway? < 1198988444 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Overand, did you read the spec? < 1198988530 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Does 2.6 return 1 if somestring was a specified safety option, 0 otherwise? < 1198988630 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1198988682 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, will psox.pebble be able to handle LNUM/LBYTES/VARG? < 1198988782 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :As of yet, I don't have any special handling for it. < 1198988814 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is the language capable of handling it though? < 1198988862 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I may need to do some special patching of PEBBLE to make LNUM *convenient*. . . < 1198988884 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: I was a little bit aware of it, but I don't know where it is. < 1198988887 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :what about LBYTES and VARG? < 1198988905 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But certaintly, you can just pass the macros that take strings of some sort an LNUM, LBYTES, or VARG. . . < 1198988966 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'll *probably* want to do something in PEBBLE like [lbytes foo bar baz] to be able to conveniently handle that stuff, though. < 1198988977 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But this is a matter of convenience, not functioning. ;) < 1198988991 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION made some program to generate possible programs for them Turing machine < 1198988996 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :With associated numbers! < 1198989007 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :As long as it can. I'm pretty sure that in bfcomp (which is what I wanted PSOX to work with) it would have been difficult, if not impossible < 1198989008 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :To maybe compute the first digits of its Turing number. < 1198989058 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Turing number? < 1198989068 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ihope, why don't you have an IRC client? < 1198989079 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The nth digit is 1 if the program is circle free, 0 otherwise, or if it's not a valid program. < 1198989080 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, bfcomp is a really inflexible bit of language. < 1198989085 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(Circle free = halts) < 1198989103 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Because my macro parsing is so damned *cheap*, I can freely pass strings around in the macro parser. < 1198989119 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's like a gentler Chaitin constant. < 1198989133 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :hmm how is it different to Chaitins constant? < 1198989139 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: I'm not using my computer, so I'm without one for a day or two more. < 1198989139 0 :Overand!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: some of it. < 1198989145 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1198989147 0 :Overand!unknown@unknown.invalid PRIVMSG #esoteric :(read some of the spec) < 1198989158 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Overand, thoughts? < 1198989159 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia : Chaitin's constant is a probability. < 1198989163 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ihope, did you get my PM? < 1198989170 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I thought that it is the same thing < 1198989178 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The Turing constant is just a bunch of numbers. < 1198989187 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: yes. < 1198989190 0 :Overand!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: I'm not good enough with this stuff to offer a particularly informed opinion. < 1198989202 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION once attempted to prove that God cannot exist by using Chaitin's constant < 1198989204 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'd calculate the Chaitin constant, but I don't even understand what "prefix free" mean. < 1198989287 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's probably prettier. I already know the first 1500 digits of the Turing constant, and it's 0 because it's all strings that aren't valid programs. < 1198989294 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I have a feeling it's the same thing < 1198989307 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Suppose a person who is God can create a stone that is too heavy for him to lift. He cannot lift this stone, so he is not really God. Therefore, a person who is God cannot create a stone that is too heavy for him to lift. Therefore, a person who is God is not really God. < 1198989311 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, you can probably use the Turing constant to calculate the Chaitin one. < 1198989388 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :god can do anything -> god can do things he can't do < 1198989392 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :paradox. < 1198989407 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's a paradox only if you assume that god can do anything. < 1198989411 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :still focking, ay? :\ < 1198989413 0 :oklofok!unknown@unknown.invalid NICK :oklopol < 1198989414 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :My "proof" was against omniscience < 1198989641 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :oh I think I see the difference < 1198989646 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How does one define omniscience formally? < 1198989649 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What if one assumes that God can do anything except that which he has designed specifically for him not to be able to do? < 1198989650 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :is this righT? < 1198989660 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :the nth bit of turings constant is 1 or 0 if the nth program terminates < 1198989693 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, that's what I saw at least! < 1198989701 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I've heard of a Turing constant. < 1198989727 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ok so Chaitins constant is different, because the nth bit is not any longer whether the nth program halts or ont < 1198989740 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :instead .. you sum all halting programs of size n * 2^-|n| < 1198989776 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :(for every n) < 1198989782 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :If you know what "prefix free" means, I would be grateful. < 1198989808 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'd rather have a probability than a huge bunch of zeros. < 1198989845 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I don't really know but I think this explains it http://en.wikipedia.org/wiki/Instantaneous_code < 1198989857 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :A language is prefix-free if and only if there are no two strings in the language such that one starts with the other. < 1198989864 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :'{0, 10, 11} has the prefix property; a code consisting of {0, 1, 10, 11} does not, because "1" is a prefix of both "10" and "11".' < 1198989942 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: I'll finish up the System domain tomorrow (I stopped short of file descriptor manipulation). < 1198989952 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, coolness < 1198989977 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://pikhq.nonlogic.org/psox.tar.bz2 < 1198989977 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So since my code is {*,+,<,>}, am I in the clear?* < 1198990000 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Is it the symbols that compose it, or the strings themselves that must be prefix free? < 1198990002 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I think if you have * in the set, then you can't have ** also in the set < 1198990003 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If you see simple bugs in there, would you be kind enough to fix, include a changelog, and bat the tarball back at me? < 1198990015 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :{*,+,<,>} is prefix-free. < 1198990028 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What if there's what looks like a bug because the spec is wrong? < 1198990042 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Then fix the spec for God's sake. :p < 1198990052 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :brb < 1198990070 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The important part is that if you concatenate some words, you can tell that it's those words rather than some other words that concatenate to the same thing. < 1198990144 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :back < 1198990174 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Okay < 1198990188 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So my code is prefix free then. < 1198990191 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1198990199 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Good. < 1198990257 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, make sure users realize that psox_installed doesn't check that psox is installed.. < 1198990290 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Also, if I knew the bfm language, that would probably be helpful < 1198990296 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :>.> Imean PEBBLE < 1198990312 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :(Not only can you do that, but if you concatenate some words and then an initial segment of a word, you can tell that it's those words followed by that initial segment.) < 1198990368 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So in other word, it's just the ability to tell apart any two different pieces of code? < 1198990387 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :More or less, yes. < 1198990401 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Probably a good idea, that. < 1198990409 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Learn PEBBLE. < 1198990411 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :what does "exit" do? < 1198990436 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It calls the "exit" function in PSOX-System. < 1198990445 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :PSOX 2.1. ;) < 1198990462 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ah. Why do you want to exit just because a domain you checked for wasn't there? < 1198990469 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If the code is {0,1,10,11} and I say 110, you don't know whether it's 1-1-0, 11-0, or 1-10. If the code is {0,10,11} and I say 111, you know that it's 11-1, the 1 on the end being part of a word. < 1198990480 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Shouldn't that be the business of the program using the library, and not the library itself? < 1198990523 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Um. Probably. < 1198990590 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Also, is pin that convenient? < 1198990597 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, so far, I have 252 programs that might be valid (if my program works correctly). < 1198990614 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Although I must take out the ones that refers to states that don't exist < 1198990618 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I should probably have pin take the amount of things to ask for instead. . . < 1198990631 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/ask for/input/ < 1198990635 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Because the return from the input function also includes EOF data etc. < 1198990643 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :and padding nuls, etc < 1198990661 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Also, will this library be able to easily call arbitrary PSOX functions? < 1198990675 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Because (hopefully) there will be domains not part of the official spec < 1198990716 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Why is there no "in" in psox_gethandprint.bfm? < 1198990731 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That would be the job of other libraries. This library is basically just a wrapper around the builtin PSOX domains. < 1198990749 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And there is no "in" in psox_gethandprint.bfm because gethandprint returns a string. . . < 1198990762 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I assume that the user of the macro will then handle inputting the whole string. < 1198990773 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :However the user sees fit. < 1198990823 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should keep working on PSOX.py < 1198990897 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You know what'd be amusingly roundabout? < 1198990905 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Implementing a C library to use PSOX. ;) < 1198990946 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Writing Python stuff to use PSOX might actually help testing PSOX.py < 1198990958 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That it might. < 1198990965 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'll do something like that tomorrow. < 1198990977 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'll call it something like "The C PSOX Library and Test Suite". < 1198990988 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is currently using a bf program that outputs fixed numbers < 1198991030 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I seem to have the handshake (PSOX-Init) working < 1198991485 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm working on the C PSOX library now, for no good reason. < 1198991505 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't really know C < 1198991523 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION does < 1198991606 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Hm. How can you find which function halts with Chaitin's constant, since it only gives you a probability? < 1198992517 0 :calamari!n=calamari@ip24-255-58-134.tc.ph.cox.net JOIN :#esoteric < 1198993034 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1198993069 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hi calamari < 1198993082 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Did you see the recent updates to the PSOX specZ? < 1198993084 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :spec? < 1198993094 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Or pikhq's PEBBLE stuff for PSOX? < 1198993151 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should probably go to sleep soon < 1198993167 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is glad he finished the handshake code though < 1198993176 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And, with pikhq's help, fixed the spec >.> < 1198993233 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: it depends on what Chaitin's constant you use, I think. < 1198993248 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :oO one run of the thing I got a "Broken pipe" error < 1198993252 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :the next runs I didn;t < 1198993258 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :If it's for a uniform probability over a finite set of Turing machines, you can use it to find out how many Turing machines halt, and once you've found those, you know that the rest don't halt. < 1198993279 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Maybe there's a way to find it for all Chaitin's constants; I don't know. < 1198993291 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hi Sgeo < 1198993294 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :no I didn't < 1198993332 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :did you get the pesoix code working? < 1198993344 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :PSOX, actually. < 1198993346 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but can you use it to find out what machines halt? < 1198993361 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :name change? < 1198993365 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Is there some sort of bijection between that number and the set of halting programs. < 1198993375 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :or are we talking about something else? < 1198993405 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Something else. < 1198993408 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :When I read about it, it seems like it, but now I'm not so sure. < 1198993412 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :esolangs.org/wiki/PSOX < 1198993427 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Remind me not to do what I just did < 1198993500 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :no that's the same idea as pesoix < 1198993522 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1198993591 0 :ihope!unknown@unknown.invalid QUIT :"CGI:IRC (Ping timeout)" < 1198993618 0 :Sgeo!n=Anonymou@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1198993629 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Crashed < 1198993631 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What did I miss? < 1198993637 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :After Remind me not to do what I just did < 1198993658 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric : no that's the same idea as pesoix < 1198993694 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's not compatible with PSOX, also, don't some parts of PESOIX interact directly with "cells" instead of going through stdio? < 1198993725 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :true, but my implementation wasn't going to do that < 1198993745 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, your implementation was basically going to selectively ignore parts of the spec. < 1198993757 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1198993764 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :My implementation is going to violate my spec a bit :/ < 1198993764 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :you got a problem with that? < 1198993768 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1198993776 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :PESOIX is less flexible than PSOX =P < 1198993797 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :anyhow.. so whatever it is.. did you get it working? < 1198993826 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is almost done with the core part of the spec, and has implemented the handshake < 1198993848 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :ahh so not implemented? < 1198993864 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Not yet < 1198993868 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is coming up with a C library to use it for no good reason < 1198993876 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :that's the hard part :) < 1198993895 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I hadn't even really started on the "spec" part < 1198993900 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :of the implementation < 1198993912 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :just trying to get the I/O wrapper going and I failed < 1198993988 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The I/O issues is why I'm requiring clients (the esolang using PSOX) to send a command in order to receive input from stdin < 1198994009 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :ahh.. so it won't work with arbitrary interpreters < 1198994029 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :that would make it much easier < 1198994031 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :arbitrary interpreters it will work with. The esolang is required to send the command though < 1198994056 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :oh, gotcha.. hopefully that works out < 1198994058 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :(actually, the interpreter needs to receive from stdin character-by-character) < 1198994082 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Read http://trac2.assembla.com/psox/browser/trunk/spec/psox.txt under Pseudodomains < 1198994549 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :calamari, read/ < 1198994551 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :? < 1198994575 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :no I didn't, sorry < 1198994600 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :been trying to find a PCI video card with composite/svideo out that also doesn't have a fan < 1198994651 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Thank you for all your work on PESOIX btw < 1198994806 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yw, but it doesn't even work, so don't thank me too soon :) < 1198994851 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Well, the spec was the inspiration for PSOX < 1198995041 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION pokethanks calamari  < 1198995055 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :ahh, the spec wasn't my work.. that was TheRaven < 1198995065 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :..oh < 1198995068 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :except the esoapi part ;) < 1198995076 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Who was EsoAPI? < 1198995079 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :me < 1198995100 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Well, thank you very much for something that inspired something that inspired PSOX < 1198995108 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :lol.. yw < 1198995142 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :there, something interesting might out of all that esoteric os stuff after all < 1198995161 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I don't think PSOX can be used to make an esoteric OS :/ < 1198995198 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :that reminds me.. a while back some guy emailed me saying he was using BOS in one of his classes. So my name was probably cursed by many a student on that one :) < 1198995227 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although, in theory, you can use a subset of PSOX, extended with a custom domain, as a thingamagigy for an EsoOS < 1198995245 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1198995921 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should probably go to slepp < 1198996020 0 :Slereah_!n=Test4@82.126.22.128 JOIN :#esoteric < 1198996695 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1198996716 0 :Slereah!n=Test4@82.126.22.128 JOIN :#esoteric < 1198997152 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Implementation agenda: output w/ 0x00 0x00, then class Domain, then domain dispatcher < 1198997167 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Sound good? < 1198997243 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :After that, I'll get working on the implementation of the domains themselves, which should be quick, assuming the specs are done.. < 1198997328 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric : Hmm. < 1198997346 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Also, I should note in psox.txt somewhere that "," can be delayed.. the server stores it up until requested by the client, effectively < 1198997365 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Good? < 1198997369 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1198997370 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mmkay. < 1198997374 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION needs to go to sleep now, g'night < 1198997398 0 :Sgeo!unknown@unknown.invalid QUIT :Remote closed the connection < 1198998039 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1198998046 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1198998127 0 :puzzlet!unknown@unknown.invalid QUIT :Client Quit < 1198998163 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1198999021 0 :Slereah-!n=Test4@82.126.22.128 JOIN :#esoteric < 1198999487 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1199000143 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1199000149 0 :Slereah-!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1199000157 0 :Slereah-!n=Test4@82.126.22.128 JOIN :#esoteric < 1199000530 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1199000538 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1199001599 0 :clog!unknown@unknown.invalid QUIT :ended < 1199001600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1199003670 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1199008539 0 :helios_24c3!n=helios@brln-d9badbab.pool.mediaWays.net JOIN :#esoteric < 1199009348 0 :Hiato!n=Administ@dsl-245-15-242.telkomadsl.co.za JOIN :#esoteric < 1199010875 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1199012196 0 :helios_24c3!unknown@unknown.invalid QUIT :"Leaving" < 1199013142 0 :RedDak!n=dak@host125-89-dynamic.2-79-r.retail.telecomitalia.it JOIN :#esoteric < 1199015794 0 :Hiato!unknown@unknown.invalid PART #esoteric :? < 1199015965 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :After my experiments with PVC instruments, I'm extremely confident that, with practice, I could play right to the finish a nocturne on a drainpipe flute. < 1199015970 0 :Hiato!n=Administ@dsl-245-15-242.telkomadsl.co.za JOIN :#esoteric < 1199015980 0 :Hiato!unknown@unknown.invalid PART #esoteric :? < 1199016442 0 :oklopol!n=ville@194.251.103.33 JOIN :#esoteric < 1199017861 0 :Slereah!n=Test4@82.126.22.128 JOIN :#esoteric < 1199018060 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1199018134 0 :RedDak!n=dak@host16-89-dynamic.3-79-r.retail.telecomitalia.it JOIN :#esoteric < 1199018957 0 :Slereah-!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1199018978 0 :Slereah-!n=Test4@82.126.22.128 JOIN :#esoteric < 1199019009 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1199023285 0 :helios_24c3!i=none@1337.chaosnase.de JOIN :#esoteric < 1199024989 0 :ehird`_!n=ehird@user-5440bd6b.wfd77a.dsl.pol.co.uk JOIN :#esoteric < 1199026996 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :finally, i'm fairly sure it works < 1199027011 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that was one hellish language to parse :\ < 1199027048 0 :Slereah-!unknown@unknown.invalid NICK :Slereah < 1199027265 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: do show < 1199027436 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol, found a bug : ) < 1199027953 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, right, i just forgot i need to fix the evaluator too < 1199027954 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1199028712 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p612225632.txt < 1199028765 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the same unidirectional ring i showed before, now demonstrating the syntax < 1199028778 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the computation syntax that is < 1199028804 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, to be exact, the syntax of expressions, since statements and expressions are very clearly separated. < 1199028955 0 :sebbu!n=sebbu@ADijon-152-1-86-187.w81-49.abo.wanadoo.fr JOIN :#esoteric < 1199029902 0 :sebbu2!unknown@unknown.invalid QUIT :Connection timed out < 1199030019 0 :ihope!n=474bba10@gateway/web/cgi-irc/ircatwork.com/x-6543eb5e2eea6bfb JOIN :#esoteric < 1199030694 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Hello ihope < 1199030971 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Ello. < 1199031204 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Let's say that the Love Machine 9000 has 2 strings of length 5 that are valid programs. Both of these programs are circle-free (I won't say "halting", no program in the minimal syntax ever halt. The tape doesn't even stop moving). < 1199031225 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What would be the first term for the Chaitin constant of this machine? < 1199031271 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(The two programs are q0, S0 -> PS0, LE -> q0 and q0, S0 -> PS0, RI -> q0) < 1199031908 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :makes you wonder when a book written in 1997 says "it would take tens of man-years to write a compiler for a high-level language like pascal" < 1199031927 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :were people stupider back then? :) < 1199031927 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1199031940 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Possibly just lazy. < 1199031945 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, true < 1199031971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but wtf, pascal is simple as hell :\ < 1199031988 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or then i just know a subset of it and think that's all < 1199032054 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, i'm pretty sure i could write a decent pascal compiler in a month, and i'm not even a professional :\ < 1199032077 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just create boy-years, which are like man-months. < 1199032101 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :gonna get some keb -> < 1199032295 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :someone should make a programming language that is based on an editor < 1199032304 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the program simply manipulates the editor buffer of the program < 1199032305 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1199032317 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and the only way to loop is to manipulate the program with a quine < 1199032443 0 :jix!n=jix@1337.chaosnase.de JOIN :#esoteric < 1199032523 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1199034452 0 :faxathisia!unknown@unknown.invalid QUIT :"Leaving" < 1199034868 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :,[.,] < 1199034868 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :((in 0) (loop 0 ((out 0) (in 0)))) < 1199034872 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :now for optimization < 1199034960 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what are the 0's for? < 1199035000 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: at-position < 1199035009 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :>>,<< will be optimized to (in +2) < 1199035021 0 :helios_24c3!unknown@unknown.invalid QUIT :"Leaving" < 1199035041 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ic < 1199035197 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: then after optimization it can be put into $BACKEND < 1199035209 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i'm going to write one for brainfuck, just for kicks :-) < 1199035244 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1199035259 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :bf-bloatarize :-) < 1199035267 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :also C (obviously), probably also an x86 machine code backend < 1199035272 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1199035278 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :maybe scheme, and try and make it work as functionally as possible while being fast :P < 1199035323 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: do you do any optimization for unmatching <>'s < 1199035323 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: there's also some special instructions, right now just 'clear' which optimizes (loop X ((add 0 -1))) to (clear X) < 1199035345 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: uh, i don't see any real sensible optimizations i could do < 1199035417 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should make a real optimizer sometime, the ones i've made in c++ suck ass :P < 1199035480 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :scheme will be great for writing my optimizor in :-) < 1199035501 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :except... (add x y) (add x z) optimizations need destruction :( < 1199035959 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :hm, that destruction really IS infuriating < 1199036189 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what destruction? < 1199036269 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :seems like a trivial pattern match to me < 1199036363 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although basic scheme doesn't have easy pattern matching built in afair < 1199036395 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(i'm sure someone must have made macros for it) < 1199036536 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait you weren't using scheme at this stage were you? < 1199036537 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i've decided to lessen my scope for now < 1199036547 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yes, i am < 1199036571 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :instead of generic optimization and backends, first i'm going to write a highly-aggresively-optimizing BF->x86 machine code compiler < 1199036582 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :syscalls will jsut be OS X, since it's what i know :-) that could easily be changed < 1199036593 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :what's the fastest known BF compiler right now? < 1199036654 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :don't know < 1199036682 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ok, well what's a fast one :P < 1199036691 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :specifically, i'm going to be comparing mandelbrot.b performance < 1199036697 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :check the wiki < 1199036700 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the fastest interpreter runs it in around 10 seconds < 1199036709 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :so compiled, i dunno... i think i could do 2 seconds? :-) < 1199036780 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :from the wiki: "Due to the fact that the last half of its name is often considered one of the most offensive words in the English language, it is sometimes referred to as ... b****fuck ..." < 1199036781 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :brilliant < 1199036785 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :b****fuck < 1199036856 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :does egobf have a compiler? < 1199037021 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sure. egobfc. < 1199037059 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which does all the optimization that egobfi does. ;) < 1199037105 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Also, that editor language you discussed? < 1199037110 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :We have a name for it: TECO. < 1199037467 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :teco's not what i meant < 1199037468 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1199037488 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :you can do a factorial in teco without quining the program in its editor buffer and changing various parts of it to the result < 1199037953 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :most bf impls seem to be interps, oerjan < 1199037955 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the iwki is not much heklp < 1199038026 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: what about yours? didn't you have a Pebble-based bf compiler? < 1199038120 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :via C iirc < 1199038396 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :he does < 1199038400 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :but it's not that optimizing as far as i know < 1199038413 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :http://www.zathras.de/angelweb/blog-generating-machine-code-at-runtime.htm now this would be a good way to make a bf interp < 1199038421 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :compile to machine code then execute onthefly :-) < 1199038431 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Just-in-time, eh? < 1199038440 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1199038506 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :I don't know a simple tutorial to the mach-o format for writing out executables actually < 1199038509 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::-( < 1199038776 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Mirek's Cellebration 4.20 is 6 years old and it still seems to be the best cellular automata program for many purposes. < 1199039035 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Sure. PFUCK. < 1199039053 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's lightly optimizing. < 1199039250 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :0m1.680s, with gcc -O2 using C outputted by http://esoteric.sange.fi/brainfuck/impl/compilers/bf2c.hs which seems to do a lot of optimization < 1199039253 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :mandelbrot.b < 1199039255 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :not bad at all < 1199039393 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :haskell seems really suited to that < 1199039401 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :since bf optimization is pattern matching < 1199039408 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :if only i knew haskell < 1199039659 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Where's mandelbrot.b? < 1199039691 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.sange.fi/brainfuck/bf-source/prog/mandelbrot.b < 1199039693 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :like all bf programs! < 1199039708 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :bff, fastest (or second-fastest?) bf interpreter, runs it in a bit over 10 seconds < 1199039715 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :that compiler does it in 1.680 with gcc optimizations < 1199039733 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :gimme pfuck's compiled-c version < 1199039735 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i'll test it < 1199039746 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :all optimization is pattern matching < 1199039750 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: that was sort of the unwritten part of my pattern matching statement above ;) < 1199039771 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: using pattern matching could get quite verbose for some optimizations :-) < 1199039780 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yeah, well, teach me haskell < 1199039781 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1199039829 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :graphica is getting quite awesome now, i'm fairly sure you can do an n dimensional hypercube now < 1199039837 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in fact, i'll try < 1199039838 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :show me a graphica 3d hello world < 1199039845 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1199039915 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now that i've given it a bit of thought, graph rewriting may be quite a nice platform for programming < 1199039928 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it has the minor defect of being superturing to implement. < 1199039933 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :errrr < 1199039938 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that was badly put ::P < 1199039942 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i guess you got it < 1199040145 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://pikhq.nonlogic.org/mandelbrot.c < 1199040505 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Graphica and graph rewriting, eh? < 1199040644 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1199040646 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1199040792 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shrugs < 1199040804 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :has it been done? < 1199040821 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :never heard about it :\ < 1199040836 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not that i care, really < 1199040844 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i am interested < 1199040874 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :here goes pikhq < 1199040959 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: 2.5-3 seconds < 1199040963 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :you lose, by a lot < 1199041067 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: would a brainfuck->? compiler be a good learn-haskell project do you think? :-) < 1199041081 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: But not bad at all for such simple optimisation. < 1199041081 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and i actually mean from scratch - use my little knowledge of haskell, hack something out, learn from it < 1199041087 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no darn tutorials :-) < 1199041100 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: i did give you the benefit of gcc -O2, and this machine is recent < 1199041115 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :(dec 06, with the model being introduced sept 06) < 1199041162 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Still, consider that I'm doing barely anything to the code. ;p < 1199041185 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1199041208 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And it's in Brainfuck. Surely that's worth something. :p < 1199041228 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, isn't the gregor's one the official fast bf interp? < 1199041230 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no, it's in pebble < 1199041235 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: not interp: compiler < 1199041247 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, interp in that it's used as one < 1199041255 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no i mean < 1199041259 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i'm lookin for a compiler < 1199041265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, it compiles < 1199041272 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :egobfi8 and egobfc8. < 1199041279 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :compiles to binary code and runs it, iirc < 1199041279 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :They're both insanely fast in my experience. < 1199041296 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: compare yours to that < 1199041307 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :more interesting < 1199041315 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :egobfc8, someone give me it as a c file :P < 1199041357 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eso archives? < 1199041357 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://pikhq.nonloigc.org/mandelbrot.c < 1199041384 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :er i meant the compiler. but ok :P < 1199041402 0 :UnrelatedToQaz!n=chatzill@host86-148-60-193.range86-148.btcentralplus.com JOIN :#esoteric < 1199041445 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: i don't know about not looking at a tutorial, but otherwise i think so < 1199041481 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well i've read YAHT in the past, g ot iup to the bit where it started talking about crazy mutant types :-) < 1199041502 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Ha, ha, egobfc8 sucks! Bus error. < 1199041679 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: :-) < 1199041694 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Um? < 1199041705 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gah. < 1199041713 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I thought you *fixed* that bug. < 1199041719 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe :P < 1199041730 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's not about working, it's about how great it would be if it works! < 1199041736 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*worked < 1199041767 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :none of you happen to be graphica experts? :\ < 1199041780 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i want to know if a binary n dimensional hypercube is possible < 1199041784 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: haskell pattern matching can't handle variable stuff, right? < 1199041788 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :what i meani s < 1199041805 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :++++++++++++ -> one instruction would have to be done by matching ++ then recursing, right? < 1199041818 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: er of course it's possible, mathematically < 1199041823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can define new patterns < 1199041827 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it is? < 1199041855 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if it means what i think it is < 1199041862 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :did you prove graphica tc? :P < 1199041881 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i am not talking about graphica < 1199041886 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1199041899 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, is it possible to define one in graphica < 1199041906 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: also, why doesn't emacs auto-indent haskell? :( < 1199041907 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no idea < 1199041914 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i have haskell-mode etc < 1199041930 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: apparently you need to cycle through possible indentations < 1199041938 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(so i hear) < 1199041938 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :to take an example from bf2c.hs, "norm_move p = fst (nm p 0 0) where" is followed by some indented lines, but if i C-j on the 'where', i just get 0-indent < 1199041949 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: oh jesus. no way am i going to do that < 1199041961 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :python has this problem, and python-mode uses the SANE indent level by default and THEN lets you cycle :( < 1199041962 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll make a spec and hope one of the math wizzes here shows me how it's done < 1199041966 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so what do you edit haskell with? < 1199041972 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :vim < 1199041979 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm pointing my hairy hand at you, oerjan and ihope! < 1199041987 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :does that indent your code for you, oerjan? :P < 1199041988 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and i don't claim it's good < 1199041990 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i know vim does autoindent < 1199041991 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :but for haskell? < 1199041996 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for indentation < 1199042018 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1199042020 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1199042033 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although i have not tried any fancy setup < 1199042095 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :hm my bf compiler will be written in haskell and target c < 1199042099 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :though i shall be sure to only use the simplest of c < 1199042108 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :damn, now i have to name it :P < 1199042109 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i just use the default language insensitive autoindent < 1199042174 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i'll just use emacs :P < 1199042199 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as for +++++ i would just match on the first + and use span or something to get the rest < 1199042223 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :span (== '+') < 1199042247 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i'll be applying optimization iteratively anyway < 1199042249 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :something like < 1199042256 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :while optimization_done: optimization_done = optimize() < 1199042269 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :so it'll aggressively do as much as possible < 1199042284 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that's extremely unhaskelly way of writing it :D < 1199042297 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mutable Bool < 1199042299 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yeah, i know :-) < 1199042304 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it was just pseudocode < 1199042310 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :to demonstrate what i meant < 1199042438 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :frainbuck < 1199042535 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: do you know anyting about yi? < 1199042595 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :only that it's a haskell editor < 1199042659 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1199042663 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :http://haskell.org/haskellwiki/Haskell_mode_for_Emacs i'm going to do that haskell unicode thing < 1199042666 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :because i am curazy! < 1199042889 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :be careful not to mess up indentation with characters with the wrong width < 1199042899 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::-) sure < 1199043157 0 :sebbu2!n=sebbu@ADijon-152-1-14-67.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1199043281 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :$ darcs get --partial http://code.haskell.org/yi/ < 1199043281 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Copying patch 238 of 1251... < 1199043288 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :you call that PARTIAL, darcs?! < 1199043694 0 :calamari!n=calamari@ip24-255-58-134.tc.ph.cox.net JOIN :#esoteric < 1199043696 0 :ihope!unknown@unknown.invalid QUIT :"CGI:IRC (Ping timeout)" < 1199044105 0 :sebbu!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1199044886 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: those algebric thingy-types are "data" not "type", right? < 1199044903 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the X = Y a b | Z a b stuff < 1199044988 0 :ihope!n=474bba10@gateway/web/cgi-irc/ircatwork.com/x-19761ab95fc55427 JOIN :#esoteric < 1199044993 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :yes, yes they are < 1199045037 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1199045042 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Damn, bf2c.hs optimizes /loads/ < 1199045056 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :type is for synonyms < 1199045065 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it optimizes ifs, sums, and even multiplications (of arbitary forms)!! < 1199045079 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :newtype is for single field data types, removing the usual box < 1199045264 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i don't think i can live up to the amazingness of bf2c.hs :( < 1199045275 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it's *really good* < 1199045288 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Huzzah! < 1199045809 0 :Hiato!n=Administ@dsl-245-15-242.telkomadsl.co.za JOIN :#esoteric < 1199045819 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Wassabi all :P < 1199045841 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no thanks < 1199045852 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i hear it's quite strong < 1199045854 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol, ok : Sup all < 1199045857 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric ::) true < 1199045857 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: how do i add an instance? i'm trying to get show working :-) < 1199045859 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :but nice < 1199045875 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: data ... deriving (Show) < 1199045910 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: indented the same as a |? < 1199045923 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or do you mean a custom one? < 1199045933 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :also, how do i then define 'show' on it < 1199045937 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for example < 1199045953 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um deriving (Show) gives you the default instance < 1199045985 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(i.e. neither | or deriving have very strict indentation requirements, just more than the "data") < 1199046046 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for a custom one, you don't use deriving, but instance Show MyType where show x = ... < 1199046047 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i mean, oerjan, I want to define how to 'show BF' < 1199046052 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1199046054 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :thank you < 1199046075 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :instance Show BF\nwhere, right? < 1199046084 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(assuming you don't need to deal with parenthesis precedences) < 1199046091 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p136521315.txt tell me if any part of that makes sense, will ya :) < 1199046119 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :need at least a space before the where in that case < 1199046143 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i would use instance Show BF where\n show ... < 1199046166 0 :tejeez!unknown@unknown.invalid QUIT :"mit helvetti t mun irssi sekoilee" < 1199046170 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(the where starts a new indentation block) < 1199046184 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :wow, oklopol, impressive < 1199046264 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders if helvetti means what he thinks it means < 1199046271 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hell < 1199046277 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right < 1199046279 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :graph rewriting... < 1199046279 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :! < 1199046288 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't rewrite anything yet. < 1199046302 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :currently, it's a graph *description* language.- < 1199046317 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, as always, i aim higher than i'll prolly ever get. < 1199046326 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: haskell-mode doesn't consider "instance Show BF where\n " to be a proper&right indentation < 1199046334 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :leastmost is aligned with 'Show BF' < 1199046345 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1199046347 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mitä helvettiä tää mun irssi sekoilee == what the hell is my irssi doing < 1199046351 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :roughly translated < 1199046376 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: thanks, although i don't agree :) < 1199046407 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: well the next line does need to be indented < 1199046425 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :how much doesn't matter < 1199046454 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: can i pattern-match "negative" and "positive"? < 1199046456 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :on an Int < 1199046466 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in case anyone happened to start reading the spec, tell me ;) < 1199046474 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :morning coke -> < 1199046479 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :I did :) < 1199046480 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :use a guard < 1199046509 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for example, f n | n < 0 = ... < 1199046515 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cool, i don't think it's any good if you don't know the syntax somewhat already, since it's very formal and simultaneously not that unambiguous. < 1199046515 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oh yes! those things < 1199046520 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*any good though < 1199046541 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll include the example progs i made < 1199046583 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Yes please < 1199046695 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Where can I paste some text, quickly, anonymousely? < 1199046704 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and also if i'm not here don't be afraid to ask in #haskell, the world's friendliest programming language channel < 1199046717 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :on the web? < 1199046719 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pastebin.ca rolls off my tongue < 1199046719 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p123363511.txt < 1199046743 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :right, thanks < 1199046747 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: http://hpaste.org/4720 < 1199046753 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but there are lots of them < 1199046758 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also /pb/, if you don't care about quality ;) < 1199046763 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :hahaha how ironic, you just mentioned #haskell, and someone mentioned pastebins < 1199046780 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the best ever pastebin will be written by me in oklotalk :P < 1199046785 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Or maybe Haskell, since I seem to like haskell < 1199046786 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1199046790 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: replicate b '+' < 1199046809 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :etc. < 1199046824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, right, the coke < 1199046827 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1199046842 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :damn... at this hour you still need coke outside :< < 1199046854 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION needs to turn his sleep cycle forward... < 1199046858 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whoooops < 1199046865 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :damn... at this hour you still need clothes outside :< < 1199046871 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: is the show (Move a) ++ blah good though? < 1199046876 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :otherwise, it's code repetition < 1199046880 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :freudian slip < 1199046885 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or is that anti-freudian < 1199046887 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1199046936 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: er, don't you need a backwards move too? < 1199046958 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric : show (Add 0 b) | b > 0 = '+' : show (Add 0 (b - 1)) < 1199046959 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric : show (Add 0 b) | b < 0 = '-' : show (Add 0 (b + 1)) < 1199046959 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric : show (Add a b) = show (Move a) : show (Add 0 b) < 1199046963 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i mean show (Add a b) there < 1199046970 0 :UnrelatedToQaz!unknown@unknown.invalid QUIT :"ChatZilla 0.9.79 [Firefox 2.0.0.11/2007112718]" < 1199047020 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1199047023 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: need ++ not : at least < 1199047024 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: before and after: http://hpaste.org/4720 < 1199047029 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1199047032 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i did that :-) < 1199047083 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually: replicate (abs b) (if b < 0 then '-' else '+') < 1199047100 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :http://hpaste.org/4721 < 1199047107 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :check it out, let me know < 1199047154 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: that's a bit ugly < 1199047177 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as you wish < 1199047196 0 :RedDak!n=dak@host16-89-dynamic.3-79-r.retail.telecomitalia.it JOIN :#esoteric < 1199047229 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh and it doesn't matter here but the usual way to do a second line after a guard is | otherwise without repeating the pattern < 1199047327 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: hpaste is really only for relatively short haskell code < 1199047334 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :woops < 1199047338 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :your text was truncated < 1199047340 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :should I remove it? < 1199047344 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric : show (Loop a b) = show (Move a) ++ "[" ++ show (Move (-a)) ++ show b ++ show (Move a) ++ "]" < 1199047345 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :aha, I see < 1199047349 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: there has to be a better way to od that < 1199047350 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and amusingly colored :) < 1199047387 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :someone give me a name < 1199047396 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not overtly common but not unusual < 1199047396 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Paul < 1199047402 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :a full name < 1199047409 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :John B. Griffith < 1199047420 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Rodger Nintendo < 1199047422 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :how do I remove? < 1199047422 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :wait, what < 1199047422 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders if he exists :) < 1199047430 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: i don't think you can < 1199047446 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1199047453 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the author identification is not working... < 1199047471 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i'll go with Paul Griffith < 1199047523 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: i don't think there is any much better way there < 1199047524 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: i have to agree with pikhq, you have some skill at designing esolangs < 1199047576 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Thanks oklopol < 1199047577 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1199047585 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/x491Ou33.html < 1199047589 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :ok, full manual < 1199047619 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: http://hpaste.org/4720#a2 i really don't like the look of this :( < 1199047642 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :also i keep bleeding up against 80 cols :( < 1199047704 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm a helper function: < 1199047746 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :showMoveBrak a s = show (Move a) ++ s ++ show (Move (-a)) < 1199047752 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Brak? < 1199047759 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er, bracketed < 1199047765 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :couldn't think of a good name < 1199047779 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::P it'll do < 1199047784 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: what country is .za? just wondered about your name :) < 1199047795 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Zambia? < 1199047801 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :sure, its South Africa < 1199047803 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1199047805 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :south africa < 1199047810 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :...haha < 1199047811 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Zouth Africa? < 1199047812 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :google powah < 1199047817 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :well Zuid Africa < 1199047822 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :in afrikaans < 1199047825 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :None of the official names for South Africa can be abbreviated to ZA, which is an abbreviation of the Dutch Zuid-Afrika. This is a legacy of when Dutch was an official language in South Africa, before being replaced by Afrikaans, in which the name of the country is Suid-Afrika. Afrikaans joined English and Dutch as an official language of the South Africa in 1925, and in the South African Constitution of 1961 Dutch was removed as an of < 1199047827 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: also you can break things into more than one line < 1199047833 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :and sa is south ammerica < 1199047837 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i did, but it looks ugly < 1199047846 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :yip, eihrd`_ nailed it :) < 1199047865 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :wikipedia powah < 1199047872 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1199047913 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Are you the only guy on the esomap from South Africa? < 1199047920 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Klerksdorp. < 1199047926 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"i.e. executing No-Op will < 1199047926 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :result in the data origin remaining intact but the data destination being modified." < 1199047929 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't get it < 1199047929 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or are you not on it. < 1199047932 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :I think so < 1199047933 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :isn't no-op a nop? < 1199047938 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :well, I'm not on it :0 < 1199047943 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :No-Op = No Operation < 1199047974 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Ie, when you send things through a No-Op, the data destination is increased by the value in the data origon < 1199047979 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :well, yes < 1199047984 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :No-Op = nop < 1199047988 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :but I prefer No-Op < 1199048004 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: showMoveBrak :: Int -> String -> String < 1199048007 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i can has type sig! < 1199048022 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Sleereah, I'm in Johannesburg, not Klerksdorp ;) < 1199048045 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: < 1199048046 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :*Main> parse ",[.,]" [,,[[.,,]],.,,] < 1199048048 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i have work to do < 1199048057 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :'kay < 1199048068 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :on my parser, though < 1199048068 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah, so ~ always moves stuff from one memory layer to the other < 1199048088 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(I remembered that there was just one point in Africa, and it was South Africa) < 1199048089 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1199048089 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :yuip < 1199048094 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i really want an instance of Show [BF] too < 1199048099 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :(lol :P ) < 1199048110 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :I'm not so sure how clear that was oklopol, sorry < 1199048128 0 :ihope!unknown@unknown.invalid QUIT :"CGI:IRC (Ping timeout)" < 1199048132 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :but during it's move, it's modified by the current command < 1199048142 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: show [x,y] where show x = "a" and show y = "b" is "ab" < 1199048145 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :what function does that? < 1199048151 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i.e. map-then-join-with-no-sep < 1199048169 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: i guessed that, but it may well be said clearly in the spec < 1199048177 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm bad at noticing stuff < 1199048199 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, what exactly does it mean when a row is shifted? < 1199048200 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol, no prob. It's probably written badly though, haven't revised it at all < 1199048213 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :well, picture a grid type situation < 1199048217 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1199048222 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :where you have a row containing say 6 4 5 < 1199048227 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :then you shift left < 1199048228 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1199048233 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: unwords adds a space < 1199048236 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :it becomes 4 5 6 < 1199048248 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :almost kinda like a rubix cube < 1199048253 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, hehe, thought the whole row moves :) < 1199048254 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :but 2d and wrap around < 1199048265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but indeed, row is - and column is | < 1199048277 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol :D. I will revise the spec to make that more clear :) < 1199048291 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :yep (that is right? ) < 1199048330 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: concatMap < 1199048349 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :instance Show [BF] where show = concatMap show < 1199048354 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :lean, mean, currying, one-lining machine < 1199048363 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric : Illegal instance declaration for `Show [BF]' (The instance type must be of form (T a b c) where T is not a synonym, and a,b,c are distinct type variables) In the instance declaration for `Show [BF]' < 1199048377 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: there is already a general instance for [] < 1199048392 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :so Slereah, fixed the beer problem for the lm ? < 1199048404 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually that error is more subtle, it is because you have not enabled extensions < 1199048410 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but you don't need them for this. < 1199048418 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so, what do i do :P < 1199048457 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Hiato : Yes I habe < 1199048462 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :instead, in the instance for BF _itself_, add a line showList = (concatMap show ++) < 1199048471 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Here it is : http://paste-it.net/5486/raw/ < 1199048474 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :With comments and all! < 1199048485 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er wait < 1199048494 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :messed up < 1199048503 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :If it doesn't work, I'll also upload the last version of the love machine. I don't remember which one I uploaded last < 1199048513 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :showList l s = concatMap show l ++ s < 1199048522 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :too much pointlessness :) < 1199048543 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :showLis tl = concatMap show l ++ < 1199048547 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :just right! < 1199048547 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :cool, thanks Slereah < 1199048547 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1199048548 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1199048587 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :awesome stuff that comments state :) < 1199048592 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i think i need to ditch the ++ < 1199048594 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :*Main> parse ",[.,]" ,[.,]., < 1199048605 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hihi happy comments :) < 1199048607 0 :dak!n=dak@host37-87-dynamic.6-87-r.retail.telecomitalia.it JOIN :#esoteric < 1199048619 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Actually, it just takes advantage of the fact that the love machine doesn't look what's in a state until it calls them. < 1199048634 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: you missed the s in my correction < 1199048638 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol, cool :) < 1199048641 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I could probably make a better comment system < 1199048648 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :ps: Line feeds make it way way slower..... < 1199048658 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :hugely slow < 1199048686 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :yes oerjan but i missed the param too :-) < 1199048689 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :so it's valid pointless < 1199048705 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't seem any slower than before to me. < 1199048713 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: for pointlessness you need to have parentheses around it < 1199048718 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :So overall, oklopol, is it worth pursuing as an Esolang? < 1199048724 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's not a very efficient program, you should know that. < 1199048737 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I could probably make a better version. < 1199048750 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1199048750 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i did oerjan < 1199048753 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'll probably try once I isntalled m-states. < 1199048754 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because it has an operator at the end < 1199048759 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric : showList l = (concatMap show l ++) < 1199048777 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Sure, well priorities... (beer should be up there :P j/k ) < 1199048777 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :*Main> parse ",[.,]" ,[.,]., < 1199048779 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :still wrong < 1199048786 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1199048786 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1199048793 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parse ('[':s) = Loop 0 (parse s) : parse s < 1199048794 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: i'd say, and considering the amount of trivial brainfuck derivatives, that's quite a sophisticated lang < 1199048797 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :see if you can spot the error! :-) < 1199048811 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Thanks very much oklopol :D < 1199048812 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1199048832 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: only being polite so you'd read the graphica spec ;)) < 1199048836 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you may need a more clever parser < 1199048836 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: http://hpaste.org/4722 i think i'd have to do a pretty major parser change for that < 1199048839 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(just kidding) < 1199048847 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :(note that this also behaves weird on ]s in other places, iut was just a quick hack) < 1199048851 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol, I read it anyway ;) < 1199048854 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :(lol) < 1199048875 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: does oklotalk have objects? < 1199048878 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :or classes < 1199048932 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no classes < 1199048949 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :prototype-based oo is possible < 1199048956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :using functions. < 1199048964 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ok. < 1199048965 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kinda like javascript ;;;;) < 1199048983 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i'm going to sketch out my Counter application for my hypothetical oklotalk-based web framework :P < 1199048987 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :give me an example of that oo? < 1199049005 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: the usual trick is to return the part remaining after the parse < 1199049038 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so parse "++-+]-+++" = (something, "]-+++") < 1199049049 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i see < 1199049050 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1199049067 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i'll need a helper function instead of : then < 1199049070 0 :Sgeo!n=Anonymou@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1199049082 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Animal={§say -> outn "A generic animal says nothing!"}; Turtle=Animal+{§say -> outn "Turtle says moo"} < 1199049120 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1199049121 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ok, now pick another symbol instead of fucked-S so i can type it < 1199049132 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol :) < 1199049136 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :alternatively, this is an idea: < 1199049141 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :use tons of unicode chars < 1199049141 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :instead of => < 1199049145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1199049148 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :use the unicode two-pronged-arrow-right thing < 1199049165 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :then, i won't complain and instead will just make an emacs/whatever mode that rebinds loads of keys to that < 1199049169 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just make your own simplified oklotalk -dialect... < 1199049169 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :like an APL-for-modern-machines does! :D < 1199049177 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :my idea is cooler :( < 1199049180 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it's more weird, like oklotalk! < 1199049187 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you won't be able to make a full interp anyway using the examples i give you < 1199049194 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i know that < 1199049194 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :but even so < 1199049221 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that'd be a cool idea if i knew how to produce those characters. < 1199049229 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: what editor do you use < 1199049230 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't really care about the characters. < 1199049240 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :gedit nowadays < 1199049241 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Grr my dad locked the computer < 1199049264 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: OK, well start using emacs and i'll write an oklotalk-mode that lets you type then :-) < 1199049265 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :*them < 1199049266 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1199049279 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :alternatively, release an oklotalk spec using them and i'll write an editor in it that lets you type them < 1199049279 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1199049287 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is a bit too irritated to really work on PSOX < 1199049292 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1199049292 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, what do you have? < 1199049314 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :wassup Sgeo :) < 1199049316 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: with that thing you did, how can you do super? i.e. call the same function in the parent object, and how do you clone an object, and how do you create an initialization function? < 1199049324 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i guess: < 1199049333 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can make those synthetically < 1199049336 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1199049338 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :but < 1199049340 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :how do i call a method < 1199049341 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1199049343 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and they'll be there as built-ins. < 1199049359 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Object!§Method < 1199049372 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or object §method < 1199049378 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there are lots of ways to calla function < 1199049380 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*call a < 1199049381 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo : http://www.rafb.net/p/x491Ou33.html tell me what you tink < 1199049385 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :*think < 1199049386 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :is there a 'returning x as y, z'? < 1199049387 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :that is: < 1199049393 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :well < 1199049393 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1199049396 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :a construct behaving like this: < 1199049406 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :x = y; ...stuff using x...; y < 1199049431 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has no opinion < 1199049444 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: wait, don't need it < 1199049452 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Does the interpreter read character-by-character, or line-by-line? < 1199049453 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :(gee thanks -_-) < 1199049458 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I mean, read stdin < 1199049460 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :( ;) ) < 1199049467 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ok, one final question: how can i check whether an object has a certain method or not < 1199049484 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It needs to read stdin character-by-character in order to work with PSOX < 1199049493 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :My interpreter? < 1199049500 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :well, naive new: New={o=_+{}; o §init; o} < 1199049502 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It can write to stdout line by line, and in fact, PSOX.py will do that :/ < 1199049505 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hiato, yes < 1199049513 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: what about instance vars < 1199049520 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and what about 'self' < 1199049526 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :function gives out it's patterns using F!#something < 1199049526 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Yes, character by character (the Full 0 one at least, this one doesn't exist yet) < 1199049529 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :don't remember what < 1199049549 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do a {_!0}\(F!#ptrns) < 1199049554 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and you have the methods < 1199049568 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :self is ' < 1199049687 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyhow, hope that really is your final question, since i think i'll stop answering your further questions now :< < 1199049694 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION read that as instance wars < 1199049710 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: should i do (list, rest)? < 1199049713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uhh, what a title < 1199049715 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :or could 'list' be something better < 1199049729 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Instance Wars: The Awakening < 1199049744 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whatever structure you want < 1199049765 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for a list of BF commands, list seems fine... < 1199049767 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: asking for a suggestion :-) < 1199049776 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1199049780 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: you read the spec as future tense, present or past? < 1199049782 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i need some kind of parse-dispatcher < 1199049783 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :to loop parse < 1199049786 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since i wants opinions :-) < 1199049879 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you may have a single command parser, and a command list parser which are mutually recursive < 1199049885 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol, sorry < 1199049896 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :you know what I meant though < 1199049919 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err no actually, that's why i asked :) < 1199049938 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol, ok "I want opinions" < 1199049955 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :opinions regarding graphica, that is < 1199049960 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I want onions. < 1199049963 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :who doesn't < 1199049967 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :shrek < 1199049970 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1199049976 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: alrighty < 1199049985 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: parse and parseChar, dynamic duo < 1199050008 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :wait, now I'm confused < 1199050011 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: except parseChar will parse an entire loop if it hits one < 1199050027 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: parseInstruction's a bit too long... < 1199050029 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: parseFoo? < 1199050030 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :who's spec was that that I read and said wants opinions? Mine are yours oklopol ? < 1199050030 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll try to explain, if you're confused about the spec. < 1199050037 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :...? < 1199050038 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :parseCmd < 1199050044 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :I am soo lost < 1199050047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1199050051 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Graphica spec is by me < 1199050055 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i want onions about it. < 1199050058 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :yes, I know that < 1199050060 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1199050061 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you've almost fully converted me to loving haskell, byt he way :-) < 1199050061 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Would anyone object that PSOX.py writes to stdout line-by-line? < 1199050066 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it's a lot simpelr than i thought < 1199050073 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh :) < 1199050085 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :"Hiato: you read the spec as future tense, present or past?" Because I though that that was a comment about something I had said about my spec < 1199050086 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i didn't paste it here for your enjoyment, but because i wanna know if it's readable :P < 1199050089 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: parseCmd :: String -> BF -- seems right to me < 1199050094 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, sorry < 1199050110 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i meant about the grph. spec < 1199050113 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_, does this mean you're going to write a PSOX Server in Haskell? < 1199050117 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: -> (BF, String) < 1199050122 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: If you want. SUre. < 1199050127 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Whoops, yes < 1199050137 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :sure, will read and concentrate now :) < 1199050137 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :erm, that was a joke >.> you don't need to do that < 1199050144 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: and parse :: String -> ([BF], String)? < 1199050156 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Well why not < 1199050160 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right < 1199050176 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in fact take a look at the definition of ReadS < 1199050190 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_, it would be a bit of a project, and also domain implementors would also need to implement their domains in Haskell >.> < 1199050201 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's a type for simple parsers, used by the Read class < 1199050212 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: so what you won't have a standard for domain implementation languge < 1199050217 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: also no it wouldn't be < 1199050221 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no harder than psox.py < 1199050228 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :someone get lambdabot in here < 1199050232 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :s/lambdabot/a lambdabot./ < 1199050238 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION considers PSOX.py to be a bit of a project < 1199050259 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :psox is trivial < 1199050300 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Have you read the specs at any time after it came into existance from being branched off of PESOIX? < 1199050305 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1199050334 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bah, lambdabot doesn't have @src ReadS anyhow < 1199050352 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just do :i ReadS in the interpreter < 1199050384 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :hrmm, well oklopol... I must say, that yes, I get the basic gist of what is going on, but the syntax is laid out awkwardly < 1199050397 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you mean the bnf thingie? < 1199050401 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :the explination, that is < 1199050403 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :yip < 1199050414 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the expression syntax would've been too weird given as a bnf... < 1199050419 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, that's what i thought < 1199050424 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so it's explained separately < 1199050428 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1199050430 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: although for more complicated parsers, the Parsec library is your friend. < 1199050440 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you point out what exactly is bad about it? < 1199050461 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I've tried Parsec before! I liked it. Nice paradigm. < 1199050464 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :But not for Brainfuck < 1199050465 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1199050474 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's a bit overkill for that < 1199050480 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :*Main> :i ReadS type ReadS a = String -> [(a, String)] -- Defined in Text.ParserCombinators.ReadP < 1199050484 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :how useless < 1199050499 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :well, just the way that things are broken down, perhaps start with the most basic structers and then build it up < 1199050510 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :instead of starting with something that needs < 1199050527 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :to be referenced from the bottom of the list < 1199050537 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :perhaps have the smallest ones first/most basic < 1199050544 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :then the more composite and advanced structers < 1199050550 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: that's not how most bnf is layed out < 1199050555 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :anyway, that's what I feel < 1199050563 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :well, yes, but the Graphi one isn't < 1199050566 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :it's backwards < 1199050635 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :*Graphica < 1199050645 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :or have I had one too many < 1199050661 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so what IS readS < 1199050664 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::-)) < 1199050666 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1199050668 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it's a type < 1199050669 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :duh :-) < 1199050679 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also do :i Read < 1199050684 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :hm so parse :: ReadS BF < 1199050690 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that's the class that uses it < 1199050706 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't consider that an issue really, but usually bnf's go bottom-down < 1199050710 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Read confuses me, so I'm going to ignore it! < 1199050711 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :at least that's my experience. < 1199050719 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :... is that ok? :P < 1199050728 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :... < 1199050731 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bottom-down xD < 1199050733 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :top-down < 1199050734 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Actually, I think for BF i should just repeat the readS type < 1199050734 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1199050735 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it's tiny anyway < 1199050736 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1199050738 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although i don't think you need the list around just for bf < 1199050771 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol, well sure, it's your language, and you're more experienced < 1199050774 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :otoh maybe you do, an empty list signals a parse error < 1199050791 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :but I just felt it awkward to reference stuff that hadn't yet been introduced < 1199050791 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parse :: String -> [(BF, String)] parse "" = [] parse s = let (p, s') = parseCmd s in p : parse s' < 1199050797 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: looks right to me < 1199050824 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er... no that's not how it's used < 1199050837 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :welp, it should work fine actually < 1199050839 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :looking at this code < 1199050854 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you want ([BF], String) < 1199050860 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1199050869 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: apart from that, do you understand it? i don't see any difference in the order they're given myself, i've just seen top-down more frequently, so i used that. < 1199050880 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :err < 1199050884 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :that makes parse String -> [BF] < 1199050888 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the evaluation part is top-down too. < 1199050889 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :yeah i'll fix that. < 1199050904 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no wait. you are right oerjan < 1199050914 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :hrmm, yes that aside, I get the flow of it, but not the whole thing entirely < 1199050977 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :uh oerjan what should an example result look like from parse < 1199050982 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :say (parse ",[.,]") < 1199050999 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :I feel like I'm missing something (not sure what) but something to make the jump from bnf to example < 1199051009 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :but I could get it if I stared at it long enough I suppose < 1199051019 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :([In 0, Loop 0 [Out 0, In 0]], "") < 1199051035 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :iirc your types < 1199051036 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i myself feel it explains it all, but doesn't really explain anything :) < 1199051048 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :should be a bit more example'y i guess < 1199051061 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Write and Read, actually. So - parse always is (tree, "")? < 1199051076 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not always < 1199051087 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if you call parse recursively, it should stop at ] < 1199051115 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parse ",[.,],[.,]" -> ? < 1199051117 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because it is then used to parse inside a loop < 1199051125 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, that would be nice, like a walk through idiot example < 1199051126 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :just one < 1199051136 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that will also end with "" < 1199051151 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll make a short tutorial, that + the spec might clear it up a bit < 1199051164 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... wonder if it's time to put my languages on the esowiki :-) < 1199051164 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what wouldn't < 1199051169 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :(this is like talking to SHRDLU :-)) < 1199051179 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :been wondering whether i should from the day i joined here < 1199051191 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but parse ".,],[.,]" = ([Write 0, Read 0], "],[.,]") < 1199051212 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, that would be awesome. Ha, I think it's about time Full 0 got onto the wiki < 1199051216 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :but I have no clue how < 1199051219 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :shoudln't you get a parse error, oerj? < 1199051223 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and that one would be a recursive call used for the loop of the former one < 1199051233 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: just as you'd use any other wiki < 1199051234 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1199051235 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :...i think < 1199051249 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan and ehird`_ can tell you that < 1199051259 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've never touched a wiki in my life :P < 1199051260 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i don't see what definition parse could have < 1199051261 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1199051262 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :scaaary < 1199051264 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Ditto < 1199051274 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :we see the same things :) < 1199051279 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Oklowiki will solve that! it shall be trivial! < 1199051283 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and written in Oklotalk! < 1199051285 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1199051286 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :With my fictional web framework < 1199051289 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :oh yeah :) < 1199051291 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1199051308 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :To help protect against automated account creation, please solve the simple sum below and enter the answer in the box (more info): 32 + 10 = LOLOLOL < 1199051317 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: you just add a special case parse s@(']':_) = ([], s) < 1199051319 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :32 + 10 = 3210 < 1199051322 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oklowiki is a virtual wiki that automatically uses every wiki it can find on google simultaneously. < 1199051323 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :a malbolge script could do that < 1199051330 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: s@p? bizzare < 1199051331 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: haha no < 1199051332 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Wicked < 1199051340 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: btu it won't know to look for that. < 1199051357 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: it will just say 'porn viagra cuddly toy' for all fields, or similar < 1199051359 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and thus fail < 1199051361 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :well, it will with PSOX and some genetic algorithms :) < 1199051362 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: don't use + for concatenation! < 1199051369 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1199051370 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :true < 1199051371 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a wise man once told me that < 1199051379 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: it was a pun based on such < 1199051382 0 :Sgeo!unknown@unknown.invalid QUIT :Connection timed out < 1199051386 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: that's an "as" pattern. it means bind s to the string, but also check that it matches the pattern ']':_ < 1199051396 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: blind mown < 1199051396 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: and what i said was totally serious. < 1199051408 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1199051417 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: spoonerize it < 1199051447 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric ::D nice ehird`_ < 1199051467 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i have my two base cases! but no parse s! time to do that :P < 1199051482 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION fixed some more colon troubles on the love machine < 1199051492 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :This is awesome: "Someone, probably you from IP address 198.54.202.234, has registered an account "Hiato" with this e-mail address on Esolang." < 1199051493 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1199051495 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Printing them or taking them as accepting characters is annoying < 1199051513 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(The sentence should not be interpreted in any sodomy sense) < 1199051525 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: have you? < 1199051534 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol, yes oklopol < 1199051593 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :how do I create a new labguage page? < 1199051597 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :*language < 1199051621 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: MAGIC & LUFF < 1199051630 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :no really < 1199051641 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :search bar < 1199051643 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :type in name < 1199051644 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :enter < 1199051644 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :edit < 1199051645 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :voila < 1199051649 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :ok, thanks < 1199051686 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also when logging in check the box "remember me" < 1199051705 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :otherwise there is a tendency you don't stay logged in < 1199051705 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's that do? < 1199051712 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :well, not necessary as I delete cookies automatically when closing FFX < 1199051739 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: i guess you also use tor < 1199051740 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er the problem is it sometimes forgets you _too_ soon < 1199051747 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :tor? < 1199051757 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :oh, I see < 1199051757 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ok, forget that < 1199051766 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :no please < 1199051767 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but maybe it depends on browser < 1199051772 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :don't make me google it :P < 1199051788 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :tor -ibash? < 1199051789 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :tor -rent? < 1199051803 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :bit- tor -nado? < 1199051818 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the onion router iirc < 1199051819 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no, just Tor < 1199051836 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :hrmm < 1199051839 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :ok, google < 1199051858 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Tor: anonymity online < 1199051859 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1199051885 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :well, no :P But I do use Browzar and CCleaner < 1199051905 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :you can always tell the type of person. < 1199051958 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :yeah, tor looks wicked, downloading < 1199051962 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i can't figure out a 'parse s' definition < 1199051966 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :sigh, hiato. sigh. < 1199051973 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :next up; freenet, i guess < 1199051999 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :ps: is there a way of using it without having to bounce many connections (limited bandwidth means I don't want to sopend it on some-one's download) < 1199052003 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :googling :P < 1199052020 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :ahh, no < 1199052026 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :freenet is a step way too far < 1199052031 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :over the edge :) < 1199052062 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1199052063 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well the main case should be something like: < 1199052067 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :actually tor is boring < 1199052098 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :parse s = let (p,s') = parseCmd p; (ps, s'') = parse s' in (p:ps, s'') < 1199052103 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :(PS: I clear cookies for a reason : I don't want my sis loggin in for me, and no, I do not delete history incase you were gonna ask) < 1199052130 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :http://paste-it.net/5499 < 1199052131 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :http://paste-it.net/5500 < 1199052137 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Hope it works okay now. < 1199052152 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what i already had was close, interestingly < 1199052164 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :but parseCmd p? < 1199052164 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :what is p < 1199052164 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: i based it on yours < 1199052166 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i think you mean s < 1199052171 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er, s < 1199052173 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1199052181 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :also, i'll replace ; with 'in' < 1199052191 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1199052192 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i see < 1199052193 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1199052290 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you can also remove the ; and put (ps, s'') straight under (p,s') < 1199052309 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :seems to work Slereah < 1199052311 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :just fine < 1199052321 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :doing that, where does 'in' line up, oerjan ? < 1199052330 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :'let'? < 1199052333 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :doesn't matter < 1199052344 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parseCmd (']':s) = error, right? < 1199052361 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I had to change it. Dealing with ":" made it crash < 1199052368 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, that should return ([], ']:s) < 1199052383 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :For instance, the function .+[<.+>] on the BF Love Machine 9000 < 1199052386 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: where do i handle unmatched [s and ]s then? < 1199052391 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's the essential part for allowing parse to be used for parsing inside loops < 1199052399 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It works now though. < 1199052420 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: parseCmd < 1199052421 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :not parse < 1199052442 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh right < 1199052466 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1199052467 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :*Main> parse ",[.,]" (,[.,],"]") < 1199052473 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep, although that error should never be triggered < 1199052485 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1199052491 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parse (']':s) = ([], s) < 1199052499 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :not: parse s@(']':_) = ([], s) < 1199052500 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1199052505 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :to get rid of "]" < 1199052513 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :or is that wrong < 1199052514 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1199052517 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh bad idea < 1199052534 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :*Main> parse ",[.[-],]" (,[.[-],],"") < 1199052535 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it works fine < 1199052548 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :try parse ",]" < 1199052562 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :well. that should be an error anyway < 1199052568 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but it isn't < 1199052583 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :with your definition: < 1199052584 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :*Main> parse ",]" (,,"]") < 1199052586 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :still isn't! < 1199052597 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :*Main> parse "[" ([],"") < 1199052599 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :also wrong < 1199052604 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but that is correct < 1199052607 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er wait < 1199052610 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no, [s don't magically close < 1199052611 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1199052625 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :remember, everything before ," should be the program verbatim < 1199052634 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the latter shows you have the loop part wrong < 1199052640 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :if it's something else (sans removing of comments), that's wrong < 1199052658 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the loop part should check that what remains after the subparse starts with ] < 1199052715 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :in english < 1199052721 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1199052723 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parse s@(']':_) = ([], s) < 1199052725 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :that is wrong, somehow < 1199052730 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :some error check is missing, somehow < 1199052736 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep, should be ([], ']':s) < 1199052769 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :parse should not do error checks, it should just stop and the caller should check < 1199052786 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no, it should call 'error' < 1199052786 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1199052791 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :NO! < 1199052795 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1199052796 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :why not < 1199052797 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1199052803 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: are you making a bf parser or was that something more complicated already? < 1199052808 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i forgot what you were doing < 1199052810 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1199052812 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: bf parser < 1199052815 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yarrr < 1199052820 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :made one once < 1199052824 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :which will then optimize and compile :P < 1199052824 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because parseCmd ('[':s) calls parse s < 1199052837 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i didn't say it should always call error < 1199052860 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sure, the caller should check, not parse < 1199052869 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no, because 'parse' is toplevel parsing < 1199052890 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :theoretically, main = dump (compile (optimize (parse read)))) < 1199052891 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :not literal ofc < 1199052903 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :then you need another function < 1199052918 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1199052939 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :say parseCmdList < 1199052957 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :to be equal to the current parse? < 1199052962 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1199052970 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ok, now tell me how i check for errors from parse < 1199052970 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1199053004 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :parse s = case parseCmdList of (cmdList, "") -> cmdList; _ -> error ... < 1199053024 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: hmm, also i'd like to be able to say "Unmatched [ at line X, column Y" and the same for ]s < 1199053032 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :which seems like it'd quickly veer into non-haskelly territory < 1199053034 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*parseCmdList s < 1199053047 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um... < 1199053069 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you want to keep track of file positions? < 1199053089 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1199053095 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :but: parse "a[" < 1199053097 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :is < 1199053103 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in that case Parsec doesn't seem as that much overkill anymore. it does that. < 1199053107 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :error "Unmatched [ at line 1, column 2." < 1199053117 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't parsec be a bit slow for this though? < 1199053137 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :well < 1199053140 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i just mean it has so much stuff < 1199053147 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and bf parsing isn't /that/ complex < 1199053154 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :an Unmatched [ would always be at the end of the program... < 1199053191 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no, oerjan < 1199053198 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parse ",[.," < 1199053200 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :line 1, column 2 < 1199053202 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1199053206 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the [ is the thing that is unmatched < 1199053208 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm right < 1199053222 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in that case even Parsec needs a bit of trick < 1199053311 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well you now have to keep track of lines and columns < 1199053314 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ofc this is nothing special < 1199053316 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1199053325 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i guess parseCmd and parseCmdList could take line/col args < 1199053329 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :but that seems... ugly < 1199053379 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the alternative is using a state Monad < 1199053390 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: that souhnds kind of ugly too :) < 1199053391 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(which passes line/col under the hood) < 1199053403 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :monad sounds nicer than the args, though < 1199053404 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :so: shoot < 1199053415 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1199053433 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :shoot foot < 1199053439 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :main = shoot foot < 1199053465 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure i am ready to explain monads practically < 1199053474 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i know monads! < 1199053481 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1199053494 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :they're just dummy objects which bubble up the call stack. < 1199053502 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the implementation catches them and does stuff with them < 1199053505 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :well, IO monads at least... < 1199053510 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ayeeh < 1199053512 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :I may be totally wrong! :D < 1199053536 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i guess i might be about to get a haskell mindbender < 1199053546 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :why me? :( i even read The Little Schemer without blinking an eye! < 1199053590 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok i'll try a bit. recall that ReadS type? < 1199053597 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :no, but i can < 1199053600 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :tap tap tap click < 1199053602 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :type ReadS a = [Char] -> [(a,[Char])] < 1199053611 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :thank you < 1199053611 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1199053621 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and it's String, actually. but same thing < 1199053633 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now there is another type lurking around in Control.Monad.State ... < 1199053650 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :called Cuddly? < 1199053662 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :newtype StateT s m a = StateT { runStateT :: s -> m (a,s) } < 1199053676 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :okay, wait, let me get that < 1199053691 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :what does the X .. = X { ... } stuff mean? < 1199053700 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i get that you have a runStateT function < 1199053716 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :which takes a value of type s, returns a value of... something? < 1199053722 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's a newtype definition, the format is basically like data < 1199053729 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but this uses record syntax < 1199053732 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the what < 1199053760 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it is almost the same as data StateT s m a = StateT (s -> m (a,s)) < 1199053803 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :OK this isn't getting muchplace :P < 1199053828 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyway it is just a type wrapper around the s -> m (a,s) < 1199053857 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now set s = String, m = [] < 1199053871 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and you get String -> [(a, String)] < 1199053895 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ok. < 1199053902 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :So how does this help me with line and col numbers! < 1199053922 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er right < 1199053934 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :maybe a bit mixup there < 1199053950 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1199054035 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well let's say we have some data SourcePos = SourcePos SourceName !Line !Column < 1199054047 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :!Line? !Column? < 1199054050 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :whut is ! < 1199054050 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(from Parsec) < 1199054063 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er ignore those !'s, they're strictness annotations < 1199054101 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :type Line = Int; type Column = Int < 1199054122 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :So I'll just do Int Int :P < 1199054140 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :newtype SourcePos = Int Int -- am i rite < 1199054144 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :then State SourcePos is a monad which passes that around < 1199054150 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no < 1199054153 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1199054157 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you need a constructor < 1199054170 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and newtype can only take one field < 1199054202 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :excuse me i need some food < 1199054224 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1199054393 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION munches < 1199054403 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION crunches < 1199054470 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :like any monad, the state monads State and StateT can be used with the somewhat imperative-style do blocks of "commands" < 1199054506 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the state monads have the special commands get and put, which access the passed around state < 1199054549 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :it's a mutable proxy < 1199054552 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :is that it? < 1199054572 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's a simulated mutable cell < 1199054580 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and if so, wouldn't line/col parameters be better for this? < 1199054593 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :could be < 1199054601 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parseCmd :: String -> ([BF], String, Int, Int) < 1199054603 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1199054619 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :at least it saves you having to consider general monads at this stage < 1199054657 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :the next part of this is trying to determine an unmatched [ or ] as soon as possible < 1199054660 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :so i can know which one < 1199054699 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :unmatched ]'s are easy < 1199054711 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but unmatched ['s need to search to the end. < 1199054814 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :right < 1199054827 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :time to look and see what is called when a ] is called outside of an inner < 1199054837 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :because afaics there's nothing in particular < 1199054841 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i.e. no 'error call' < 1199054888 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/Full_0 < 1199054890 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :wohoo < 1199054891 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1199054892 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as i said, parseCmdList (']':s) = ([], ']':s) < 1199054904 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: that doesn't mean there's been an error though < 1199054914 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so the caller knows something is wrong if it doesn't expect the ] < 1199054939 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parseCmdList :: String -> Int -> Int -> ([BF], String, Int, Int) best. typedefinition. ever. < 1199054963 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah you decided to pass the Int's in as well < 1199054970 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :well yeah < 1199054971 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :how else? :) < 1199054972 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION parseCmdList (']':s) = ([], ']':s) < 1199054975 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :err < 1199054975 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parseCmdList (']':s) = ([], ']':s) < 1199054982 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parseCmdList s@(']':_) = ([], s) < 1199054987 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :what is the difference, and which is cleaner? < 1199054992 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there is a monad called Writer that only passes things out < 1199055024 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: full 0 interpreter in full 0 anyone? < 1199055050 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well the last one does not reconstruct a new list by putting on a ']' after taking it away < 1199055064 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :he, that's hellish ahrd < 1199055067 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :*hard < 1199055070 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ok, but which is 'better'? :P < 1199055074 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: ok - full 0 interpreter in brainfuck < 1199055091 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :matter of opinion < 1199055099 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :err... right... perhaps one in Malbolge then :P ? < 1199055103 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: rawrrrr < 1199055104 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1199055114 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: full 0 interpreter in glass < 1199055124 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :hrmm... still hellish < 1199055132 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er what did i answer? < 1199055136 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :even id delphi, it was allot of code < 1199055140 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :*in < 1199055156 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :but sure, ehird`_ , don't let me get in the way < 1199055157 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1199055197 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :perhaps though, when there is time, I'll do it in a nice Esolang < 1199055207 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :something that isn't 100% 1 command type language < 1199055213 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :hopefully soon :) < 1199055312 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: So, when a ] is found and we're not in ['s loop, what would be called? < 1199055315 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :can't figure it out < 1199055324 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i think < 1199055325 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parseCmdList (']':s) l c = ([], ']':s, l, c) < 1199055331 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :but i don't know how i'd tell if that's 'bad' < 1199055345 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the top parseCmdList would return the program prior to the ] < 1199055353 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :together with what's after. < 1199055386 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and it would naturally return the position of the ] as well < 1199055430 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so the caller can easily check: if the remainder starts with ], it's an unmatched ] and it's got its position < 1199055451 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(the caller would be your parse function, i assume) < 1199055497 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: since you are the only one showing interest, when are you leaving today? that somewhat defines my schedule since i want you to see the tutorialish once i make it < 1199055515 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, people usually go to sleep at some point. < 1199055542 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol, yip sure < 1199055547 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :well, unfortunately < 1199055549 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :pretty soon < 1199055553 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :thought so < 1199055559 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :as it is nearing 1 am where I am < 1199055559 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's 23 there or what? < 1199055562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1199055562 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now on the other hand consider the loop command. it will call parse recursively, and _it_ will expect the remainder to start with ] < 1199055570 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :right, gmt+2 < 1199055573 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :same as mine < 1199055574 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :yip < 1199055577 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :lol :) < 1199055584 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if it doesn't, then you've got an unmatched [ < 1199055608 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :well, you could email me, or seeing as we are both gmt+2, I will be on tomorrow afternoon < 1199055643 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nah, i'll just show it when i see you, it's just if you're leaving, i'm gonna implement a few features first, otherwise i'll start with the tutorial < 1199055655 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :in a case expression, oerjan < 1199055655 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :yeah, it's cool < 1199055657 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :can you do a guard? < 1199055659 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :i need < 1199055661 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :implement the features < 1199055662 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes you can < 1199055669 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :and I'll see tomorrow then < 1199055672 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :(program, rest, _, _) | rest starts with ] < 1199055674 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :ok, time to pack it in < 1199055674 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :or something < 1199055677 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :or rest is "" < 1199055677 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :cheers everyone < 1199055685 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i will not be here tomorrow, for i need to go drink alcohol with my friends... kinda impossible to prevent on new years' :< < 1199055697 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, cya < 1199055697 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :and the wiki is up (against my best instincts) < 1199055704 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(program, rest@('} < 1199055705 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :but tomorrow=31 no? < 1199055708 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :arh < 1199055717 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hiato: that's when the party is, here. < 1199055722 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(program, rest@(']':_)) -> < 1199055725 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :parseCmdList (']':s) l c = ([], ']':s, l, c) < 1199055728 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :oh yaeh, duh < 1199055729 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :woops < 1199055730 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: do i need to advance l or c there? < 1199055731 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1199055738 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :im a day behind at 1am < 1199055739 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1199055740 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to be specific, it's 31. already < 1199055740 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :cheers < 1199055750 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1199055751 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1199055752 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :Hppy New Year to ye all < 1199055755 0 :Hiato!unknown@unknown.invalid PRIVMSG #esoteric :in the futire < 1199055761 0 :Hiato!unknown@unknown.invalid QUIT :"Leaving." < 1199055761 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :years all around! < 1199055810 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: parseCmd ('[':s) l c must change correct? < 1199055814 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :wait, i'll dump my current code < 1199055864 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :http://hpaste.org/4724 < 1199056008 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there is a problem there, parseCmd could run off the end < 1199056063 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if there is an unmatched [ and the file ends with non-commands < 1199056104 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :*Main> parseCmdList ",[xxx" 1 1 (,[*** Exception: /Users/ehird/Code/Frainbuck/Frainbuck.hs:(32,0)-(41,40): Non-exhaustive patterns in function parseCmd < 1199056105 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :ghasp < 1199056107 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :sheesh < 1199056111 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :all of this and i'm not even compiling bf code yet < 1199056118 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :this is a 20-liner in scheme, everything i have :-) < 1199056299 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :btw this is why ReadS wraps its result in a list: to be able to signal that nothing was parsed, with an empty list < 1199056346 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Scheme interlude. < 1199056355 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :> (define x (delay (force x))) < 1199056357 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :# < 1199056361 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :> (force x) < 1199056365 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :............................................ < 1199056370 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Ok, back to Haskell < 1199056383 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :So, oerjan -- what do I do? :P Maybe if you gave me an example I'd understand better < 1199056449 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is getting too tired < 1199056477 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1199056484 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'll be going to bed i think < 1199056493 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :aww < 1199056546 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Main = Test [1 2 3 4 5] < 1199056546 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Test x:xs :: l < 1199056546 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : <-> xs < 1199056558 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol, i didn't even have to do anything for that to work :P < 1199056573 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whoops < 1199056577 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :l should be x there < 1199056581 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1199056581 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :what's that, oklopol? haskell? :P < 1199056586 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nope, graphica < 1199056589 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :: is just cons < 1199056613 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's all i needed to do to make pattern matching like that work < 1199056999 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :show me an example graphica program < 1199057037 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p123363511.txt < 1199057040 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there's three < 1199057059 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :quite trivial ones, now that it has lists, you can easily get much more complicated stuff < 1199057080 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :...i think < 1199057088 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i haven't actually *tried* anything :P < 1199057110 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: the examples are at the bottom < 1199057122 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :hello world plz < 1199057140 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol, a graphica program cannot do anything but specify a graph. < 1199057151 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you need to decide a representation of a string first. < 1199057188 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it can of course create a node that is connected to itself, and whose tag is the characters of "hello world" as a list or smth < 1199057200 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where characters are their ascii values. < 1199057248 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :main = [...] <-> main < 1199057282 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :umm sorry < 1199057285 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :main :: [...] <-> main < 1199057286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1199057474 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :H connected to e ... connected to d < 1199057492 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, right. < 1199057502 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that'll be easier with the shorthands, but i can write it < 1199057504 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1199057527 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :and then a main that takes that and does something with it, i don't know :P < 1199057671 0 :dak!unknown@unknown.invalid QUIT :Remote closed the connection < 1199057694 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Finally the tape machine has come back to its root! < 1199057700 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It can now play the piano! < 1199057706 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Although quite slowly apparently. < 1199057727 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`_: this may take a while, there seems to be another bug. < 1199057917 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :[a[cr:F#57DIF#58DINO1DID55DIF#55DIG55DIA55DINO1DIG55DIF#55DIE55DINO2DIF57DINO1DIF55DIE55DIF55DIE55DID55DID59DIHA:a]][0=#;ims=a;nd;nh;etFecF;t1] < 1199057932 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Finally, a Turing machine can play the Monkey Island theme! < 1199057949 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1199058376 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Oh god really??!?! < 1199058442 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :http://paste-it.net/5502/ < 1199058450 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :There's a little nothing for mankind. < 1199058458 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :[a[cr:F#57RIF#58RINO1RID55RIF#55RIG55RIA55RINO1RIG55RIF#55RIE55RINO2RIF57RINO1RIF55RIE55RIF55RIE55RID55RID59:b]|b[#:RI:c;cr:LE:b]|c[#:HA:c;cr:DIRI:c]][0=#;ims=a;nd;nh;etFecF;t1] < 1199058468 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm no musician, but it's recognizable. < 1199058511 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :finally < 1199058512 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Main = String [72 101 108 108 111 44 32 119 111 114 108 100 33] < 1199058513 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :String s = String s 0 < 1199058513 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :String [] i :: [] < 1199058513 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :String x:xs i :: [x i] < 1199058513 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : -> String xs i+1 < 1199058525 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I can probably load the truckload of strange ASCII chars with musical notes and make some close to ASCII Brainfuck < 1199058536 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hello world, represented by a graph in form of a linked list, basically < 1199058540 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :With the hope that no one will be foolish enough to use them! < 1199058570 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a list will be a normal graph once i make graphs first class, so in the future that'd just be Main = "Hello, world!" < 1199058589 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric : elif prog=="": < 1199058590 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric : print "This programmer does not support empty programs as quine" < 1199058597 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: are you just stuffing random stuff into this? :P < 1199058607 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Maybe a little. < 1199058611 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: But can you actually have "H" in there? < 1199058613 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :"e"? < 1199058616 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1199058616 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1199058621 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there are no chars. < 1199058626 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But well, it is fun! < 1199058628 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there's ints, lists and graphs < 1199058633 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and atoms < 1199058636 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And possibly useful. < 1199058638 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: atoms < 1199058642 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: use atoms for chars < 1199058645 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll make atoms be datatype tags, yes < 1199058645 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :like, in String < 1199058650 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm? < 1199058655 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :if String sees an atom it looks up the ascii code for it < 1199058658 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :otherwise it uses the code < 1199058661 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :so < 1199058664 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, no < 1199058674 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :String [H e l l o 44 32 W o r l d] < 1199058675 0 :ehird`_!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1199058777 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll just make "..." be syntactic sugar for #string:[...], where ... have been replaced by their ascii values < 1199058793 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :althoug... i now realize that's a bad way to do type, and already came up with a good way < 1199058797 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*although < 1199058803 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*Types < 1199058805 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*types < 1199058867 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :later, the nodes can actually have values; values are different from tags, in that two nodes can share a value, and a value can be changed < 1199058897 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so... the that'll make typing trivial without being explicit < 1199058902 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*-the < 1199058932 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, right, the n-dimensional hypercube < 1199058935 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION gets on it