< 1296432277 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :th3b0m: One more thing: Next time you connect to IRC, you will need to give your password that you registered your name with. If your IRC client has a prompt for a password anywhere, enter it there. < 1296432817 0 :th3b0m!unknown@unknown.invalid PRIVMSG #esoteric :yep will do < 1296433043 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((*)(*))(~:^*a~^Sa*~:^):^ < 1296433043 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :************************************************************************************************************************************************************************************************************************************************************************************************************************************ ...too much output! < 1296433046 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er < 1296433056 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((*)(*))(~:^*a~^(/)*Sa*~:^):^ < 1296433056 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :*/*/**/***/*****/********/*************/*********************/**********************************/*******************************************************/*****************************************************************************************/********************************************************************************* ...too much output! < 1296433171 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^ul (()(*))(~:^:S*a~^a~!~*~:(/)S^):^ < 1296433171 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :*/*/**/***/*****/********/*************/*********************/**********************************/*******************************************************/*****************************************************************************************/********************************************************************************* ...too much output! < 1296433203 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm mine is shorter than the wiki's < 1296433220 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Are you able to help with TeXnicard at all? Alternatively, can you suggest what additional functions you think should be predefined in Plain TeXnicard (the "plain.cards" file)? < 1296433230 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1296433241 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Can you shorten: ((*)(*)) to ((*):) ? < 1296433248 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm true < 1296433283 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((*):)(~:^*a~^(/)*Sa*~:^):^ < 1296433283 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :*/*/**/***/*****/********/*************/*********************/**********************************/*******************************************************/*****************************************************************************************/********************************************************************************* ...too much output! < 1296433364 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :is that the shortest way to produce exponentially growing output in ul? < 1296433378 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :nah < 1296433406 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I think that's quite easy because you have multiplication < 1296433408 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^ul (*)(~:*:(/)*S~:^):^ < 1296433408 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :**/****/********/****************/********************************/****************************************************************/********************************************************************************************************************************/*************************************************************** ...too much output! < 1296433410 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ is exponentiation < 1296433411 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :after all < 1296433414 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that's why it's called ^ < 1296433479 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :o < 1296433489 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :let's see... < 1296433496 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :how do i turn (a)(b) into (a)(a)(b) < 1296433509 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bit tricky < 1296433515 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(a)(b) -~> (b)(a) -:> (b)(a)(a) ... hmm < 1296433518 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I know you can do dip < 1296433520 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but I've forgotten how < 1296433526 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I think it involves ^ < 1296433535 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :a(foo)~*^ < 1296433538 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :executes foo dipped < 1296433548 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (a)(b)a(:)~*^^^^ < 1296433548 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...bad insn! < 1296433551 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (a)(b)a(:)~*^SSS < 1296433551 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :baa < 1296433559 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hm or not < 1296433560 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oh wait no < 1296433563 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^ul (a)(b)~a:*~*^SS < 1296433563 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...bad insn! < 1296433563 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that's correct < 1296433564 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :no it isn't < 1296433567 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1296433572 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (a)(b)a(~:)~*^SSS < 1296433573 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of stack! < 1296433573 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1296433574 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (a)(b)a(~:)~*^SS < 1296433574 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of stack! < 1296433583 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^ul (a)(b)a~a:*~*^SS < 1296433583 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :ba < 1296433583 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i'll wait until oerjan writes a b -> a a b, and then write the rest : < 1296433583 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1296433592 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i just missed an a < 1296433595 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (a)(b)a~a:*~*^SSS < 1296433596 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :baa < 1296433598 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1296433652 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*)()a~a:*~*^^S < 1296433652 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ::* < 1296433656 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*)()a~a:*~*^^SS < 1296433657 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ::*:* < 1296433658 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1296433676 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: how do you do a simple infinite loop again? < 1296433679 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ah, wait < 1296433681 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :if i have dip < 1296433684 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :then I can just do < 1296433688 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what's dip again? < 1296433689 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1296433695 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :(:^):^ < 1296433696 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^ul (a)(b)(:)~a*^SSS < 1296433696 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :baa < 1296433700 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: that's not dip < 1296433707 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um yes it is < 1296433712 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oh, right < 1296433713 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :thanks :P < 1296433735 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:^):^ < 1296433736 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1296433742 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*)()((a~a:*~*^^S)~a*^:^):^ < 1296433742 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ::* ...out of stack! < 1296433744 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1296433751 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that's meant to be 2^1, 2^2, 2^3, ... < 1296433760 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :basic code structure: < 1296433781 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :2 1 { { [[a b -> a a b]] exponentiate print } dip dup exec } dup exec < 1296433784 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :is that wrong? < 1296433839 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :...presumably < 1296433848 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It would mean something similar that you did could also be used in TeXnicard to manipulate the stack this way, although you would ordinarily do it with temporary variables instead, probably (like in dc). < 1296433861 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a b -> a a b is not a way to increment a number, anyway < 1296433881 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I wrote a way to increment a number in the Talk:Underload page in the wiki. < 1296433914 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i wasn't incrementing it... < 1296433917 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it's recursive < 1296433926 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: f(0) = 1; f(n+1) = 2^f(n) < 1296433937 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: done iteratively: x=1; while true: x=2^x < 1296433940 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: duh :P < 1296433949 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: the duplication is to turn < 1296433950 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1296433954 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :2 exponent -> 2 2 exponent < 1296433959 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :then exponentiate with ^: < 1296433963 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :2 (2^exponent) < 1296433967 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :which becomes the new exponent < 1296434034 0 :Behold!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1296434041 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so my loop must be wrong < 1296434054 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : ^ul (:*)()a~a:*~*^^S < 1296434054 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : :* < 1296434055 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :elliott: is evoli whitewashed? :p < 1296434056 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that's the program sans loop < 1296434067 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*)()a~a:*~*^^S(/)S < 1296434067 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ::*/ < 1296434076 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Without knowing any underload: if you print the exponent, don't you need to dup it first to not lose it < 1296434083 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: er yes thanks :P < 1296434093 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: (:*)(){a~a:*~*^^:S(/)S} -- this is the program, where {} is an infinite loop < 1296434119 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*)()((a~a:*~*^^:S(/)S)~a*^:^):^ < 1296434119 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ::*/:*:*/:*:*:*:*/:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*/ ...too much stack! < 1296434121 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1296434123 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exponential, see! < 1296434128 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : ^ul (*)(~:*:(/)*S~:^):^ < 1296434130 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :darn oerjan's is shorter < 1296434145 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mine only does n -> 2*n < 1296434155 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: but the result is still exponential < 1296434156 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :because of unary < 1296434162 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :er wait < 1296434163 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :no it's not < 1296434181 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um yes < 1296434187 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :er, yes < 1296434197 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Do you know dc? < 1296434209 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Barely at all < 1296434216 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*)()((a~a:*~*^^:(/)*S(/))~a*^:^):^ < 1296434216 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ::*/ ...bad insn! < 1296434221 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*)()((a~a:*~*^^:(/)*S)~a*^:^):^ < 1296434221 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ::*/:*:*/:*:*:*:*/:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*/ ...too much stack! < 1296434225 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*)()((a~a:*~**^:(/)*S)~a*^:^):^ < 1296434226 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of stack! < 1296434231 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*)()((a~a:*~*^*:(/)*S)~a*^:^):^ < 1296434231 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ::*/:*:*/:*:*:*/:*:*:*:*/:*:*:*:*:*/:*:*:*:*:*:*/:*:*:*:*:*:*:*/:*:*:*:*:*:*:*:*/:*:*:*:*:*:*:*:*:*/:*:*:*:*:*:*:*:*:*:*/:*:*:*:*:*:*:*:*:*:*:*/:*:*:*:*:*:*:*:*:*:*:*:*/:*:*:*:*:*:*:*:*:*:*:*:*:*/:*:*:*:*:*:*:*:*:*:*:*:*:*:*/:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*/:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*/:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*/: ...too much output! < 1296434241 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:*)()((a~a:*~*^^:(/)*S)~a*^:^):^ < 1296434241 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ::*/:*:*/:*:*:*:*/:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*:*/ ...too much stack! < 1296434242 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Ping timeout: 255 seconds < 1296434248 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: In dc, the p command (but not the P command) keeps the number or string to output on the stack afterward. < 1296434264 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: In dc, every ASCII character is a valid register name. < 1296434264 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I didn't know that. < 1296434266 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :THOUGHT YOU MIGHT LIKE TO KNOW < 1296434276 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I didn't know dc had registers. :-P < 1296434291 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Yes. And all registers are both strings and stacks! < 1296434293 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Yes, dc does have registers. Also, each register can be stashed and retrieved like you can in INTERCAL. < 1296434296 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It's a delightfully demented little language. < 1296434309 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Also, functions are just strings. < 1296434314 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :You can also do something similar to the RESUME command in INTERCAL. < 1296434340 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Each register, and any entry on the stack, in dc, can store any string or any number (with arbitrary precision). < 1296434359 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :In my mind dc supports integer constants, four arithmetic operations, and dup and print. < 1296434364 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: hm why is your program so short < 1296434370 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: No swap? :p < 1296434383 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, I don't know the command. :-D < 1296434383 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: There is a GNU extension to dc that supports r for swap. < 1296434401 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That's an extension? X-D < 1296434439 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :My Solaris's dc doesn't have it, so presumably yes. < 1296434443 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: which program? < 1296434453 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Yes, although you could do it without extensions by: SaSbLaLb < 1296434463 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the exponential one doesn't try any arithmetic, just doubles a string < 1296434463 0 :poiuy_qwert!unknown@unknown.invalid QUIT :Quit: This computer has gone to sleep < 1296434504 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: your multiplying one < 1296434507 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1296434539 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: gcd in dc: ??[dSarLa%d0 I do not see any of coppro's messages on here in the past few hours. <-- according to whois, he hasn't spoken for 7 hours < 1296435212 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :possibly he died. < 1296435221 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :aha, elliott killed him < 1296435227 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1296435229 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :THAT MAY BE THE MOST LIKELY EXPLANATION < 1296435230 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fucking canadian < 1296435230 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :s < 1296435238 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well why else would you not talk on irc for 7 hours < 1296435241 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :without telling everyone first < 1296435242 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hey guys < 1296435244 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i'm gonna be gone < 1296435244 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :a LONG time < 1296435246 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but don't worry < 1296435247 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i'll be fine < 1296435261 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :just gotta < 1296435262 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :sort out some issues < 1296435264 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :like < 1296435266 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :death and stuff < 1296435266 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so < 1296435267 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :BYE < 1296435281 0 :Behold!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296435297 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :O KAY < 1296435704 0 :cheater00!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1296435860 0 :cheater00!~cheater@g229028074.adsl.alicedsl.de JOIN :#esoteric < 1296436290 0 :th3b0m!unknown@unknown.invalid QUIT :Quit: Leaving < 1296436402 0 :zzo38!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296436877 0 :azaq231!unknown@unknown.invalid QUIT :Quit: Leaving. < 1296436996 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle [a] -> [a] -> [a] < 1296436996 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Prelude (++) :: [a] -> [a] -> [a] < 1296436996 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Data.List (++) :: [a] -> [a] -> [a] < 1296436996 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Data.List deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a] < 1296437006 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t interleave < 1296437007 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall (m :: * -> *) a. (MonadLogic m) => m a -> m a -> m a < 1296437011 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> interleave [1,2] [3,4] < 1296437012 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [1,3,2,4] < 1296437050 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> let int [] ys = ys; int (x:xs) ys = x : int ys xs in int [1,2,3] [4,5,6] < 1296437051 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [1,4,2,5,3,6] < 1296437056 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> let int [] ys = ys; int (x:xs) ys = x : int ys xs in int [1,2,3] [1,2,3] < 1296437057 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [1,1,2,2,3,3] < 1296437059 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> let int [] ys = ys; int (x:xs) ys = x : int ys xs in int [1,2,3] [1,2,3,4] < 1296437059 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [1,1,2,2,3,3,4] < 1296437072 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> length [1,1,2,2,3,3,4] < 1296437073 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 7 < 1296437077 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> 3+4 < 1296437078 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 7 < 1296437081 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> let int [] ys = ys; int (x:xs) ys = x : int ys xs in int [1,2,3,4] [1,2,3] < 1296437082 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [1,1,2,2,3,3,4] < 1296437086 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> length [1,1,2,2,3,3,4] < 1296437087 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 7 < 1296437106 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@check \xs ys -> let int [] ys = ys; int (x:xs) ys = x : int ys xs in int xs ys == int ys xs < 1296437106 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : "OK, passed 500 tests." < 1296437109 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1296437131 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t product < 1296437132 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. (Num a) => [a] -> a < 1296437133 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle product < 1296437133 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Prelude product :: Num a => [a] -> a < 1296437133 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Data.Foldable product :: (Foldable t, Num a) => t a -> a < 1296437135 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle cartesian < 1296437169 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> sequence [[],[],[]] [[],[],[]] < 1296437170 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : Couldn't match expected type `[[a]] -> t' < 1296437170 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : against inferred type `[[... < 1296437180 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> sequence [[[],[],[]], [[],[],[]]] < 1296437181 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]]] < 1296437184 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t sequence [[[],[],[]], [[],[],[]]] < 1296437185 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. [[[a]]] < 1296437195 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t sequence [[1,2,3], [4,5,6]] < 1296437196 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall t. (Num t) => [[t]] < 1296437198 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> sequence [[1,2,3], [4,5,6]] < 1296437199 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[1,4],[1,5],[1,6],[2,4],[2,5],[2,6],[3,4],[3,5],[3,6]] < 1296437203 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> length $ sequence [[1,2,3], [4,5,6]] < 1296437204 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 9 < 1296437215 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> length $ sequence [[(),(),()], [(),(),(),()]] < 1296437216 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 12 < 1296437226 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> sequence [[(),(),()], [(),(),(),()]] < 1296437227 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[(),()],[(),()],[(),()],[(),()],[(),()],[(),()],[(),()],[(),()],[(),()],[(... < 1296437236 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> concat $ sequence [[(),(),()], [(),(),(),()]] < 1296437236 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),()] < 1296437244 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@pl \xs ys -> concat (sequence [xs,ys]_ < 1296437245 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :(line 1, column 35): < 1296437245 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :unexpected "_" < 1296437245 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :expecting variable, "(", operator or ")" < 1296437246 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@pl \xs ys -> concat (sequence [xs,ys]) < 1296437319 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> concat (sequence [[],[]]) < 1296437320 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [] < 1296437321 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> concat (sequence [[],x]) < 1296437322 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : Couldn't match expected type `[a]' < 1296437322 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : against inferred type `SimpleRef... < 1296437327 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> concat (sequence [x,y]) < 1296437328 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : Couldn't match expected type `[a]' < 1296437328 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : against inferred type `SimpleRef... < 1296437333 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> concat (sequence [[x],[y]]) < 1296437334 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [x,y] < 1296437341 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> concat (sequence [[x],[]]) < 1296437341 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [] < 1296437345 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> concat (sequence [[],[y]]) < 1296437346 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [] < 1296437400 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> concat (sequence [[x,y],[a,b]]) < 1296437401 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [x,a,x,b,y,a,y,b] < 1296437570 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@check let f _ [] = []; f [] _ = []; f (x:xs) ys = concatMap (\y -> [x,y]) ys ++ f xs ys in \xs ys -> f xs ys == concat (sequence [xs,ys]) < 1296437571 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : "OK, passed 500 tests." < 1296437573 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1296437580 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@check let f _ [] = []; f (x:xs) ys = concatMap (\y -> [x,y]) ys ++ f xs ys in \xs ys -> f xs ys == concat (sequence [xs,ys]) < 1296437581 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : "*Exception: :3:19-82: Non-exhaustive patterns in function f < 1296437600 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@check let f _ [] = []; f [] _ = []; f (x:xs) ys = concatMap (\y -> [x,y]) ys ++ f xs ys in \xs ys -> length (f xs ys) == length xs * length ys < 1296437600 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : "Falsifiable, after 0 tests:\n[()]\n[()]\n" < 1296437613 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> let f _ [] = []; f [] _ = []; f (x:xs) ys = concatMap (\y -> [x,y]) ys ++ f xs ys in f [()] [()] < 1296437614 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [(),()] < 1296437630 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> let f _ [] = []; f [] _ = []; f (x:xs) ys = concatMap (\y -> [x,y]) ys ++ f xs ys in sequence [[()], [()]] < 1296437631 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[(),()]] < 1296437635 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> let f _ [] = []; f [] _ = []; f (x:xs) ys = concatMap (\y -> [x,y]) ys ++ f xs ys in sequence [[()], [(),()]] < 1296437636 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[(),()],[(),()]] < 1296437641 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> let f _ [] = []; f [] _ = []; f (x:xs) ys = concatMap (\y -> [x,y]) ys ++ f xs ys in sequence [[(),()], [(),()]] < 1296437642 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[(),()],[(),()],[(),()],[(),()]] < 1296437652 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hey oerjan < 1296437675 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what's a list function that obeys |f(xs,ys)| = |xs|*|ys| but has the same depth as the input lists :P < 1296437786 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan oerjan oerjan oerjan < 1296438915 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : forall (m :: * -> *) a. (MonadLogic m) => m a -> m a -> m a <-- eek, more caleskell? < 1296439039 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: seemingly! < 1296439060 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what's a list function that obeys |f(xs,ys)| = |xs|*|ys| but has the same depth as the input lists :P < 1296439219 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t liftM2 (,) < 1296439220 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a1 a2 (m :: * -> *). (Monad m) => m a1 -> m a2 -> m (a1, a2) < 1296439238 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: that counts as additional depth < 1296439250 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1296439259 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: specifically, "f [[],[],[]] [[],[],[]]" needs to produce a list of 12 []s < 1296439304 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> liftM2 (++) [[],[],[]] [[],[],[]] < 1296439306 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[],[],[],[],[],[],[],[],[]] < 1296439313 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :itym 9 right? < 1296439317 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :er yes < 1296439319 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> liftM2 (++) [1,2,3] [4,5,6] < 1296439320 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : Ambiguous type variable `a1' in the constraints: < 1296439320 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : `GHC.Num.Num a1' < 1296439320 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : a... < 1296439332 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> liftM2 (++) [[1],[2],[3]] [[4],[5],[6]] < 1296439334 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[1,4],[1,5],[1,6],[2,4],[2,5],[2,6],[3,4],[3,5],[3,6]] < 1296439347 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: specifically i'm designing operations for the language where "obj := [] | obj * obj" < 1296439349 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :where * is cons < 1296439356 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :addition is easy, it's just interleave < 1296439359 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :multiplication is hard < 1296439364 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: and numerals are just lists of []s i.e. < 1296439368 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :[] * ([] * ... []) < 1296439375 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: but ofc the operations have to have some generality :) < 1296439388 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ok liftM2 (++) might work < 1296439400 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well the thing is whatever you use instead of ++ must work for two of your _actual_ list elements < 1296439418 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: no, I can use (++) < 1296439423 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: obj = [] | cons obj obj < 1296439424 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yay! < 1296439430 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: obviously, (++) is defined on this :) < 1296439518 0 :cheater00!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1296439530 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so er what's (liftM2 (++)) recursively... < 1296439544 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> liftM2 (++) [] [[],[],[]] < 1296439546 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [] < 1296439549 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> liftM2 (++) [[],[],[]] [] < 1296439550 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [] < 1296439596 0 :cheater00!~cheater@g229028189.adsl.alicedsl.de JOIN :#esoteric < 1296439903 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :liftM2 _is_ cartesian product, with your choice of combining function < 1296439937 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: right. so instead of x:y:... in the combining loop, we do (x++y):... < 1296439940 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1296439941 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1296439944 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :instead of (x,y):... < 1296439950 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1296440114 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: is that function actually useful :D < 1296440117 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :liftM2 (++) that is < 1296440142 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :wow, part 4 is 20 minutes < 1296440144 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'm sure it must have happened < 1296440173 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :probably more likely to be written as a list comprehension, though < 1296440174 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :has someone used this haskell function before? does a bear shit in the woods? < 1296440228 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :maybe for table labels or something... < 1296440355 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> liftM2 (++) ["row " ++ show n | n <- [1..3]] [", column " ++ show m | m <- [1..3]] < 1296440357 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : ["row 1, column 1","row 1, column 2","row 1, column 3","row 2, column 1","r... < 1296440395 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course that's contrived since it'd probably be combined more < 1296440470 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :liftM2 (++) might be more likely with another Monad, perhaps... < 1296440504 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :perhaps in Parsec... < 1296440532 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well (++) also works as addition. although i've chosen interleave, I'm not sure why < 1296440559 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t interleave < 1296440560 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall (m :: * -> *) a. (MonadLogic m) => m a -> m a -> m a < 1296440570 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so er [1,2,3] * [4,5,6] = [5,6,7,6,7,8,7,8,9] < 1296440571 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :in my language < 1296440581 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t Data.List.interleave < 1296440582 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Not in scope: `Data.List.interleave' < 1296440589 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hum < 1296440590 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296440595 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh i'm thinking of intersperse < 1296440598 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> interleave [a,b,c] [x,y,z] < 1296440598 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [a,x,b,y,c,z] < 1296440610 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i don't know why i chose it for addition rather than (++) < 1296440634 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle interleave < 1296440634 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :System.IO.Unsafe unsafeInterleaveIO :: IO a -> IO a < 1296440634 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Control.Monad.ST unsafeInterleaveST :: ST s a -> ST s a < 1296440634 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Control.Monad.ST.Lazy unsafeInterleaveST :: ST s a -> ST s a < 1296440640 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@more < 1296440648 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ARGH < 1296440651 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle interleave < 1296440651 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :System.IO.Unsafe unsafeInterleaveIO :: IO a -> IO a < 1296440651 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Control.Monad.ST unsafeInterleaveST :: ST s a -> ST s a < 1296440651 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Control.Monad.ST.Lazy unsafeInterleaveST :: ST s a -> ST s a < 1296440653 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@more < 1296440662 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :doesn't @more work any more? < 1296440680 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it just hates you < 1296440683 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :sorry. < 1296440689 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle interleave :: [a] -> [a] -> [a] < 1296440690 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :No results found < 1296440692 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296440697 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t intersperse < 1296440698 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. a -> [a] -> [a] < 1296440737 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm they haven't registered hoogle.org < 1296440748 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t intercalate < 1296440748 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. [a] -> [[a]] -> [a] < 1296440767 0 :poiuy_qwert!~poiuy_qwe@CPE001b115db0ae-CM0018c0c24ffc.cpe.net.cable.rogers.com JOIN :#esoteric < 1296440775 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle map :: (a -> b) -> [a] -> [b] < 1296440775 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Prelude map :: (a -> b) -> [a] -> [b] < 1296440775 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Data.List map :: (a -> b) -> [a] -> [b] < 1296440775 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Prelude fmap :: Functor f => (a -> b) -> f a -> f b < 1296440802 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle map :: (a -> b) -> Either [a] Fnord -> Maybe [b] < 1296440802 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Warning: Unknown type Fnord < 1296440802 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :No results found < 1296440809 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :YOU DON'T SAY < 1296440835 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle fap :: (a -> b) -> [a] -> [b] < 1296440835 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :No results found < 1296440852 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :OK HOOGLE I ADMIT YOU PROBABLY _DO_ LOOK AT BOTH PARTS < 1296441141 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296441144 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle fap < 1296441144 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :No results found < 1296441150 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fmap fmap fmap < 1296441152 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle map :: (a -> b) -> Either [a] Bool -> Maybe [b] < 1296441153 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :No results found < 1296441169 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :IPv6-related term: White Screen of Death. < 1296441176 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: wat < 1296441196 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Hoston used that term in his keynote talk in Linux.conf.au... < 1296441236 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :And for some reason, it had trainwreck theme (nearly every slide had picture of rail disaster...) < 1296441240 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : @hoogle map :: (a -> b) -> Either [a] Bool -> Maybe [b] < 1296441242 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :BEST FUNCTION < 1296441268 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: hm it's actually possible i think < 1296441278 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :BEST FUNCTION < 1296441311 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t let map f (Left x) = fmap f x; map f (Right b) = Nothing in map < 1296441311 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a b t. (a -> b) -> Either (Maybe a) t -> Maybe b < 1296441322 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er no < 1296441335 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh... < 1296441351 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t let map f (Left x) = Just $ fmap f x; map f (Right b) = Nothing in map < 1296441352 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a b (f :: * -> *) t. (Functor f) => (a -> b) -> Either (f a) t -> Maybe (f b) < 1296441378 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a little more general < 1296441385 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1296441407 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t let map f (Left x) = Just $ fmap f x; map f (Right False) = Nothing; map f (Right True) = [] in map < 1296441407 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : Couldn't match expected type `Maybe (f b)' < 1296441408 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : against inferred type `[a]' < 1296441408 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : In the expression: [] < 1296441410 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1296441415 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t let map f (Left x) = Just $ fmap f x; map f (Right False) = Nothing; map f (Right True) = Just [] in map < 1296441416 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a a1. (a -> a1) -> Either [a] Bool -> Maybe [a1] < 1296441486 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: hoston? strange name for a person < 1296441517 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION slightly suspects finnish pronoun failure < 1296441532 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it's huston or something < 1296441547 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i mean hoston would be a _good_ name for an ISP < 1296441554 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :no it's this guy < 1296441562 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: (++) or interleave WHAT'S A BETTER ADDITION < 1296441592 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :There are two choices of toilet paper orientation when using a toilet roll holder with a horizontal axle parallel to the wall: the toilet paper may hang over or under the roll. The choice is largely a matter of personal preference, dictated by habit. In surveys of American consumers and of bath and kitchen specialists, 60–70% of respondents prefer over.[1] < 1296441592 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :What surprises some observers, including advice columnist Ann Landers, is the extent to which people hold strong opinions on such a trivial topic. Defenders of either position cite advantages ranging from aesthetics, hospitality, and cleanliness; to paper conservation and the ease of detaching individual squares. Celebrities and experts are found on both sides. Theories abound of what one's choice might say of a person: possibly it indicates age, < 1296441593 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : or gender, or socioeconomic status, or political philosophy; possibly it offers insights into personality traits such as dependability and flexibility; possibly it correlates with ownership of a recreational vehicle or a cat.[2] < 1296441597 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Solutions range from compromise, to using separate dispensers or separate bathrooms entirely. One man advocates a plan under which his country will standardize on a single forced orientation, and at least one inventor hopes to popularize a new kind of toilet roll holder which swivels from one orientation to the other.[3] < 1296441611 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Ah yeah, huston... < 1296441627 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t foldl (flip (:)) < 1296441628 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall b. [b] -> [b] -> [b] < 1296441632 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: THAT ONE < 1296441637 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> foldl (flip (:)) [1,2,3] [4,5,6] < 1296441638 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [6,5,4,1,2,3] < 1296441647 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: THAT IS THE MOST USELESS FUNCTION I HAVE EVER SEEN < 1296441677 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i guess [1,2,3]+[4,5,6] = [1,2,3,4,5,6] is more Useful, but otoh interleave is a fun function that isn't so trivial to implement in terms of other things < 1296441685 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is a strict hang over person < 1296441767 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also i saw a norwegian page about the subject years ago, it was hang over supporting too < 1296441801 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i thought you were expressing an opinion on drinking < 1296441808 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or, making a terrible pun on "huston" < 1296441812 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :because it turned into... hanover < 1296441814 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and then hang over and what < 1296441820 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait i misremembered http://www.home.no/haraldweider/dorull.html < 1296441829 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :those heretics have it _wrong_ < 1296441893 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :you guys are weird < 1296441968 0 :Adiemus!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1296441972 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: you seem not to have read the thing you pasted :D < 1296441989 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :excuse me i am asking for opinions < 1296441991 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : oerjan: i guess [1,2,3]+[4,5,6] = [1,2,3,4,5,6] is more Useful, but otoh interleave is a fun function that isn't so trivial to implement in terms of other things < 1296442105 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: the thing about the function i mentioned is that it's tail recursive in a strict language. of course that's not important for haskell. < 1296442120 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@src reverse < 1296442120 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :reverse = foldl (flip (:)) [] < 1296442131 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well yes, but you have to reverse first :P < 1296442141 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but i think my language might be lazy. < 1296442210 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh hm < 1296442217 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ACTION very much doubts that Slaves to Armok: God of Blood will ever get a second sequel. < 1296442221 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*third chapter. < 1296442251 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :heh chapter ii was developed for four years before release < 1296442384 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> foldr (foldl (flip (:))) "hm..." ["alpha", "beta", "gamma"] < 1296442386 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : "ateb...mhgammaalpha" < 1296442398 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1296442401 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what :D < 1296442427 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ateb...mhγα < 1296442430 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmm what is this LANGUAGE < 1296442431 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> foldl (foldl (flip (:))) "hm..." ["alpha", "beta", "gamma"] < 1296442433 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : "ammagatebahplahm..." < 1296442501 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1296442505 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that would make a good chant < 1296442510 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :AMMA GATE BAHP LAHM < 1296442526 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :NO! DON'T SUMMON THE AAARGH... < 1296442563 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> foldr (flip (:)) 'h' "abc" < 1296442564 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : Occurs check: cannot construct the infinite type: b = [b] < 1296442572 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> foldr (flip (:)) "h" "abc" < 1296442573 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : Occurs check: cannot construct the infinite type: b = [b] < 1296442577 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :gah < 1296442610 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :why on earth _did_ i decide on it < 1296442611 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1296442615 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it was because of the way I wrote it at first < 1296442624 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :treating Base as 0 and Comp irrelevant x as a natural < 1296442634 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :add Base y = y < 1296442658 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :add (Comp x) (Comp y) = Comp (Comp (add x y)) < 1296442662 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :because Succ = Comp < 1296442667 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but we have to bind them < 1296442669 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so we do it dumbly < 1296442678 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :add (Comp x xs) (Comp y ys) = Comp x (Comp y (add xs ys)) < 1296442680 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and voila < 1296442681 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :interleave < 1296442685 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :then I realised you could do this elegantly < 1296442693 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :vPlus Base ys = ys < 1296442693 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :vPlus (Comp x xs) ys = Comp x (vPlus ys xs) < 1296442702 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :still, I'm not sure this is better than (++) < 1296442765 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: YOU GIVE INSUFFICIENT OPINIONS < 1296442776 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :PI ONIONS < 1296442830 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :vTimes :: Val -> Val -> Val < 1296442830 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :vTimes Base _ = Base < 1296442830 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :vTimes _ Base = Base < 1296442830 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :vTimes (Comp x xs) ys = go ys (vTimes xs ys) < 1296442830 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : where go Base rs = rs < 1296442831 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : go (Comp y ys) rs = Comp x (Comp y (go ys rs)) < 1296442833 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what's this function I wonder < 1296442836 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oh wait that's the broken one < 1296442846 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :vTimes :: Val -> Val -> Val < 1296442846 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :vTimes Base _ = Base < 1296442846 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :vTimes _ Base = Base < 1296442846 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :vTimes (Comp x xs) ys = go ys (vTimes xs ys) < 1296442849 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : where go Base rs = rs < 1296442849 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : go (Comp y ys) rs = Comp (vAppend x y) (go ys rs) < 1296442850 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :there < 1296442863 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hm that second clause is needless < 1296442898 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@check let f [] _ = []; f (x:xs) ys = go ys (f xs ys) where go [] rs = rs; go (y:ys) rs = (x++y):(go ys rs) in \xs ys -> length (f xs ys) == length xs * length ys < 1296442899 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : "OK, passed 500 tests." < 1296442910 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@check let f [] _ = []; f (x:xs) ys = go ys (f xs ys) where go [] rs = rs; go (y:ys) rs = (x++y):(go ys rs) in \xs ys -> f xs ys == liftA2 (++) xs ys < 1296442913 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1296442916 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: wat < 1296442918 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@check let f [] _ = []; f (x:xs) ys = go ys (f xs ys) where go [] rs = rs; go (y:ys) rs = (x++y):(go ys rs) in \xs ys -> f xs ys == liftA2 (++) xs ys < 1296442921 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1296442923 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what's the correct function < 1296442925 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :liftM2 (++)? < 1296442928 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@check let f [] _ = []; f (x:xs) ys = go ys (f xs ys) where go [] rs = rs; go (y:ys) rs = (x++y):(go ys rs) in \xs ys -> f xs ys == liftM2 (++) xs ys < 1296442932 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1296442937 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :those are the same < 1296442944 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :lambdabot: ok < 1296442948 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :why is it exceeding? just bad luck? < 1296442961 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :also, hmm, i kind of feel like + should be (++), just because vTimes uses (++) in a loop < 1296443023 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: now what's the list function where |f xs ys| == |xs|^|ys| :D < 1296443092 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (mapM . const) "abc" "def" < 1296443094 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : ["aaa","aab","aac","aba","abb","abc","aca","acb","acc","baa","bab","bac","b... < 1296443128 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> length $ (mapM . const) "abc" "def" < 1296443129 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 27 < 1296443141 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: nice! now what's the actual algorithm to that... < 1296443158 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> (mapM . const) "abcd" "def" < 1296443159 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : ["aaa","aab","aac","aad","aba","abb","abc","abd","aca","acb","acc","acd","a... < 1296443164 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> (mapM . const) "abc" "defg" < 1296443165 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : ["aaaa","aaab","aaac","aaba","aabb","aabc","aaca","aacb","aacc","abaa","aba... < 1296443180 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> (mapM . const) [[],[],[]] [[],[],[],[]] < 1296443181 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> length $ (mapM . const) "abc" "defg" < 1296443181 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[[],[],[],[]],[[],[],[],[]],[[],[],[],[]],[[],[],[],[]],[[],[],[],[]],[[],... < 1296443183 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 81 < 1296443188 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1296443191 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it introduces another level of nesting < 1296443199 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what's the _flat_ function obeying that < 1296443204 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i.e. [a] -> [a] -> [a] < 1296443297 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan ran away screaming < 1296443343 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'm just trying to think if there's anything better than just applying map (const []) to the result < 1296443347 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296443362 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yeah that wouldn't be good, i want functions that can theoretically munge arbitrary data around here < 1296443444 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mapM intrinsically returns m ([a]) < 1296443452 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t mapM < 1296443453 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a (m :: * -> *) b. (Monad m) => (a -> m b) -> [a] -> m [b] < 1296443480 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@src mapM < 1296443481 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :mapM f as = sequence (map f as) < 1296443530 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and the use of sequence is essential to blowing up the size < 1296443550 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: sequence (concatMap f as)? < 1296443559 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t sequence < 1296443560 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall (m :: * -> *) a. (Monad m) => [m a] -> m [a] < 1296443564 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t \f as -> sequence (concatMap f as) < 1296443565 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a (m :: * -> *) a1. (Monad m) => (a -> [m a1]) -> [a] -> m [a1] < 1296443572 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sequence also essentially returns m [a] < 1296443572 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :not... reassuring < 1296443586 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: _essentially_? it *does* :) < 1296443607 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i mean that's an essential part of how it works < 1296443621 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: right < 1296443628 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: maybe i'll ask #haskell < 1296443663 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t replicate < 1296443664 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. Int -> a -> [a] < 1296443691 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you could apply map head to the result, none of the sublists can be empty < 1296443742 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1296443746 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> sequence [] < 1296443747 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : No instance for (GHC.Show.Show (m [a])) < 1296443747 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : arising from a use of `M50975851... < 1296443757 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t sequence [] < 1296443757 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall (m :: * -> *) a. (Monad m) => m [a] < 1296443766 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : arising from a use of `M50975851... < 1296443768 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::wat: < 1296443769 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> sequence [] :: [[()]] < 1296443769 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[]] < 1296443775 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh that one can < 1296443787 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : you could apply map head to the result, none of the sublists can be empty < 1296443791 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i don't want to throw away information, dammit :) < 1296443802 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :the |xs|^|ys| should seem like a happy side-effect to a general operation < 1296443820 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well then it's a question of what kind of general operation _does_ look like that < 1296443826 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if any < 1296443841 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: meanwhile, Cale scares me: < 1296443842 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : elliott: produce the list of all functions from xs to ys and enumerate their codomains in the order of xs? < 1296443842 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : er, ranges rather < 1296443847 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : err, no, that can't be right < 1296443858 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well i never said it was EASY :D < 1296443877 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think Cale's suggestion would be rather more enormous < 1296443898 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or wait < 1296443933 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well it _is_ true each element is essentially such a function before you simplify it < 1296443992 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the problem then is distilling each function down to just one element of xs and/or ys < 1296444062 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : I am one of those who get mad for askers not accepting my answers. Q: "is it true 2+2=4?" A: "yes" Q:"I'm asking because I'm buying a $2 thing and another $2 thing online and I only want to pay $3" That gets me mad. Wishful denial of my factual answer. < 1296444075 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::wat: < 1296444163 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well tell monochrom i think he looks at this too much in black and white < 1296444191 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296444430 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : dafis: if i mention #esoteric again, in the future people will look back at #haskell logs, and think it was some place of great importance, what with the frequency it turns up in here. so I won't! < 1296444430 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : oops < 1296444433 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :prepare for influx < 1296444448 0 :kfr!void@haskell.prime.to JOIN :#esoteric < 1296444457 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Haha, awesome < 1296444472 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Is this where people gather to invent bizarre languages? < 1296444476 0 :elliott!unknown@unknown.invalid TOPIC #esoteric :THERE IS NOBODY HERE | http://esolangs.org/ | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D < 1296444478 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: this is horrible! and our topic is nearly accurate too! < 1296444481 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :kfr: well. ostensibly. < 1296444487 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: thank you < 1296444492 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you're welcome < 1296444497 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: do you want to just set +b for everyone? < 1296444503 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :maybe they'll all go away! < 1296444506 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :we cannot have an accurate topic, that would be nontraditional < 1296444507 0 :variable!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296444526 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MAYBE < 1296444536 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :at some point in time we will have assimilated the entire population of #haskell < 1296444536 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Wow, there are many people from #haskell in here < 1296444539 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :isn't that our grand master plan? < 1296444540 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Coincidence? I think niot < 1296444543 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oh shit they're on to us! < 1296444553 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: WHY DIDN'T ANYONE TELL ME OF THIS PLAN < 1296444566 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :haskellers may know oerjan as the person who wrote 7/8ths of the Haskell 98 report < 1296444570 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :no exaggeration, not in the slightest < 1296444574 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :please crowd around < 1296444593 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :probably not. although i _was_ the 6th most active person in #haskell for a while. < 1296444598 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :iirc. < 1296444609 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Oh, did you really write parts of the 98 report? < 1296444616 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :kfr: he fixed WHOLE TYPOS!!! < 1296444621 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, i sent typo corrections < 1296444623 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :give him your utmost adoration! < 1296444636 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :No, I hate Haskell < 1296444641 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1296444645 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: 6th most active? pfft, when that social graph was still being generated i was the gigantic centre of it < 1296444647 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :WHAT A SHIT LANGUAGE < 1296444651 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :without ever talking about haskell! < 1296444656 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :>_> < 1296444670 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i think we're giving everybody the impression that we're the only two who ever talk in here < 1296444681 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> text "but lambdabot talks too!" < 1296444682 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : but lambdabot talks too! < 1296444701 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it _is_ a bit silent at the moment < 1296444728 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :sheesh neither #haskell nor oerjan have figured out the function yet < 1296444733 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i treat these sources as equals < 1296444755 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/ChalcraftGreen somebody less lazy than me should wikify this page someone made < 1296444790 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: EXACTLY my thought. except with "me" standing for oerjan. < 1296444801 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: "I", surely < 1296444820 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :At first you start learning it and you can't reuse any of your previous programming knowledge. You write like 20 lines of Haskell and then you spend 40-60 minutes desperately trying to make it compile. Then at some point you develop Haskell cancer and you turn into a language fascist who doesn't use any other languages anymore. Eventually you stop writing programs, lost in abstract discourse over the newest zyganometamonadomorphism type classes etc. < 1296444822 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: i was referring to ChalcraftGreen < 1296444848 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ah :P < 1296444852 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :kfr: excuse me, we are the kind of people who skip straight to the zyganometamonadomorphism type classes. < 1296444874 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the metadone morphisms, for the heavily addicted < 1296444895 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :did we ever actually agree on a definition of turing completeness? :) < 1296444897 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Congratulations, at this stage you have completed your transformation from a once cheerful and productive hobby programmer to a bitter intellectual wreck. < 1296444917 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :bitter, yes intellectual, yes wreck, yes, dunno if we were ever cheerful and productive < 1296444930 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Hahahaha < 1296444933 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :a significant portion of us have sworn off programming altogether :D < 1296444962 0 :elliott!unknown@unknown.invalid TOPIC #esoteric :IVORY TOWER OF GRUMPY ACADEMIC ELITISTS | bring whisky or be kicked | http://esolangs.org/ | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D < 1296444978 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Ew, IRC logs < 1296444982 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Big brother is watching < 1296444991 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :kfr: logged by the same people as #haskell! < 1296444997 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yes our insidious connections go WAY back! < 1296444998 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Terrible < 1296445009 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :kfr: hey i'll have you know that logreading is a respected tradition here. < 1296445014 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :we literally just pick logs at random and start reading. well I do. < 1296445028 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :don't worry, google only finds us if you phrase your query well :D < 1296445030 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :That sounds bizarre < 1296445040 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :kfr: no it's great fun < 1296445048 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Well, I used to have centralised nicks which were easy to google < 1296445055 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Nowadays I use like 30 different nicks < 1296445062 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it's actually interesting reading material a lot of the time < 1296445064 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :A different one for each service < 1296445064 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :kfr: paranoid much? :) < 1296445064 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((0)(1)):^!S(~:^:S*a~^~*a*~:^):^ Try Underload instead! < 1296445065 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010011001011001101001011010011001011001101001100101101001011001101001011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010010110 ...too much output! < 1296445078 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: oh my god what sequence is that printing < 1296445079 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :elliott yes, I also use full system encryption with TrueCrypt etc < 1296445080 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it's so pretty < 1296445084 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :thue-morse < 1296445090 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :kfr: ah. we'll get along like a house on fire. < 1296445112 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :kfr: I wouldn't trust TrueCrypt mind you. < 1296445115 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also mm, whisky < 1296445138 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: i'm just trying to give kfr a taste of what it's like on the rare occasions we are on topic < 1296445155 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i think that's happened once. < 1296445157 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :was it in 07? < 1296445166 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: HAVE YOU FIGURED OUT MY FUNCTION YET. < 1296445193 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: i've sort of given up a bit after Cale pointed out it's about functions < 1296445201 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although one idea... < 1296445203 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well it's like zfc isn't it < 1296445205 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :|A^B| = |A|^|B| < 1296445217 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :well not zfc, that applies pretty much anywhere < 1296445251 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you could in fact use mapM to list all functions that way < 1296445271 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: gogogo < 1296445290 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: it's not going to help with your flattening desire < 1296445297 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i desire only flattening < 1296445308 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well. hm. < 1296445321 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: perhaps we could use liftM2 (++) as (*) and do the rest from there. < 1296445327 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :using my thing < 1296445336 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :erm what's the recursive exponentiation algorithm again :D < 1296445352 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@src (**) Integer < 1296445352 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Source not found. There are some things that I just don't know. < 1296445353 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t (**) < 1296445354 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. (Floating a) => a -> a -> a < 1296445357 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :@src (^) Integer < 1296445357 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Source not found. My brain just exploded < 1296445358 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmph < 1296445397 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you write the exp on Nats, i'm too lazy to < 1296445412 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: hm liftM2 (++) iterated you mean, hm... < 1296445430 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: right, replace Zero with Base and (Succ x) with (Comp x) < 1296445445 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: then you just have to change those comps into (Comp x xs), and figure out where the "x" and "y" go on the right-hand side :) < 1296445450 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i.e. which s they match up to there < 1296445459 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :well that's the basic idea i'm using for transforming nat functions into these functions < 1296445487 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well i'm trying to think if there's a simpler name for foldr1 (liftM2 (++)) or thereabouts < 1296445516 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t foldr1 (liftM2 (++)) < 1296445517 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a1 (m :: * -> *). (Monoid a1, Monad m) => [m a1] -> m a1 < 1296445532 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> foldr1 (liftM2 (++)) [[1,2,3], [4,5,6]] < 1296445533 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : Ambiguous type variable `a1' in the constraints: < 1296445533 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : `GHC.Num.Num a1' < 1296445534 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : a... < 1296445535 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t foldr (liftM2 (++)) [[]] < 1296445535 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. [[[a]]] -> [[a]] < 1296445550 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> foldr (liftM2 (++)) [[]] [[1,2,3], [4,5,6]] < 1296445551 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : No instance for (GHC.Num.Num [a]) < 1296445551 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : arising from a use of `e_12123456' at ... < 1296445564 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> foldr (liftM2 (++)) [[]] [[[1,2,3], [4,5,6]], [[7, 8, 9], [10, 11, 12]]] < 1296445566 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[1,2,3,7,8,9],[1,2,3,10,11,12],[4,5,6,7,8,9],[4,5,6,10,11,12]] < 1296445577 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> length $ foldr (liftM2 (++)) [[]] [[[1,2,3], [4,5,6]], [[7, 8, 9], [10, 11, 12]]] < 1296445578 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 4 < 1296445591 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> length $ foldr (liftM2 (++)) [[]] [ [[],[]], [[],[],[]] ] < 1296445593 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 6 < 1296445594 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that should be 2^3 < 1296445600 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1296445602 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: fail < 1296445632 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: i intend it only as a building block, sheesh < 1296445635 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: :D < 1296445644 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: seriously though, write out recursive exponentiation for me, i'm insanely lazy < 1296445668 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exp n Z = n; exp n (S Z) = n; exp n (S (S m)) = n * exp n m < 1296445670 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :you're WELCOME < 1296445685 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*= Z < 1296445692 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the ^ definition uses binary representation anyway < 1296445707 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: eh? < 1296445720 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t (^) < 1296445721 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a b. (Num a, Integral b) => a -> b -> a < 1296445723 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exp n Z = Z < 1296445723 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exp n (S Z) = n < 1296445724 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exp n (Comp irr (Comp irr' m)) = vTimes n (exp n m) < 1296445727 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for the b there < 1296445728 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmm that (S Z) is problematic < 1296445748 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exp n Base = Z < 1296445748 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exp n (Comp irr Z) = n < 1296445748 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exp n (Comp irr (Comp irr' m)) = vTimes n (exp n m) < 1296445753 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :not at all clear what to do here :D < 1296445786 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exp _ Base = Base < 1296445786 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exp xs (Comp irr Base) = xs < 1296445786 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exp xs (Comp irr (Comp irr' ys)) = vTimes xs (exp xs ys) < 1296445795 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Wait wait wait... Someone is claiming that most Brits find peanut butter "revolting". < 1296445807 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Is there any truth to this bullshit? < 1296445807 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: maybe "vTimes xs (Comp irr (Comp irr' (exp xs ys)))"? < 1296445814 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but then i'm not sure that would produce the correct lengths. < 1296445816 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: i don't like it < 1296445830 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: LIES AND DECEIT. < 1296445851 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :elliott: INSUFFICIENT PEANUT BUTTER AND JELLY. BY FAR. < 1296445872 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t \a b -> foldr (liftM2 (++)) [[]] $ map (const a) b < 1296445873 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a a1. [[a]] -> [a1] -> [[a]] < 1296445915 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> (\a b -> foldr (liftM2 (++)) [[]] $ map (const a) b) [[],[],[]] [[],[]] < 1296445917 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[],[],[],[],[],[],[],[],[]] < 1296445942 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*Main> vExp three two < 1296445942 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Base < 1296445947 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :THAT'S NOT QUITE RIGHT < 1296445983 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*Main> :load "/home/elliott/Code/meddle/meddle.hs" < 1296445983 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :[1 of 1] Compiling Main ( /home/elliott/Code/meddle/meddle.hs, interpreted ) < 1296445983 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ok, modules loaded: Main. < 1296445983 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*Main> vExp three two < 1296445983 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Comp Base (Comp Base (Comp Base (Comp Base (Comp Base (Comp Base Base))))) < 1296445983 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*Main> len $ vExp three two < 1296445985 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :6 < 1296445987 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :darn < 1296445989 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What's not quite right is disliking peanut butter but liking Marmite. Seriously, WTF. < 1296445998 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: exp n Z = S Z, surely < 1296446005 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: facepalm, yes indeed < 1296446016 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so Comp Base Base < 1296446021 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :except that seems a bit ungeneral... < 1296446023 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: carry on :P < 1296446030 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*Main> len $ vExp three two < 1296446030 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :9 < 1296446036 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*Main> len $ vExp three three < 1296446036 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :18 < 1296446040 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :buggre. < 1296446067 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: any luck? :p < 1296446102 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what is that Comp thing again < 1296446140 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Cons < 1296446144 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :data Val = Base | Comp Val Val deriving (Show) < 1296446155 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: numerals are < 1296446157 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :zero = Base < 1296446159 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :succ x = Comp Base x < 1296446213 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok so exp n (Comp irr x) = vTimes n (exp n x) < 1296446221 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: *ahem* < 1296446225 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :you are not allowed to leave irrs lying around < 1296446233 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: remember, no throwing away information :p < 1296446248 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that makes this _very_ awkward < 1296446250 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: the irr is just an easy way to turn simple recursive functions on nats into those on vals < 1296446252 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :for instance < 1296446267 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :add Zero y = y; add (Succ x) y = Succ (add x y) < 1296446267 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1296446269 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :since the obvious thing to do _is_ to throw them away and multiply copies of n < 1296446292 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :add Base ys = ys; add (Comp xs) ys = Comp (add xs ys) < 1296446307 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :add Base ys = ys; add (Comp x xs) ys = Comp x (add xs ys) < 1296446318 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: is it, from a list point of view? < 1296446325 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i don't really see any list functions ignoring their data < 1296446386 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh it's easy to include the information if you don't insist on a^b containing elements from a and b _on the top level_ < 1296446397 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: :D < 1296446404 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: but then (num^num) wouldn't be a num < 1296446408 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :because numbers are lists of []s < 1296446410 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just do what Cale said < 1296446413 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: but then (num^num) wouldn't be a num < 1296446414 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :because numbers are lists of []s < 1296446417 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :thus the flatness requirement < 1296446419 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :enumerate the functions < 1296446433 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: isn't that going to be hideously impractical... < 1296446449 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sure if you look inside them... < 1296446508 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: hm i don't quite understand then < 1296446597 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: THAT WAS YOUR CUE TO EXPLAIN < 1296446603 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well in order to define exponentiation of a^b using multiplication, you generate b lists of the same length as a and then multiply them. it's easy to do this if you don't need the information from b inside those lists (just use a itself) < 1296446623 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :otherwise we need some other way to construct lists of length |a| < 1296446640 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*|b| lists < 1296446660 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: by mixing together a and b somehow? < 1296446671 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: but what was that enumerate the functions thing? < 1296446676 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah. hm... < 1296446702 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: you can describe a function as a list of tuples < 1296446713 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: no shit sherlock < 1296446722 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i just mean how would that be used < 1296446736 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: flattening [(a,b),(c,d),...] into [a,b,c,d,...] won't work, since that doubles the length < 1296446755 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: it's just the "natural" (in the category sense, probably) way of constructing a^b as a set < 1296446761 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oh certainly < 1296446792 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :however hm let us _try_ to include information from b in the a copy lists. < 1296446794 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: hmm. how many times can we give the entire contents of b with |b| lists of length |a|? < 1296446797 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :well, |a| times obviously < 1296446809 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :how many times can we give the entire contents of a with |b| lists of length |a|? < 1296446810 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :|b| times < 1296446816 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :since there are |b| of them, each can be based on a single element of b < 1296446820 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :how many times can we give the entire contents of both a and b with |b| lists of length |a|? < 1296446826 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: SHUT UP I'M THINKING < 1296446832 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :OKAY < 1296446842 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :well the answer is... we need to store |a|+|b| in |a|*|b| < 1296446853 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so ab/(a+b) < 1296446870 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric := |a| - (|a|^2)/(|a|+|b|) thx W^A < 1296446872 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*W|A < 1296446879 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so we need to pack the list that many times...heh < 1296446882 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :let x in b, then we want to combine x with a. now x is ostensibly of the same type as a's elements < 1296446885 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i'll let you return to your thinking, this is going nowhere < 1296446890 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: type is irrelevant, yeah < 1296446899 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :everything is of type T = [T] < 1296446903 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so we can do map (x++) a < 1296446919 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :elliott: TYPES ARE IMPORTANT FOR INTUITION < 1296446921 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :OKAY < 1296446924 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :INTUIT < 1296446969 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or (++x) more, i think < 1296446987 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :note that for the numeric case x = [] < 1296447015 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, that's the main case which needs to work < 1296447030 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1296447040 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i think you're on to something, by jove < 1296447067 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\a b -> map (\x -> map (++x) a) b < 1296447074 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t \a b -> map (\x -> map (++x) a) b < 1296447075 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t \a b -> map (\x -> map (++x) a) b < 1296447075 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. (Monoid a) => [a] -> [a] -> [[a]] < 1296447076 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. (Monoid a) => [a] -> [a] -> [[a]] < 1296447078 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296447080 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Monoid a? heh < 1296447082 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t map < 1296447083 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a b. (a -> b) -> [a] -> [b] < 1296447084 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::t (++) < 1296447085 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall m. (Monoid m) => m -> m -> m < 1296447088 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :DAMMIT, CALESKELL < 1296447095 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ok so that's [[a]] -> [[a]] -> [[[a]]] in _real land_ < 1296447112 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> length $ (\a b -> map (\x -> map (++x) a) b) [[],[],[]] [[],[],[]] < 1296447114 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 3 < 1296447119 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> length $ (\a b -> concatMap (\x -> map (++x) a) b) [[],[],[]] [[],[],[]] < 1296447120 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 9 < 1296447125 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: erm... < 1296447127 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> length $ (\a b -> concatMap (\x -> map (++x) a) b) [[],[],[]] [[],[],[],[]] < 1296447128 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 12 < 1296447146 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :...the part where your brain doesn't get that WE'RE STILL BUILDING BLOCKS. < 1296447190 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and we do _not_ want concatMap there, that list contains elements to be multiplied together < 1296447218 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t \a b -> foldr (liftM2 (++)) [[]] $ map (\x -> map (++x) a) b < 1296447218 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. [[a]] -> [[a]] -> [[a]] < 1296447226 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i'm just trolling you :) < 1296447227 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :TRY THAT ONE < 1296447242 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> length $ (\a b -> foldr (liftM2 (++)) [[]] $ map (\x -> map (++x) a) b) [[],[],[]] [[],[],[]] < 1296447244 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 27 < 1296447251 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296447261 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> length $ (\a b -> foldr (liftM2 (++)) [[]] $ map (\x -> map (++x) a) b) [[1,2,3],[4,5,6],[7,8,9]] [[10,11,12],[13,14,15],[16,17,18]] < 1296447263 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 27 < 1296447267 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> (\a b -> foldr (liftM2 (++)) [[]] $ map (\x -> map (++x) a) b) [[1,2,3],[4,5,6],[7,8,9]] [[10,11,12],[13,14,15],[16,17,18]] < 1296447269 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[1,2,3,10,11,12,1,2,3,13,14,15,1,2,3,16,17,18],[1,2,3,10,11,12,1,2,3,13,14... < 1296447280 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i'm just going to assume it has all the information there :P < 1296447287 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so, er, is this option actually useful for _anything_ < 1296447336 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well unless a is empty, then there isn't much we can do to keep the information < 1296447412 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well yes < 1296447421 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t \a b -> foldr (liftM2 (++)) [mempty] $ map (\x -> map (++x) a) b < 1296447422 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. (Monoid a) => [a] -> [a] -> [a] < 1296447427 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1296447528 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t \a b -> foldr (liftM2 (++)) [mempty] $ [y++x | x <- b, y <- a]] < 1296447529 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :parse error on input `]' < 1296447532 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oops < 1296447536 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t \a b -> foldr (liftM2 (++)) [mempty] $ [y++x | x <- b, y <- a] < 1296447537 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a1. (Monoid a1) => [[a1]] -> [[a1]] -> [a1] < 1296447550 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er no < 1296447551 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1296447567 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :?] < 1296447568 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Maybe you meant: . ? @ v < 1296447569 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*? < 1296447577 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t \a b -> foldr (liftM2 (++)) [mempty] $ [[y++x | y <- a]| x <- b] < 1296447577 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a1. (Monoid a1) => [a1] -> [a1] -> [a1] < 1296447652 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t concat < 1296447653 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. [[a]] -> [a] < 1296447662 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t mappend < 1296447663 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. (Monoid a) => a -> a -> a < 1296447667 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> (\a b -> foldr (liftM2 (++)) [[]] $ map (\x -> map (++x) a) b) [[1,2,3],[4,5,6],[7,8,9]] [[]] < 1296447669 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[1,2,3],[4,5,6],[7,8,9]] < 1296447670 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t mconcat < 1296447671 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. (Monoid a) => [a] -> a < 1296447672 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so ^1 = id. good < 1296447674 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> (\a b -> foldr (liftM2 (++)) [[]] $ map (\x -> map (++x) a) b) [[1,2,3],[4,5,6],[7,8,9]] [] < 1296447676 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[]] < 1296447681 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^0 = 1. good. < 1296447689 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> (\a b -> foldr (liftM2 (++)) [[]] $ map (\x -> map (++x) a) b) [[1,2,3],[4,5,6],[7,8]] [[]] < 1296447690 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[1,2,3],[4,5,6],[7,8]] < 1296447694 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> (\a b -> foldr (liftM2 (++)) [[]] $ map (\x -> map (++x) a) b) [[1,2,3],[4,5,6],[7,8]] [[],[]] < 1296447695 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[1,2,3,1,2,3],[1,2,3,4,5,6],[1,2,3,7,8],[4,5,6,1,2,3],[4,5,6,4,5,6],[4,5,6... < 1296447701 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yikes, differing lengths? < 1296447706 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i wonder how they behave < 1296447726 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you started out with differing lengths < 1296447757 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(missing 9) < 1296447779 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i know that < 1296447782 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it was intentional :) < 1296447786 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ok so is this function actually useful for shit... < 1296447795 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :> (\a b -> foldr (liftM2 (++)) [[]] $ map (\x -> map (++x) a) b) [[1], [2,3]] [[4,5,6],[]] < 1296447797 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : [[1,4,5,6,1],[1,4,5,6,2,3],[2,3,4,5,6,1],[2,3,4,5,6,2,3]] < 1296447807 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't look useful at all :D < 1296447819 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but it does nicely satisfy the properties, now oerjan, how about SUBTRACTION < 1296447823 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(jokin'!) < 1296447829 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaaaaaa < 1296447889 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i'm still not sure whether to use interleave or append for addition < 1296447905 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :my current addition function corresponds to "add Zero y = y; add (Succ x) y = Succ (add y x)" < 1296447924 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but append corresponds to "add Zero y = y; add (Succ x) y = Succ (add x y)", you can see my problem here :) < 1296447931 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :well < 1296447939 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i suppose having + be concatenation on lists is something people consider "useful". < 1296447945 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@check \l -> foldr (liftM2 (++)) [mempty] == map mconcat (sequence l) < 1296447946 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : Couldn't match expected type `[[[a]]] -> [[a]]' < 1296447949 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er < 1296447964 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1296447969 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@check \l -> foldr (liftM2 (++)) [mempty] l == map mconcat (sequence l) < 1296447974 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1296447977 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so does (\a b -> foldr (liftM2 (++)) [[]] $ map (\x -> map (++x) a) b) have a simple recursive representation? i doubt it... < 1296447983 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well at least it typed < 1296447989 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ha < 1296447992 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t map mconcat . sequence < 1296447997 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a. (Monoid a) => [[a]] -> [a] < 1296448001 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"it typechecked, the program works, time to push the build into production" < 1296448006 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t foldr (liftM2 (++)) [mempty] < 1296448007 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :forall a1. (Monoid a1) => [[a1]] -> [a1] < 1296448016 0 :yorick!yorick@gateway/shell/shellium.org/x-znsnuunvzwnskuqt JOIN :#esoteric < 1296448057 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : oerjan: so does (\a b -> foldr (liftM2 (++)) [[]] $ map (\x -> map (++x) a) b) have a simple recursive representation? i doubt it... < 1296448059 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :actually i think it does < 1296448075 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :foldr is just a loop through the list, liftM2 (++) is just my vTimes, and that map can be done at each recursive step, I think < 1296448076 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I _think_ < 1296448078 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :or wait, can it? < 1296448150 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :goodnight < 1296448202 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1296448429 0 :elliott!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1296449971 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :random q: is it weird if you read blog posts entitled "I suck" and start agreeing with them? < 1296450035 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :like, "this person totally sucks; they even wrote a blog post about how badly they suck" < 1296450564 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hey, _i_ suck so badly i cannot even write blog posts! < 1296450750 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1296451009 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :alright, so it's the blog that's weird and not necessarily me < 1296451303 0 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com JOIN :#esoteric < 1296451341 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :How to bring whisky on the IRC? < 1296451416 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :DON'T ASK ME, I DIDN'T MAKE THE POLICY < 1296451507 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :konnhįȳûtaniarutoki,uīsukîwomotu.sìȳa',uīsukîtoIRCsurune. < 1296451530 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Translation": No, I don't feel like giving you a useful answer. < 1296451531 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1296451572 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :THAT'S AN OBVIOUS LIE I CAN SEE "IRC" IN THERE < 1296451578 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Why don't you write it properly in kana (and/or kanji)? That is more efficient to read than the romaji. < 1296451588 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Because I don't feel like giving you a useful answer. < 1296451601 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: O, that's why. Now I know why. < 1296451609 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But if you *insist*... < 1296451645 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :コンピュータにあるとき、ウィスキーを持つ。じゃっ、ウィスキーとIRCするね。 < 1296451694 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"When you're at your computer, have whisky. There, you're now IRCing with whisky." < 1296451717 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... < 1296451723 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/とき/時/ < 1296451838 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :That's better. < 1296452365 0 :Mathnerd314!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296452981 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... < 1296452985 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/ある/いる/ < 1296454411 0 :Lymia!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1296454509 0 :Wamanuz!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296454526 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Can somebody here patch the FukYorBrane reference implementation? < 1296454536 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I should certainly hope I could. < 1296454560 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :What's up with line 580 < 1296454564 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :It's causing segfaults. < 1296454575 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :It looks like [procowner] should be [procowner-1] < 1296454689 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :WOW it's been a long time since I've looked at this code :P < 1296454761 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Yup, that should most assuredly be procowner-1 >_> < 1296454762 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric ::V < 1296454816 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :That bug is now five years old X-D < 1296454834 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :And somehow unnoticed. < 1296454836 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :>< < 1296454852 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Are research languages tolerated in here or do they have to be sufficiently whack/bizarre? < 1296454868 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :kfr: Usually tolerated, unless they're too normal :P < 1296454873 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Are practical languages frowned upon in here? < 1296454885 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: Try. Write what you want to write and then we can see. < 1296454892 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Haha. < 1296454895 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :kfr: Depends on the definition of "practical" of whoever's in here :P < 1296454907 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I wanted to make a self hosting compiler for fun < 1296454910 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :I assume a normal language with convoluted enoguh syntax will do. < 1296454915 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Wit IA-32/AMD64 cod generation < 1296454925 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Supporting both Windows PE and Linux ELF < 1296454929 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :enough* < 1296454934 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :With*, code* < 1296454935 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :kfr, and provide no other documentation. < 1296454936 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1296454941 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Lymia lol < 1296454959 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Go read the source, or go read the binary. < 1296454960 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric ::> < 1296454977 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I wonder how short you can make this without really writing any larger parts in ASM < 1296455008 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: What is it that you are making? < 1296455015 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :!fyb failolz +[] < 1296455017 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :zzo38 just a joke really < 1296455025 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :If I wanted to make a serious language I'd use LLVM < 1296455032 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :And no self hosting < 1296455068 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Score for Gregor_failolz: 1.9 < 1296455085 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Gregor what was that? < 1296455086 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :!help fyb < 1296455086 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, I have no help for fyb! < 1296455089 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: OK. But still, what is it? < 1296455092 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :!scoreboard < 1296455095 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :kfr: Rerunning the FYB hill with the bug fixed >_> < 1296455101 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :!fyb < 1296455101 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Use: !fyb < 1296455108 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Bleh, doesn't announce the scoreboard location :P < 1296455109 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :!bfjoust < 1296455110 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ < 1296455115 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :So. < 1296455118 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: I haven't decided on any specifics really, I just wanted to make a self hosting compiler in some joke language at some point < 1296455120 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :If I understand what this bug means correctly. < 1296455131 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :* in a subprocess only works if you're the first program, and crashes otherwise. < 1296455131 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :http://codu.org/eso/fyb/report.txt Whew, logicex-2 still remains supreme. < 1296455139 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :And farthermore, it looks for the ; in the ENEMY program. < 1296455143 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Lymia: 'til it was now fixed X-P < 1296455164 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :'s not a popular command :P < 1296455165 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Anywhere to submit larger programs? < 1296455187 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to recall if !fyb can use URLs ... < 1296455199 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :!fyb test http://example.com < 1296455202 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Score for Lymia_test: 0.0 < 1296455229 0 :Wamanuz!~Wamanuz@78-69-168-43-no84.tbcn.telia.com JOIN :#esoteric < 1296455233 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: Well, such things are things that are sometimes related to esolangs. There is a "Joke language list" in the wiki, which you can view. However, "joke language" is mostly like unusable things, things that don't work, and so on; most esolangs are not considered "joke language" even if it is partially created as a joke. < 1296455250 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Lymia: http://codu.org/eso/fyb/in_egobot/Lymia_test.fyb Yup, worked < 1296455271 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :HTML makes a horrible fighter. :V < 1296455273 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Well it wasn't supposed to be lolcode or anything like that < 1296455282 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :!fyb < 1296455283 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Use: !fyb . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/fyb/ < 1296455297 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: Review the wiki and then you can decide whether or not it belongs. < 1296455302 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Lymia: Can you defeat logicex-2? ^^ < 1296455307 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1296455309 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :One sec. < 1296455312 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :D-8 < 1296455365 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :!fyb evil http://lymia.x10.bz/evil.fyb < 1296455398 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Score for Lymia_evil: 71.3 < 1296455430 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :I think it's quite clear how it works. < 1296455430 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric ::> < 1296455435 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :zzo38 hmm those look quite different from what I had in mind < 1296455439 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Oh noooooooooooooooooooooooose < 1296455443 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :(I expected it to lose more agienst other bots actually) < 1296455452 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: Review the non-joke list, too. < 1296455452 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :This is the first time in nearly five years that logicex-2 has gotten a score less than 100.0 X-P < 1296455457 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, heh. < 1296455463 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :zzo38 but I was considering using tons of UTF-8 symbols < 1296455464 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :The bot destroys every ! command in LogicEx < 1296455469 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :To catch the eye < 1296455470 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Pff, time for logicex-3. < 1296455472 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Then goes bomb every single command. < 1296455475 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :APL calls! < 1296455485 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :It's explicitly targeted at logicex. < 1296455492 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Ahhhhh, I see :P < 1296455525 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :And it's very successful at doing just what it's meant to do. < 1296455526 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: You can consider using tons of UTF-8 symbols, then. Ideas like that are on the wiki, but nothing even partially complete. You could make one with better descriptions and a more complete one than just the idea. < 1296455526 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric ::> < 1296455568 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Lymia: It does pretty friggin' well otherwise, too (simply because running like hell and bombing randomly isn't a bad strategy) < 1296455585 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, also, the fact that @ also sets the data pointer to the current instruction pointer isn't documented anywhere but the code. < 1296455599 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Sweet 8-D < 1296455657 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :You can fix logicex by adding a single nop somewhere. < 1296455657 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric ::v < 1296455661 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I noticed the git repository commitdiff log has "author" and "committer" fields, both are the same. Is there a difference? < 1296455682 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Lymia: Well, FYB is effectively "maintained" as part of EgoBot now, so you can get the fixed code in http://codu.org/projects/egobot/ . I will eventually retaliate, but for the time being I have other stuff to do :P < 1296455708 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, you can pull from an external server that you don't own. < 1296455711 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Including other's commits. < 1296455725 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :i.e. it comes into play when you pull from a fork < 1296455726 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Lymia: OK, thanks. < 1296455739 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I understand now. < 1296455778 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :If they're different for a revision that introduces a bug, you know both who to blame for /writing/ a bug, and who to blame for /approving/ the bug ^^ < 1296455881 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: In my case it is a non-forked repository that I am the only one with write-access, so it makes no difference. However, there is another repository (the "Extra" repository) which I am willing to add other users to the access list if they can help with it. < 1296455912 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Does that make such a thing possible sometimes? < 1296455997 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking about making a functional language with only one type, integer < 1296456007 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Wait, I need lists obviously < 1296456013 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :But they would be arrays really, I won't lie < 1296456080 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: Then make up ideas if you want to. But how can you have functional language if there is no function type? Maybe by making just lists of numbers to represent a function? < 1296456101 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :zzo38 it's not really functional and not homoiconic either < 1296456114 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :But you don't have sequential statements < 1296456129 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: OK, well, make it in whatever way you want to make it. < 1296456155 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hey all you need is gödel numbers < 1296456174 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1296456179 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Yes, I think so. < 1296456212 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :(In fact that was also one of my idea in some programming language idea I had, where anything in square brackets gets converted to its godel number) < 1296456331 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you have computer game ideas? I have had many different ideas for computer games (and other games) < 1296456338 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Then a string would just be an array of numerical codepoints haha < 1296456353 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :This is starting to sound like emacs Lisp :[ < 1296456381 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: There are some programming languages that do just treat strings as arrays of numerical codepoints. < 1296456388 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i recall we discussed something like that, converting data types bijectively to numbers. although it had a bit of tendency to blow up when given long lists. < 1296456417 0 :Zuu_!zuu@unaffiliated/zuu JOIN :#esoteric < 1296456420 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :You could even represent the lists as a natural number, too. < 1296456420 0 :Zuu!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1296456441 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well of course that was the idea, and that encoding blew up < 1296456454 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I don't really need signed integers for a primitive self hosting compiler I think < 1296456461 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :(dc can use a number as a string, and treats the number as base 256 and then sends the string to output) < 1296456485 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because it encoded conses, and did not balance very well when the tails got deep < 1296456503 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, you have another segfault somewhere. < 1296456511 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think it was encoding brainfuck < 1296456520 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Lymia: YESSSSSSSSSSSSSSSSSSS < 1296456541 0 :deaters!~danieleat@cpe-98-151-241-151.socal.res.rr.com JOIN :#esoteric < 1296456543 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :There are a few possible ways to encode multiple natural numbers in one number, one way is the INTERCAL interleave operator (but with unbounded size). < 1296456564 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: hm yes that was suggested too < 1296456621 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Have you considered rewriting this in a more memory safe language? < 1296456621 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric ::v < 1296456637 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Nope < 1296456649 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I'd write the first compiler in Haskell < 1296456650 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Bear in mind that I haven't looked at this code in years :P < 1296456652 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Because I hate myself < 1296456687 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :if (!progSpent[procnum][*pptr]) { < 1296456692 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :You have a segfault in there. < 1296456884 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, screw this. Quick question. < 1296456893 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Every thread executes one opcode every tick, right? < 1296457071 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Is it sometimes strategically useful to sacrifice a wicket (without declaring)? < 1296457418 0 :deaters!unknown@unknown.invalid QUIT :Quit: deaters < 1296458534 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Read computer game idea: gopher://zzo38computer.cjb.net/0textfile/miscellaneous/computergameidea < 1296458677 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Have you played the game called "Tetanus on Drugs" or "Lockjaw: The OverDose"? < 1296458918 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :MATLAB strings are vectors of character codes. < 1296458950 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I didn't know that. Now I know. There are also other programming languages where strings are treated as list of character codes, too. < 1296458996 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The data type for the vector is set to "char", though, which makes many more mathematical operators not act on them. I think in earlier versions it wasn't so strict about types, though. < 1296459046 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But you can still do, for example, < 1296459049 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :>> norm(floor('hello')) < 1296459049 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ans = < 1296459049 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : 238.0462 < 1296459069 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The "floor" operator doesn't care that they're chars, and after flooring it's just a numeric vector. < 1296459082 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :s/operator/function/ I guess. < 1296459190 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Or you can sum them, that also throws away the flag that it's a string: < 1296459192 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :>> 'you' + 'me!' < 1296459192 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ans = < 1296459192 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : 230 212 150 < 1296459192 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :>> norm('you' + 'me!') < 1296459192 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ans = < 1296459192 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : 346.9063 < 1296459201 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> sum.map((^2).fromEnum)$"hello" < 1296459204 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 56666 < 1296459213 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1296459220 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(I used "norm" there just because it was the first thing that came to my mind that didn't really make that much sense for a string.) < 1296459234 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(It's the Euclidean norm by default.) < 1296459251 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> sqrt.sum.map((^2).fromEnum)$"hello" < 1296459252 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : No instance for (GHC.Float.Floating GHC.Types.Int) < 1296459252 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : arising from a use of... < 1296459265 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :> sqrt.sum.map((^2).fromIntegral.fromEnum)$"hello" < 1296459266 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : 238.04621400055913 < 1296459271 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sheesh < 1296459335 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :>> sum('it up') < 1296459335 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ans = < 1296459335 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : 482 < 1296459343 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, it's not that many things that care about types. < 1296459366 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Can it be done the other way around, to change a list of numbers to a string? < 1296459396 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes. Well, in the sense that you can just pass a list of numbers pretty much wherever a string is expected. Though sometimes you need to put a char() around it so it gets the correct type. < 1296459416 0 :asiekierka!~asiekierk@178235033089.elblag.vectranet.pl JOIN :#esoteric < 1296459422 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Yes that is what I meant. OK. < 1296459439 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :>> disp(100:110) < 1296459439 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : 100 101 102 103 104 105 106 107 108 109 110 < 1296459439 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :>> disp(char(100:110)) < 1296459439 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :defghijklmn < 1296459524 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1296459578 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Even in C, a string is like an array of char. < 1296459613 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :(Except, that it is null-terminated; arrays in C you cannot find the length easily because it is not stored with the array) < 1296459627 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :(unless you put it there) < 1296459732 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Whereas in TCL, lists are just strings. < 1296459748 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :And is useful; you can even write something like *strchr(s,':')=0; if you want to cut off a string. < 1296459758 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :% puts [list 1 2 3] < 1296459758 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :1 2 3 < 1296459758 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :% puts [list "foo" "bar" "baz quux"] < 1296459758 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :foo bar {baz quux} < 1296459761 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's one silly language. < 1296459803 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Yes it does seem like silly to me, too. < 1296459804 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Every time you use 'lindex' to access one element of a list, it goes and parses that string. < 1296459944 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: And that would make it slow, isn't it? < 1296459956 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think it is pretty slow, yes. < 1296460084 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :How fast is the strlen command in C anyways? Like, how fast would this be: while(i--) p+=strlen(p)+1; < 1296460135 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Depends on your libc, but the worst case is going to be the obvious, naive loop. < 1296460181 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do some things also depend on the CPU? < 1296460183 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :how could it possibly do anything other than scan all of it? < 1296460191 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(up to the nul) < 1296460241 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: You're such a computer scientist! < 1296460271 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, it can be a compiler builtin, in which case it might be able to deduce something, but I wouldn't count on that. < 1296460272 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Scan up to the right alignment, and then scan in words. < 1296460285 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: That is also "scan all of it" to him, I'd wager. < 1296460290 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I do suppose it cannot work in any other way, but depending on the machine instructions some might be faster? < 1296460290 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1296460296 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That is a fairly common optimisation, though obviously only changed constant factors. < 1296460298 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :As long as it's O(n) it's all the same. < 1296460337 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I guess scan in works might be a bit faster, but it has to scan each byte to find where it ends, so the scan words can only be used for reading memory not for calculating the length. < 1296460354 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It can be done with REP SCASB or something like that on x86 too, but I think it's faster to do something word-oriented. < 1296460377 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I do know glibc's memcpy tries to use the wide SSE registers and loops instead of the naive rep movsb. < 1296460407 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: There's some moderately clever bitwise operations you can do on the words. < 1296460429 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :You could do it with: while(*string) string++,length++; but that doesn't deal words or optimize to the machine. < 1296460433 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I recall one processor (maybe ARM, or SH-3 or something) that had a special opcode for "test if any of the four bytes of a 32-bit word equals 0", specifically for string-scanning. < 1296460443 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Yes maybe there is like that < 1296460468 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Even if it is more actual opcodes than the naive loop, it generally comes out on top because fetching from memory is expensive. < 1296460473 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :rep movs* hasn't been efficient in many x86 generations if I'm not mistaken < 1296460516 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Though at this point for quite a bit of it we're comparing a register to an L1 fetch. < 1296460552 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: It is possible, yes. Including if the processor allows accessing individual bytes of a register that was loaded from words. < 1296460595 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :But the instructions must also be stored in RAM, unless it is cached, which can make it faster. < 1296460635 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, dang. The BSD libc's one is also branchless for the checking-for-any-\0s. < 1296460664 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That comes out quite a ways ahead on modern CPUs. < 1296460668 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I've seen the Dinkumware strlen implementation < 1296460672 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It used quite a lot of bit hackery < 1296460706 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :((x - 0x01....01) & ~x & 0x80....80) < 1296460708 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Current glibc strlen is like this: http://sourceware.org/git/?p=glibc.git;a=blob;f=string/strlen.c;h=5f22ce95097d4090c6c32fc7cf6c2ef9cf6e86a8;hb=HEAD < 1296460719 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I've seen it be more complicated-looking earlier, though. < 1296460725 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That is non-zero if any of the bytes in x are 0. < 1296460766 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :http://siyobik.info/index.php?module=pastebin&id=584 < 1296460774 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :That's the Dinkumware one < 1296460799 0 :clog!unknown@unknown.invalid QUIT :ended < 1296460800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1296460854 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :glibc has machine-specific variants of some things (like memcpy) somewhere too, I just can't recall the folder and the web-repo isn't very find'able. < 1296460855 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :But I think that is only for 64-bit computers? < 1296460875 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :No, that's AMD64 code < 1296460875 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: It's for n-bit computers. < 1296460886 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Well, the algorithm is. < 1296460888 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Oh you mean the other one < 1296460947 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh right, it was the sysdeps one. < 1296460954 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Here's the x86-64 strlen: http://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/x86_64/strlen.S;h=28f828780e9b6449aa1ac077c53586ab0ec5e50d;hb=HEAD < 1296460988 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Curiously on i386 it in fact does do repnz scasb. < 1296461022 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Haha SSE < 1296461028 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I once wrote an SSE strlen < 1296461030 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :glibc's memcpy is the one with all kinds of different-sized loops: http://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/x86_64/memcpy.S;h=b4545ac9f704deb1b11e44be8ffa4bce03c9aab3;hb=HEAD < 1296461045 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :On an actual i386, I suppose repnz scasb would actually be reasonably efficient. < 1296461046 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :With prefetchnta's and movntiq's and everything. < 1296461057 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What with a complete lack of pipelining. < 1296461070 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :What is the speed compare and energy compare between arithmetic operation and bitwise operation? < 1296461088 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Negligible. < 1296461160 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :zzo38 it greatly varies < 1296461181 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Mind you, "arithmetic" includes multiplication and division :p < 1296461228 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah, right, multiplication and division are relatively expensive operations. < 1296461245 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Addition and subtraction are hardly distinct from bitwise operations. < 1296461247 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Integer multiplication/division used to be pretty harsh < 1296461254 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Nowadays they are pretty fast though, sec < 1296461286 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :x86 does have AAM and AAD commands, does GNU C compiler ever use those in a compiled program? < 1296461335 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :kfr: Still more expensive than addition, AKA "xor with carry". < 1296461402 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: those are removed (cause invalid-opcode exceptions) in 64-bit mode < 1296461417 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Only a small fraction of the instructions are generally generated < 1296461436 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :32-bit MUL has a latency of 3 < 1296461439 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :64-bit MUL has a latency of 5 < 1296461453 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Is AAA also removed, or not? < 1296461454 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :ADD, SUB, AND, OR, etc are all 1 < 1296461455 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :!fyb crash :......;@<++!* < 1296461459 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: x86 is going to be treated by modern compilers a lot like a RISC with a lot of quirks and completely useless instructions... < 1296461470 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :Score for Lymia_crash: 3.2 < 1296461500 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: yep < 1296461517 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And DAA, but that's not surprising either. < 1296461524 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :kfr: That's pretty impressive. < 1296461548 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :pretty sure they removed all the BCD instructions < 1296461564 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :They also threw away PUSHA/POPA. < 1296461575 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Ah but DIV is still very expensive < 1296461576 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh god *right* x86 has BCD instructions. < 1296461591 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :The latency is roughly around 24 < 1296461605 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Can be as great as 72 though < 1296461617 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :olsner: At least they've kept XLAT, so not all the really quirky single-use instructions have been eliminated. < 1296461632 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :AAM and AAD are still seems useful for some kinds of multiplication and division (it is not limited to base ten and can be usable for things other than BCD), though. < 1296461634 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I do know that compilers are pretty aggressive about optimising DIVs into bitwise operations whenever possible, at least. < 1296461736 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: That's just one special case for a constant divisor < 1296461747 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :In general you use multiplication to achieve division by a constant divisor < 1296461824 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah, right. < 1296461838 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't help at all with variable divisors, of course. < 1296462149 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1296462221 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Sometimes using AAM and AAD and those kind of commands will make the program code smaller, but it will be slower. < 1296462956 0 :pingveno!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1296463079 0 :pingveno!~pingveno@c-98-246-133-8.hsd1.or.comcast.net JOIN :#esoteric < 1296463282 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Oh no, I just realised that I might have to optimise for tail recursion if I were to offer no execution flow control other than function calls (i.e. recursion) < 1296463338 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :to optimize for tail recursion, you have to optimize for tail recursion. < 1296463352 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: Yes you do, even TeX is designed optimized for tail recursion for the same purpose. Often at the end of one macro you might have a name of another macro which takes the next parameters from afterward < 1296463563 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Storing everything in nested arrays of integers must be brutal to do more structured programming though :/ < 1296463571 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The AAM command is a useful kind of divmod by a constant. < 1296463581 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :(For 8-bit values) < 1296463597 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It has a latency of 15 lol < 1296463622 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :And it sets zero flag according to the remainder. < 1296463648 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I won't have first class functions or polymorphism or anything like that though :| < 1296463655 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :And strict evaluation, of course! < 1296463664 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :In places where you want small code, you could save many instructions. < 1296463669 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Not lazy like Hatkell < 1296463705 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :In some places in your program you might want fast code, and other places with small code, depending on the purpose of those sections of the code. < 1296463807 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :XLAT is not useless either. < 1296464349 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/APL_syntax_and_symbols <3 < 1296464468 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I have also think, of one esolang idea, that instead of Unicode it uses the Computer Modern mathematics symbols and other symbols, including accents and overstrike. < 1296465874 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't ring a bell < 1296465879 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Googled, got mixed results < 1296465883 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :zzo38 got an example of those? < 1296466926 0 :poiuy_qwert!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1296467102 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: The Computer Modern typefaces are the ones used by default in TeX (although you can use your own fonts, too). < 1296469011 0 :asiekierka!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1296470024 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Wait a second! Strict evaluation in FP makes no sense! < 1296470575 0 :choochter!~choochter@nat/ibm/x-lzxuzeehjdftoesh JOIN :#esoteric < 1296470651 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :if blah [print "a"] [print "b"] < 1296470658 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Would print ab haha < 1296470664 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Damn side effects! < 1296470698 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :You can make a functional programming language that doesn't have side effects then < 1296470727 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Yeah I was just thinking about that < 1296470734 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It just takes crap from stdin in the beginning < 1296470753 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :But hmm in the end it must print something < 1296470760 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1296470773 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: It should print the result of the entire program < 1296470779 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1296470809 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I was also thinking about how I can avoid out of range errors on arrays entirely < 1296470817 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :By making it impossible somehow < 1296470839 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I'm not just talking about range checks < 1296470850 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I'm talking about preventing it in the semantics of the language somehow < 1296470870 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :needs dependent types afaiu < 1296470881 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Oh no, like Agda? < 1296470892 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :That sounds complicated < 1296470895 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :something like that < 1296471036 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Or I could just refuse to provide any kind of just being able to access a particular index. < 1296471106 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just mapping and for loops? right but that could be inefficient for some things < 1296471106 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Oh, but even head on an empty list would cause a runtime error < 1296471117 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Haha efficiency is the least of my concerns < 1296471122 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :This is just nuttery < 1296471135 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :kfr: welcome to #esoteric! < 1296471150 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :dependent types are interesting in that they solve a lot of problems < 1296471155 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but people consider them too much effort anyway < 1296471159 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :One way is to not have a array index command < 1296471160 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :perhaps they're even correct < 1296471177 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :zzo38 but you need to have some way to access an element in an array < 1296471214 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :kfr: You can have maybe some map that passes the index number and value to a function, for each element in the array. < 1296471219 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric ::t Data.Array.Mutable.Array i x -> [(i,x)] < 1296471220 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :parse error on input `->' < 1296471226 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :And also the return value becomes the new value in the array. < 1296471226 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1296471232 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle Data.Array.Mutable.Array i x -> [(i,x)] < 1296471232 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Parse error: < 1296471233 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : --count=20 "Data.Array.Mutable.Array i x -> [(i,x)]" < 1296471233 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric : ^ < 1296471247 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err, what? < 1296471250 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :This way you can change a value by making a function, that check the index number, if it is the one you want to change, return a new value, otherwise return the old input value. < 1296471254 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION isn't getting this right < 1296471266 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :@hoogle Array i x -> [(i,x)] < 1296471266 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Data.Array.IArray assocs :: (IArray a e, Ix i) => a i e -> [(i, e)] < 1296471266 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Data.Graph.Inductive.Graph lpre :: Graph gr => gr a b -> Node -> [(Node, b)] < 1296471266 0 :lambdabot!unknown@unknown.invalid PRIVMSG #esoteric :Data.Graph.Inductive.Graph lsuc :: Graph gr => gr a b -> Node -> [(Node, b)] < 1296471305 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, apparently the resurfacing of example.com broke darcs < 1296471336 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: wat < 1296471349 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I thought about providing nothing but the following types: Int, [Int], [[Int]], [[[Int]]] etc < 1296471355 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :To make it really simple < 1296471364 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: the test suite checked to see whether 404s were handled properly by looking for a nonexistent page there < 1296471383 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they changed it to http://darcs.net/nonexistent in order to make sure the page was a 404 < 1296471533 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :kfr: to make it even simpler, just provide [[[[[[...]]]]]] < 1296471534 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: i think if you use that method there is little reason to use an array rather than a linked list, since you are always updating all of it < 1296471550 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: arrays have better cache performance than linked lists < 1296471554 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :ais: Huh? I'm not sure what that is supposed to mean < 1296471564 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok maybe that < 1296471585 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has been officially declared O(n)-blind < 1296471641 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :kfr: the only type is a list of that type < 1296471650 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Hm but the easiest way to take care of this index issue is to simply check the size whenever there's an access and when it's out of bounds -> terminate and print an error < 1296471664 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think that's enough support for data in the language in order to bootstrap arithmetic < 1296471682 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :kfr: i thought you said you _didn't_ want to just do range checking < 1296471685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(I'm the sort of person who tends not to add arithmetic to a language unless it actually needs it, except maybe in a wimp mode) < 1296471703 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I can't come up with a better way :| < 1296471740 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :ais523 I want to make a self hosting compiler so I'll have a hard time without any arithmetic < 1296471745 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that [[[...]]] seems almost exactly what elliott seemed to be constructing a few hours ago < 1296471774 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I think it's what Ursala does behind the scenes < 1296471790 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and OK, Ursala's not technically an esolang, but it's still hilarious < 1296471801 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mind you he also wanted to use only "natural" list operations < 1296471804 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(it's in the same sort of category as BancSTAR) < 1296471836 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and of course it is also in some sense what ZFC set theory does < 1296471844 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Have any of you actually written a self hosting compiler for anything? < 1296471868 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Or even opcode generation from an intermediate form in general? < 1296471880 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not me < 1296471887 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric ::[ < 1296471948 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I've written a bunch of compilers, but I'm not sure if any self-host < 1296471971 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :ais523 oh so you have dealt with code generation? < 1296471982 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :IA-32/AMD64? < 1296471983 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :PE/ELF? < 1296472015 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :mostly because I'd hate to, say, have to write an INTERCAL compiler in INTERCAL < 1296472027 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :kfr: I rarely go all the way to asm < 1296472034 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :self-hosting those circuit compilers ais523 seems to be doing would be something impressive < 1296472035 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I've written one Scheme compiler that with the "I'd like to have something self-hosting" thought, but it got sort of abandoned mid-way; the compiler works fine, and does compile a reasonably large set of code, but I don't think it quite does itself yet. < 1296472044 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't even generate assembly < 1296472048 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :with esolangs, translating to C or a similar low-level lang is enough < 1296472056 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Weak < 1296472061 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: indeed, I'd love to pull that off, but it seems a little implausible < 1296472084 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the hardware compilers would go to VHDL/Verilog < 1296472090 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :kfr: there's nothing really special about asm, though < 1296472102 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've also done some work on gcc-bf, but it's far from finished < 1296472112 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(a brainfuck-targeting backend to GCC) < 1296472141 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and that goes via an asm I designed for the purpose of targeting BF < 1296472148 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :really, though, gcc is a mess for that sort of thing < 1296472157 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :perhaps I'll look at modern gcc with its plugin architecture, or llvm < 1296472188 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have that Funge-98 compiler too, but it really isn't self-hosting, and also quite incomplete. < 1296472200 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, funge-98 in funge-98? < 1296472203 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Haha... How to fail password security: Give user password they can't change and the password is weak (dictionary word!)... < 1296472210 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :how far does it get in Mycology? < 1296472213 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: No; that's why it's not self-hosting. :p < 1296472219 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1296472223 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that could be an interesting project < 1296472237 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I guess if you're targeting Funge-98 it's easy. :p < 1296472246 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although funge is basically impossible to compile no matter what lang you write the compiler in, that's the whole point < 1296472250 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what about an interp? < 1296472263 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's that 93 self-interp, befbef.bef or whatever. < 1296472271 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A bit limited when it comes to code-space. < 1296472281 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(without just cheating by copying yourself to negative space, copying the input program into positive space, then deleting yourself and running into the start of the input program afterwards) < 1296472294 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure if anyone's done a proper Funge-98 one. I *think* there was one, but not entirely sure. < 1296472382 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/EsoInterpreters does list two self-interpreters for -93, but none for -98. < 1296472433 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, there's also a reasonably large subset of Funge-98 programs that can be compiled completely statically. < 1296472477 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Even without going to absurd lengths.) < 1296472539 0 :oerjan!unknown@unknown.invalid QUIT :Quit: Good night < 1296472828 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :The ones that don't ever execute potentially modified code? < 1296472949 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, that's a hard condition to detect. But you can approximate. (And you could handle some programs that do; say a program does '>00p in one place and '<00p at another; that's just flipping a branch at (0,0).) < 1296472973 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :My static compiler does a very heuristic code-flow analysis when it comes to complicated things like j. < 1296472991 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Where "heuristic" is here in the traditional meaning of "half-assed". < 1296473129 0 :maximum_yellow!~nine@clam.leg.uct.ac.za JOIN :#esoteric < 1296473290 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure what UTF-8 symbol I should use for the if statement hmm < 1296473328 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh no, I feel a nitpick coming onto me. < 1296473349 0 :maximum_yellow!unknown@unknown.invalid PRIVMSG #esoteric :¿ < 1296473355 0 :maximum_yellow!unknown@unknown.invalid PRIVMSG #esoteric :kfr: ^ < 1296473385 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Here it comes: there is no such thing as a "UTF-8 symbol"; it's just an encoding for Unicode. (And the Unicode glossary doesn't define a meaning for "symbol" either, but I'm not *that* nitpicky.) < 1296473412 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :In Plain Texnicard, what should be the maximum number of set symbols per set, and what should be the maximum number of modes per set symbol? (Their product must not exceed 256.) < 1296473470 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :fizzie is UTF-8 encoded codepoint any better? < 1296473494 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :(For example, of each symbol comes in two sizes, with one border color (or gradient), and one fill color (or gradient), then you need four modes: border of small symbol, border of large symbol, fill of small symbol, fill of large symbol.) < 1296473507 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, that's fine, I guess, though I don't quite see why to mention UTF-8 at all, unless you're choosing the code point based on how pretty the encoded bits are. < 1296473513 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :For some reason I kind-of like the idea of using the "option key" symbol for if -- that is, ⌥ -- but it's really obscure. < 1296473529 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Well, for the choice it doesn't matter but the compiler will depend on a particular encoding < 1296473530 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: make them both 16 as a starting point, if you run out of one but not the other you can shift the requirements < 1296473565 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :fizzie haha I'd like to see the set that one is from < 1296473582 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, that should work. It was my first thought, 16 of each. < 1296473587 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The block is the "miscellaneous technical" one, the same place that has all the APL symbols. < 1296473592 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I do suppose I can change it later. < 1296473604 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/%E2%8C%A5 < 1296473622 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Is the "option key" symbol the one also called the "place of interest" symbol? < 1296473637 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :No, never mind. I am wrong < 1296473639 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: No, that's the "command key". < 1296473653 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The "command key" symbol is the "place of interest" symbol. < 1296473662 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I made a mistake since I never use Apple computers < 1296473687 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :(I did make the "place of interest" ("command key") symbol in METAFONT, once.) < 1296473700 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I think I did the option symbol, too. < 1296473763 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :http://www.fileformat.info/info/unicode/block/miscellaneous_technical/utf8test.htm < 1296473767 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It's from that set haha < 1296473810 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's got the silly top/bottom halves of integrals and sums and brackets, too. < 1296473813 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I think METAFONT is a good program to design fonts. < 1296473816 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Like the name says, "miscellaneous". < 1296473852 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :⎇ is another alternative for ⌥. < 1296474217 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you want the totally obscure character for "if", use U+1D30E TETRAGRAM FOR BRANCHING OUT: http://www.fileformat.info/info/unicode/char/1d30e/index.htm < 1296474279 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There are quite a few other useful programming-related concepts in the block, too, and they all look alike, which will make the language look more harmonious. Not to mention harder to read. < 1296474785 0 :zzo38!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296476439 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :lol. < 1296476460 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :http://www.fileformat.info/info/unicode/block/tai_xuan_jing_symbols/utf8test.htm < 1296476463 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Definitely not. < 1296477176 0 :variable!~variable@unaffiliated/variable JOIN :#esoteric < 1296478049 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :This IP address counter is going to hit zero today at this rate... < 1296478073 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Okay, it shows first of february, but that could be the timezones. < 1296478074 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is on an IPv6 only host < 1296478082 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Ping my hostname for great justice. < 1296478156 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Aw, vanity v6 address assignments like that are so 2000s. < 1296478182 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Or is it "the 00s"?) < 1296478189 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :rtt min/avg/max/mdev = 122.129/159.620/224.113/41.806 ms < 1296478189 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It's the AAAA only record :[ < 1296478196 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Many people are irrtated by that < 1296478200 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :irritated* < 1296478212 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sure, but using :fade:fade:fade:fade... < 1296478214 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :They go like "aozomg it says unknown host!" < 1296478246 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Then again changing DNS records after you're on the server is even funnier < 1296478256 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :rtt min/avg/max/mdev = 64.248/65.609/74.548/2.580 ms < 1296478261 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I fooled somebody into thinking I was connecting from microsoft.com once < 1296478274 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Or just removing the record entirely is hilarious, too < 1296478304 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Occasionally I've wondered whether ping's "mdev" is in fact standard deviation or not. I would assume it is, but I'm not sure what the "m" is trying to say. < 1296478340 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, it's mean deviation. < 1296478348 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Strange statistic to report. < 1296478377 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, or maybe it's the std dev with a strange name. < 1296478390 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :lol I am so going to use ⨝ for joining arrays. < 1296478410 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It's great that there are Unicode symbols for database relational algebra stuff < 1296478424 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :In some cases, it is easiest to just make up host ID. Such as when something blocks off RAs but not connectivity. < 1296478484 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I have heard of cases where one has to manually configure IPv6 addresses and gateways and then it'll work. < 1296478490 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :There's an insertion symbol: ⎀ < 1296478565 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : I fooled somebody into thinking I was connecting from microsoft.com once <--- didn't they check forwards and reverse and make sure they were equal, like anyone should if they want to make sure that a DNS is authoratitive? < 1296478578 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Of course not < 1296478585 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise it wouldn't have worked, duh! < 1296478667 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :IRC servers don't tend to check either, and they only report the reverse-name they got (and not the address) in whois and such, so I don't see how a J. Random User could really check. < 1296478673 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Weird stuff going on local systems: Two interfaces with the same IP, same IPv6 /64 used for two segments... < 1296478685 0 :asiekierka!~asiekierk@178235033089.elblag.vectranet.pl JOIN :#esoteric < 1296478715 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have a really hacky /64-sharing thing going on at home. < 1296478749 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :How hacky? < 1296478750 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1296478755 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: why? < 1296478771 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, why share a /64 when, say, a /60 would be trivially available? < 1296478801 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: The ISP only gives out a /64 to random home DSL connections. (Well, by default, anyway. Maybe it could be negotiable. But they could also ask for money there.) < 1296478820 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: oh, it's an attempt to persuade you to pay them more < 1296478838 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sorry guys, I don't have any whisky. < 1296478840 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :giving people just individual /64s is sort-of as contrary to the spirit of IPv6 as handing out /16s < 1296478859 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Giving DSL users individual /64s sounds pretty much like the only sensible thing to do to me. < 1296478872 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :What hacks does that sharing do? < 1296478877 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise you'd have to agree on one host identifier to use as a gateway and all. < 1296478916 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric ::i text < 1296478961 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: As in, what hacks? < 1296478971 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: Well, since they only route the /64 to the link, not to any specific gateway, I have to add proxy-NDP entries for all hosts in the "inner" networks on the gateway (so the ISP's side finds them with ND); so I have a crude kludge that listens for router-solicitations in the inner network, sends faked replies back, then sets up proxy-NDP entries on the outer interface and single-host /128 routes for the inner machines in the inner interface. < 1296479012 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :03:52:09 oerjan: oh my god what sequence is that printing ← how does he not recognise Thue-Morse? < 1296479033 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Ah, multiple layer 2 segments... < 1296479070 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: oh, I muddled /64 and /128 < 1296479075 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, a /64 is entirely sane < 1296479082 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a single /128 would be ridiculous < 1296479093 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: I used to do it by bridging the two network segments, then ebtables filtering so that only IPv6-protocol Ethernet frames got bridged, but that wasn't any prettier either. < 1296479096 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :THUE-MORSE RECOGNITION SHOULD BE TAUGHT IN ALL SCHOOLS AT THE AGE OF 7 < 1296479130 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :01101001100101101001011001101001 < 1296479144 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: From what I hear from a friend whose workplace has interwebs from the same ISP, getting a /56 was just a matter of sending an email to the service desk. It is possible it'd work for a home user too. < 1296479163 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Maybe ∑ is funnier for concatenating lists hmm < 1296479169 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Or arrays rather* < 1296479175 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, what's to stop you just putting two different machines at different /128s in the same /64? anything? < 1296479206 0 :cheater00!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1296479242 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :The problem is that ISP gateway has to be able to ND all the hosts in the network (if they are to be reachable). < 1296479251 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: You can't really split a /64, the stateless address autoconfiguration won't work. And also they just route the /64 into the link, not a particular gateway address, so you have to have the gateway reply to ND messages (like IPv4 ARP queries) that "hey, send packets for this IPv6 host into this Ethernet address". < 1296479337 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Also I've poked the RIPE registry with their prefix as a search query, and some dude who's listed in linkedin as "Systems Engineer" working at the ISP has a /48 assigned with a descr: field of "[person's name] DSL", so obviously with the right kind of connetions you'll get more addresses at home...) < 1296479359 0 :cheater00!~cheater@g230228233.adsl.alicedsl.de JOIN :#esoteric < 1296479394 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OK, so why is Kraftfeld uploading esoprograms in JPEG format? < 1296479448 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Wonder what's in that network if even /56 isn't enough? Just for bragging? PI space? < 1296479582 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, "/48 to end-sites" isn't an unheard-of policy. I don't know how RIPE instructs people nowadays; their instructions list both /48s and /56s as popular end-site network sizes, and then there were some guidelines about how those are aggregated in the whois so that RIPE's WHOIS db doesn't fill up with many small networks. < 1296479595 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The assignment was pretty old, I think. < 1296479674 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hm, isn't there a timestamp in inet6num whois entries, or is the client just not reporting that? < 1296479749 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It might even have been that they were testing things out there. < 1296480062 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :The rate this IPv4 counter counts down addresses seems to be about 1300 addresses per minute. < 1296480078 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Uh: http://www.db.ripe.net/whois?form_type=advanced&full_query_string=&searchtext=AMRM1-RIPE&do_search=Search&inverse_attributes=author&ip_search_lvl=&alt_database=RIPE&object_type=limerick&object_template=none < 1296480093 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Why is the database full of poetry? < 1296480102 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Maybe "full of" is an exaggeration.) < 1296480125 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :remarks: Role object for limerick working group administrator(s) < 1296480125 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :remarks: This is the most secret object in the whole database < 1296480125 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :remarks: Don't ask who's behind this, nobody knows < 1296480125 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :remarks: Feel free to send in new limericks! < 1296480294 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :This counter is going to hit zero (at this rate) in about 8 hours 20 minutes... < 1296480450 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: until exhaustion of what? IPv4 addresses allocated to end-users? or just to the RIRs? < 1296480482 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :I don't know exactly what it counts: http://inetcore.com/project/ipv4ec/en-us/index.html < 1296480677 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think their "X-Day" is IANA depletion. < 1296480685 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Yup. < 1296480715 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Note timezones... In UTC+2h and earlier timezones, the bottom number should hit 0 today. < 1296480743 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The counter doesn't exactly look too scientific. < 1296480749 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, it doesn't. < 1296480767 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Given in how discrete blocks IANA gives those things out, counting down with a silly number like that is a bit movie-ish. < 1296480818 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1296480940 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :And of course, there are various uncertainities in IANA allocations. Remeber the 5 blocks being surprise-allocated last fall? < 1296481014 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I remember it... like it was yesterday. [Cue dreamy background music and a fade to a flashback sequence.] < 1296481589 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1296481617 0 :cheater00!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1296481671 0 :cheater00!~cheater@e181137154.adsl.alicedsl.de JOIN :#esoteric < 1296481764 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :1300 addresses per minute... That's about a /24 every 12 seconds... /16 every 50 minutes... < 1296481812 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Is that IPv4 or 6? < 1296481823 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :v4 of course... < 1296481843 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :v6 allocation rate is a good bit higher than 1300 addresses per minute... < 1296481875 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A /24 of IPv6 every 12 seconds would be 101412048018258352119736256430080 addresses per minute. < 1296481882 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I doubt it's quite that high. < 1296482074 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Maybe they should've started to number those things from the other end when the /N notation started. < 1296482132 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :APNIC's been allocating about 1 /48... Per second. < 1296482176 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Pshaw, that's just 72535549176877750482370560 addresses. < 1296482180 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Per minute, I mean. < 1296482305 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Worldwide, that rate is probably double that... So about 140 septillion addresses per minute... < 1296482434 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Allocating one /47 per second would mean a total exhaustion in just 4.5 million years. Worrisome. < 1296482524 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :600k... < 1296482765 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Given that Egypt no longer seems to care about being part of the internet, maybe we could just reclaim all their v4 space? (Though according to one page that's just 0.17x/8.) < 1296482840 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Heh... One of the NANOG51 schedule events (for tomorrow) is titled: "Panel: IPv4 Exhaustion What Now?" < 1296482955 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"This is a track to expand on the panel I did at NANOG 50" -- called "IPv4 to IPv6 Transition and Co-Existence Experiences". Maybe the panel-moderator thought a more catchy name would help. < 1296483601 0 :asiekierka!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1296484123 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296484177 0 :ais523_!93bcc029@gateway/web/freenode/ip.147.188.192.41 JOIN :#esoteric < 1296484196 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :This is a hello world in a primitive esoteric semi-functional language (i.e. no state/side effects except for writing the return value of the program function to stdout when it terminates) which is statically typed (everything is an unsigned integer, or an array of unsigned integers, or an array of an array of ..., functions aren't first class objects, though) and uses prefix notation with lots of Unicode stuff: http://siyobik.info/misc/esolang/prime.html < 1296484198 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Thoughts? < 1296484218 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I took some of the symbols from APL < 1296484246 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has a nervous breakdown. < 1296484250 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :AAAAAAAAAAAAAAAAAAAAGDAGETITAWAY < 1296484252 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :AAAAAAAAAAAAAAAAAAAAAaaa < 1296484256 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: What < 1296484264 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :You don't like it? :[ < 1296484281 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :kfr, no, it's just that Agda has completely spoilt gratuitous Unicode for me. < 1296484288 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Haha < 1296484300 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't Agda actually use ⇾ < 1296484302 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :? < 1296484303 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Or something like that? < 1296484307 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Failpaste < 1296484359 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :The first one to figure out the meaning of all the symbols used gets a cookie < 1296484360 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :kfr: I like the look of it, at least < 1296484365 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Haha < 1296484377 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I can't even imagine how complicated it would be to write a self hosting compiler in this... < 1296484418 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :◼ is clearly "end of {block,definition,whatever}". < 1296484444 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, just the end of the function definition < 1296484449 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :(nested functions are not supported) < 1296484449 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :iterator, I assume, does some sort of recursion. < 1296484460 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric ::O it's just a name < 1296484461 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Also, why the hell are you using lambda for named functions? < 1296484486 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I couldn't come up with a more suited Unicode symbol < 1296484498 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :And I wanted to have a prefix symbol for functions < 1296484498 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :How about just leaving it out? < 1296484514 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Then it would be more difficult to parse! < 1296484521 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It would require like... lookahead! < 1296484525 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :hmm, this computer lab's just gone crazy < 1296484532 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :nobody has any permission to access anything < 1296484560 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :it's as if someone ran chmod -R 000 / on the entire network < 1296484560 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Although with the ◼ < 1296484560 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric : it's superfluous for sure hm < 1296484575 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Urgh fail paste again, hatred against the hidden newlines from Firefox < 1296484580 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :I'm in the middle of a marking session atm, but it's kind-of hard to mark when I can't even open a terminal < 1296484596 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Is the ⌥ a pattern matching thing? < 1296484612 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Haha no < 1296484615 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :There is no pattern matching :| < 1296484621 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :luckily Firefox happened to be open at the time, and is still working < 1296484628 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: It's the if operator < 1296484644 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :So is = prefix? < 1296484648 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :also, the entire system's gone really unresponsive < 1296484649 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Syntax: ⌥ predicate thenValue elseValue < 1296484675 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric := # primes 0 < 1296484675 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric : means length primes == 0 < 1296484697 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :And = 0 | number iterator? < 1296484717 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :| is the APL modulo thing < 1296484737 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The ↺? < 1296484738 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :So err 0 == number `mod` iterator < 1296484752 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Hah, that's the recursion operator < 1296484770 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It just calls the current function it's used in again < 1296484811 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :The ≡ stuff is just supposed to be some let stuff, but it doesn't have a value in this notation hmmm < 1296484816 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :So if you want to do two mutually recursive functions? < 1296484820 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Whereas it should really < 1296484853 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Well you can explicitly call other functions, the recursion operator was just a joke abbreviation < 1296484934 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Ah wait, actually you can basically interpret the ≡ stuff as let ... in constructs right now < 1296484936 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The empty set sign? < 1296484941 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :That's just [] < 1296484950 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :[] :: [Int] if you so wish < 1296484952 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The sigma? < 1296484962 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Concatenation of arrays < 1296484979 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The triangle? < 1296484997 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :△ x is [x] < 1296485027 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :○ is just head < 1296485039 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :↓ is the APL drop operator < 1296485055 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The right-wedge? < 1296485064 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :The ▷ in the signature contains types < 1296485072 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :x means integer < 1296485077 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :▷x means an array of integers < 1296485084 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :▷▷x means an array of array of integers < 1296485085 0 :ais523_!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1296485087 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :And so on < 1296485097 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :How is IO done? < 1296485128 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :The program writes its main return value to stdout in the end, you can't explicitly do any IO in the language itself < 1296485183 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :△ 256 has a codepoint which is too large for that, for example < 1296485188 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Since that would be more than 0xff < 1296485188 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Well, with that, input passed as an argument and lazy semantics you can do full-featured IO. < 1296485205 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Not sure how to handle those cases < 1296485217 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Just skip it perhaps < 1296485226 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Or split it up into multiple Char8 < 1296485241 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Anyways yeah this is really terrible < 1296485255 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Doing structured programming wich such a primitive set of operations must be a huge pain < 1296485280 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :No, not really. < 1296485293 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Structured programming is an imperative thing, for a start. < 1296485332 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I mean, I wanted to come up with a simple esolang I can write a self hosting compiler for < 1296485353 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Compiler into what? < 1296485372 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Huh? It compiles to IA-32/AMD64 PE/ELF < 1296485399 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Don't do a functional language, then. < 1296485423 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :High-level abstractions and easy self-hosting do not go particularly well together. < 1296485423 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Why not? :D < 1296485434 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :True that < 1296485443 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :But this one is actually easy to generate code for, I think < 1296485461 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Wait, does it have first-class functions? < 1296485464 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1296485470 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It's very primitive. < 1296485479 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Oh. I suppose that makes compilation much easier. < 1296485482 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1296485492 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :But imagine representing uhmm some intermediate form in this thing < 1296485509 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Do you require that ints be unbounded? < 1296485513 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :No < 1296485524 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I will map them to the native word size < 1296485525 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1296485529 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :So 32-bit or 64-bit < 1296485552 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :But imagine storing everything in a [[[[Int]]]] or something like that < 1296485553 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I think you could compile this into C easily, then. < 1296485555 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It must be terrible < 1296485559 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :C... pff. < 1296485566 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :That would be weak. < 1296485583 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Not even particularly sophisticated C. < 1296485595 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It needs to generate everything itself < 1296485605 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :It would be a self hosting cross platform compiler < 1296485610 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise it isn't impressive really < 1296485620 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Do you need to specify the argument types? < 1296485639 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it has no inference at the function level < 1296485657 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :There is just Int, [Int], [[Int]], etc < 1296485668 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :All based on the number of the triangles in front of the name < 1296485673 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :In the signature < 1296485682 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Do you guarantee that tail call elimination will be performed? < 1296485700 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I have no idea how to go about that really < 1296485712 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Tail-call elimination? < 1296485726 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1296485743 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :It's relatively simple. < 1296485802 0 :copumpkin!unknown@unknown.invalid QUIT :Quit: Computer has gone to sleep. < 1296485871 0 :joaopizani!~joaopizan@ec2-174-129-217-7.compute-1.amazonaws.com JOIN :#esoteric < 1296485879 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Basically, if you have a function f x = g , when you compile it into assembly, there will be an instruction to call g. < 1296485935 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :So f will work out , push it onto the stack (or whatever, I'm doing this based on the x86 C calling convention), then push its current point of execution, then jump to g. < 1296485949 0 :SgeoN1!~AndChat@137.125.184.173 JOIN :#esoteric < 1296485965 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I was mostly worried about using up too much memory with the recursion < 1296485979 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, that's why you do tail-call elimination. < 1296486024 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :If g = f in that example (and there's a condition so it stops somewhere) the stored points of execution can overflow the stack, which is why you eliminate it. < 1296486086 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1296486099 0 :asiekierka!~asiekierk@178235033089.elblag.vectranet.pl JOIN :#esoteric < 1296486121 0 :augur!~augur@129.2.129.35 JOIN :#esoteric < 1296486212 0 :ais523_!93bcc029@gateway/web/freenode/ip.147.188.192.41 JOIN :#esoteric < 1296486229 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :hmm, it's been ages since I've been in /this/ lab < 1296486242 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :(strangely, this is unrelated to the earlier issue, which somehow fixed itself after a while) < 1296486284 0 :SgeoN2!~AndChat@137.125.184.173 JOIN :#esoteric < 1296486284 0 :SgeoN1!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1296486412 0 :SgeoN2!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1296487359 0 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1296487685 0 :MigoMipo!~John@84-217-10-86.tn.glocalnet.net JOIN :#esoteric < 1296487895 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :There, wrote a small introduction: http://siyobik.info/misc/esolang/prime.html haha < 1296487948 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I guess you would have to write tons of helper functions to retrieve properties from implicit structures stored in massively nested arrays < 1296487955 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :In more sophisticated programs < 1296488063 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :How does division work? < 1296488106 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: 3 / 2 == 1 :p < 1296488116 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :So it floors? < 1296488122 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1296488177 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Forgot to mention the unsignedness, right < 1296488613 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :also, wtf: SourceForge hacked (not wtf), they make a full disclosure post talking about what happened (not wtf), many comments complain about the loss of CVS and talking about how much better it is than SVN (wtf) < 1296488679 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1296488681 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :ACTION uses git < 1296488735 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :kfr, well, there's one small way you can delay your firey death at elliott's hands. < 1296488748 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover why would they want to slay me? < 1296488759 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :Because of my esolang example? < 1296488884 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Wait, what? What have you got against IRC logs? < 1296488938 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Toilet_paper_orientation < 1296488941 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Oh god. < 1296488961 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :It... look at all the references < 1296488993 0 :asiekierka!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296489191 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: I doubt elliott will slay anyone for VCS choice until scapegoat is finished < 1296489198 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :and then demand everyone switches to it at once < 1296489215 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523_, but he ALREADY hates people who are pro-SVN! < 1296489227 0 :acroyear2!~dad@88.96.146.70 JOIN :#esoteric < 1296489241 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: I'm surprised that there are people who think CVS > SVN, though < 1296489247 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :even people who hate SVN generally hate CVS more < 1296489661 0 :pikhq!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1296489674 0 :pikhq!~pikhq@174-22-161-201.clsp.qwest.net JOIN :#esoteric < 1296489749 0 :Zuu_!unknown@unknown.invalid NICK :Zuu < 1296489967 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Yeah, the main complaint about SVN I've heard from elliott is "it's supposed to be 'CVS done right', which is impossible". < 1296490234 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :I thought that was a Linus Torvalds quote/misquote? < 1296490527 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The impossibility, or the first part? I don't know where it's from, but I do think SVN people characterize themselves that way. < 1296490606 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :the impossibility part < 1296490695 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :hmm, perhaps it wasn't Torvalds, I can't find anything relevant on wikiquote < 1296490775 0 :fizzie!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1296491207 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric : I thought that was a Linus Torvalds quote/misquote? < 1296491212 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :That's a correct Torvalds quote < 1296491216 0 :kfr!unknown@unknown.invalid PRIVMSG #esoteric :I watched that presentation < 1296492223 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :has the toilet paper orientation wp page gone viral? < 1296492419 0 :ais523_!unknown@unknown.invalid QUIT :Quit: Page closed < 1296492820 0 :acroyear2!unknown@unknown.invalid QUIT : < 1296492855 0 :asiekierka!~asiekierk@178235033089.elblag.vectranet.pl JOIN :#esoteric < 1296493142 0 :impomatic!~chatzilla@86.241.112.87.dyn.plus.net JOIN :#esoteric < 1296493657 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : Sometimes toilet paper is simply entertaining. < 1296493671 0 :Wamanuz!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296493741 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, theory: there's a serious attempt to get that article featured in time for it to be put on the Main Page on April 1 < 1296493782 0 :Wamanuz!~Wamanuz@78-69-168-43-no84.tbcn.telia.com JOIN :#esoteric < 1296493934 0 :sftp_!~sftp@79.174.49.11 JOIN :#esoteric < 1296493943 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :that's probably it < 1296493959 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i had another theory earlier < 1296493968 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i forgot it < 1296493976 0 :sftp!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1296494048 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, apparently that theory is incorrect, I know where the discussions for such things take place and that article hasn't been suggested < 1296494068 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :suggest it! < 1296494212 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking about it, but I don't have the time to carry such a nomination through < 1296494278 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :mm < 1296494368 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :btw, in our house, the toilet paper isn't placed in a dispenser at all < 1296494374 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but just left to stand on end < 1296494612 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what's your attitude towards LiquidThreads? < 1296494650 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: I think it's mostly unnecessary, in that the :::-style version of wiki communication is both simpler and more flexible < 1296494660 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I agree! < 1296494684 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Well, there are a couple of points in its favour, like less strain on the database. < 1296495289 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :anyone know where zzo38 is from? < 1296495295 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Canada. < 1296495312 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :zzo38 parallel Canada < 1296495318 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's like Canada, except zzo38 < 1296495347 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Hence it is ten orders of magnitude more crazy than normal Canada. < 1296495591 0 :asiekierka!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296495635 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :french canadia i bet < 1296495804 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :quintopia, he transcends nationality and ethnicity. < 1296495808 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :He is simply Crazy. < 1296495904 0 :choochter!unknown@unknown.invalid QUIT :Quit: lang may yer lum reek.. < 1296495952 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :Someone come up with a language that is deserving of the name Bugger Overflow please. < 1296496140 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1296496169 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Perhaps it is named that way because whenever you write programs in it you end up saying "bugger, overflow!" < 1296496235 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :happy australian mailman mailing list reminders day! < 1296496934 0 :elliott!~elliott@unaffiliated/elliott JOIN :#esoteric < 1296497875 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :06:36:06 I assume a normal language with convoluted enoguh syntax will do. < 1296497876 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :no, we hate those. generally < 1296497880 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :06:36:21 Supporting both Windows PE and Linux ELF < 1296497880 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but why < 1296497890 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(logreading in action!) < 1296497936 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, wait 'till you see kfr's esolang. < 1296497954 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It looks like he's fallen into the old trap of "weird syntax = interesting esolang". < 1296497966 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ANYWAY WHO DO I COMPLAIN AT TO GET DF WORKING < 1296497992 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Works for me. Download the binary, perhaps it was updated. < 1296498015 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, where'd you get it from? < 1296498025 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: The...site? < 1296498027 0 :fizzie!fis@iris.zem.fi JOIN :#esoteric < 1296498030 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://www.bay12games.com/dwarves/ < 1296498038 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, that's where I got it. < 1296498038 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Did you think it was pay-for or something? < 1296498044 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: You realise that programs get updated. < 1296498059 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, I got it literally 5 minutes ago. < 1296498072 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I doubt somehow that it has broken in the interval between us getting it. < 1296498074 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Sigh. What error. < 1296498093 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :is there a language in which the concept of sequence convergence is the basic concept you work with? < 1296498131 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :07:02:48 i think it was encoding brainfuck < 1296498134 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :indeed, bifro < 1296498135 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :./libs/Dwarf_Fortress: error while loading shared libraries: libSDL_image-1.2.so.0: wrong ELF class: ELFCLASS64 < 1296498142 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Bifro! < 1296498194 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: you need 32-bit sdl. < 1296498200 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, *sigh*... < 1296498229 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: you are starting it with ./df right? < 1296498232 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1296498261 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :well, i don't have 32-bit sdl here and it works < 1296498299 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :You're on Ubuntu, right? < 1296498352 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1296498369 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :In addition to the hardware requirements (which will be the same as the other < 1296498369 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :platforms) your system will need these libraries installed: < 1296498369 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :* GTK+ 2+ < 1296498369 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :* SDL 1.2+ < 1296498369 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :* SDL_image < 1296498370 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :And some kind of OpenGL implementation, so: < 1296498372 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :* libgl < 1296498376 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :* libglu < 1296498731 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, so I'm screwed? < 1296498743 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: No, you just have to figure out the solution yourself because I don't know. < 1296499580 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :o shit, eye of sauron! http://en.wikipedia.org/wiki/Fomalhaut < 1296499749 0 :Behold!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1296499810 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :what qualifies a language as being "Low-level"...is it anything remotely tarpit-like? < 1296499857 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :quintopia, ...no? < 1296499857 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: basically, it's tarpits, to some extent or another < 1296499865 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :including ones which aren't really minimized < 1296499868 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Oh, by the esolang definition. < 1296499873 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I have no idea, then. < 1296499882 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, if you need to go through stupid hoops to even do simple arithmetic, it's probably low-level < 1296499887 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh okay < 1296499919 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :ais523, isn't that more or less all esolangs? < 1296499926 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: indeed < 1296499941 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but, say, befunge-98 is what I'd consider "high level" in esolang terms < 1296499943 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(-93 isn't) < 1296499951 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1296499955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :good library support, no real hoops other than those inherent in the structure < 1296499990 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/ETAS < 1296499996 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: underload isn't low-level < 1296499999 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nor is Pixley < 1296500007 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but both have non-trivial arithmetic < 1296500010 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I consider underload low-level < 1296500011 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(OK, underload not so much) < 1296500022 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :precisely because you have to build everything from the ground up < 1296500026 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even arithmetic and flow control < 1296500032 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can't get much lower than that, in an abstract sense < 1296500044 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it isn't low-level in the sense that it strongly resembles machine code for an actual machine < 1296500053 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but then, what esolang does, apart from some of the asms that aim at BF? < 1296500154 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, incidentally, the best advice from #debian wrt DF was "use a chroot". < 1296500163 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I am going to murder both of the devs. < 1296501015 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:48:08 Wait a second! Strict evaluation in FP makes no sense! < 1296501015 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:58:36 if blah [print "a"] [print "b"] < 1296501015 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:58:43 Would print ab haha < 1296501015 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :10:58:48 Damn side effects! < 1296501018 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :PURITY FAIL < 1296501032 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :non-strict evaluation doesn't help you there either, unless you specify a guaranteed evaluation order < 1296501033 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :which is stupid < 1296501385 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :11:13:18 kfr: to make it even simpler, just provide [[[[[[...]]]]]] < 1296501386 0 :calamari!~calamari@ip70-162-184-205.ph.ph.cox.net JOIN :#esoteric < 1296501386 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hey! < 1296501390 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you stole my language! < 1296501396 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i was INSPIRED by ursala < 1296501401 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :what's [...]? quoting? < 1296501405 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :olsner: itself < 1296501407 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: list < 1296501407 0 :calamari!unknown@unknown.invalid PART #esoteric :? < 1296501421 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: he means "is it quoting?" < 1296501423 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OK, so, < 1296501433 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: MY LANGUAGE which I was going to tell you about anyway < 1296501441 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :you know how at the base of ursala, every object is < 1296501444 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :obj := nil | list [obj] < 1296501444 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :? < 1296501463 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: yep < 1296501473 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I took it ONE FURTHER. < 1296501477 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :obj := nil | cons obj obj < 1296501483 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Everything in my language is one of those. < 1296501488 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I don't get how a deeply nested list is meaningful in the context of kfr's example, so I don't think ais523 meant that? < 1296501494 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(Accordingly, you can describe it as a tree without even using anything other than lines.) < 1296501500 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: yes, he did < 1296501508 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1296501510 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: kfr said he'll just have Int, [Int], [[Int]] < 1296501511 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :, ... < 1296501517 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and ais523 proposed [[[[[[[[[[...]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] < 1296501570 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :11:16:50 ais523: that [[[...]]] seems almost exactly what elliott seemed to be constructing a few hours ago < 1296501570 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :11:17:19 oerjan: I think it's what Ursala does behind the scenes < 1296501575 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: omg, you're skipping ahead of me < 1296501628 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: hmm, as in the language would only support list-of-list but not anything deeper? < 1296501681 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ACTION still doesn't know what anyone is talking about < 1296501685 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :What's that command that lists the currently-mounted filesystems? < 1296501687 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: obj := nil | cons obj obj < 1296501689 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :is T= [T] < 1296501696 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: mount < 1296501700 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: you may also find df useful < 1296501737 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how does ursala do naturals? in mine, a list of N []s is N < 1296501747 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :i.e. 0 = [], 1 = [[]], 2 = [[],[]], 3 = [[],[],[]] < 1296501767 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: you think I know that sort of thing offhand? < 1296501771 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's almost certainly insane, though < 1296501776 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: absolutely! < 1296501803 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I already have operations on (T = [T]) for +, *, and ^ though, that work correctly when using naturals of that form < 1296501808 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and do something to other lists that may or may not be useful < 1296501815 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :well, + is just append < 1296501823 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :* is cartesian product, except instead of (x,y), it returns (x++y) < 1296501826 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :^ is just crazy < 1296501831 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(oerjan thought up ^) < 1296502850 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: anyway, I finally understand why ursala requires those explicit casts < 1296502877 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: because it doesn't know the type the rest of the time < 1296502883 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :type info isn't tracked at all < 1296502884 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: pretty much, yup < 1296502904 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: in my language, 3 = [0,0,0] = [[],[],[]] = [nil,nil,nil] = [0,nil,[]] = ... < 1296502909 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(OK, nil is just a name for [], but still.) < 1296502915 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh, = [0,false,[]] too < 1296502917 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :etc. < 1296502928 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1296502941 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I *think* types are created by writing a clause for is_valid < 1296502941 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :overload was based on that principle, but even simple data structures were infinitely recursive < 1296502948 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :for instance (in a Haskell-style language): < 1296502972 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :is_valid int x := x == [] || (car x == [] && is_valid int (cdr x)) < 1296502989 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and then if you cast e.g. [[[]],[]] to int, it'll fail < 1296503026 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and I think "object files" (a huge list of 0s and 1s, where 1 is cons and 0 is nil) will have a first line consisting of an expression representing the type < 1296503027 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :e.g. < 1296503031 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :list_of int\n111101010101011... < 1296503049 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :most commonly "module", I guess < 1296503222 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: "There is no reason for function application to be left associative in a language without automatic currying, and no reason for automatic currying in a language that distinguishes notationally between product spaces and function spaces (unlike lambda calculi)." < 1296503230 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I don't understand this, do Ursala functions not compile to the basic object type? < 1296503298 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hey, SCI distinguishes between product and function spaces; and it does currying /and/ pairing in order to write functions that take multiple args! < 1296503308 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that Ursala quote has offended me slightly < 1296503316 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : ais523: I don't understand this, do Ursala functions not compile to the basic object type? < 1296503317 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as finding a reason to make the distinction is the whole point of much of my research < 1296503320 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I don't know < 1296503324 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1296503326 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :YOU MUST KNOW < 1296503464 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :The counter is under 148k now... No allocation yet as far as address space registry is concerned. < 1296503687 0 :ais523!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296505021 0 :copumpkin!unknown@unknown.invalid NICK :grue < 1296505030 0 :joaopizani!unknown@unknown.invalid PART #esoteric :? < 1296505563 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :grue: eep < 1296505617 0 :grue!unknown@unknown.invalid PRIVMSG #esoteric :ACTION eats elliott  < 1296505628 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it's not dark < 1296505637 0 :grue!unknown@unknown.invalid PRIVMSG #esoteric :I'm wearing sunglasses < 1296505643 0 :grue!unknown@unknown.invalid PRIVMSG #esoteric :I got with the times < 1296505660 0 :grue!unknown@unknown.invalid PRIVMSG #esoteric :ACTION picks at his teeth to remove bits of elliott  < 1296505744 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :ACTION activates his Frobozz Magic anti-grue kit < 1296505786 0 :grue!unknown@unknown.invalid PRIVMSG #esoteric :nah, got the vaccine against that < 1296505793 0 :grue!unknown@unknown.invalid PRIVMSG #esoteric :ACTION eats impomatic  < 1296505804 0 :grue!unknown@unknown.invalid PRIVMSG #esoteric :*burp* < 1296505829 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :ACTION grumbles about the rules governing grues as he perishes :-( < 1296505883 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :merp? < 1296505905 0 :adventurer!~chatzilla@86.241.112.87.dyn.plus.net JOIN :#esoteric < 1296505910 0 :adventurer!unknown@unknown.invalid PRIVMSG #esoteric :GO WEST < 1296505918 0 :adventurer!unknown@unknown.invalid PRIVMSG #esoteric :KILL GRUE WITH IRON SWORD < 1296505921 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i assert that they do not exist < 1296505929 0 :adventurer!unknown@unknown.invalid PRIVMSG #esoteric :TAKE GRUE'S HEAD < 1296505929 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :that should be sufficient < 1296505931 0 :adventurer!unknown@unknown.invalid PRIVMSG #esoteric :GO WEST < 1296505933 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :PUNCH TREE < 1296505934 0 :adventurer!unknown@unknown.invalid PART #esoteric :? < 1296505936 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :CRAFT LOGS INTO WOOD < 1296505936 0 :grue!unknown@unknown.invalid PRIVMSG #esoteric :no < 1296505940 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :CRAFT WOOD INTO STICKS < 1296505945 0 :grue!unknown@unknown.invalid PRIVMSG #esoteric :I am a constructive proof of the existence of grues < 1296505946 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :CRAFT STICKS AND WOOD INTO WOODEN SWORD < 1296505947 0 :grue!unknown@unknown.invalid PRIVMSG #esoteric :ACTION eats quintopia  < 1296505950 0 :oerjan!oerjan@tyrell.nvg.ntnu.no JOIN :#esoteric < 1296505952 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :KILL GRUE WITH WOODEN SWORD < 1296505969 0 :grue!unknown@unknown.invalid PRIVMSG #esoteric :elliott: you're in my stomach and don't have a wooden sword < 1296505986 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :grue: stop talking. you don't exist. < 1296506368 0 :grue!unknown@unknown.invalid NICK :copumpkin < 1296506665 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :You are in open forest, with a deep valley to one side. < 1296506666 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :kill tree < 1296506666 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :The trees of the forest are large hardwood oak and maple, with an < 1296506666 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :occasional grove of pine or spruce. There is quite a bit of under- < 1296506666 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :growth, largely birch and ash saplings plus nondescript bushes of < 1296506666 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :various sorts. This time of year visibility is quite restricted by < 1296506668 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :all the leaves, but travel is quite easy if you detour around the < 1296506672 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :spruce and berry bushes. < 1296506753 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... This depletion counter probably just uses 0000J on the calculated depletion day as the time... < 1296506943 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :(If the timezone is different than UTC+2, see if you get a different number than about 73k on http://inetcore.com/project/ipv4ec/en-us/index.html < 1296506978 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :11:46:19 For some reason I kind-of like the idea of using the "option key" symbol for if -- that is, ⌥ -- but it's really obscure. < 1296506981 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Not among Mac users. < 1296507169 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :elliott: What you get there as number of IP addresses? :-) < 1296507183 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: Hm? < 1296507189 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Oh, on that page? < 1296507198 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I get 222,650 < 1296507201 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :IPv4s < 1296507203 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :counting down rapidly of course. < 1296507210 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'm in GMT. < 1296507212 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*UTC < 1296507222 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Ah... So it is apparently just midnight local timezone... < 1296507264 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :14:15:04 Allocating one /47 per second would mean a total exhaustion in just 4.5 million years. Worrisome. < 1296507265 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296507315 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I assume you've already discussed the news at length, but "All remaining allocatable IPv4s would now fit into a /9 prefix" < 1296507342 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Err... What? < 1296507429 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Isn't there about 22x/8s of total free IPv4 space? That doesn't fit in /4... < 1296507515 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :(the sum of all RIR and IANA pools, minus known reservations) < 1296507663 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I'm not entirely sure where those numbers come from :) < 1296507669 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :hmm, now I'm wondering how to represnt function objects like this < 1296507681 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I guess it comes down to defining "allocatable" < 1296507760 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :16:20:41 ais523: Yeah, the main complaint about SVN I've heard from elliott is "it's supposed to be 'CVS done right', which is impossible". < 1296507760 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :16:25:09 I thought that was a Linus Torvalds quote/misquote? < 1296507766 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quote, yes, but it's not exactly a hard opinion to formulate < 1296507800 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :torvalds expressed it with more vitriol than that < 1296507807 0 :hagb4rd!~hagb4rd@koln-4db400a3.pool.mediaWays.net JOIN :#esoteric < 1296507827 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :IIRC no that was the exact quote, plus some extra < 1296507841 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :"When I say I hate CVS with a passion, I have to also say that if there are any SVN (Subversion) users in the audience, you might want to leave. Because my hatred of CVS has meant that I see Subversion as being the most pointless project ever started. The slogan of Subversion for a while was "CVS done right", or something like that, and if you start with that kind of slogan, there's nowhere you can go. There is no way to do CVS right." < 1296507847 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :So, with enough [...]s, the quote is accurate. :p < 1296507857 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ah, right :) < 1296507865 0 :hagb4rd!unknown@unknown.invalid PRIVMSG #esoteric :buenas < 1296507884 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I seem to recall him calling everyone on the svn project idiots as well < 1296507895 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :but maybe it was more implied than literal < 1296507962 0 :hagb4rd!unknown@unknown.invalid PRIVMSG #esoteric :do you prefer an alternative cvs solution? < 1296507970 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :http://tinyurl.com/6a8ezpn < 1296507973 0 :hagb4rd!unknown@unknown.invalid PRIVMSG #esoteric :or none at all < 1296507992 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :the final cvs solution, perhaps < 1296508011 0 :hagb4rd!unknown@unknown.invalid PRIVMSG #esoteric :sounds apocalyptic < 1296508042 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :only for CVS, for everyone else it's more of an epiphany < 1296508070 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :scapegoat! < 1296508074 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :I looked a bit at DF. People compared it with minecraft. However it reminds me of nethack more (though not in genre), but it looks harder. < 1296508082 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: what is that scapegoat thing? < 1296508084 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No, it has strong similarities to Minecraft. < 1296508096 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :plz to explain me it < 1296508098 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, but is it harder than nethack? < 1296508099 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: For instance, a large part of the game is mining ore, which you can melt, and then make into pickaxes. < 1296508124 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Well, "harder"; it's certainly much, much deeper. I think it's not so hard to keep a fortress going after you've played for a while, but doing interesting things certainly doesn't look too safe. < 1296508133 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: well you see, it's a version control system based on BLAME. < 1296508134 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :any questions? < 1296508157 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Of course you do it all indirectly with dwarves, but they're stupid enough that you basically manually hand-hold them through it. < 1296508175 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, so like minecraft with a hundred pickaxes at once? < 1296508202 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: Be Lame, gotcha < 1296508207 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: wat < 1296508209 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I don't know how practical coordinating a hundred dwarves to mine would be. < 1296508232 0 :hagb4rd!unknown@unknown.invalid PRIVMSG #esoteric :->>see wow < 1296508241 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: BLAME, BLame, B Lame, Be Lame < 1296508250 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, isn't that what DF is about? < 1296508265 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: I think keeping the dwarves alive is what it's about. :p < 1296508275 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover read that long Let's Play (although old; of the 2D version), ask him. < 1296508279 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, so what is an usual population? < 1296508282 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover read that long Let's Play (although old; of the 2D version), ask him. < 1296508287 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I haven't actually played. < 1296508289 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, what? < 1296508291 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, also does DF have any easy mode so you can learn the damn gameplay ? < 1296508298 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I got scared off when the initial screen had an awful lot of characters and many, many menu items. < 1296508304 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, haha < 1296508311 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right. < 1296508320 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: no but seriously, what's BLAME? < 1296508326 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, 2D version? < 1296508326 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Blame. < 1296508331 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: It used to be 2D. < 1296508336 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :oh, the word? < 1296508337 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, what is it now then < 1296508339 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Now it's 3D displayed in cross-section 2D. < 1296508343 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Yes. It's based on blame. < 1296508344 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, Boatmurdered had a population of around 100 at its peak, but it wasn't exactly a pinnacle of competent management. < 1296508349 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, oh I see < 1296508362 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, ah < 1296508369 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, AFAIK it's always been 3D. < 1296508369 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Incidentally, the largest world it will generate is less than 300x300. :p < 1296508373 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Not true. < 1296508377 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: hmm, ok... so what does that mean? < 1296508379 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Boatmurdered was done with the 2D version. < 1296508386 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Basically, every patch is done in terms of other patch. < 1296508397 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, hm. But they had mines, which aren't exactly possible in 2D. < 1296508398 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: An example change is "insert STRING between CHANGE and CHANGE", where each CHANGE is the hash of another change. < 1296508408 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: The version control system keeps track of what change created which lines. < 1296508410 0 :impomatic!unknown@unknown.invalid QUIT :Quit: http://retroprogramming.com < 1296508410 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, is there any sort of easy mode so you can learn the game mechanics without caring about monsters. Kind of like nethacks's explore mode < 1296508411 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :or such < 1296508418 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Well, that's what they were. < 1296508421 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, I don't know. < 1296508423 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Dwarf Fortress initially supported 2D landscapes only, with X and Y axes corresponding to the four cardinal directions. Later versions added a Z axis – multilayered maps – while retaining two-dimensional graphical representation. This allows for geographic features like hills, mountains, and chasms and player-created features like multilevel fortresses, waterfalls, above-ground towers, elaborate deathtraps, and pits. < 1296508426 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: No. < 1296508426 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, ah okay < 1296508431 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, gah :/ < 1296508436 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Man up and play the game properly. :p < 1296508446 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: This is the philosophy: < 1296508450 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Losing is fun! < 1296508450 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Either way, it keeps you busy. < 1296508450 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :There is no internal end point, single goal, final Easter egg or "You Win!" announcement in Dwarf Fortress. Therefore, eventually, almost every fortress will fall. The only ones that don't tend to be very conservative and very boring—and what fun is that? Therefore, DF = losing /\ DF = fun => losing = fun, and that's okay! It's a game philosophy, so embrace it, own it, and have fun with it! < 1296508450 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Most new players will lose their first few forts sooner rather than later; when you lose a fortress, don't feel like you don't understand the game. Dwarf Fortress has a steep learning curve, and part of the process (and fun!) is discovering things for yourself. However, this Wiki serves as an excellent place to speed up the learning process. < 1296508453 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :If you lose, you can always reclaim fortress or go visit it in adventurer mode. < 1296508455 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :If you're looking for more ways to test yourself, try either the mega construction or the Challenges articles. < 1296508460 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://df.magmawiki.com/index.php/DF2010:Losing < 1296508481 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1296508500 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Having said that, I do want to create my own MC-esque game now... < 1296508509 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, oh? < 1296508512 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I have figured out the most inane way to make the game difficult ever. < 1296508528 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Specifically, a game mechanic that means that you absolutely cannot start a reasonable mine until you do a LOT of things. < 1296508535 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, if rand() < 0.9: lose()? < 1296508543 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Nope. < 1296508545 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Way better. < 1296508548 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: I see, I think... so do you group those patches into things like files and commits afterwards? < 1296508567 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :*You can only mine the block in front of you or above you*. Not downwards. To make a mine, you have to excavate tunnels with dynamite. < 1296508575 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :To get dynamite, you need expensive materials... expensive materials that you get from mining. < 1296508589 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :To get those materials, you make *animals that dig* follow you into the mine, and hope they dig good paths. < 1296508600 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :To get the animals, you need, e.g. a dog, to sniff them out, and food, to make them follow. < 1296508601 0 :hagb4rd!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1296508601 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :To get a dog ... < 1296508620 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Erm, no. But a commit is just a patch. < 1296508631 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Specifically, there is a type of patch called a changeset, that is just a set of other patches. < 1296508642 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: They're applied in the order of dependencies (i.e. if p1 depends on p2, p2 is applied before p1). < 1296508652 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: To add a line to a blank file, you do: < 1296508659 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Insert "hello world" (StartOfFile FILEHASH) (EndOfFile FILEHASH) < 1296508673 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Each file has its own start-of-file/end-of-file patches. < 1296508699 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :how do you create the file? < 1296508706 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: (A file itself is referenced in the same way, by blaming a patch: the hash of the change that added the file to its directory.) < 1296508717 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(The permissible patches working on directories are basically like those on files, except they don't involve order.) < 1296508717 0 :hagb4rd!unknown@unknown.invalid PRIVMSG #esoteric :basic idea is not to save complete files but only the changes made < 1296508750 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(so there's "Insert FILENAME which is a [file|directory] into DIRECTORY", where DIRECTORY has to refer to an Insert patches that "is a directory".) < 1296508758 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :(and also "RootDirectory", which is the patch you start off with.) < 1296508780 0 :hagb4rd!unknown@unknown.invalid PRIVMSG #esoteric :yes.. patch fits this issue < 1296508787 0 :hagb4rd!unknown@unknown.invalid PRIVMSG #esoteric :or sth < 1296508905 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Heh... The amount of addreesses this gives would already fit into /17... < 1296508929 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :and the current state of a (branch|repository) is just a single changeset that depends on a bunch of other changesets? < 1296508975 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :is there any kind of branching support? < 1296508985 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: well, it's more like a set of changes (otherwise i think you could technically end up with a repository with only one file as a freak accident) < 1296508987 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but pretty much < 1296508991 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: yes, there is < 1296509010 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: if two changes conflict, that's an automatic branch right there, because you can either have one or the other < 1296509018 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and you can also add branches specifically; ais523 can explain more when he's here < 1296509033 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: the advantage of blame is that it makes very accurate merging *very* easy to implement < 1296509045 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: and also basically eliminates fake conflicts... but also adds more conflicts that aren't caught by other VCSes < 1296509074 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: it's what ais come up with after learning that darcs' merging model was insane :P < 1296509087 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :designed to be even more insane? :P < 1296509094 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: no, this is perfectly sane < 1296509100 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :darcs' is insane in the "makes no sense" way < 1296509123 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I forget the name but the main TAEB guy looked into patch theory and concluded that it was a load of twaddle and that the merging algorithm didn't make any sense at all < 1296509152 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :Tactical Amulet Extraction Bot? < 1296509214 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: yes < 1296509278 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :so I guess the guy you're talking about is sorear which is short for a name I don't recall? < 1296509290 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : Having said that, I do want to create my own MC-esque game now... <-- /me read that as M.C. Escher < 1296509298 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: that too :D < 1296509309 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Vorpal: insufficient commenting on how perverse my evil early-game idea is < 1296509352 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, oerjan, CLEARLY THIS IS A JOB FOR NUKERAY < 1296509379 0 :Vorpal!unknown@unknown.invalid PRIVMSG #esoteric :elliott, night → < 1296509396 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: wat < 1296509402 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: THAT'S NOT A COMMENT < 1296509443 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal: Have you updated mcmap, btw? < 1296509466 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :elliott, Nukeray, a.k.a. the non-Euclidean raytracer that I have wanted to do for ages. < 1296509538 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1296509562 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :/18... < 1296509938 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :/19... < 1296510025 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :DUN DUN DUUUUUUUUUUUN < 1296510029 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ? < 1296510127 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :/20... < 1296510222 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :/21... < 1296510269 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :/22... < 1296510294 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :/23... < 1296510304 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :/99999 < 1296510367 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Num of IP addresses at 0. Estimated days to x-day... 1... < 1296510435 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: wat < 1296510475 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Reloaded the page, it estimates X-day today... < 1296510576 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: which page btw? < 1296510686 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :http://inetcore.com/project/ipv4ec/en-us/index.html ... But apparently it uses timezones... < 1296510758 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :oh, so that's why you're already out while I still have 68k addresses on the counter? < 1296510829 0 :BeholdMyGlory!~behold@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1296510832 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Changing host < 1296510832 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1296510848 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :olsner: UTC+1h? < 1296510860 0 :Behold!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1296510871 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: something like that, it's 23:09 here < 1296510892 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Vorpal, incidentally, DF has an option in world generation for natural savagery and number of beasts. < 1296510898 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :There's your difficulty parameter. < 1296511071 0 :Mathnerd314!~mathnerd3@dsl.6.28.53.206.cos.dyn.pcisys.net JOIN :#esoteric < 1296511136 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: WHAT DO YOU THINK OF MY EARLY-GAME CRAZY < 1296511155 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Pretty goddamn crazy. < 1296511166 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Although Escherian geometry would make it even better. < 1296511166 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: But awesome. < 1296511170 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: FFFFF < 1296511174 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You are so lame. < 1296511199 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: Come on, having to get a pet, use it to find digging animals, lure them with food into a cave, hope they dig in the right places, and hope it leads to useful minerals without eating them? < 1296511208 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :At the START OF THE GAME? < 1296511247 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : oerjan: ? <-- non-Euclidean raytracer. < 1296511416 0 :Lymia_!~moe@adsl-69-149-35-99.dsl.rcsntx.swbell.net JOIN :#esoteric < 1296511585 0 :Lymia!unknown@unknown.invalid QUIT :Read error: No route to host < 1296511723 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, it kind of foundered. < 1296511736 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Mainly because I don't know how to trace geodesics. < 1296511828 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Output XXXXX UTF-16 characters beginning at DP. (Note that a UTF-16 character is the same length in digits as an instruction.) < 1296511831 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: false < 1296511917 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1296511919 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :i'll fix it < 1296511932 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: because unicode takes up more than 16 bits < 1296511945 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :only UTF-32 can encode every codepoint in one fixed size. < 1296511952 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Output XXXXX UTF-16 characters beginning at DP. (Note that a UTF-16 character is the same length in digits as an instruction.) < 1296511954 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1296511956 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :well that's stupid < 1296511957 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :UTF-16 (16-bit Unicode Transformation Format) is a character encoding for Unicode capable of encoding 1,112,064 numbers (called code points) in the Unicode code space from 0 to 0x10FFFF. It produces a variable-length result of either one or two 16-bit code units per code point. < 1296511969 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: UTF-16 is stupid, yes, but it's mainly "backwards compat" < 1296511975 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :originally unicode was 16-bit < 1296511977 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and UTF-16 was called UCS-2 < 1296511983 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :but then it got expanded to ~21 bits IIRC < 1296511987 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and UTF-16 was created based on UCS2 < 1296512005 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :so if changed that to say UCS2, it'd be right? :P < 1296512039 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: no. < 1296512045 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :eh, i could also just write "where possible" < 1296512048 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :UCS-2 is obsolete and cannot encode any even vaguely recent Unicode version. < 1296512050 0 :yiyus!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1296512066 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :U+64321 in utf-16: 0xD950, 0xDF21 < 1296512092 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: just say "Output XXXXX UTF-16 code units beginning at DP." < 1296512097 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: and remove the note < 1296512097 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :right < 1296512101 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :that's what i'm thinking < 1296512103 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :also < 1296512107 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :you are looking at it < 1296512109 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: code units meaning, U+64321 would have XXXXX=2 < 1296512111 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :edit it for me and look smart < 1296512118 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :no i'm lazy < 1296512135 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh okay < 1296512200 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :elliott: or i could just remove the note. < 1296512221 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :so if you start a 2 code point character it finishes it for you :P < 1296512236 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: no, you have to s/characters/code units/, UTF-16 doesn't define what a character is anyway < 1296512242 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and "code points" would mean that e.g. length=1 could scan /two/ bytes ahead < 1296512248 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :your impl would have to be UTF-16 knowledgeable < 1296512250 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :just saying "code units" is better < 1296512259 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :because things that get encoded into two 16-bit values just have length 2 < 1296512261 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and that's simpler < 1296512268 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1296512278 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :a UTF-16 knowledgeable impl < 1296512280 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1296512299 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: lame < 1296512300 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :do what i said < 1296512301 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :simpler < 1296512305 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :although i'm not sure what you said < 1296512308 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :or why < 1296512314 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :just now < 1296512318 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :say it again in english < 1296512353 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296512370 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : quintopia: just say "Output XXXXX UTF-16 code units beginning at DP." < 1296512370 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric : quintopia: and remove the note < 1296512405 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :but what happens when it outputs the first half of a double length character as the last unit? < 1296512483 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: shit happens. < 1296512489 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't really matter. :p < 1296512497 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1296512502 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :FINE < 1296512645 0 :MigoMipo!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1296512746 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: I highly doubt that language is TC. < 1296512758 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I don't see any way to do anything conditionally. < 1296512759 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Well. < 1296512761 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Not highly doubt. < 1296512763 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :But it's very non-obvious. < 1296512773 0 :Behold!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1296512841 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :elliott: well, let me know if you come up with a proof either way < 1296512851 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :That sounds like work. < 1296512876 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :not that you need to actually think about it < 1296512892 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :if it comes to you in a gestalt, all you need do is describe the proof and i will fill in the details < 1296512936 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't happen to me. < 1296512956 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Ping timeout: 255 seconds < 1296513076 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :in any case, i think conditionals are possible (if difficult) by combining TRANSFORM with JUMP < 1296513084 0 :yiyus!1242712427@je.je.je JOIN :#esoteric < 1296513102 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :may even be possible without TRANSFORM, iunno < 1296513321 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :039/8 APNIC 2011-01 whois.apnic.net ALLOCATED < 1296513329 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric : 106/8 APNIC 2011-01 whois.apnic.net ALLOCATED < 1296513378 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :102, 103, 104, 179 and 185 are still marked as unallocated. < 1296513404 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: WAT < 1296513422 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just now? < 1296513440 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :wat < 1296513450 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :exciting < 1296513459 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well it was inevitable that it would happen before the end of the month. < 1296513468 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so it's not _too_ surprising < 1296513721 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :so are we officially out of IP:s yet? :) < 1296513930 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Nope... But the IANA has officially entered Exhaustion Phase < 1296514132 0 :copumpkin!unknown@unknown.invalid QUIT :Quit: Computer has gone to sleep. < 1296514427 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :oh hurray < 1296514486 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :No further normal IPv4 allocations to RIRs will occur. There will still be 1x/8 handed to each RIR, and that's it. < 1296514505 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :woooo < 1296514510 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :let's do a party < 1296514518 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Wonder which RIR is most depleted in IPv6 space... < 1296514523 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :*the most depleted < 1296514564 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :so Ilari how long until rir depletion :) < 1296514575 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1296514605 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Very difficult to say... < 1296514620 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :what do the models say? not that i expect them to be very accurate at this point < 1296514687 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Models say end September... But those models may be hopelessly optimistic. < 1296514712 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: RIR depletion is not even the end, IIRC some university with an /8 says they'll donate it < 1296514718 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :and probably many others with similarly huge allocations will < 1296514764 0 :Behold!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1296514856 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1296514997 0 :Lymia_!unknown@unknown.invalid NICK :Lymia < 1296514998 0 :Lymia!unknown@unknown.invalid QUIT :Changing host < 1296514998 0 :Lymia!~moe@unaffiliated/cirno-chan JOIN :#esoteric < 1296515040 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :https://chrome.google.com/webstore/detail/hhnjdplhmcnkiecampfdgfjilccfpfoe ;; didn't expect that from Google... < 1296515234 0 :TLUL!~TLUL@wikia/The-last-username-left JOIN :#esoteric < 1296515454 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :IPv6 usages: AFRINIC: 0.016%, ARIN: 1.5%, APNIC: 2.6%, RIPE: 3.4%, LACNIC: 6.3%. < 1296515503 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :So even the most depleted RIR (in terms of IPv6 space) still has >90% of /12 available... < 1296515504 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :WHOO BOY LACNIC < 1296515522 0 :augur!~augur@208.58.6.161 JOIN :#esoteric < 1296515531 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Depleted? IPv6? < 1296515546 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1296515556 0 :elliott!unknown@unknown.invalid TOPIC #esoteric :IPv6 has been depleted, tell your friends | http://esolangs.org/ | http://208.78.103.223/esoteric/ | http://tunes.org/~nef/logs/esoteric/?C=M;O=D < 1296515582 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :One of the allocations from LACNIC is a IPv6 /16(!). < 1296515591 0 :nddrylliog!~ndd@dhcp-83-219-106-130.customers.tvtnet.ch JOIN :#esoteric < 1296515610 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: what's that, like, seventy gajillion addresses? :P < 1296515616 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*facepalm* < 1296515627 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: wat < 1296515632 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: topic is not mistake, it is troll < 1296515639 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I KNOW THAT < 1296515642 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1296515650 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :_STILL_ FACEPALM < 1296515652 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :5*10^33 addresses? < 1296515662 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :It is apparently the largest IPv6 allocation ever made by a RIR... < 1296515702 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :it's actually 4 addresses, /16 is a special case < 1296515702 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Seems so (5*10^33). < 1296515704 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :just to confuse everyone < 1296515747 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :OTOH, what it was allocated to: The main LIR of Brazil... < 1296515777 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Those guys need metric shitton of address space... < 1296515801 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :WHAT IS IT WITH BRAZIL AND IP ADDRESSES < 1296515813 0 :Behold!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1296515845 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :45% of entiere allocated IPv6 address space is marked as allocated to brazil... < 1296515888 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :We demand: ONE HALF INTERNET < 1296515900 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296515919 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :one half? are you kidding? I won't settle for less than OVER NINE THOUSAND. < 1296515932 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :olsner: unfortunately they only got 9/20ths. < 1296515944 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tells oerjan to swat nddrylliog < 1296515956 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION swats elliott -----### < 1296515965 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :SORRY MISSED < 1296515968 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :so much for a warm welcome < 1296516010 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Ping timeout: 255 seconds < 1296516033 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :five thousand quadrillion quadrillion addresses < 1296516042 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: Any idea when the final IANA assignments go out? < 1296516057 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :http://www.wolframalpha.com/input/?i=number+of+IPv6+adresses <- fail < 1296516084 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :http://www.4chan.org/banned < 1296516085 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1296516089 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. It's 15:35 at IANA. < 1296516105 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It would be entirely plausible that they do it today. < 1296516117 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :or just 5000 quintillion, if you're using "long scale" for large numbers, rather than "short scale" < 1296516138 0 :cheater00!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: why are you interested in dresses? < 1296516184 0 :oerjan!unknown@unknown.invalid QUIT :Quit: Later < 1296516231 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If not today, then tomorrow, I guess? < 1296516253 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :cheater00, oh just a particular dress. < 1296516332 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :anyway, since we're off-topic: does anyone have an opinion on gnome-xchat? it sounds like a very gnome program - take the original, remove features, hinder settings, there you go. < 1296516342 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: It's very unmaintained. < 1296516438 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :right. that explains it. < 1296516470 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :ah, anyone has a name idea for that low-level declarative programming language I'm playing with? < 1296516493 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :X < 1296516515 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Because the world needs more single letter language names < 1296516522 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :"About 3,650,000,000 results" < 1296516526 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: it's not really that low level. :p < 1296516542 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Call it "crap", I bet nobody has ever called their programming language the crap programming language before. < 1296516552 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :elliott, yeah, indeed. The fact that you can write stuff like ([e1, e2] # self | e1.next == e2) => e1 == e2.prev is pretty neat < 1296516560 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :elliott, that language you like < 1296516562 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Merd < 1296516567 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: That's merd, not crap. < 1296516582 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: Funny, in my programming language you can write "Sort the list of integers given on the command line." which is also pretty neat. :p < 1296516590 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :elliott, isn't it? :D < 1296516596 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :I never said it would compile < 1296516602 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296516614 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hits elliott with an Osmosian < 1296516626 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: Call it Oracle-Originating Compiler, because that's the only place you're going to find it. < 1296516631 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :ooc. < 1296516632 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You could even abbreviate it and get a nice TLA. < 1296516636 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :great. < 1296516636 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :HARDY HAR HAR < 1296516637 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :DO YOU SEE < 1296516638 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :WHAT < 1296516638 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I < 1296516638 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :DID < 1296516641 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :THERE < 1296516648 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :I'm sorry, forgive me. < 1296516655 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Call it Go < 1296516660 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :http://uncyclopedia.wikia.com/wiki/Og_(programming_language) < 1296516663 0 :TLUL!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1296516668 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :call it nddrylliog < 1296516686 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Call it Stackoverflow < 1296516701 0 :lambdabot!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1296516703 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Then declare nomic war < 1296516703 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :http://uncyclopedia.wikia.com/wiki/Og_(programming_language) <-- I like how this is just a thinly-veiled rant made by someone who really hates Go < 1296516707 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :I'd like to somehow make a reference to the fact that it's somehow impossible to implement. < 1296516714 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :They could at least try and use the letter-swap for humour. < 1296516723 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :"The syntax of Og is pretty much the same old crap that we have been using for over 40 years which mostly comes from the C language. Blocks of code are surrounded with the usual stupid curly braces, it has the usual common control flaw structures including for, switch, if, and maybe even the universally despised go to" <- Hell yeah. < 1296516794 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :They don't even mention magical make()? < 1296516796 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: you could call it ž < 1296516796 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric : (BARRIER CONTRACEPTIVE) < 1296516810 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo _really_ hates magic. < 1296516829 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :No. I just hate magic I can't use for myself. < 1296516848 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :hey, I reinvented make() and go() in pure ooc in a few minutes < 1296516859 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ALL SYNTAX IS MAGIC. SYNTAX MUST DIE < 1296516863 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :and then I called off the Go guys in my talk, showing how I reimplemented their so-called novelties on top of my language < 1296516863 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hmm, not sure if that came across right, it's U+1621E < 1296516886 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :olsner, yeah.. I'm not sure about non-ASCII stuff. Well, I'm french and all but.. yeah, no. < 1296516889 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog, the point of integrating those things in an stdlib is so that everyone uses it < 1296516898 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: Ignore Sgeo. :p < 1296516903 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, oh it's in the ooc standard lib now. Which means everyone is free not to use it. < 1296516903 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although go and make() aren't stdlib level < 1296516903 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: seriously, choose one really obscure incode character and call it that < 1296516914 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :your users have to find a special font to even read the name, it's awesome < 1296516921 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: call it Æñëßŋ < 1296516926 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :pronounced "see plus plus" < 1296516932 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :olsner, I'd call it ಠ_ಠ if I could. < 1296516935 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :then invent your own symbolic language in which the manual is written < 1296516946 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: call it Magic < 1296516948 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :after the compiler < 1296516955 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is watching Hikaru no Go < 1296516956 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :I guess asking #esoteric for help really is not the best idea < 1296516971 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :except, you know, for the fun factor < 1296516981 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog, put it on the wiki < 1296516981 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: I'm trying here! < 1296516987 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Then we can come up with a name < 1296516987 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :you can put your symbol language in one of the private use ranges of unicode and make your own font for it < 1296516996 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :(I just want the docs but am too lazy to logread < 1296516998 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :) < 1296517000 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :http://www.producemagic.com/Produce-Accounting-Software-Content.asp?CategoryID=5&ContentID=202 <- OH. MY. GOD. IT'S ALIVE. < 1296517005 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: Call it ⅛€¬¹. < 1296517023 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :"pronounced Linenoise" < 1296517028 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric : I'm tracking 2 nicks. Both nicks are for the same person. < 1296517028 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :elliott, one eighth of euros weird hyphen upper one what? < 1296517047 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, yeah as soon as I have half a decent spec/tutorial/examples I'll put it on the wiki < 1296517065 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: Yes, exactly. < 1296517119 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :ooooh btw, forgot to ask - will any of you guys be at FOSDEM this week-end? < 1296517154 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :don't be silly, it's probably populated with people who actually program and such < 1296517159 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :we can't be having that < 1296517165 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :they carry cooties < 1296517167 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :VULGAR FRACTION ONE EIGHTH EURO SIGN NOT SIGN SUPERSCRIPT ONE, or ⅛€¬¹ for short. < 1296517186 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :VDOEESINSSO ? < 1296517203 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, VFOEESINSSO. < 1296517216 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :huh, right < 1296517225 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :the thing is, I really like the name (⅛€¬¹). I'll probably use it somewhere. < 1296517255 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :You can even pronounce it nicely: "one eighth of a euro, not ... superscript ... one". < 1296517333 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :it's a splendid name for an esolang it is < 1296517416 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :it'd need a... "usable" name for folder names and such, though < 1296517435 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :one8thenot1 < 1296517448 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :hey one8thenot1 is actually next to usable :) < 1296517464 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :it reads as one-eight-the-not-one though < 1296517483 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :one8th€not1 perhaps < 1296517555 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :ascii please < 1296517573 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: call it Point. < 1296517577 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :Now I'm feeling guilty about using braces in a programming language. should I? < 1296517583 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :ABSOLUTELY < 1296517589 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :use < 1296517595 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :“ ” < 1296517596 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :instead < 1296517599 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :you can even nest them < 1296517603 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :bahh I could go S-expressions instead, but.. < 1296517608 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :“ ” < 1296517620 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :« » < 1296517627 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :no < 1296517628 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :“ ” < 1296517635 0 :FireFly!unknown@unknown.invalid QUIT :Quit: swatted to death < 1296517635 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :actually, I couldn't go for S-expressions, () is already meaningful < 1296517637 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ascii? that's a standard from 1963, you might as well try and be compatible with the apollo guidance computer < 1296517794 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296517798 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :you should be! < 1296517807 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog: just have all the syntax totally redefinable. at runtime < 1296517826 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Why are we talking about Lisp in #esoteric? < 1296517833 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :we're not < 1296517839 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :Lymia: it's not us! it's nddrylliog < 1296517840 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :we're not < 1296517845 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :It would fi- *knived* < 1296517874 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :what is going on so much color i agh < 1296517880 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: wat < 1296517886 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :he may have merely been talking about S-expressions though < 1296517904 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :moar liek SEXpressions < 1296517906 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :usually all the nicks are green because elliott is the only one talking...the activity is too much to handle < 1296517909 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :elliott: maybe he in the, just like that < 1296517910 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1296517911 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :why is it popular < 1296517914 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :what happened < 1296517915 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517916 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517916 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517916 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517916 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517916 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517918 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517920 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517922 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517924 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517926 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517928 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517930 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :rabble rabble rabble < 1296517930 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :`-` < 1296517932 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: is that better? < 1296517937 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :thx < 1296517939 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hides from the spam < 1296517942 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :Spam dosn't fix the problem! < 1296517949 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :it does tho < 1296517956 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :that or kicking people < 1296517962 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1296517988 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :"No output." the bot does not want you kicking anyone < 1296517990 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ducks < 1296517996 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :what was hackego showing up late for < 1296518006 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :"No output" is a terrible error message. Especially in bed. < 1296518048 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :quintopia: lymia said "`-`" which is probably meant to be some sort of smiley < 1296518051 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :except it just looks more like... uh < 1296518056 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :a backtick, a hyphen and a backtick < 1296518058 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :not a face < 1296518060 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1296518061 0 :Lymia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cries < 1296518070 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :lymia: try ;_; for cyring < 1296518075 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :or crying even < 1296518095 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :crying for crying? that's crazy talk! < 1296518129 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :NO. ME CRAZY TALK. HE ASS HEAD. < 1296518230 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :so.. brace yourself < 1296518236 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :I give you: the singly-linked list: http://bpaste.net/show/13387/ < 1296518256 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :and now... the doubly-linked list: http://bpaste.net/show/13388/ < 1296518342 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ...doesn't die < 1296518350 0 :quintopia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ...is severely underwhelmed < 1296518373 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :nddrylliog your element thing doesn't work god damn :p < 1296518388 0 :nddrylliog!unknown@unknown.invalid PRIVMSG #esoteric :elliott, it is perfectly fine! < 1296518398 0 :elliott!unknown@unknown.invalid PRIVMSG #esoteric :isn't