00:00:01 elliott: you're spouting nonsense 00:00:06 coppro: I am not. 00:00:16 coppro: Alternatively: Tell that to Conal's face. 00:00:45 it's at least bulshytt 00:00:54 this looks interesting: http://www.haskell.org/haskellwiki/Functional_Reactive_Programming 00:00:55 what you're saying, anyways 00:00:59 coppro: OH MAN THANKS FOR YOUR CONVINCING ARGUMENTS 00:01:03 good to know you are right 00:01:23 i'll go back to using haskell, which is perfect as it is, obviously, despite the fact that many of the "leading" haskellers don't like IO and want FRP to succeed 00:01:30 elliott: they're as high quality as your usual arguments 00:01:37 coppro: oh, fuck off. 00:01:48 don't feel like it 00:01:57 you can just run two copies of the program, and allocate a huge amount of memory in the other one, then always take the image drawn by the program that has recently changed the screen more 00:02:06 is my solution to gc freezing 00:02:16 elliott: they're as high quality as your usual arguments <-- coppro++ 00:02:19 *allocate at first 00:02:26 so that its gc cycle is different 00:02:33 Vorpal: does it make you feel good to automatically agree with and side with anyone who doesn't agree with me? 00:02:36 your argument is pretty much a vague appeal to authority 00:02:42 you're in good company! like... Republicans! 00:02:46 rather than any argument or even explanation of FRP 00:02:46 coppro: no, see, i haven't presented any arguments 00:02:49 coppro: i've just told you to go away 00:02:53 elliott, http://docs.racket-lang.org/frtime/index.html isn't decent/ 00:03:02 elliott, I have no idea. I agreed with him based on actually agreeing on the point he was making. 00:03:12 elliott: your argument is that FRP is "what makes functional programming possible" 00:03:13 elliott, so I never tried out what you suggested. 00:03:19 coppro: the IO monad is imperative. 00:03:20 elliott: I'm not going away 00:03:23 it wasn't an argument, also. 00:03:24 it was a remark. 00:03:32 Sgeo: no, it isn't. a good general implementation of FRP requires solutions to a few open research problems. 00:03:50 the IO monad is interprative only depending on your interpretation of it 00:04:08 elliott, does it feel good to always use strawman arguments by the way? 00:04:22 Vorpal: ah... you see, you are making the same mistake as coppro 00:04:25 I'm not making an argument. 00:04:28 I'm telling you to fuck off. 00:04:40 elliott, I am replying to this line in the same style: " Vorpal: does it make you feel good to automatically agree with and side with anyone who doesn't agree with me?" 00:04:48 elliott: we're not fucking off 00:04:51 coppro: the IO monad is not impure iff C is impure. 00:04:54 elliott, if you're going to tell people to fuck off, I'm going to tell you to fuck off. 00:04:56 if you wish to stop having us talk to you 00:04:58 ah, but you see, if I /ignore you, then you *will* fuck off. 00:05:00 you need to leave 00:05:04 untrue 00:05:08 i'd like to rem HER ark. 00:05:11 wait 00:05:12 IRC clients have had ignore for the past two decades 00:05:14 i'm scrolled up again 00:05:17 elliott, also appeal to authority: " coppro: Alternatively: Tell that to Conal's face." 00:05:18 then that makes even less sense 00:05:28 Vorpal: see, that was telling him to fuck off. 00:05:34 elliott: you /ignoreing me is not me fucking off; 00:05:38 if i thought an argument with coppro could be in any way productive, i would have responded differently. 00:05:44 but, you see, i don't, because he always acts the exact same way 00:05:55 oklopol: greater than works. 00:05:59 ---- greater than? 00:05:59 Condition: ['compare', '#0', '#1'] 00:06:00 Base branch (-1) 00:06:01 '#0' 00:06:03 Base branch (0) 00:06:03 elliott, actually I think FRP looks interesting. But I despise the way you argument by being a jerk. 00:06:04 elliott, I don't know if what you're saying has merit, but I am furious at you telling people to fuck off just because you disagree with them 00:06:05 '#0' 00:06:07 Base branch (1) 00:06:09 '#1' 00:06:10 elliott: obviously no Haskell code will be truly functional 00:06:15 Vorpal: *I am not arguing* 00:06:18 no code on any Von Neumann machine will be 00:06:24 coppro: ...loooool 00:06:36 elliott, okay if you say so. Looked damn similar however. 00:06:41 elliott: what the fuck 00:06:44 ignored until, say, you figure out the difference between language and implementation, coppro 00:06:46 elliott: do you want to refute my argument? 00:06:49 what the hell 00:06:50 nope 00:06:53 coppro, the impurity of Haskell lies right outside Haskell 00:06:57 Sgeo: I know 00:07:06 oh so maybe i did something completely fuck when i changed that one last bit. 00:07:26 oklopol: :D my greater than? works even if you don't give it #0 and #1 00:07:32 ---- greater than? 00:07:32 Condition: ['compare', '#0', '#1'] 00:07:32 Base branch (-1) 00:07:33 elliott: your argument is that IO is not pure because of how it is implemented, but FRP is pure because it can be implemented so that it can be pure 00:07:33 ['compare', '#0', '#0'] 00:07:35 Base branch (0) 00:07:37 ['compare', '#0', '#0'] 00:07:37 i.e. you have no logic 00:07:39 Base branch (1) 00:07:41 ['compare', '#0', '#1'] 00:07:43 oklopol: how amazing is that 00:07:58 haha 00:08:03 that's genius :D 00:08:09 Magic Set Editor scripting language is almost pure. It has a few impurities which I think could be easily corrected. 00:08:18 zzo38: lolwut 00:08:23 no it is not 00:08:37 coppro: look beneath the surface 00:08:50 elliott: can i see your code? :P 00:08:55 oklopol: what 00:09:00 coppro: Why do you think? 00:09:07 zzo38: it's an imperative language... 00:09:07 coppro: nm 00:09:10 greater than? ~ {. -1, 3 -> 0 00:09:10 . 3, 5 -> 0 } 00:09:10 greater than? ~ {. 3, 3 -> 0 00:09:11 . -2, -2 -> 0 } 00:09:13 greater than? ~ {. 3, -1 -> 1 00:09:14 it happens to have first-class functions 00:09:14 (Well, I am making TeXnicard and it is more like dc instead?) 00:09:15 lox 00:09:15 . 5, 3 -> 1 } 00:09:17 greater than? ~ compare; #0; #1 00:09:19 oklopol: maybe removing <> made it work, but i doubt it 00:09:54 coppro: No it only has local variables and those are not impure. They are only local. 00:10:12 zzo38: how do you define pure? 00:11:47 coppro: It would be pure if you change the random number functions to take a parameter "seed" which is normally by the built-in variable called "seed", which is available (and reseeded) for each export template, add card scripts, and pack generation. And also the export template functions for directory should instead return a list, ... 00:12:01 elliott: 00:12:03 zzo38: define pure for me 00:12:04 umm 00:12:10 ... and you return from the export template script, the list of all of those concatenated together and then it will copy the files. Instead of duing it immediately. 00:12:10 ValueError: substring not found :( 00:12:15 There, that would be pure. 00:12:18 look at this code snippet of mine, and tell me what you think 00:12:19 oklopol: what 00:12:19 greater than? ~ {. 5, 6 -> 0 . 10, 12 -> 1 } 00:12:20 greater than? ~ {. 2, 2 -> 0 . 6, 6 -> 1 } 00:12:22 i wrote this code 00:12:28 and then i looked at it for 15 minutes 00:12:36 coppro: Do you understand me? 00:12:38 i think i should sleep amore 00:12:39 oklopol: i think you are my favourite person and can i come live with you 00:12:43 yes 00:12:44 :D 00:12:47 HOORAY 00:12:53 i've always wanted a 15yo gf 00:13:16 xD 00:13:19 who is interested in clue 00:13:21 13 just too young? 00:13:26 oh, insufficiently clueterested 00:13:36 clueterested sounds like some...horrible medical procedure 00:13:44 zzo38: no 00:13:47 like they redirect your bladder to your balls because it got infested or something 00:13:49 zzo38: because you have failed to define pure 00:13:59 anyway! 00:14:04 I know it is not a proper definition but doesn't it help? 00:14:07 no 00:14:14 I want to know what your definition of pure it 00:14:15 *is 00:15:02 no global state? 00:15:23 coppro: That every function affects and is affected by, nothing outside of itself. Other variables outside of the function can be considered like a special kind of parameters, and so can variable assignment commands, because they can also be considered like parameters to the rest of the lines of the current function. 00:15:54 oklopol: i think you have a bug or something 00:16:06 zzo38: the current time of day is a paraemter to the program! 00:16:06 elliott: in clue.py? 00:16:07 *parameter 00:16:09 EVERYTHING IS PURE 00:16:11 oklopol: yes 00:16:15 why 00:16:16 oklopol: 00:16:25 [is list?(#0)] 00:16:25 | 0 => 0 00:16:25 | 1 => inc(#2) 00:16:27 there's only one recursion 00:16:29 and one parameter 00:16:30 zzo38: ... 00:16:30 that should be #1 00:16:33 but it isn't 00:16:35 ??? 00:16:49 (It does mean that for random numbers, you do have to keep track of the seed counter by yourself, but it could be defined a syntax to do so (like the increment operator in C) 00:16:51 i.... dunno? 00:16:58 oklopol: well. :D 00:17:03 i'll try defining the function in lu 00:17:04 LUATRE 00:17:05 luatre 00:17:07 see if it works 00:17:15 zzo38, int getRandomNumber { return 2; //chosen by a random die roll} 00:17:20 no seed required 00:17:48 (and yes - I really did just roll a die) 00:18:12 The time of day, as long as it is set only once and stays the same for as long as the function takes to execute, it can work. (You could also have it set during card script, and a "action" script that you push a key to set date/time to the script so you can set it on the card, otherwise everything changes whenever you load the set!) 00:19:39 That way, would make it pure. 00:19:57 elliott: pivot works! 00:20:41 oklopol: gimme your files so i can merge them in :D 00:20:44 oklopol: or 00:20:48 oklopol: was it just the pivot code that was bad 00:21:04 greater than? had an error, nothing else xD 00:21:29 oklopol: so the pivot code was right? 00:21:36 You could make these suggested changes if you want to make MSE pure (it is not the most important thing); or use TeXnicard (which uses a different model of templates, so it doesn't need pure). 00:25:53 elliott: i think so 00:26:09 trying to make the actual quicksort now 00:26:40 but i have this vague feeling in my balls that that's not gonna happen anytime soon 00:26:50 yeeeeeeah 00:26:51 no. 00:28:33 My new home is in the air. 00:28:36 Although it's not tall enough to jump. 00:28:42 oklopol: so can i have clue.py/stuff.py 00:28:57 -!- pingveno has quit (Write error: Broken pipe). 00:28:57 but i have a huge amount of horribly ugly debug code :D 00:29:03 i can remove it :) 00:29:12 meeeeeeeeeeeeehh 00:29:18 -!- pingveno has joined. 00:29:18 oklopol: i want the coooode 00:29:21 i'll make qs wirk furst 00:29:52 -!- cheater00 has joined. 00:30:06 :: dof~{.0->0.5->0}dof~{:.[[1,2],[3,4]]->2:[1,2]->1:.[[[1,2,3],4],5]->3:[[1,2,3],4]->2}dof~is list?; cons; car; cdr; inc; #0 00:30:06 TypeError: 'int' object is unsubscriptable :( 00:30:08 what 00:30:15 :: dof~{.0->0 . 5->0}dof~{:.[[1,2],[3,4]]->2:[1,2]->1:.[[[1,2,3],4],5]->3:[[1,2,3],4]->2}dof~is list?; cons; car; cdr; inc; #0 00:30:15 TypeError: 'int' object is unsubscriptable :( 00:30:19 halp 00:31:07 -!- Mathnerd314 has joined. 00:31:24 oklopol: ha;pl 00:32:51 -!- cheater99 has quit (Ping timeout: 240 seconds). 00:34:34 "That's not irony." ;; on the internet NOTHING counts as ironic 00:36:04 god dammit! Coq is evil 00:36:21 it's designed to hurt me 00:36:40 everything is impossible but only after you waste 10 mins proving lemmas 00:37:55 j-invariant, you clearly have the same high standards for *everything* as elliott. 00:38:17 xD 00:38:21 air is so lame 00:38:27 To the extent that nothing actually satisfies the standards without violating several laws of physics or precepts of mathematics. 00:38:38 DAMMIT I WANT ANTIGRAVITY 00:38:47 that sounds about right :D 00:38:57 elliott: Then invent one antigravity. 00:39:00 i'm trying to think of something that i can honestly say is perfect 00:39:06 without any qualifiers 00:39:08 TeX? 00:39:11 but i just ... can't 00:39:13 Phantom_Hoover: heck no :) 00:39:21 it's even _impure_! 00:39:28 elliott, well, for what it was originally designed? 00:39:38 Phantom_Hoover: plain tex is gross, whatever zzo38 said 00:39:42 latex is a bit limited sometimes 00:39:47 TeX is very good but not quite perfect. 00:40:47 LaTeX and PDF are much worse. 00:41:09 * Phantom_Hoover → sleep 00:41:12 -!- Phantom_Hoover has quit (Remote host closed the connection). 00:41:27 * zzo38 - wake up 00:41:55 hi 00:42:21 elliott: btw you're right in that there kind of is an interpreter, it's only the actual function applications that are made into python functions. 00:42:22 Hello 00:42:26 but i guess you already knew that 00:42:30 told you 00:42:32 :P 00:42:36 I define a new data type like lists except that it cannot have trailing zeros: [0,1,2,0,44,5] is okay but [3,54,2,0,13,0] is a type error 00:42:56 Do you have opinion/comment/suggestion/question about this? http://sprunge.us/BFGb 00:42:59 yep, for some reason i just didn't realize that's actually a rather important part of execution, and not just something that's done at first 00:43:18 reason is probably that i haven't been able to think all that straight today 00:43:28 for instance i watched hours of gay porn 00:43:38 elliott: see above 00:43:49 j-invariant: and? 00:43:52 j-invariant: definition accepted 00:43:52 what then 00:43:54 thatos all :D 00:43:58 lol 00:44:04 now I have to program with it :( 00:44:15 oklopol: Then don't watch pornography anymore. 00:45:04 * Sgeo suddenly wants to buy Chessudoku 00:45:04 nono i think it was more like that i wasn't thinking straight so i started watching men lick each other's balls on the internet 00:45:11 and not the other way around 00:45:32 the reason for this is that i didn't sleep very well 00:45:41 my head is all wheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerlie. 00:45:44 what 00:45:45 anyway 00:46:11 but yeah i'll go on with... i don't remember what but maybe i do when i open py 00:46:56 elliott: i think i managed to make a program with an actual runtime error :D 00:47:01 oklopol: wow 00:47:22 oklopol: re ball licking, i think zzo38 just doesn't want anyone to wtach pornography 00:47:24 *watch 00:47:29 at least i think quicksorting a list of 7 objects shouldn't take more than 100 deep recursion... 00:47:33 :D 00:47:50 zzo38: is this true? 00:48:00 i basically watch pornography as a hobby 00:48:11 this is absolutely crap 00:48:25 it's not possible to define this list type in any useful way 00:48:34 oklopol: No, it isn't true. I don't want to watch pornography myself, if other people do I don't complain. However, if you watch pornography and you cannot do anything else, then obviously you have done something wrong, such as not watching it upsidedown. 00:49:04 if you want to do something else, but can't, then yes, i agree, you should probably flip your screen 00:49:08 (I am not trying to stop you from watching pornography, I am just trying to suggest better things) 00:50:02 well watching porn can be interesting, once you get past the whole mmm pussy let's masturbate thing. 00:50:48 i have done rather exhaustive research in many areas, but haven't found a publisher yet. 00:50:52 elliott: I wanted to prove (forall x, [p](x) = [q](x)) -> p = q -- p and q are lists of numbers which represent polynomials, and [p] is the evaluation of p 00:51:05 oklopol: In what areas have you done exhaustive research? 00:51:21 you really want to know? 00:51:39 oklopol: No, I just want to know why you have not found a publisher yet. 00:51:40 haven't found a publisher? 00:51:46 Can you publish it by yourself? 00:51:46 the most common paraphilias, regular porn is not very interesting outside the mm pussy part 00:52:05 What is the difference? 00:53:32 hard to put into words 00:53:53 but it's interesting how people react in weird situatoins 00:53:56 *situations 00:53:57 say in scat 00:54:09 which is a *very* diverse branch of porn 00:54:41 the rules are completely different 00:55:06 O, so you want to tell the difference which pornography movies you like which are interesting as opposed to non-interesting pornography. Is that it? 00:55:42 mostly i'm interested in what people will do for money 00:55:50 and how well they can hide it 00:56:55 and also, a single type of porn will have a rather clear set of rules, for instance even you might know that in american porn, the girl blows the guy, then they have sex a couple minutes in the basic positions, then the guy jizzes in her face 00:57:13 this is not how things like bukkake and scat work 00:57:25 it's roughly how it works, but a lot of subtletieas 00:57:27 *subtleties 00:57:45 Actually I wouldn't know, I don't like to watch pornography. But at least now I know that it is not so simple to categorize. 00:58:17 Like, if you have a pornography store or archive you would need subcategory for those kind of things, I guess. 00:58:43 the problem with categorization is it really never works 00:58:50 At least that is a bit better hobby than ordinary watching pornography. 00:58:51 well 01:00:03 i mean it's easy to categorize based on certain elements, like for most people it would suffice that "in this movie girls has sex with donkey" 01:00:22 like 01:00:31 it's rather easy to categorize based on what people actually wanna wank to 01:01:05 -!- hagb4rd has joined. 01:01:11 oklopol: i am totally moving in 01:01:15 Only in #esoteric does pornography get treated academically. 01:01:15 because most people either have one of a list common elements they want to see in their porn, and it's easy to find porn categorized based on those 01:01:25 pikhq: erm plenty of other places too i would think :P 01:01:33 elliott: ONLY IN #ESOTERIC 01:01:36 elliott: :P 01:01:38 like mm i wanna see fat chicks mm i wanna see japs licking each other's faces 01:02:13 If you are going to make a report would you categorize it? Such as, subcategories might be: artistic, photograph, movie, professional, manga, man, woman, American, children, animal, hard, soft, joke, ..... 01:02:26 but once you get even slightly deeper, you can't really put your finger on the category, for instance there is obviously a continuous scale of whether the people actually enjoy touching each other 01:03:13 zzo38: are you sure you would include the children category :D 01:03:49 i guess that's supposed to be the "amateur" category, but it doesn't really work that way 01:03:51 elliott: Of course child pornography is illegal but you need to include such a category anyways even if it is hidden 01:04:17 * Vorpal looks at scrollback 01:04:19 elliott: There is a black market for it, I'm sure. 01:04:19 the hell!? 01:04:21 "[ ] Children (don't click this) (no really)" 01:04:27 Vorpal: we're talking about pornography, hi 01:04:36 -!- sebbu2 has changed nick to sebbu. 01:04:37 pikhq: no shit :P 01:04:42 elliott, yes that was what I reacted to 01:04:46 oklopol: tell us more 01:04:47 zzo38: no, i wouldn't categorize like that at all 01:05:06 those overlap 01:05:11 oklopol: OK. How would you categorize? Do you need to make a report of how you categorize? 01:05:11 Not to mention that drawn depictions thereof are generally *legal*. Though it will suck if you get accused of pedophilia and caught with such. 01:05:15 -!- hagb4rd has quit (Ping timeout: 240 seconds). 01:05:23 oklopol, maybe there is some overlap though? 01:05:57 oklopol, I mean, for most useful categorisations 01:06:01 pikhq: not in the uk actually 01:06:06 as of recently... now i look suspicious for knowing this 01:06:08 I have not meant to imply it is a category that you select exactly one category. 01:06:10 not legal, that is 01:06:18 zzo38: i would analyze individual movies 01:06:35 if i had to write a report 01:07:11 oklopol: Aren't you doing this for the purpose of writing a report, though? 01:07:19 not really 01:07:23 i just thought you were interesting 01:07:27 *interested 01:07:48 Of course I don't know because I don't like to watch pornography. I am only making suggestion. 01:07:56 Probably I am entirely wrong. 01:08:26 zzo38: oh well yeah i would definitely agree with having those as terms for certain types of porn 01:08:28 elliott: Yeah, but the UK probably still has laws against women showing ankle, I'm sure. 01:08:29 :P 01:08:47 but for instance "hardcore" means nothing as an on/off scale 01:09:10 can be anything between "actual sex!" and max hardcore (actor) 01:09:17 -!- hagb4rd has joined. 01:09:59 pikhq: it's better than the USA's laws against women implying they might show ankle 01:10:01 oklopol: Then maybe you need to add a category titled "actual_sex"? 01:10:04 pikhq, I believe it isn't legal in Sweden either. IIRC there was some court case some years ago that suggested that the law was to be interpreted as it not being legal. Though textual stories of the same would probably be. 01:10:24 zzo38: i'm not very good at putting things like reactions of people into words, so i doubt i could ever actually write any sort of report on anything. 01:10:31 well, i doubt anyone can do that 01:10:46 Vorpal: I seem to recall it being precedent that the 1st amendment bars bans on child pornography without actual children involved in the creation thereof. 01:10:53 At least, in the US. 01:11:06 pikhq, yeah the 1st amendment is only relevant for US 01:11:09 oklopol: I thought you previously said at first that you were going to write a report, and you need it published?? 01:11:16 Vorpal: ... For now. 01:11:17 :P 01:11:22 pikhq, what do you mean 01:11:22 I'm pretty sure the 1st amendment doesn't ban that 01:11:27 doesn't really matter what they say, because cp and necro fans can soon just make their own animations. 01:11:39 Vorpal: Joking suggestion that the US will conquer everything. That's all. 01:11:41 Vorpal: We're going to give you democracy. 01:11:46 Can you just publish it by yourself? Or publish it in a pornography store? 01:11:48 Hardcore-style. 01:12:01 " oklopol: I thought you previously said at first that you were going to write a report, and you need it published??" <<< are we talking about this because you took that seriously 01:12:01 pikhq, I'm just waiting for China to invade you ;P 01:12:02 ? 01:12:14 Vorpal: I was about to make that joke, except funnier 01:12:17 oklopol: yes. 01:12:21 Vorpal: Oh, they're not going to invade. 01:12:23 coppro, gee thanks :P 01:12:41 Vorpal: They'll just purchase. 01:12:43 So much cleaner. 01:12:44 pikhq, oh true. They can probably buy you for a tenth of the market value 01:13:08 i have watched tons of porn simply out of pure interest (not saying i haven't also watched tons of it because of penis), that's all i meant. 01:13:09 (or as the market value would have been if you hadn't managed the economy so badly) 01:13:13 Arguably, they've been working on the down payment. 01:13:16 oklopol: OK, if you cannot write a report, then don't. But you seem to know enough about these things to write a very small report. 01:13:22 sure 01:13:39 (China is the largest holder of federal debt ATM) 01:13:42 pikhq, only after it all went bad 01:13:53 (if you meant what I thought you meant) 01:14:09 oklopol: lol speaking of max hardcore who you mentioned: "Based on Max Extreme 4, the city of Los Angeles in 1998 charged him with child pornography and distribution of obscenity. The fact that the actress was over the age of 18 was not disputed; they brought charges based solely on the fact that the actress was portraying a character who was underage." 01:14:12 i usually aim for a certain level of professionalism in everything i do 01:14:32 he has a lot of movies like that 01:14:49 but the amount obscenity is incredible for an american actor 01:14:52 *of 01:15:55 americans tend to do even rather hardcore stuff with a hollywood style feel of unrealness. 01:16:10 unlike japs who are just insane 01:17:26 yes 01:17:28 dunno if i've seen that movie, i've been out of the game for quite a while 01:17:33 oh 1998 01:17:37 then probably 01:17:38 And Germans, who seem to have a fondness for feces. 01:18:00 there's also that brazilian group, best known for 2g1c 01:18:33 Fucking crazy bastards. 01:18:35 :D 01:18:43 oklopol: have you watched SWAP.AVI? 01:18:47 they have a very unique way of doing things 01:18:55 oklopol: y/n 01:18:56 -!- oerjan has joined. 01:19:01 elliott: dunno, but usually i've seen the original movies years before these clips are made 01:19:03 *SWAP.avi 01:19:05 oklopol: http://www.somethingawful.com/d/horrors-of-porn/horrible-saga-swapavi.php 01:19:10 oklopol: it was requested by the something awful forums 01:19:19 oklopol: to be the most ridiculous and inexplicable scat film possible 01:19:23 oklopol: and they actually made it according to the requirements 01:19:26 oh the jap one? 01:19:26 and it is ... yeah 01:19:29 -!- FireFly has quit (Quit: swatted to death). 01:19:30 with the silver suits 01:19:30 not that i know of 01:19:31 brazil 01:19:32 no 01:19:34 oklopol: read http://www.somethingawful.com/d/horrors-of-porn/horrible-saga-swapavi.php 01:19:35 it's hilarious 01:19:38 will 01:19:39 pics are barfy though 01:19:40 you know... 01:19:45 Sexual Content: Imagine if the Holocaust was a 63 minute long video about pooping. Now imagine your mother drowning in a bathtub full of diarrhea. This is the sexual content of SWAP.avi. 01:19:46 I should just never unignore elliott 01:19:52 this channel is that much nicer without him 01:20:29 coppro, only issue is missing out of more than half of the convos 01:20:29 well there are tons of 63 minute movies about pooping 01:20:34 he is the most active speaker in here 01:20:36 (still I think) 01:20:56 oklopol: no, no, keep watching 01:21:31 night → 01:21:39 Vorpal: i'm just waiting for you to have to do enough work that you leave and i will be able to completely dominate, making me in control of who ignores and gets ignores entirely based on channel flow. 01:22:28 coppro: under the circumstances, i am starting to agree 01:23:41 WTF? 01:25:37 oerjan: hey oklopol is the one who started the scat talk 01:26:05 pikhq: ?FTW 01:26:17 * Sgeo decides he will ignore elliott's advice and re-investigate Ur/Web 01:26:22 Oh dear god. 01:27:03 pikhq: who was that at? 01:27:05 Set your user mode +D if you want to ignore someone, next time. 01:27:19 coppro: 01:27:22 oerjan: 01:27:25 zzo38: why 01:27:30 I mean, mode +giDRQ 01:27:32 * elliott wonders wtf pikhq is doing 01:27:41 elliott: WTFing at coppro and oerjan. 01:27:45 pikhq: you and your funny blank lines 01:27:50 Next time you want to ignore someone, do like that instead. 01:27:51 pikhq: why 01:27:59 looks pretty run-of-the-mill 01:28:00 based on pics 01:28:03 lol zzo38 01:28:06 18:19 I should just never unignore elliott 01:28:10 18:19 this channel is that much nicer without him 01:28:13 18:22 coppro: under the circumstances, i am starting to agree 01:28:29 i think oerjan is either complaining about my joke wrt controlling the channel flow. or the scat. 01:28:31 i should ignore myself, it'd be fun 01:28:33 never be able to correct typos 01:28:45 pikhq: because while sometimes he provides me with new things to look at, usually what he does is "your worldview disagrees with mine you suck" 01:28:48 and the only reason i started talking about this is that zzo38 insisted 01:28:50 :D 01:28:50 coppro is just always an idiot, but apparently not idiotic enough to not ignore me 01:28:53 :3 01:28:58 oklopol: let's ban zzo38! 01:29:04 solve the problem at the root 01:29:06 that evil troll 01:29:09 coppro: Your worldview disagrees with mine you suck. 01:29:16 Verily 01:29:18 why not just ban everyone, that should be the end of all problems in this channel 01:29:19 oklopol: Because I insisted? ??? 01:29:24 :D 01:29:25 olsner: :) 01:29:43 olsner: Don't ban anyone just set your user mode to +giDRQ -w 01:29:44 olsner: how dare you suggest that 01:29:46 let's ban olsner 01:29:48 and also everyone who isn't olsner 01:29:51 that's a better solution 01:30:15 elliott, how about joining ##elliott 01:30:16 pikhq: that must have looked funny to elliott 01:30:20 pikhq: hey wait that _was_ a blank line, i thought you were doing something japanese i couldn't see 01:30:22 And leaving #esoeric 01:30:25 " oklopol: In what areas have you done exhaustive research?" " What is the difference?" so i figured i'll take an example that makes you say "okay yeah i don't wanna know". 01:30:25 Setting the user mode like this is the best way to ignoring someone, instead. 01:30:26 "##"elliott? 01:30:27 :P 01:30:33 I think I'm an official representative for myself. 01:30:35 I mean probably. 01:30:40 I am also considering /ignoring zzo38 01:30:40 So the extra # is ... not really needed ... 01:30:46 but you just kept asking for more 01:30:52 on account of him never actually saying anything useful 01:30:54 Sgeo: but, aww, you're hilarious when you're pissy 01:31:16 coppro: You do not need to ignore zzo38 or anyone else. If you want to ignore someone just set your user mode instead. 01:31:34 zzo38: SHUT UP ABOUT USER MODES 01:32:09 zzo38: unless they're programmed in enhanced cweb 01:32:13 is your irc server programmed in enhanced cweb? 01:32:18 can i download it with your web browser? 01:32:19 yeah, definitely /ignoring zzo38 01:32:22 will it run on your linux distribution? 01:32:29 will I be able to configure it? 01:32:33 does it have user modes? 01:32:51 elliott: I did not write it entirely by myself. But both of these program will run my Linux distribution, you will be able to configure it, and it does have user modes. 01:32:51 Wait, Gilad Bracha actually admires Racket's module system? 01:32:52 zzo38: how in the world is a user mode not containing information about a nick supposed to ignore them? 01:33:02 If it's not written in Enhanced CWEB, I don't care, zzo38. 01:33:05 oerjan: Try it and see how. 01:33:12 oerjan: because it ignores everyone? or something? 01:33:19 what olsner said 01:33:29 elliott: It is not written in Enhanced CWEB although maybe I can make change so that the next version is with Enhanced CWEB. 01:33:34 zzo38: so it's joke, ok. 01:33:37 *a joke 01:33:45 it's probably a joke 01:33:51 but zzo38 never actually says anything useful 01:33:55 (no i didn't try) 01:33:57 yes, the most hilarious joke 01:34:10 oerjan: so why do you want to ignore me, i kinda want to optimise for annoying people? 01:34:27 +Dg will make it so you pretty much can't receive messages 01:35:23 the rest aren't really necessary 01:36:06 i think oerjan has me on ignore 01:36:08 i feel kinda special 01:36:09 elliott: that scat thing 01:36:11 usually he just bans people instead :D 01:36:12 oh 01:36:17 oerjan: oklopol was the one talking about it :P 01:36:26 YEAH JUST MAKE ECUSES 01:36:30 *EXCUSES 01:36:30 coppro, define "useful" 01:37:01 You don't have me on ignore. Is what I say ever actually more useful than what zzo38 says? 01:37:05 Sgeo: yes 01:37:09 i was talking about it because i was asked, and i don't think i mentioned anything that explicit 01:37:13 Sgeo: that's an exceedingly good point 01:37:16 i think i might ignore the both of you 01:37:16 Sgeo: because unlike you, talking to zzo38 is like talking to a brick wall 01:37:31 he never backs his claims up; he just rambles on about dumb things 01:37:36 you seem to have some modicum of curiosity 01:37:38 With some of the bricks sideways and upsidedown. 01:37:44 what 01:37:55 Thank you, I guess 01:37:56 he just seems to get dumb ideas in his head and defend them to the death 01:38:00 and by "to the death" 01:38:08 I mean "by repeating them over and over with no arguments" 01:38:18 what is it about people losing their temper over zzo38 lately 01:38:28 oerjan: he didn't _use_ to spend every minute talking about enhanced cweb 01:38:39 coppro, it's not that he gets dumb ideas... just ideas that are of interest to him and him alone, as far as I've seen. 01:38:40 hm possibly 01:38:41 and butting into random, completely unrelated comments to talk about how everything you do should be in enhanced cweb. 01:39:00 and, also, never actually really responds to any questioning or rebuttals of anything he says. 01:39:13 tbh the "quantum free will" crap from a few days ago is what started annoying me, i didn't really care before that 01:39:24 I try to respond, at least. But maybe I do not do such good response. 01:39:27 Sgeo: there was one a few days ago 01:39:31 I'm too lazy to dig it out 01:39:41 oh right the metaquantumwhodunnawutzit 01:39:44 elliott, ooh, sounds like a discussion I'd be interested in 01:39:58 zzo38 annoyed me once for a few seconds 01:40:06 that was long ago tho 01:40:11 Sgeo: apparently you can understand quantum free will by inverting a wikipedia article on itself to create a causality loop and then writing down the entanglement equation 01:40:13 Sgeo: Then read the log file you can read everything on this channel in the past days and weeks and months and years by anyone in this channel regardless of who wrote it. 01:40:15 Sgeo: but not assuming the other part is real or even exists. 01:40:20 Sgeo: This is almost a direct quote by the way. 01:40:32 Sgeo: also, life creates the universe, but the universe creates life, and you can't have only one. 01:40:40 Sgeo: also rocks have life but not very much life so they don't create the universe much. 01:40:43 elliott: I mean not inverting the article itself, but based on the double inversion of the things which the article discusses!! 01:40:54 (The article itself is not invert) 01:40:56 The double inversion? So ... a no operation? 01:41:11 * Sgeo contrapositives zzo38 twice 01:41:17 elliott: No, I mean to have both the invert and double invert together. 01:41:28 Ah. Because contradictions prove things! 01:41:28 Like, combined in one piece. 01:41:32 zzo38, instead of inverting the ideas, try just describing them? 01:41:42 As inverted, I mean 01:41:44 Sgeo: oh god we spent a whole day doing this, why did you go and say that 01:41:47 Sgeo: I try to describe them? 01:41:58 Sgeo: his explanation is that it's not life which creates the universe, it's both and neither. 01:42:12 " elliott: I mean not inverting the article itself, but based on the double inversion of the things which the article discusses!!" <<< okay clearly elliott had misunderstood you completely 01:42:13 Sgeo: based on an article by some random quack written about on wikipedia who says that life is necessary for the universe or some crap. 01:42:18 elliott: Ah, now you can understand a bit better. 01:42:23 zzo38: not at all. 01:42:28 zzo38, instead of describing ideas in terms of Wikipedia articles, describe them on their own terms, then optionally relate it to the article 01:42:30 oklopol: well it's kind of hard to interpret nonsense 01:42:34 `quote cosmology 01:42:38 elliott, Final Anthromorphic Principle? 01:42:47 * Sgeo wants to slap whoever came up with that 01:42:48 Sgeo: no, not that, and it's "anthropomorphic". 01:42:51 Sgeo: and that was Penrose. 01:42:51 No output. 01:42:56 hmm i didn't add it to qdb 01:43:06 oklopol: can it run qsort yet 01:43:26 Then add it (assuming HackEgo is not just broken) 01:43:26 well i've been busy ircing and thinking about whether i should read for that exam of mine 01:43:31 study 01:43:40 oklopol: Perhaps you should do the exam. 01:43:50 *study for 01:43:59 * Sgeo admires zzo38 not getting upset by the insults being hurled at him 01:44:13 XIYO 01:44:18 X in Y out, Y not mentioning X 01:44:31 i know what i should do, that doesn't necessarily mean i'll do it 01:44:32 elliott, unsafeCoerce? 01:44:43 Sgeo: no, zzo38. 01:45:03 is that a pure function 01:45:21 So, zzo38 breaks the type system. Awesome. 01:45:28 no. 01:45:29 Y is fixed. 01:45:32 f _ = 3 01:45:35 that is basically zzo38. 01:45:38 :D 01:46:00 funniiiiiiiiiiiiiiiiiiiiiiiiiiiii 01:46:20 lol Y is fixed 01:46:23 hahahahahahahahaha ahem 01:46:24 anyway 01:46:25 oklopol 01:46:28 does qsort run yet 01:46:36 well you know 01:46:38 does and does not 01:46:42 what 01:46:47 mostly does not 01:47:29 still cluein around? 01:47:35 yes 01:47:36 sorta 01:47:38 oklopol: well are you fixing it 01:47:50 http://www.vjn.fi/pb/p5451998242.txt 01:47:51 no 01:47:53 can you 01:47:58 look at the output of compilation 01:48:20 i mean it compiles, but as i said, runtime error, i dunno what to dooooo 01:48:31 oklopol: um yes, but you understand that i've been asking for your latest version 01:48:34 oklopol: because mine hangs on that 01:48:37 oklopol: so...gimme the py files 01:49:02 * Sgeo vaguely wonders if Ioke is a bit like the only thing I like about Racket 01:50:00 i really need to fix shutup. 01:50:09 http://www.vjn.fi/pb/p1815468777.txt http://www.vjn.fi/pb/p5342334176.txt 01:50:16 at your own safetylessness. 01:50:35 * Sgeo is more type-system-breaky than zzo38. Sometimes I'll say stuff out of the blue that has no connection to anything whatsoever, sometimes I'll say something semi-relevant, and sometimes I'll ask relevant questions 01:50:38 the way i debug is less than optimal :D 01:50:49 elliott, what makes you think it's broken? 01:50:56 Sgeo: what 01:51:02 shutup 01:51:11 Sgeo: also, orange juice is nice. *slurp* 01:51:12 Sgeo: well when i nicked to sgeo and said Factor it didn't yell at me. 01:51:18 Factor 01:51:20 Sgeo: Sometimes anyone might do, isn't it? 01:51:20 oerjan: especially when it's fecal matter! 01:51:23 oklopol: what's "cool" 01:51:23 It's yelling at me 01:51:33 oklopol: oh jesus. 01:51:34 elliott: debugging 01:51:35 xD 01:51:42 see 01:51:43 oklopol: you know what, remove all the debugging code and i'll make sure qsort works 01:51:46 glue is very general 01:51:50 Gregor's apples to oranges comparision convinced me to like oranges 01:51:53 so 01:52:03 if i want to debug a specific moment of compilation 01:52:12 things are messy 01:52:22 elliott: erm, why? 01:52:27 they are just print statements 01:52:31 oklopol: because i have to merge it into _my_ version 01:52:44 oklopol: which means considering all your changes and making sure they work without conditionals 01:52:54 oklopol: pain enough to do that when I have all this cool stuff too :P 01:53:00 of course they work without them, i only change glue 01:53:18 oklopol: fine 01:53:19 cool stuff is just print statements, i use a global so i can trigger stuff in stuff.py as well. 01:54:12 + if isinstance(l,list) and len(l)==0:return 1 01:54:12 + return 0 01:54:15 oklopol: 01:54:23 return int(isinstance(l,list) and len(l)==0) 01:54:43 what a useful correction 01:54:47 yep! 01:54:51 thank you 01:55:15 oklopol: so is demolishing a failed policy? 01:55:33 not really, it still makes ski very fast 01:55:49 oklopol: but you haven't made it good yet. right. :p 01:56:27 -!- hagb4rd has quit (Ping timeout: 240 seconds). 01:56:43 it gives a 6x improvement in one test case, so given that we currently have 2 test cases, i wouldn't exactly call it a failure 01:56:56 -!- copumpkin has quit (Ping timeout: 264 seconds). 01:57:17 it might be qs that's the odder one 01:57:23 (i doubt it) 01:57:25 -!- copumpkin has joined. 01:57:38 oklopol: what do you use random for 01:57:40 -!- zzo38 has quit (Quit: !). 01:57:53 nothing atm 01:58:02 i added it to test random searching for fun 01:58:25 that... didn't go well 01:58:29 :D 01:59:37 -!- hagb4rd has joined. 02:00:36 i hate this damn router 02:00:42 oklopol: "death" to crash the program 02:00:43 brilliant 02:00:45 brilliant yet horrible 02:01:21 Indeed. 02:01:36 oklopol: what why did you punctuate what 02:01:37 what 02:01:40 what and capital 02:01:40 what 02:01:41 what 02:01:42 where is oklopol 02:01:44 what did you 02:01:46 where 02:01:48 what 02:01:51 what 02:01:56 SPAM! 02:01:57 -!- ChanServ has set channel mode: +o oerjan. 02:02:04 -!- oerjan has left (?). 02:02:05 OKLOPOL JUST CAPITALISED AND PUNCTUATED A FUCKING SENTENCE 02:02:07 What do you mean? 02:02:07 ...xD 02:02:12 holy shit stop it 02:02:19 Stop what exactly? 02:02:21 -!- oerjan has joined. 02:02:22 i'm vomiting 02:02:25 I'M VOMITING!!! 02:02:34 WHERE DID YOU PUT OKLOPOL 02:02:45 Can we just get back to the matter at hand, please. 02:03:01 -!- oklopol has changed nick to Oklopol. 02:03:02 + if demolishing_done==True and first_round:break 02:03:05 the real oklopol wrote this code 02:03:08 he knows that you have to check booleans 02:03:11 to see whether they're True 02:03:13 before conditioning on them 02:03:27 Okay. What does that have to do with anything? 02:03:28 * Sgeo decides to learn Io 02:03:34 now that was amusing, i wanted to close the chanserv window and closed #esoteric instead 02:03:36 Oklopol: You're not the real oklopol. 02:03:39 Sgeo: it's a bad language 02:03:49 elliott, howso? 02:03:51 Sgeo: said as someone who developed with it for months. 02:03:57 Sgeo: and was part of the |||~~community~~||| 02:04:01 Sgeo: for one, it has basically no stdlib. 02:04:05 simple string and array functions are completely missing. 02:04:07 I'LL TAKE THAT AS A SIGN NOT TO BAN ELLIOTT YET 02:04:09 elliott: I have no comment. 02:04:13 also, there is basically no documentation 02:04:14 Oklopol: :( 02:04:19 oerjan: what 02:04:44 elliott: PAY ATTENTION. OR ELSE I'LL BAN YOU ANYWAY. 02:05:09 elliott, so the concept is good, the execution is crap? 02:05:17 Oklopol: i love how you called a variable demolishing, which stops you executing the demolishing function 02:05:22 Oerjan accidentally exited #esoteric, when he tried to close the message from ChanServ when he opped himself. This meant he could not ban you. 02:05:27 Oh my god. 02:05:31 Sgeo: both are pretty crap. the "pass everything as a function" thing doesn't work well. 02:05:46 foo(hello + world) <-- this could print "hello + world" to the screen even if hello=1 and world=2 02:05:54 completely breaking basically... every invariant i can think of in programming 02:06:03 elliott: see Oklopol gets it. whether or not he's oklopol. 02:06:22 elliott, isn't that what documentation is for? 02:06:34 Sgeo: let's just have no rules. 02:06:40 an arbitrary byte prefix has control over the rest of the program. 02:06:47 string delimiters? why, functions can choose whichever ones they want. 02:06:52 how can i use this without going insane? 02:06:55 Isn't that what documentation is for? 02:08:28 elliott: i expect tomorrow we'll see in the news about how finland is the center of a new global pandemic of correct spelling, punctuation, and horrible fatal hemorrhaging. 02:08:32 def fun(*args): 02:08:33 return call_clue(clue,args,10) 02:08:37 Oklopol: you changed this to 1000, why? :P 02:08:39 oerjan: :D 02:09:03 elliott: I changed it to 1000 in case quicksort actually happened to need more than 10 levels of function calls. 02:09:40 Oklopol: oh my god you sound so...boring and sane like this 02:09:43 I admit that was a much larger number than should be expected as an upper limit. 02:09:47 Oklopol: so tell me, how do you structure your python code, usually 02:10:21 Can you be more specific? "I think." 02:10:41 Oklopol: like, what is your general coding formatting style! 02:11:07 The one you see in the .py files i've given you. 02:11:47 Oklopol: ok i hate you stop it 02:11:52 "i've" 02:11:52 ha 02:11:55 I have caught you 02:11:56 you lose 02:11:58 go back to normal 02:11:59 :( 02:12:26 Naming varies, because I don't particularly care about names, amount of whitespace varies, but is generally little. I tend to write rather long segments of code for doing simple things, even if I know a shorter way. 02:12:39 ...anyway, creepyklopol, 02:12:40 clue.DepthLimitException: depth limit exceeded (cadar) 02:12:41 Yeah, I had a typo. 02:12:42 what do 02:12:48 and also, are you going to be like this forever 02:12:48 Congrats for noticing. 02:13:12 no seriously what do 02:13:19 I don't know what you are referring to. Is that from running quicksort? 02:13:22 elliott: only until the hemorrhages start 02:13:25 Oklopol: no from running ski 02:13:44 Oh. Heh, I guess I've broken something then. 02:13:47 hm can demolishing_done be a non-boolean :D 02:13:54 just looking at the differences between our codes 02:14:00 Oklopol: yeah well... get on fixing that, freak of nature 02:14:30 Oklopol: note this is with my non-conditional thing 02:14:35 so maybe the branch-inferrer is taking too long 02:14:40 freaks of culture are even creepier 02:14:51 Oklopol: it does the same on foo.clue 02:14:55 depth limit exceeded for is negative 02:14:56 ? 02:14:59 *negative? 02:15:02 Well, given that I've never had a run-time error in a Clue program, and suddenly both programs in existence are failing with the same error... 02:15:18 :DDD 02:15:25 excuse me, btw, but foo.clue breaks too :D 02:15:28 which is just my set of stuff 02:15:30 Ski works for me. 02:15:49 At least that one example program does. 02:16:05 Somehow I doubt you made another testcase. 02:16:44 Oklopol: huh what... 02:16:51 Oklopol: ok so it's the removal of conditionals that break it 02:17:04 Oklopol: can we just unify on the non-conditional version to make this a whole lot easier for both of us? :P 02:17:06 it's obviously superior 02:18:06 I don't particularly want to since things work very slowly on my machine without that additional complication for the compiler. 02:19:51 Oklopol: ehh it's actually not slow at all 02:20:01 Oklopol: it's like, 3/4ths as fast 02:20:04 also way purer :p 02:20:31 Well, you can give me your files once you get SKI to compile. 02:20:59 And quicksort, since I would very much like to see the program that was inferred for it. 02:21:20 Oklopol: well uh 02:21:25 Oklopol: i will try and figure out the bug 02:21:35 Oklopol: but only if you talk okloy again 02:22:01 Oklopol: found it. 02:22:05 I have to eat something now. 02:22:08 Oklopol: in glue(), you pass depth_lim to glue_ as True 02:22:08 Okay, nice. 02:22:11 Oklopol: which is the same as 1 as an int 02:22:15 Oklopol: what's it meant to be, 5? 02:22:22 and is orig_objs meant to be True? 02:22:25 if you can just correct that call 02:22:35 I pass it as 5. 02:22:44 Ah. 02:23:00 Oklopol: you do not pass it as 5 :) 02:23:09 Hmm. 02:23:12 Oklopol: but i'm not sure which way it should be rearranged, so if you could correct it... :P 02:23:39 To me it looks like I pass it as 5. 02:24:30 Oklopol: ok let's count 02:24:32 True,5,objects) 02:24:38 and in the signature 02:24:38 depth_lim,orig_objs=None,objectlookup=None): 02:24:46 depth_lim=True, orig_objs=5, objectlookup=objects. 02:25:01 Yes, one argument is not passed from glue. 02:25:11 The last one. 02:25:23 oh. 02:25:24 darn. 02:25:53 Oklopol: i increased the depth limit and it just overflows python's stack. 02:26:00 Oklopol: i conclude you have an infinite loop somewhere. 02:26:18 Oklopol: ok pop quiz for you 02:26:20 glue is the clue to glue clue together 02:26:23 Oklopol: where in glue_ do you ever exit? 02:26:31 ah, there is one return 02:26:52 Ur/Web takes ideas from functional reactive programming? 02:27:11 elliott: The infinite loop must be in the generated code. 02:27:16 Oklopol: right 02:27:23 Sgeo: it's a research language with strong links to type theory that you have mistaken as some kind of industry tool. 02:27:36 Sgeo: as i have said on numerous occasions, if you don't understand this, you will get nothing out of it. 02:27:53 it's the ur-idea 02:28:42 but it's Web, it _must_ be industrial! 02:29:26 he should have made it Ur/DependentlyTypedSpreadsheets or something to avoid the peanut gallery 02:34:47 Oklopol: so um er fixed the bug yet? :D 02:35:24 I don't even know if there's a bug. 02:36:42 Oklopol: well. i assume so. 02:36:49 Oklopol: since it can't even work out "is negative?". 02:36:57 is negative? ~ {. -1 -> 1 02:36:57 . -2 -> 1 } 02:36:57 is negative? ~ {. 0 -> 0 } 02:36:59 is negative? ~ {. 1 -> 0 02:37:01 . 2 -> 0 } 02:37:03 is negative? ~ compare; #0; #1 02:37:07 Oklopol: which, you know, should not overflow python's stack. 02:37:09 because of depth limit 02:37:37 It can't? Weird, since SKI and pivot work normally. 02:37:59 nnnno ski doesn't 02:38:11 clue.DepthLimitException: depth limit exceeded (cadar) 02:38:15 if i increase the depth limit the stack just overflows. 02:38:28 the only differences between our two versions is that mine hasn't got <> stuff, as i said 02:38:45 Oklopol: unless 02:38:47 - if demolishing_done and first_round:break 02:38:47 + if demolishing_done==True and first_round:break 02:38:51 demolishing_done can't be a non-bool, can it? 02:39:44 It should always be a boolean. 02:40:52 And I'm sure our versions are essentially identical, but I just plain cannot fix a bug my code does not have. If I've changed something that doesn't play well with your changes, sorry, but that's life. 02:41:20 Oklopol: well considering our respective changes shouldn't even interact with glue ... :/ 02:41:35 Indeed they shouldn't. 02:41:39 http://sprunge.us/HQiJ is the whole differences... - is mine, + is yours... i'm trying to figure out wtf is up 02:41:55 are you suuuure ski works for you? :/ 02:44:03 Oklopol: heh... if i remove most of the ski functions it finally gets a non-limit errors 02:44:05 *error 02:44:08 (complaining about all the missing things) 02:44:49 Oklopol: ...okay so, as little as i believe this myself 02:44:53 I just compiled SKI. 02:44:55 Oklopol: the error was a missing "import clue" in stuff.py. 02:45:00 I am not kidding. 02:45:05 What. 02:45:07 I guess apply_to_visible failed...somehow... 02:45:11 Ah. 02:45:14 Oklopol: do you have any big "catch every error" things? 02:45:16 that just ignore it? 02:45:20 because that probably caused it if so 02:45:21 but yeah, what :D 02:45:24 So I suppose there was an error, which i catch somewhere. 02:45:31 Sounds like something oklopol would do. 02:45:38 yeah, but Oklopol would never do that 02:46:11 Oklopol: so, um, i will try qsort now, can you link me to the current ver? 02:46:23 It is interesting that I haven't run into that problem when debugging that. 02:46:32 Sounds like something that would be a constant annoyance. 02:46:45 It has not changed, but sure. 02:47:05 http://www.vjn.fi/pb/p5399236149.txt 02:47:06 elliott, As far as I can tell, what Ioke calls "macros" are Io-like functions 02:47:09 Oklopol: i would have thought your code in general would be a constant annoyance when debugging :) 02:47:14 that is, incidentally, not a complaint at all. 02:47:17 Pivot should actually work, quicksort doesn't. 02:47:20 or an insult or w/e 02:47:22 Is that less bad than what Io does, since it means most functions don't do that sort of shenanigans? 02:47:27 Oklopol: also it has changed i don't have qsort 02:47:30 I don't find my code particularly hard to debug. 02:48:44 Oklopol: qsort compiled, at least 02:48:50 all in less than two seconds, no less 02:49:16 but er well 02:49:19 add(@(pivot left(car(#0) #0)) @(pivot right(car(#0) #0))) 02:49:22 is the non-null case for qsort 02:49:29 @ is recursion of course 02:49:40 What 02:49:44 now i'm not _certain_ but does qsort result in an integer? 02:49:46 That looks pretty much right... 02:49:48 Hmm. 02:49:51 oh 02:49:53 add is also append :D 02:50:05 Oklopol: yes, it works fine here. also, that <2s compilation is without <> marks. 02:50:12 i'm going to fix my pretty-AST-printer now. 02:50:20 Ah. 02:50:25 I see what the problem is. 02:50:56 Add is just the python (+) function, yes. That is not something that should be true. 02:50:57 Oklopol: oh? 02:51:06 also, i'm trying qsort with demolishing now 02:51:07 just for the fun of it 02:51:38 Alright. 02:51:48 Oklopol: can you tell me why you are talking like this :x 02:52:22 i just 02:52:23 want a reason 02:53:38 Oklopol: :( 02:55:02 I don't have a reason, sorry. 02:55:18 "Felt like it." 02:55:35 Oklopol: holy shit holy shit qs compiled 02:55:36 with destructing 02:55:41 273.050776958 02:55:43 :D 02:56:10 now i'm gonna try and figure out how to fix my printer 02:56:11 Heh. 02:56:26 Oklopol: are you going to stop talking like that ever :( 02:57:27 It is interesting that quicksort compiles, I don't see how it can with that bag. 02:58:12 How can the element used as pivot ever get to the output? 02:58:41 Oklopol: that's a mighty good point. 02:58:57 ---- quicksort 02:58:57 [#0] 02:58:57 | [] => #0 02:58:59 | <<<{'#0': '#0'}>>><<<{'#1': '@(pivot left(car(#0) #0))', '#0': '#0'}>>>_ => add(@(pivot left(car(#0) #0)) @(pivot right(car(#0) #0))) 02:59:01 ignore between <<< and >>> 02:59:06 (note how mine avoids empty automatically :D) 02:59:19 Oklopol: that's really weird 02:59:20 huh 02:59:45 -!- luatre has quit (Remote host closed the connection). 03:00:05 -!- luatre has joined. 03:00:06 let's try it in luatre :) 03:00:10 :: quicksort([]) 03:00:18 uh. 03:00:23 ::. hello 03:00:24 KeyError: 'hello' :( 03:00:26 :: poop 03:00:29 what 03:00:32 :: [] 03:00:37 :D 03:01:18 -!- luatre has quit (Remote host closed the connection). 03:01:25 -!- luatre has joined. 03:01:31 :: empty([]) 03:01:34 wtf. 03:01:41 ... x 03:01:42 ValueError: substring not found :( 03:01:47 ohhh 03:01:49 Eh, turns out it is smarter than me. It actually pivots the whole list by the first element, that that the pivot element itself goes on the right side. 03:01:57 This way, it doesn't have to add it back. 03:01:58 :. empty([]) 03:01:58 1 03:01:59 Oklopol: heh :D 03:02:04 ::. quicksort 03:02:04 quicksort: [#0] | [] => #0 | _ => add(#1 @(pivot left(car(#0) #0))) 03:02:14 :: quicksort([4 3 2 1]) 03:02:19 :. quicksort([4 3 2 1]) 03:02:20 RuntimeError: maximum recursion depth exceeded :( 03:02:30 Oklopol: your quicksort, it is, mighty "efficient" 03:02:33 :. quicksort([1]) 03:02:34 RuntimeError: maximum recursion depth exceeded :( 03:02:39 ...:DDDDDddd 03:02:46 :. quicksort([]) 03:02:46 [] 03:02:55 :. pivot left(1 []) 03:02:55 [] 03:02:56 :. pivot left(1 [1]) 03:02:56 [] 03:03:01 :. pivot right(1 [1]) 03:03:01 [1] 03:03:04 Well, the one given by luatre doesn't even call pivot right. 03:03:11 Oklopol: no no that's a bug in the printer 03:03:18 i fixed that in my local copy 03:03:20 ignore its output 03:03:23 :. add(pivot left(1 [1]) pivot right(1 [1])) 03:03:23 [1] 03:03:28 :. quicksort([1]) 03:03:29 RuntimeError: maximum recursion depth exceeded :( 03:03:31 what. 03:03:42 back to fixing my printer and avoiding thinking about that 03:04:20 Hmm. 03:04:22 Oklopol: so how fast does ski compile for you 03:04:32 It occurs to me that that quicksort would be an infinite loop in any language. 03:04:39 i think i'm going to turn destructing on (nice avoidance of the common terminology there btw) to make testing this easier :D 03:04:46 Oklopol: oh, indeed. :D 03:04:54 Oklopol: insufficient hinting! 03:04:59 Oklopol: often a problem with the branchless form 03:05:03 Because it can never actually "use" a piece of the input. 03:05:19 Oklopol: i'm starting to suspect the whole oklopol thing is one gigantic act 03:05:21 I need to make it also return singletons directly. 03:05:23 and you're actually a horribly 03:05:24 horribly 03:05:25 normal 03:05:26 boring person 03:05:28 :( 03:05:32 why do you violate my life's constants 03:05:33 ais523: make him stop 03:05:36 Either that, or I'm fizzie. 03:05:43 ...what 03:05:44 is that true 03:05:59 are you fizz 03:06:00 e 03:06:01 ie 03:06:04 despite being in stockholm 03:06:06 I don't think I've been that much like him. 03:06:12 you've punctuated and capitalised 03:06:14 and that's basically enough 03:06:36 Anyway, let me get back to the code. 03:06:58 the qs code or clue.py 03:08:47 ---- depth of first 03:08:47 Condition: ['is list?', '#0'] 03:08:47 Base branch (0) 03:08:49 '#0' 03:08:51 Rec branch (1) 03:08:53 Subast(0,0):['car', '#1'] 03:08:55 Main ast: ['inc', '#2'] 03:08:57 w h a t 03:09:01 deep first ~ {. 1 -> 1 03:09:01 . 2 -> 2 } 03:09:03 deep first ~ {:. [[1, 2], 3] -> 1 03:09:05 : [1, 2] -> 1 03:09:07 :. [1, [2, 3]] -> 1 03:09:09 : 1 -> 1 } 03:09:11 deep first ~ is list?; cons; car; cdr 03:09:19 Oklopol: wtf is #1 there 03:10:03 First argument, I suppose, although that's #0. 03:10:10 Oklopol: well precisely... 03:10:15 Really I don't understand how the numbering works at all. 03:10:17 oh 03:10:21 depth of first has the constant #0 03:10:27 so right, yes, why haven't i handled that 03:10:40 ah! 03:11:06 yep 03:12:16 ---- depth of first 03:12:16 [is list?(#0)] 03:12:16 | 0 => 0 03:12:18 | 1 => inc(@(car(#0))) 03:12:20 :D 03:13:07 ---- quicksort 03:13:07 [#0] 03:13:07 | [] => #0 03:13:08 | _ => add(@(pivot left(car(#0) #0)) @(pivot right(car(#0) #0))) 03:13:10 Oklopol: that's definitely the quicksort code. 03:13:35 Oklopol: hey you know what clue should be able to do 03:13:41 Oklopol: MUTUTALLY RECURSIVE FUNCTIONS 03:15:39 Yes, it should be able to do those. In fact, didn't I mention adding support for that today? 03:15:44 I believe I did. 03:16:02 do you talk like this in real life 03:16:48 Oklopol: so, challenge: write even? in clue 03:16:50 handling positive and negative numbers 03:18:38 It seems that quicksort works fine now. 03:18:45 It was my bad really. 03:18:51 Oklopol: oh joy: [[clue.DepthLimitException: depth limit exceeded (even?)]] 03:18:56 Oklopol: also, can i has the code? 03:18:57 -!- res_ has joined. 03:19:01 By which I meant my Clue program was wrong. 03:19:22 * elliott changes the depth limit to 10 and tests :D 03:19:31 Well, actually it turns out only lists of lenght 3 can be sorted. 03:19:31 to be fair it is a _very_ complex condition i want 03:19:35 Oklopol: what :D 03:19:40 Oklopol: insufficient testcases, man 03:19:52 Oklopol: Clue, the only language where not testing enough actually breaks your program. 03:20:49 Oklopol: i'm having a bit of trouble making a program with a complex conditional 03:21:08 Oklopol: specifically, even? is basically this: "if x<0 then (if x==-2 then 1 else 0) else even?(x-2)" 03:21:15 and i just can't see how to do that, even with multiple functions 03:21:46 oh wait 03:21:56 i can do it with compare to 0 03:22:01 specifically 03:22:45 "[compare(#0,0)] | -1 => 0 | 0 => 1 | 1 => @(dec(dec(#0)))" 03:22:45 You know what I realized? 03:22:48 what? 03:22:55 The program IS STILL CONCEPTUALLY WRONG. 03:22:58 :DDD 03:23:16 conceptual wrongness exists in program! 03:23:43 -!- poiuy_qwert has joined. 03:23:54 You know what gave it away? Adding a third test case. 03:23:59 :. [1, 2, 3] -> [1, 2, 3] 03:23:59 : [] -> [] 03:23:59 : [1, 2, 3] -> [1, 2, 3] } 03:24:01 -!- j-invariant has quit (Quit: leaving). 03:24:16 Oklopol: :D 03:24:18 L O L L O L L O L L O L: 03:24:24 so i forgot to give positive even? #1 right 03:24:26 ---- positive even? 03:24:26 [compare(#0 compare(#0 #0))] 03:24:26 | -1 => 0 03:24:28 | 0 => compare(0 dec(0)) 03:24:30 | 1 => @(dec(dec(#0))) 03:24:32 Oklopol: compare(0 dec(0)) 03:24:33 I love this language. 03:24:36 greatest way of writing 1 ever??? 03:24:38 GREATEST WAY?? 03:24:57 Oklopol: here's what happens if i don't give it 0 either: 03:24:58 [compare(#0 compare(#0 #0))] 03:24:59 | -1 => compare(#0 #0) 03:24:59 | 0 => compare(#0 dec(#0)) 03:25:01 | 1 => @(dec(dec(#0))) 03:25:01 Wait what? 03:25:03 amazing 03:25:05 Oklopol: wait what what? 03:25:13 Oh. 03:25:26 Yeah nm, yes, that is fun. 03:25:27 0 defined as a number equaling its own predecessor? 03:25:39 olsner: 0 is the python number 0. 03:25:42 olsner: no 03:25:47 wtf i can't tab complete olsner 03:25:52 anyway 03:25:56 olsner: no, compare() is <=> 03:26:00 as in, -1 if <, 0 if =, 1 if > 03:26:09 compare(x, x-1) is always 1 03:26:14 compare(x, x) is always 0 03:26:18 so basically, Clue is a genius. 03:26:24 elliott: wait Oklopol is in stockholm? that clearly explains the change. 03:26:32 oerjan: no, fizzie is :P 03:26:36 oh 03:27:20 osnler is so hard to tab complete 03:27:51 no seriously, it just doesn't let me :D 03:27:54 why would I be hard to tab complete? 03:28:05 my client is buggy 03:28:05 evidently 03:28:09 olsner: PROBABLY YOU'RE IN STOCKHOLM OR SOMETHING 03:28:18 Oklopol: so here's a sane compilation of even?: 03:28:19 [is negative?(#0)] 03:28:19 | 1 => positive even?(negate(#0)) 03:28:20 that is an explanation for _everything_ 03:28:20 | 0 => positive even?(#0) 03:28:33 Oklopol: but say i were to withhold is negative? from this program 03:28:37 Oklopol: what does the genius of clue come up with? 03:28:43 [positive even?(#0)] 03:28:43 | 0 => positive even?(negate(#0)) 03:28:43 | _ => positive even?(#0) 03:28:47 :D 03:29:01 oerjan: probably not, but something could arbitrarily decide that my IP is in stockholm for whatever reason 03:29:38 olsner: No, oerjan attributed my weird behavior to my being in Stockholm earlier. 03:29:53 I'm not in Stockholm though. 03:29:55 Oklopol: as a member of the Clue Standardisation Board, can I humbly suggest that we both rename "empty" to "empty?". 03:29:59 *"empty?"? 03:30:01 it is only logical. 03:30:02 elliott: is empty? 03:30:16 Oklopol: are you sure, every predicate is getting "is" in front of it D 03:30:17 *:D 03:30:18 * oerjan somehow read that as the Clue Scandinavisation Board 03:30:24 "is this list empty?" 03:30:26 Oklopol: i mean sure but only if you actually make the change 03:30:55 elliott: I'm not making any changes before quicksort works. I don't know why. 03:30:56 Oklopol: isn't weird behaviour just normal behaviour when it comes to you? 03:31:06 olsner: I don't know. 03:31:08 Oklopol: well, done in mine :P 03:31:16 olsner: look at how he's fucking talking 03:31:19 it's unbearable :( 03:31:21 so... so wrong 03:31:33 elliott: Okay, I don't exactly mind if your versions differ. 03:31:48 Oklopol: i have a feeling you don't think much of elliottclue :) 03:31:51 Maybe I'll do the change at some point. 03:31:53 elliott: You should just relax, I think. 03:32:13 Oklopol: so uh, speaking of changes...constants in branchers? >_> 03:32:36 Vorpal: http://0au.de/~apo/mario.png 03:32:41 Vorpal: autoconverted, but still, :D 03:34:37 i'm sure you already have seen the enterprise [minecraft edition]? -- http://www.youtube.com/watch?v=kn2-d5a3r94 :> 03:34:49 yes, like five years ago >:) 03:35:00 Oklopol: http://www.youtube.com/watch?v=X32nuDEvw-4 03:36:58 :. [1 2 3] 03:36:58 [1 2 3] 03:37:52 -!- luatre has quit (Remote host closed the connection). 03:38:10 -!- luatre has joined. 03:46:02 have you ever played brabens frontier elite? probably the best game ever.. travel our galaxy with a cute spaceship, trade, fight pirates..become elite! until now the only game you can land on planets without any loading screens! pretty nice physics..all that on one single floppy(!).. a masterpiece of work.. hope that there will be a sequel some day :/ 03:46:12 Phantom_Hoover is an Elite fan. 03:46:15 But everyone hates Frontier. 03:46:24 not true elliott 03:46:29 but anyway 03:46:29 Also, there _was_ a sequel. 03:46:36 Also, everyone hates Braben. :p 03:46:43 yea 03:47:06 hagb4rd: Anyway: http://en.wikipedia.org/wiki/Frontier:_First_Encounters 03:47:09 Sequel to Frontier. 03:47:28 i wonder if there where all the pgogrammers are gone 03:47:35 Eh? 03:47:54 yea i know that one, but its about 15years old or sth 03:48:05 sry 03:48:10 -!- res_ has quit (Quit: Ex-Chat). 03:48:12 -if there 03:48:12 Oklopol: so I wrote a clue repl... it lets you specify filenames on cmd line, prints all the asts at startup, lets you evaluate stuff in LuatreLang, lets you load new files, and lets you reload everything 03:48:19 Yeah, well, Elite 4. :p 03:48:26 yes 03:48:33 that would be funn 03:48:36 -!- GreaseMonkey has joined. 03:48:37 http://en.wikipedia.org/wiki/Elite_4 03:48:39 Duke Nukem Elite. 03:48:42 hrhr 03:48:44 *Duke Elite Forever. 03:48:48 *Elite Nukem Forever. 03:48:54 wanted 03:50:10 -!- res0001 has joined. 03:50:11 how did he manage to fit all this stuff on one single floppy? 03:50:31 the old bastard should publish the code 03:50:39 Procedural generation. Also, give more credit to Ian Bell; I imagine most of the procedural generation code Ian Bell had at least some part in. 03:50:55 agree 03:50:58 respect 03:50:59 hagb4rd: I distinctly recall PH telling me that Braben litigated Bell into taking down the code to Elite. 03:51:11 So a Frontier source release might happen, mm, approximately never. 03:51:21 i will code 03:51:23 it 03:51:25 :> 03:51:34 hagb4rd: Why bother, Asteroids II is better. 03:51:46 is it? never played it 03:52:09 -!- res0001 has quit (Client Quit). 03:52:09 hagb4rd, I don't think it exists yet 03:53:02 sounds reasonable then *g 03:53:05 hagb4rd: It's a 2D Newtonian-physics-based shooter with full physics including gravity (with orbits!) and things like localised physics distortion (e.g. slow down speed of light in a bubble that enemy is approaching, circle around it quickly and fire bullets inside before they can get out). 03:53:21 Being "worked on" very, very slowly by me and PH, whereby most time spent working on it is thumb-twiddling. 03:53:31 I do want it to get finished, though. 03:53:43 where can i get your alpha? 03:53:50 /dev/null 03:53:55 46 seconds to compile quicksort helper, which hopefully was the hard part of quicksort 03:54:03 hm 03:54:06 But it's going to be a commercial game if it ever does get done, so, uh, pony up $(preorder price). :P 03:54:10 Let's hope for the best. 03:54:18 (The release will come with full source code, allowing redistribution of modifications.) 03:54:40 cmon.. let me have a look 03:54:45 Is that how Minecraft works? 03:54:46 (So modding is perfectly legal and permitted, as well as complete reworks, so long as you either don't distribute enough to reconstruct a large part of the entire game, or only distribute it to people you can reasonably verify own it.) 03:54:49 hagb4rd: There _is no code_ right now. 03:54:51 Releasing source to purchasers? 03:54:57 Sgeo: No, Minecraft is just closed source. 03:55:01 It's just that Java is very easy to disassemble. 03:55:05 Well, no less. 03:55:10 hagb4rd, there isn't even code for the programming language yet 03:55:15 You get something very close to the original code minus names (and the modders are working on that). 03:55:15 lol 03:55:22 hagb4rd: All that has been written is gravity.lisp, which does 2D Newtonian mechanics with orbits. 03:55:25 Even I have disassembled some Java code. 03:55:32 y 2d? 03:55:44 lisp 03:55:48 ok 03:55:49 hagb4rd: Because 3D Newtonian mechanics is considered rather unfun to fly in -- see Frontier ;-) 03:55:54 hagb4rd: The actual game won't be written in Lisp probably. 03:56:05 But it was what PH hacked up that in (it doesn't even have graphics, it just prints tables of numbers). 03:56:19 But it's a proof that Oklopol was wrong enough, or how PH interpreted Oklopol was wrong enough, and it can work:P 03:56:20 *work :P 03:56:21 elliott, what dialect of Lisp? 03:56:22 (orbits in 2D) 03:56:25 Sgeo: It was Common Lisp. 03:56:33 >>> funcs["quicksort"]([4, 2, 45, 2, 65, 45, 34, 34, 6 ,76]) 03:56:33 [2, 2, 4, 6, 34, 34, 45, 45, 65, 76] 03:56:37 What was Oklopol wrong about? 03:56:47 Sgeo: Um, Oklopol said that someone said that orbits don't form well in 2D or something. 03:56:54 must lurk into this procedural generetion stuff.. 03:57:03 Oklopol: see, with my luatre console, that's as simple as 03:57:10 Can I see proof of orbits forming? 03:57:14 Oklopol: quicksort([4 2 45 2 65 45 34 34 6 76]) 03:57:14 ! 03:57:24 Oklopol: proof, err, not really, ph isn't online and i don't have the code, but 03:57:31 then call ian and get started with elite4 03:57:32 elliott: How fun, now can I try this in your bot? 03:57:32 :> 03:57:36 Oklopol: basically the only problem was a drift over time, caused by setting dx too high 03:57:46 Please make it run url-given code. 03:57:55 Oklopol: and it would be low enough in a game 03:57:55 Aren't there plenty of orbit simulators? 03:57:57 Oklopol: ok, i will 03:57:58 elliott: So can I see? 03:58:00 Microsoft Encarta came with one 03:58:04 Oklopol: as i said, i don't have the current code 03:58:12 Sgeo: the point is getting orbits to form naturally with newtonian mechanics in 2d 03:58:32 Oklopol: I might make luatre just an interface to the repl, tbh, but I'll hack it up right now. 03:59:02 It would be nice to be able to give urls since Clue is sort of a verbose language. 03:59:12 nothin simpler then the newtonian mechanics 03:59:31 http://www.vjn.fi/pb/p1926614985.txt 03:59:33 -!- luatre has quit (Remote host closed the connection). 03:59:47 -!- luatre has joined. 03:59:58 ::: http://www.vjn.fi/pb/p1926614985.txt 03:59:59 ValueError: substring not found :( 04:00:09 oh wait 04:00:09 :D 04:00:10 nm 04:00:11 What's the point of quicksort append? 04:00:14 46 seconds to compile btw 04:00:17 that was trying to evaluate that as a luatre expr 04:00:20 Sgeo: It's a helper function. 04:00:34 It's the kind of appending quicksort does after recursing. 04:00:37 just no friction.. 04:00:54 "quicksort helper" on the other hand has no clear meaning whatsoever. 04:01:05 hagb4rd: What? 04:01:10 -!- luatre has quit (Remote host closed the connection). 04:01:15 -!- luatre has joined. 04:01:23 ::: http://www.vjn.fi/pb/p1926614985.txt 04:01:35 ...... http://www.vjn.fi/pb/p1926614985.txt 04:01:39 hmm 04:01:40 OH 04:01:41 -!- luatre has quit (Remote host closed the connection). 04:01:42 inertia, no friction thats all 04:02:02 its easier then jumpnrun.. i guess 04:02:04 -!- luatre has joined. 04:02:05 I don't see what friction has to do with anything. 04:02:06 ::: http://www.vjn.fi/pb/p1926614985.txt 04:02:07 Downloading... 04:02:07 Compiling, just a minute... 04:02:07 Exception: Can't compile pivot(), inc twice(), caaar pivot helper(), make singleton(), car pivot helper(), quicksort helper(), pivot condition 2(), caaar with consed(), cons to caaar(), quicksort(), greater than?(), quicksort append(), pivot left(), triple(), caaar(), pivot right(), cons to car(), pivot condition(), caar() :( 04:02:25 Oklopol: your code is busy using the old busted clue 1.0 ;) 04:02:41 Oklopol: i, uh, can't really think of a way to fix that that isn't a gigantic hack. 04:02:46 Indeed! I can fix that. 04:03:05 Oklopol: Yeah, thankfully your program is still written in an identical fashion with everywhere. :p 04:03:16 friction and gravity and impulse is the only counterforce to inertia in space Oklopol 04:03:17 fuck you ~ {. [1] -> [2] . [1] -> [3] } 04:03:32 Is http://www.vjn.fi/pb/p2134133721.txt better? 04:03:39 no sry 04:03:39 Oklopol: yes, try it out 04:03:42 ^^I don't think that's syntactically right 04:03:47 there is no friction 04:03:51 What are those raw numbers I see in the code for? 04:03:55 Oh wait 04:03:56 they're integers. 04:03:56 making things preatty simple 04:04:00 Those are both arguments? 04:04:01 everything is just an example invocation. 04:04:05 Sgeo: yes. 04:04:08 Instead of single-argument functions, ok 04:04:13 So my fuck you makes sense? 04:04:13 ...... http://www.vjn.fi/pb/p2134133721.txt 04:04:15 Downloading... 04:04:15 Compiling, just a minute... 04:04:15 Exception: Can't compile pivot(pivot condition), quicksort helper(quicksort append), quicksort(length), quicksort append(append), pivot left(pivot), pivot right(pivot), pivot condition(empty) :( 04:04:15 Sgeo: it is valid, but you want to drop the [] there prolly, and you need hints 04:04:34 Oklopol: it's "is empty?" now :D 04:04:51 What about it? 04:05:04 Oklopol: you have "empty" 04:05:06 but it's "is empty?" 04:05:08 thus the failure 04:05:09 :: fuck you ~ {. 1 -> 2 . 1 -> 3 } fuck you ~ inc; dec; #0; #1; compare 04:05:09 DepthLimitException: depth limit exceeded (fuck you) :( 04:05:09 Oh dear. 04:05:12 Sgeo: ^ 04:05:18 the bot likes you not 04:05:26 ::. quicksort 04:05:26 KeyError: 'quicksort' :( 04:05:33 ::. pivot 04:05:33 KeyError: 'pivot' :( 04:05:49 :: boring ~ {. 1 -> 2 . 1 -> 2 } fuck you ~ inc; dec; #0; #1; compare 04:05:49 IndexError: list index out of range :( 04:05:52 Oklopol: btw, why are inc/dec not called succ? also why isn't neg called negate >:) 04:06:01 i kinda see clue as the language of the most verbose, useful names you can come up with, thanks to the spaces 04:06:06 Oops 04:06:12 :: boring ~ {. 1 -> 2 . 1 -> 2 } boring ~ inc; dec; #0; #1; compare 04:06:12 boring: [#0] | _ => inc(1) 04:06:15 Oklopol: also shouldn't your greater than? be "is greater than?" 04:06:22 Sgeo: you just need inc to do that. obviously. 04:06:24 elliott: The way around the fact it's annoying to write "is empty?" will be that some sort of type information will usually tell the system what the contents of the bag should be. 04:06:36 Sgeo: i was just giving fuck you a fighting chance with some nice functions. 04:06:42 Oklopol: right. so shouldn't it be "is greater than?" 04:06:51 Oklopol: and shouldn't neg be negate and sub subtract? 04:07:01 yesss 04:07:05 it totl should 04:07:11 Oklopol: you regressed thank you <3 04:07:13 -!- Oklopol has changed nick to oklopol. 04:07:15 what? 04:07:19 oklopol: oh nothing. 04:07:26 ke, as they say in the land of the espanolas 04:07:33 oklopol: i kinda miss Oklopol now, i have a feeling coherency is about to take a big dip :D 04:07:57 oklopol: so um can I implement inc->succ; dec->pred in my impl sometime 04:07:58 i agree with all your naming stuff 04:08:01 okay 04:08:06 i don't have negate or subtract except in foo.clue 04:08:09 which has them as negate and subtract 04:08:12 maybe i should pre-load foo.clue 04:08:13 it's pretty useful 04:08:20 the names of things have annoyed me forever, but it's sooooo much work changing them 04:08:44 .:.:http://www.vjn.fi/pb/p8579956286.txt 04:08:45 oklopol: changed to is empty? yet? 04:08:47 ah 04:08:48 oklopol: you forgot space 04:08:51 .:.: http://www.vjn.fi/pb/p8579956286.txt 04:08:52 Downloading... 04:08:52 Compiling, just a minute... 04:08:52 Exception: Can't compile pivot(), inc twice(), caaar pivot helper(), make singleton(), car pivot helper(), quicksort helper(), pivot condition 2(), caaar with consed(), cons to caaar(), quicksort(), greater than?(), quicksort append(), pivot left(), triple(), caaar(), pivot right(), cons to car(), pivot condition(), caar() :( 04:08:55 actually that was a typo 04:08:57 :D 04:09:39 what now? and also, i'd prefer having negate and abs in the stdlib. i see no point not to 04:10:00 remember, this is not a tarpit, it's a high-level language gone really wrong 04:10:24 so what happened 04:10:48 ... 04:10:49 fuck 04:10:55 i changed all the id's back already 04:10:55 xD 04:11:03 you fix it K? 04:11:41 oklopol: also, negate and abs _are_ in my stdlib 04:11:42 foo.clue 04:11:45 oklopol: also, no :P 04:11:50 oklopol: just use python to do it 04:11:59 oklopol: open('foo').read().replace('; ','') 04:12:07 oklopol: open('foonew').write(open('foo').read().replace('; ','')) 04:12:37 nevahh 04:13:01 -!- azaq23 has quit (Ping timeout: 265 seconds). 04:13:11 * elliott renames foo.clue -> std.clue 04:13:15 :D 04:13:24 gives you an STD on every use! 04:13:37 also btw 04:13:45 oklopol: you might wanna s/dec/pred/ and inc to succ on your code while you remove 04:13:50 'cuz i'm gonna take advantage of the moment 04:13:53 i added append as a primitive 04:13:55 or would "predecessor" and "successor" be better :D 04:14:14 haha 04:14:15 Why does id have <> around its name? 04:14:15 nah, i'll make it pred and succ 04:14:16 totally 04:14:16 :D 04:14:21 Sgeo: old obsolete feature 04:14:25 oklopol: and i'll implement append in the stdlib 04:14:48 technically i could have backwards-compat here 04:14:53 but then you'd never change your progs :D 04:14:55 "[..]However, Mr Braben said that the pair originally had some difficulty finding a publisher, despite the game being popular with their friends. 04:14:55 He said that the game was so different from traditional coin-operated games, not least because Elite did not actually have a score, that most publishers rejected it. 'They just didn't get it, they wanted a high score and they wanted players to have three lives' ..lol 04:15:21 *sigh 04:15:35 oklopol: btw i have greater than? in my stdlib 04:15:39 i'll rename it "is greater than?" 04:15:45 go ahead 04:15:52 oklopol: i still think this verbose naming might be a mistake :D 04:16:23 well there could be shorthands as well. 04:16:36 if it's not clear what is meant, both are added to the bag! 04:16:50 that's the great thing about clue 04:16:56 abs should be absolute value, surely 04:17:06 oerjan: no :D 04:17:16 Y NO 04:17:20 oklopol: after you get qs working can I eliminate , from arglists and lists too? 04:17:22 since that's like 04:17:24 clearly superior 04:17:32 elliott: magnitude, then? 04:17:32 how about "The function that returns the absolute value of the number given as a parameter." 04:17:37 :D 04:17:47 ot that. 04:17:49 *or 04:18:07 "A function that returns the negation (the subtraction from zero) of its argument if it is less than zero, or the argument itself if it is greater than or equal to zero." 04:18:11 yes, ","'s should be removed 04:18:53 also what were the things i was supposed to do for the sourch 04:19:01 (e) 04:19:14 How much of the stdlib is primitives, and how much is written in Clue? 04:19:49 Sgeo: there are a handful of both 04:19:57 oklopol: erm 04:19:59 "It's clues all the way down!" 04:20:00 oklopol: remove ; 04:20:02 oklopol: turn inc->succ 04:20:06 oklopol: turn dec->pred 04:20:08 that should be it for now i think 04:20:11 also empty-> is empty? 04:20:12 (IN AN ALTERNATE IDEAL UNIVERSE) 04:20:25 `quote ALTERN 04:20:26 17) IN AN ALTERNATE UNIVERSE: First, invent the direct mind-computer interface. Second, learn the rest with your NEW MIND-COMPUTER INTERFACE. \ 23) IN AN ALTERNATE UNIVERSE: there is plenty of room to get head twice at once \ 24) In an alternate universe, ehird has taste \ 25) IN AN 04:20:31 oklopol: so anyway, my append function is taking A VERY VERY LONG TIME 04:20:33 What are the ... does TC-ness imply? 04:20:42 Sgeo: what 04:20:45 oklopol: to compile 04:20:45 Why did I just say imply? I meant.. make sense 04:21:01 oh more hints sped it up :D 04:21:18 ---- append 04:21:18 [#0] 04:21:18 | [] => #1 04:21:19 | _ => cons(car(#0) @(cdr(#0) #0)) 04:21:23 :D 04:21:48 :..: http://www.vjn.fi/pb/p6825816189.txt 04:21:51 Downloading... 04:21:51 Compiling, just a minute... 04:21:51 Exception: Can't compile quicksort helper(quicksort append), quicksort(length), quicksort append(append) :( 04:21:56 fucking fuck 04:22:02 WHAT IS WRONG NOW 04:22:05 luatre: i added append 04:22:07 *oklopol: 04:22:07 just 04:22:09 let me reload the bot 04:22:11 kay? 04:22:17 well okay..... 04:22:30 -!- luatre has quit (Remote host closed the connection). 04:22:36 -!- luatre has joined. 04:22:36 to get std.clue in 04:22:38 ok go 04:22:54 Sgeo: i imagine there is some function you cannot write in clue because no matter how many sample values you give there is _always_ a candidate function that works for those values and is easier to find. (note: i don't _really_ know how clue works.) 04:23:08 oerjan: but is that function completeable 04:23:10 *works only for 04:23:15 :..: http://www.vjn.fi/pb/p6825816189.txt 04:23:22 oerjan: and remember that it only uses functions _you_ allow it to 04:23:30 oklopol: what did you do to it. 04:23:31 hm. 04:23:50 oerjan: you can basically write imperative code 04:23:55 Downloading... 04:23:55 Compiling, just a minute... 04:23:55 -!- luatre has quit (Remote host closed the connection). 04:23:59 oh heh 04:24:05 MURDERERS 04:24:07 THE LOT OF YOU 04:24:10 it takes 46 seconds on my computer 04:24:12 missed a flush 04:24:14 -!- luatre has joined. 04:24:15 oklopol: try when it comes back 04:24:18 and with your append, of course much more 04:24:21 like, now 04:24:31 because the function that takes 46 seconds is slow because it uses append so much 04:24:33 :..: http://www.vjn.fi/pb/p6825816189.txt 04:24:34 Downloading... 04:24:34 Compiling, just a minute... 04:24:43 if it takes 3 seconds i'll lol at your feeble computer 04:24:49 :P 04:25:02 computer is heating up 04:25:12 consider adding append as a primitive 04:25:19 oklopol: consider FUCK YOU 04:25:24 clue is a language for beauty, not usefulness 04:25:26 or ability to run at all 04:25:39 Exception: Can't compile quicksort(length) :( 04:25:43 oklopol: elliott: i sincerly hope you will make a clue wiki page 04:25:45 oklopol: :DDD 04:25:49 ability to run at all is not even close a design goal, no 04:25:50 i'll add append to std.clue 04:25:50 *+e 04:25:53 *to 04:26:14 length? 04:26:27 erm yes 04:26:28 length 04:26:28 :::. 04:26:29 yeah i added a length function 04:26:32 as primitive, do you have it? 04:26:39 ::. length 04:26:39 KeyError: 'length' :( 04:26:45 hm 04:26:51 also make append check that its arg is not an integer 04:26:56 that's very important 04:27:04 oklopol: what does it do for integers 04:27:06 that either of them isn't 04:27:10 returns none 04:27:22 oklopol: None the python object? 04:27:24 you are joking yes :) 04:27:26 sure 04:27:34 well anyway reloading is broken SO 04:27:35 -!- luatre has quit (Remote host closed the connection). 04:27:36 oh it has a special meaning 04:27:42 it is an exception 04:27:43 ah, i had error 04:27:57 -!- luatre has joined. 04:27:59 oklopol: i haven't implemented that :) 04:28:02 ::. length 04:28:02 length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0))) 04:28:05 ...:D 04:28:10 SNEAKY 04:28:16 at some point, i'm going to add { . [1] -> ! }, that is, erroring out 04:28:22 oklopol: excuse me ^ 04:28:35 as a primitive type system 04:28:36 :::. 04:28:38 ::. length 04:28:39 length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0))) 04:28:41 ::. length 04:28:41 length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0))) 04:28:42 ::. length 04:28:42 length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0))) 04:28:43 ::. length 04:28:43 length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0))) 04:28:43 `addquote clue is a language for beauty, not usefulness ability to run at all is not even close to a design goal, no 04:28:44 -!- luatre has quit (Remote host closed the connection). 04:28:44 262) clue is a language for beauty, not usefulness ability to run at all is not even close to a design goal, no 04:28:44 ...very primitive :D 04:28:50 -!- luatre has joined. 04:28:50 ::. length 04:28:51 length: [#0] | [] => 0 | _ => succ(@(cdr(#0))) 04:28:53 that's better 04:28:55 oklopol: try now 04:29:02 :..: http://www.vjn.fi/pb/p6825816189.txt 04:29:03 Downloading... 04:29:03 Compiling, just a minute... 04:29:03 oerjan: I _mentioned_ ability to run before that :P 04:29:16 "just a minute" is funny because it actually takes about a minute. 04:29:23 caaar ~ {. [1, 3, 4] -> 4} 04:29:24 caaar ~ car; cdr 04:29:35 oklopol: i suspect this will turn into "[#0] | _ => 4" 04:29:35 yeah it's not really caaar 04:29:37 :P 04:29:40 if that's what you mean 04:29:46 oklopol: i suspect this will turn into "[#0] | _ => 4" 04:29:47 is what i mean 04:29:50 but yes, that is also true :P 04:30:00 laptop heating up 04:30:10 caaar pivot helper: [#0] | _ => cons to caaar(car(#0) #1) 04:30:10 greater than?: [compare(#0 #1)] | 1 => 1 | -1 => 0 | 0 => 0 04:30:10 car pivot helper: [#0] | _ => cons to car(car(#0) #1) 04:30:10 pivot right: [#0] | _ => caaar(pivot(#0 #1)) 04:30:10 quicksort helper: [#0] | _ => quicksort append(#0 car(#1) #2) 04:30:11 pivot condition 2: [greater than?(#0 car(#1))] | 0 => 2 | 1 => 3 04:30:11 caaar: [#0] | _ => car(cdr(cdr(#0))) 04:30:12 cons to caaar: [#0] | _ => triple(car(#1) caar(#1) caaar with consed(#0 #1)) 04:30:12 make singleton: [#0] | _ => cons(#0 []) 04:30:13 quicksort: [length(#0)] | 0 => #0 | 1 => #0 | _ => quicksort helper(@(pivot left(car(#0) #0)) #0 @(pivot right(car(#0) cdr(#0)))) 04:30:13 quicksort append: [#0] | _ => append(#0 append(make singleton(#1) #2)) 04:30:14 pivot left: [#0] | _ => car(pivot(#0 #1)) 04:30:14 triple: [#0] | _ => cons(#0 cons(#1 make singleton(#2))) 04:30:14 how could it turn into that 04:30:15 caaar with consed: [#0] | _ => cons(#0 caaar(#1)) 04:30:24 in no way could it turn into that, #4 is not given 04:30:27 oh right 04:30:30 okay sure try it out 04:30:35 ooh 04:30:40 :: quicksort([5 4 1 9 2]) 04:30:40 ... quicksort (1, 2 ,3) 04:30:41 ValueError: substring not found :( 04:30:41 asojuhgfiuje 04:30:47 oklopol: fail :D 04:30:47 now 04:30:48 let's see 04:30:51 :. quicksort([5 4 1 9 2]) 04:30:52 [1 2 4 5 9] 04:30:56 \o/ 04:30:56 | 04:30:57 /`\ 04:30:58 oklopol: you are god 04:31:10 :. quicksort([5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245]) 04:31:11 [1 2 3 4 4 4 5 5 5 6 6 6 6 9 34 34 45 45 45 46 53 54 54 54 54 54 55 65 65 67 67 67 76 76 234 345 345 354 356 435 536 564 643 3467 5245 6356 6543 58678] 04:31:20 it even runs in finite time! 04:31:22 it's great how the actual programs aren't slow at all 04:31:24 WITHOUT blowing the stack! 04:31:37 :. [5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245] 04:31:38 [5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245] 04:31:43 :. length([5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245]) 04:31:43 48 04:31:50 oklopol: yeah anything that can sort a 48 second list in a second is amazing in my book :D 04:31:52 erm 04:31:54 *48 element 04:32:13 elliott: you aren't being sarcastic by any chance? :D 04:32:25 oklopol: MAYBE 04:32:32 you sounded very oerjan for that line 04:32:37 /nick oerklopol 04:32:48 oklopol: but yeah, p. amazing 04:32:52 how come this actually works 04:32:56 idgi 04:32:57 kinda...damaging my faith in languages? 04:33:01 maybe mergesort next 04:33:07 wanna do it? 04:33:16 oklopol: isn't it the clue way that, after doing one sort, you don't need to do any more 04:33:23 because a smart impl could just turn it into any sort it wants 04:33:30 ergo i don't have to do that :D 04:33:33 oerjan: yeah probably i should write up a couple page spec 04:33:43 oklopol: you've done fib right? 04:33:51 nope 04:33:54 go for it 04:33:56 oklopol: oh? then I can 04:33:56 yay 04:34:11 oklopol: i'm very close to writing a clue mode for emacs 04:34:14 just to do the fucking indentation for me 04:34:14 :D 04:34:17 well, *alignment 04:34:23 btw that quicksort should probably go in the stdlib. 04:34:28 why not make it official 04:34:41 although all the functions you made for it should be primitives imo :P 04:34:41 oklopol: well. you see. i would. except the stdlib currently takes about a second to compile. 04:34:49 yeah i might make them primitives ;x 04:34:54 but i'll do fib first 04:35:04 what's wrong with stdlib taking a minute to compile? :D 04:35:36 oerjan: anyway with the tcness definition most people have, clue is tc because i made ski in it 04:36:02 * Sgeo goes to write a wrapper for the AW SDK in Clue 04:36:07 ::: http://www.vjn.fi/pb/p3111652293.txt 04:36:07 Downloading... 04:36:08 Compiling, just a minute... 04:36:09 DepthLimitException: depth limit exceeded (fib) :( 04:36:30 ::: http://www.vjn.fi/pb/p7621978181.txt 04:36:30 Downloading... 04:36:31 Compiling, just a minute... 04:36:32 DepthLimitException: depth limit exceeded (fib) :( 04:36:35 what 04:36:52 oklopol: 04:37:09 oh 04:37:10 duh 04:37:31 ::: http://www.vjn.fi/pb/p8721655922.txt 04:37:31 Downloading... 04:37:31 Compiling, just a minute... 04:37:32 fib: [#0] | 0 => 0 | 1 => 1 | _ => pred(#0) 04:37:33 kinda obvious 04:37:36 oklopol: :DDD 04:38:16 what 04:38:17 xD 04:38:25 that's so fucking great 04:38:29 i know, best fib ever 04:38:36 this language really makes you think 04:38:41 oklopol: i like how i TOLD it i was going to recurse 04:38:46 but it was like... 04:38:49 nah man, this shit is easy 04:38:52 :D 04:38:52 ::: http://www.vjn.fi/pb/p8928373356.txt 04:38:52 Downloading... 04:38:52 Compiling, just a minute... 04:38:52 fib: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0)))) 04:38:56 :DDD 04:39:00 :. fib(10) 04:39:00 55 04:39:01 :. fib(100) 04:39:07 * elliott 's machine catches fire 04:39:07 erm 04:39:18 oklopol: erm? 04:39:21 note that the problem is your algo 04:39:26 that's all 04:39:32 oklopol: my algo looks right to me? 04:39:36 i mean 04:39:41 ":. fib(100)" taking forever 04:39:43 it would in haskell too 04:39:46 well, right 04:39:52 i think i might kill the bot! 04:40:03 i'm just very protective of clue 04:40:11 so i had to tell that right away 04:40:40 `run sed -i 's/usefulness/usefulness or ability to run at all' quotes 04:40:42 No output. 04:40:44 i'ma internalise^Wprimitivise the functions now 04:40:47 `quote ability to 04:40:48 No output. 04:40:50 `quote ability 04:40:53 262) clue is a language for beauty, not usefulness ability to run at all is not even close to a design goal, no 04:40:59 eek 04:41:03 `paste quotes 04:41:04 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.18966 04:41:07 maybe i'll write a real crappy page for clue now so you can then complain about it and i have to make it better 04:41:09 oerjan: the way of the quote database is very subtle. 04:41:20 actually that sounds really hard 04:41:28 oerjan: you missed the last / for instance >:) 04:41:35 darn 04:41:39 wikis are very scary 04:41:40 oklopol: oh man my machine is churning 04:41:49 elliott: fib 100 will never run 04:42:01 `run sed -i 's/usefulness/usefulness or ability to run at all/' quotes 04:42:03 No output. 04:42:20 oklopol: what should I make add([] []) be? 04:42:22 i don't want an error 04:42:24 errors are for like 04:42:25 donkey butts 04:42:26 oh wait 04:42:29 do errors in testing make the test fail? 04:42:32 if so that'd be beneficial 04:42:38 ? 04:42:49 oklopol: add([1 2] [3 4]), I want to stop it working 04:42:49 elliott: well i knew i was tempting fate with using sed -i at all :D 04:42:57 stop it working in what sense 04:42:58 will raising an exception make all tests involving add on list "fail"? 04:43:00 without breaking things 04:43:03 oklopol: stop it returning [1 2 3 4]. 04:43:10 you return None, as i said 04:43:14 `quote ability 04:43:15 -!- luatre has quit (Ping timeout: 240 seconds). 04:43:15 262) clue is a language for beauty, not usefulness or ability to run at all ability to run at all is not even close to a design goal, no 04:43:24 that will not give you a None object in code 04:43:26 it's special. 04:43:41 oklopol: oh-KAY 04:43:41 and it means test cases will fail, i guess that's what you wanna hear 04:43:56 btw isinstance(a,int) fails for sufficiently big a 04:44:00 and s/int/long/ works only for big a 04:44:02 so int(a)==a is best 04:44:43 > let fib = 1:1:zipWith(+)fib(tail fib) in fib!!100 04:44:44 573147844013817084101 04:44:44 oklopol: length(0), None or 1? 04:44:45 :P 04:45:04 length of numbers should be None 04:45:26 types will play a very important in clue 1.5 04:45:28 *role 04:45:49 so let's try to separate the existing two types as much as possible 04:46:26 * elliott removes is even? from stdlib for now 04:46:27 oklopol: okay 04:46:52 oklopol: i'm leaving is zero?, is negative?, and is greater than? in stdlib 04:46:57 because they're... not performance-intensive 04:47:09 -!- luatre has joined. 04:47:13 heh luatre died due to not responding to pings due to being lagged 04:47:14 yeah that's good 04:47:27 oklopol: wanna rename caaar to what it actually is and then link me to the qsort? 04:47:31 i'll add it to my filesystem 04:47:33 haha 04:47:35 yeah maybe 04:47:36 is odd? should be called i don't even? 04:47:40 oerjan: :D 04:47:45 what is this(i don't even?(42)) 04:47:57 oklopol: have you done fact 04:49:06 btw god esolanging is fun, why don't we do it more often :D 04:49:18 http://www.vjn.fi/pb/p8325321461.txt 04:49:19 code=reduce(lambda a,b:a+b,[i for i in code if i!=" "]) 04:49:25 oklopol: you realise that this doesn't remove newlines? 04:49:32 or are they removed elsewher 04:49:32 e 04:50:09 newlines are not the same as spaces 04:50:28 that is true 04:50:29 they are the end marker of bags 04:50:33 oh, true 04:50:51 -!- hagb4rd has quit (Ping timeout: 240 seconds). 04:50:53 i don't really know the syntax... 04:51:00 exactly i mean 04:51:13 "do like in these examples and it should work" 04:51:26 oklopol: how many :s should comments be 04:51:27 *dots 04:51:36 so hmm 04:51:38 four? that's kinda nice since :: looks commenty 04:51:43 or six, ::: looks the same 04:51:44 :: is used 04:51:45 and :: might be wanted for something 04:51:46 okay 04:51:47 :::? 04:51:51 or ...... :D 04:51:53 just not implemented 04:51:55 or :.:. 04:51:57 or .::. 04:52:01 yeah i'll make it six if that's okay 04:52:07 erm well 04:52:13 is that not okay :p 04:52:18 it would be nice if 5 was used as well then 04:52:25 oklopol: well that's reserved for future expansion 04:52:28 :D 04:52:29 haha 04:52:31 yeah that's good 04:52:37 "reserved" 04:52:41 yes :D 04:52:57 are you actually adding :::? 04:53:08 you can just make it cut the rest of the line 04:53:09 yes 04:53:12 i am going to do that 04:53:14 as you were going to do 04:53:16 just saying 04:53:19 :P 04:54:09 oh god that exams gonna go baaaaaaaaaaaaaaaaaaad 04:54:20 caaar (l) = we need to go deeper (3 l) 04:54:31 oerjan: xD 04:54:44 haha 04:55:10 btw once ! is added, you can pretty much exactly write the code you want 04:55:12 know what that means? 04:55:15 no 04:55:29 well umm, hard to put it to words 04:55:40 but it has a similar role as a weird thing as it does in prolog 04:55:43 of course, completely different 04:55:54 but it's this sort of technical thing that can be used to guide searches 04:55:59 right 04:56:06 ghetto_ast is ghetto no more, incorporated into clue.py itself 04:56:10 it's actually very natural in clue, but i just find that fun for some reason 04:56:32 also the meaning is actually kinda similar, "stop this branch of search" 04:56:44 TODO: rename the luatre functions to something nicer, put in luatre.py 04:56:50 (I've decided that the expression language is called luatre) 04:57:14 -!- luatre has quit (Remote host closed the connection). 04:57:20 -!- luatre has joined. 04:57:26 oklopol: put quicksort in again 04:57:38 ! = cut that out 04:57:39 oklopol: while i work on a faster fib 04:58:07 :..: http://www.vjn.fi/pb/p6825816189.txt 04:58:08 Downloading... 04:58:08 Compiling, just a minute... 04:58:14 how do I indicate an error in Haskell ? 04:58:24 caaar pivot helper: [#0] | _ => cons to caaar(car(#0) #1) 04:58:24 greater than?: [compare(#0 #1)] | 1 => 1 | -1 => 0 | 0 => 0 04:58:24 car pivot helper: [#0] | _ => cons to car(car(#0) #1) 04:58:24 pivot right: [#0] | _ => caaar(pivot(#0 #1)) 04:58:24 quicksort helper: [#0] | _ => quicksort append(#0 car(#1) #2) 04:58:24 pivot condition 2: [greater than?(#0 car(#1))] | 0 => 2 | 1 => 3 04:58:24 caaar: [#0] | _ => car(cdr(cdr(#0))) 04:58:25 cons to caaar: [#0] | _ => triple(car(#1) caar(#1) caaar with consed(#0 #1)) 04:58:25 make singleton: [#0] | _ => cons(#0 []) 04:58:26 oerjan: would be nice except it's not a function 04:58:26 quicksort: [length(#0)] | 0 => #0 | 1 => #0 | _ => quicksort helper(@(pivot left(car(#0) #0)) #0 @(pivot right(car(#0) cdr(#0)))) 04:58:26 quicksort append: [#0] | _ => append(#0 append(make singleton(#1) #2)) 04:58:27 pivot left: [#0] | _ => car(pivot(#0 #1)) 04:58:32 > error "Message here" 04:58:33 *Exception: Message here 04:58:39 variable: error "foo" for simple stuff 04:58:51 elliott, perfect - thanks 04:58:55 * Sgeo wants a jetpack 04:58:59 variable: you might also consider returning (Maybe resulttype) instead, or having (Either SomeErrorType resulttype) 04:59:00 who doesn't 04:59:00 http://www.martinjetpack.com/ 04:59:03 variable: for API functions 04:59:21 elliott, nah - I need Error in this case :-} 04:59:22 "The Martin Jetpack is a experimental aircraft. Its tradename calls it a "jet pack", but is not jet- or rocket-powered." 04:59:34 elliott: consider printing compilation time btw, i find it very interesting at least 04:59:39 oklopol: sure 04:59:48 variable: it's just that error and friends can only be caught in the IO monad 04:59:49 so 04:59:56 can someone make a disambiguation page? :P 05:00:19 while Either and Maybe can be analyzed by pure functions 05:00:27 -!- luatre has quit (Remote host closed the connection). 05:00:32 -!- luatre has joined. 05:00:47 when clue was young, i remember ais523 saying "yay, we get our first disambiguation page" 05:01:02 variable: also there is undefined for when you don't even want to give a message 05:01:02 oklopol, lulz 05:01:06 oklopol: should keymaker's lang be "Clue (Keymaker)" or "Clue (2009)" 05:01:14 the former is more disambiguous, the latter...nicer? 05:01:18 oerjan, does error exit the program? or does it continue going.... 05:01:21 in fact clue oklopol has no defined creation date i guess 05:01:22 for sure 05:01:23 *year 05:01:24 so keymaker 05:02:13 oklopol: clue was invented 2010—2011? 05:02:17 or 2009? or 2010? 05:02:23 i doubt it was in 2010 05:02:30 maybe more like 2009 05:02:33 okay 05:02:49 it's hard to say when it became a distinct language, all the ideas were there much before 05:02:59 oklopol: http://esolangs.org/wiki/Clue 05:03:02 variable: it exits unless you catch it from IO 05:03:54 maybe i should call clue clue++, add km's clue commands, and say clue++ is an extension of clue 05:04:05 ...or maybe not :D 05:04:10 elliott: thanks 05:04:18 now all i need to do is actually write something 05:04:19 oklopol: try qsort now 05:04:21 it'll say the time 05:04:28 yayy 05:04:34 :..: http://www.vjn.fi/pb/p6825816189.txt 05:04:35 Downloading... 05:04:35 Compiling, just a minute... 05:04:51 TypeError: cannot concatenate 'str' and 'float' objects :( 05:05:08 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.12/20101026210630]). 05:05:17 elliott, http://pastebin.com/PETSzuE1 --> something is obviously wrong 05:05:18 unn.hs:6:12: parse error on input `<-' 05:05:24 elliott, you should have oved it 05:05:26 moved 05:05:31 -!- hagb4rd has joined. 05:05:32 Oh, n/m 05:05:39 maybe for all the syntax things, there could be a verbose command as well, but uppercase: "!" = CUT IT OUT, ":." = "RECURSION BRACH", ":" = SUBBRANCH 05:05:45 variable: you forgot do 05:05:48 variable: essentially haskell has two kinds of error responses, the ones like error, undefined and throw (with more advanced exception options) that don't show up in your expression type but which exit and can only be caught in IO at most, and the other kind like Maybe and Either which show up in your expression type (usually as a monad wrapper) and don't exit but the result needs to be analyzed by the caller 05:05:55 variable: also Maybe isn't a value 05:05:57 it's a type 05:05:57 Didn't see that the Talk page was in fact on Clue (Keymaker) 05:06:01 so i have no clue whet you were trying to do now 05:06:08 HAHA CLUE 05:06:13 HAHAHAHAHAHA 05:06:24 elliott, I need parseUnn to return either " 05:06:34 an error or "" depending whether the file exists 05:06:49 variable: 05:06:54 if fileExists then error "Oh no." 05:06:59 else return () 05:07:01 is probably what you want 05:07:13 your current function would need {return ""} as well as the fix for Maybe 05:07:15 and you'd have to putStr it 05:07:18 but that would be exceedingly pointless 05:07:39 hrm? 05:07:40 Someone should put a Network Headache server back up 05:07:42 Permanently 05:08:00 Or 05:08:06 -!- Zuu has quit (Ping timeout: 260 seconds). 05:08:11 I wonder if Network Headache could be made to work serverlessly 05:10:14 oklopol: wait 05:10:17 05:04 luatre: TypeError: cannot concatenate 'str' and 'float' objects :( 05:10:18 what 05:10:20 ohh 05:10:28 -!- luatre has quit (Remote host closed the connection). 05:10:33 try _now_ when it comes back 05:10:34 -!- luatre has joined. 05:10:41 elliott, http://pastebin.com/fLwG6dzU -> now I'm getting incorrect indentation 05:11:18 { also I have new idea for a language: similar to python - except that it enforces a *horid* indentation pattern :-)) 05:11:24 :D 05:11:42 oklopol: 05:11:52 variable: indent the else 05:11:55 variable: um yes, then and else must be at the same level 05:11:58 oerjan: better: separate the then 05:12:01 put a new line and two spaces before then 05:12:03 and align the else 05:12:16 elliott, ah then & else. I was aligning the if and else :-) 05:12:29 well then and else don't _need_ to be at the same level, but that may be best 05:12:35 ::: http://www.vjn.fi/pb/p3599837528.txt 05:12:35 Downloading... 05:12:36 Compiling, just a minute... 05:12:36 Compiled in 0.0620181560516 seconds 05:12:36 slow fibonacci: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0)))) 05:12:36 fibonacci: [#0] | _ => fast fibonacci loop(#0 0 1) 05:12:36 fast fibonacci loop: [#0] | 0 => #1 | _ => @(pred(#0) #2 add(#1 #2)) 05:12:43 oklopol: this fibonacci function is VERY fast 05:12:44 I put the then on a new line now :-} 05:12:45 :. fibonacci(100) 05:12:45 354224848179261915075L 05:12:47 :. fibonacci(1000) 05:12:47 OverflowError: long int too large to convert to int :( 05:12:50 ...:D 05:12:52 that needs _fixing_ 05:12:53 did you implement ::: already? 05:13:02 oklopol: as comments, yes 05:13:03 untested :D 05:13:17 oklopol: i'm going to go fix all the functions to not use int() now 05:13:24 variable: technically it's not that else needs to be aligned with anything, but it _cannot_ be aligned with the do statements since it isn't a statement of its own 05:13:34 oklopol: i'll use, uh, long() or something... or maybe maybeintmaybelong() 05:13:35 i'll put ::: on the wiki then 05:13:45 oerjan, ok - that makes sense 05:13:47 oklopol: anyway feed it quicksort again 05:14:23 variable: this actually is being tweaked in the newest haskell standard i think because it trips up so many people 05:15:00 -!- luatre has quit (Remote host closed the connection). 05:15:05 -!- luatre has joined. 05:15:08 oklopol: feed it qs again dammit :D 05:15:11 it'll print compilation time 05:15:14 but actually 05:15:15 ::: http://www.vjn.fi/pb/p3599837528.txt 05:15:15 Downloading... 05:15:16 Compiling, just a minute... 05:15:16 DepthLimitException: depth limit exceeded (fast fibonacci loop) :( 05:15:17 wait until this finishes 05:15:21 what?! 05:15:26 :( 05:15:27 elliott, two more questions a) how do I go thru all the command line arguments b) how do I get the *number* of command line arguments 05:15:29 oklopol: your depth limit is too low 05:15:38 or wait 05:15:39 maybe i have a bug 05:15:54 ah! 05:15:55 indeed 05:16:02 count getArgs ? 05:16:03 { also I have new idea for a language: similar to python - except that it enforces a *horid* indentation pattern :-)) <-- that is one of my design goals for my (mostly vaporware) language Reaper 05:16:22 -!- luatre has quit (Remote host closed the connection). 05:16:27 -!- luatre has joined. 05:16:30 ::: http://www.vjn.fi/pb/p3599837528.txt 05:16:30 Downloading... 05:16:31 Compiling, just a minute... 05:16:31 Compiled in 0.0681719779968 seconds 05:16:31 slow fibonacci: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0)))) 05:16:31 fibonacci: [#0] | _ => fast fibonacci loop(#0 0 1) 05:16:31 fast fibonacci loop: [#0] | 0 => #1 | _ => @(pred(#0) #2 add(#1 #2)) 05:16:37 :. fibonacci(1000) 05:16:37 RuntimeError: maximum recursion depth exceeded in __instancecheck__ :( 05:16:44 dude :( 05:16:53 :. fibonacci(100) 05:16:53 354224848179261915075L 05:16:55 :. fibonacci(800) 05:16:55 RuntimeError: maximum recursion depth exceeded in __instancecheck__ :( 05:16:57 :. fibonacci(500) 05:16:57 RuntimeError: maximum recursion depth exceeded in __instancecheck__ :( 05:17:00 :. fibonacci(300) 05:17:00 222232244629420445529739893461909967206666939096499764990979600L 05:17:08 oklopol: apart from your impl being kinda sucky, that fibonacci is stupid fast :P 05:17:09 oerjan, , two more questions a) how do I go thru all the command line arguments b) how do I get the *number* of command line arguments 05:17:12 and easy to write, too 05:17:21 variable: mapM_ to go through command arguments 05:17:28 mapM_ someFunc aList 05:17:35 number is just (length args) obviously 05:17:36 :) 05:17:42 args ? 05:17:50 variable: if you've done "args <- getArgs" 05:17:53 oh right 05:17:55 * variable is an idiot 05:17:57 :) 05:18:05 -!- azaq23 has joined. 05:18:09 oklopol: fine I'll feed it qs 05:18:10 now - once I bind args - how do I get out of the "do" 05:18:17 ::: http://www.vjn.fi/pb/p6825816189.txt 05:18:17 Downloading... 05:18:17 Compiling, just a minute... 05:18:18 variable: what 05:18:19 I don't need to be in an IO thing anymore 05:18:26 I want to go back to pure functional 05:18:29 variable: um, you can't, what do you mean 05:18:32 variable: just call purely-functional functions 05:18:34 kk 05:18:37 inside the do 05:18:39 and do something with them 05:18:40 e.g. 05:18:45 print (somePurelyFunctionalThing 42) 05:18:47 Compiled in 14.6956260204 seconds 05:18:48 caaar pivot helper: [#0] | _ => cons to caaar(car(#0) #1) 05:18:48 cons to car: [#0] | _ => cons(cons(#0 car(#1)) cdr(#1)) 05:18:48 triple: [#0] | _ => cons(#0 cons(#1 make singleton(#2))) 05:18:48 quicksort helper: [#0] | _ => quicksort append(#0 car(#1) #2) 05:18:48 pivot condition 2: [greater than?(#0 car(#1))] | 0 => 2 | 1 => 3 05:18:48 caaar with consed: [#0] | _ => cons(#0 caaar(#1)) 05:18:49 cons to caaar: [#0] | _ => triple(car(#1) caar(#1) caaar with consed(#0 #1)) 05:18:49 make singleton: [#0] | _ => cons(#0 []) 05:18:50 quicksort: [length(#0)] | 0 => #0 | 1 => #0 | _ => quicksort helper(@(pivot left(car(#0) #0)) #0 @(pivot right(car(#0) cdr(#0)))) 05:18:50 caar: [#0] | _ => car(cdr(#0)) 05:18:51 quicksort append: [#0] | _ => append(#0 append(make singleton(#1) #2)) 05:18:51 pivot left: [#0] | _ => car(pivot(#0 #1)) 05:18:52 car pivot helper: [#0] | _ => cons to car(car(#0) #1) 05:19:08 elliott, erm - I need to get the number of arguments **before** I do args <- 05:19:09 oh wait, that is a slightly old one 05:19:10 but who cares :) 05:19:17 variable: no, you don't, and that's patently impossible 05:19:17 otherwise haskell outputs an error 05:19:27 variable: where do you use the arguments? 05:19:28 -!- luatre has quit (Remote host closed the connection). 05:19:33 variable: show your code 05:19:34 -!- luatre has joined. 05:19:39 elliott,hang on a sec 05:20:30 elliott, meh - I made a mistake 05:20:41 before I had (fileName:_) which caused an error with 0 arguments 05:21:00 indeed 05:21:02 variable: try 05:21:03 case args of 05:21:07 [fileName] -> ... 05:21:12 _ -> error "you used it wrong, idiot!" 05:21:18 rather than mucking about with length etc. 05:21:33 kk 05:22:32 oklopol: did you die 05:22:35 variable: or possibly [] -> error "you used it wrong, idiot!" as the first option if you want to allow more than one filename 05:22:40 oklopol: can you do constants for branchers already 05:22:42 case args of 05:22:48 [] -> error "you used it wrong, idiot!" 05:22:55 filenames -> ... 05:22:55 _ -> mapM_ processArg args 05:23:01 or that 05:23:04 elliott: will you remove the commas btw? 05:23:09 or did you already? 05:23:14 because i'll make that official if 05:23:48 oklopol: i will now 05:23:52 oklopol: if you remove them from qsort :P 05:24:16 i can remove them from quicksort and ski, sure 05:24:23 oklopol: thanks 05:24:26 oklopol: i'll give you my latest ski 05:24:29 i think i modded it 05:24:52 oklopol: http://www.vjn.fi/pb/p1739965483.txt 05:25:02 variable: incidentally it is generally considered bad form to use length to check whether a list is empty, since that works badly when you want computation to be as lazy as possible, especially with empty lists 05:25:12 er 05:25:19 *especially with infinite lists 05:25:40 oklopol: oh, this might be an issue 05:25:46 oklopol: you kinda strip spaces 05:25:49 which become the only separators 05:25:49 oerjan, makes sense 05:26:02 oklopol: shall i uh redesign the parser :D 05:26:25 in fact even using list == [] is considered bad form because that needlessly forces the element type to be comparable for equality 05:26:57 yeah infinite cmd line args 05:26:57 :D 05:27:18 elliott: well i'm just trying to prevent him from getting into bad habits 05:27:38 yes yes :) 05:28:08 hm 05:28:10 :t null 05:28:11 forall a. [a] -> Bool 05:28:18 indeed 05:28:20 oklopol: so uh any ideas 05:28:33 that's the function to use, although it's usually even better if you can use pattern matching 05:28:41 oerjan, I'm a little confused now: how do I return from a function that an error occurred? Just, Maybe ? 05:28:59 variable: Nothing 05:29:02 :t Nothing 05:29:02 forall a. Maybe a 05:29:12 oklopol: i think i fixed it 05:29:13 (that's a value ;D) 05:29:26 oklopol: indeed 05:29:29 oklopol: do you want my current interP? 05:29:31 oerjan, Nothing is an error ? I was using it to say that nothing needs be done - should I return () for that? 05:29:31 *interp? 05:29:43 variable: data Maybe a = Just a | Nothing 05:29:49 variable: imagine the result of a hash table lookup 05:29:53 if an element is there, you would return (Just value) 05:29:55 otherwise, Nothing 05:29:57 that's the use of it 05:30:04 ah 05:30:07 that makes sense 05:30:12 variable: hm if you aren't actually returning a value in either case, maybe it would better to use Bool 05:30:14 note that obviously if you return Nothing somewhere you have to return Nothing or (Just x) everywhere 05:30:19 otherwise you'd be stepping outside Maybe 05:30:32 oerjan: except 05:30:35 i want your interp once i've written a crappy version of the spec 05:30:37 oerjan: he's already wrapping doesFileExist 05:30:38 oerjan, the weird thing in this case is that I need to return nothing except on error 05:30:40 which results in IO Bool 05:30:40 :) 05:30:46 elliott: yeah :D 05:30:48 variable: try this: 05:31:24 filterM doesFileExist 05:31:32 :t filterM 05:31:32 forall a (m :: * -> *). (Monad m) => (a -> m Bool) -> [a] -> m [a] 05:31:35 variable: runProg filename = do exists <- doesFileExist filename; if exists then error "Oh no!" else return (); main = do args <- getArgs; case args of [] -> error "Oh no!"; _ -> mapM_ runProg args 05:31:37 oerjan, http://www.esolangs.org/wiki/Unnecessary --> Writing a compiler for this 05:31:40 oerjan: oh, now it's on 05:32:07 :t any 05:32:07 forall a. (a -> Bool) -> [a] -> Bool 05:32:11 :t anyM 05:32:12 Not in scope: `anyM' 05:32:15 elliott, I had that - but then the compiler exits after the first bad file name 05:32:27 variable: ah, you do not want that? 05:32:50 elliott, no - I want it to go thru every given file name and report failure of any of them 05:32:56 @hoogle (a -> m b) -> m a -> m b 05:32:56 Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b 05:32:56 Control.Monad (=<<) :: Monad m => (a -> m b) -> m a -> m b 05:32:57 Prelude (>>=) :: Monad m => m a -> (a -> m b) -> m b 05:33:11 variable: don't use error, then 05:33:19 elliott, just return a plain string? 05:33:37 main = getArgs >>= filterM doesFileExist >>= mapM_ (\bad -> putStrLn "Oh no! " ++ bad ++ " exists!") 05:33:39 just use that >:) 05:33:48 variable: I would use putStrLn directly 05:33:50 ==...== is a section, can i make a subsection kinda thing 05:33:51 since you're in IO already 05:33:55 oklopol: ===foo=== 05:34:07 -!- luatre has quit (Remote host closed the connection). 05:34:11 everything else someone else will have to fic 05:34:13 *fix 05:34:13 -!- luatre has joined. 05:34:14 thanks 05:34:16 oklopol: commas removed, plz2be qsort and ski 05:34:20 with that ski i gave you 05:34:50 oklopol: so it's 5:34 am and i blame you 05:35:48 Vorpal: oklopol: http://www.minecraftwiki.net/wiki/Ambience oh holy fucking shit i had no idea this exists 05:35:52 *existed 05:35:53 why does this exist 05:36:05 elliott: i think it would have become 5:34 am eventually regardless 05:37:06 elliott, http://pastebin.com/8SRWxGm4 this is what I have so far. If I add putStrLn before parseUnn it fails; if uncomment the commented line it fails 05:37:11 oklopol: http://www.youtube.com/watch?v=4PA2uLm8ups jesus fucking christ this is terrifying 05:37:27 variable: ok well, that is wrong 05:37:33 variable: pop quiz 05:37:43 variable: er wait i see 05:37:46 variable: right, okay, firstly 05:37:47 you're in IO 05:37:50 so you need to have -> IO String 05:37:51 -!- hagb4rd has quit (Ping timeout: 240 seconds). 05:37:55 oh - right 05:38:15 variable: "putStrLn parseUnn" fails because parseUnn isn't a string :) 05:38:34 variable: mapM_ (\filename -> parseUnn filename >>= putStrLn) fileNames would work 05:38:36 but is rather ugly 05:38:42 oerjan should not respond with fancy monad operators now 05:38:45 as it will not help :) 05:38:51 variable: I would s/return/putStrLn/ in parseUnn 05:38:58 elliott, I'd rather not 05:39:02 variable: and note that putStrLn "" will print a blank line -- use return () instead 05:39:03 variable: why not? 05:39:09 cause I want to learn the functional method of doing things 05:39:18 variable: the functional method of doing things is not done in IO :-) but okay 05:39:29 variable: well... add \n to the end of the error string 05:39:41 then s/putStrLn/putStr/ in the line that i said would work but is ugly 05:39:43 that would work 05:39:47 A song got stuck in my head 05:39:47 elliott, the goal of this isn't to get it done. I did it in bash, perl, ruby, etc already - its to learn the language 05:39:54 It contains more than my usual amount of swearing 05:39:59 variable: yeah :) 05:40:07 variable: try to one-line project euler problems in haskell 05:40:10 variable: well, the whole operation of Unnecessary is basically IO. 05:40:19 if FILE EXISTS, ok, if not, PRINT AN ERROR 05:40:25 variable: so it is hard to suggest a functional way to do this :) 05:40:44 -!- hagb4rd has joined. 05:40:52 elliott, heh 05:41:01 variable: although it _is_ possible to use higher-order monadic functions like filterM and mapM 05:41:06 *mapM_ 05:41:07 oerjan is right 05:41:07 coppro, I will - I've already done a few of them though 05:41:15 oerjan, explain ? 05:41:39 main = getArgs >>= filterM doesFileExist >>= mapM_ (\bad -> putStrLn "Oh no! " ++ bad ++ " exists!") 05:41:55 @hoogle (a -> b) -> (c -> m a) -> c -> m b 05:41:55 Language.Haskell.TH.Quote dataToQa :: Data a => (Name -> k) -> (Lit -> Q q) -> (k -> [Q q] -> Q q) -> (b -> Maybe (Q q)) -> a -> Q q 05:41:58 darn 05:42:00 oerjan, interesting 05:42:02 * variable has an idea 05:43:11 oklopol: hihi are you converting 05:43:25 oklopol: holy fucking shit 05:43:26 oklopol: http://i.imgur.com/iJ2eG.jpg 05:43:27 that bastard 05:43:30 i am gonna rip his head off :D 05:45:05 oklopol: taaalk 05:45:32 @more 05:45:46 i distinctly recall @more working once upon a time 05:45:48 or wait 05:45:57 @hoogle (a -> b) -> (c -> m a) -> c -> m b 05:45:57 Language.Haskell.TH.Quote dataToQa :: Data a => (Name -> k) -> (Lit -> Q q) -> (k -> [Q q] -> Q q) -> (b -> Maybe (Q q)) -> a -> Q q 05:45:59 @more 05:46:06 there is no more :P 05:46:21 just in case someone else had got a command in in #haskell or such 05:46:51 elliott: well it's fmap/liftM + <=< of course 05:47:00 but it may not have a single function for it 05:47:14 or wait 05:47:22 oklopol oklopol oklopol oklopol oklopol oklopol 05:47:25 oerjan: make oklopol talk 05:48:00 :t (\f x -> fmap f . x) 05:48:01 forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f1 (f a) -> f1 (f b) 05:48:11 er 05:48:50 oklopol 05:49:08 oh wait right 05:49:10 :t (.) 05:49:10 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 05:49:20 lambdabot still defines (.) = fmap :D 05:49:21 oerjan: make oklopol talk 05:49:27 oklopol: TALK 05:49:30 :t map 05:49:31 forall a b. (a -> b) -> [a] -> [b] 05:49:33 LAME 05:49:39 -!- hagb4rd has quit (Ping timeout: 240 seconds). 05:49:47 oerjan: but yes, of course it defines (.) = fmap, as specified by the Caleskell Report 05:50:18 elliott: your function is just (.)(.) with that notation >:) 05:50:23 :D 05:50:26 fmap fmap fmap 05:50:27 :t (.)(.) 05:50:27 forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Functor f1) => f1 (a -> b) -> f1 (f a -> f b) 05:50:37 er or is it 05:50:51 lol 05:51:19 :t (.).(.) 05:51:20 forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b) 05:51:26 that's better 05:51:43 indeed it _is_ fmap fmap fmap 05:52:03 fmap fmap fmap fmap fmap fmap fmap 05:52:26 elliott: that reiterates after four fmaps 05:53:03 well eventually. i don't quite recall if it's immediately. 05:54:00 oklopol 05:54:03 oklo fucking pol 05:57:52 ais523: WIKI SPAM 05:58:15 * oerjan cackles disturbingly 06:01:15 oerjan: make oklopol a human 06:01:54 a recall reading somewhere that needing to sleep is a distinctly human characteristic 06:02:10 he was working on the wiki page 06:02:12 clearly not sleeping 06:02:24 but it is 8 am there :/ 06:03:33 well he hasn't saved the page 06:04:52 http://esolangs.org/wiki/Clue_%28oklopol%29 06:05:07 OH NOES 06:05:33 i tried to make it roughly correct, but didn't really aim for readability or completeness. 06:05:41 you can fix the formatting 06:06:05 oklopol: you will be mercilessly haunted by graue for creating a new category. well, if he gave any sign of being alive, that is. 06:06:32 or perhaps not being alive would help with the haunting 06:06:37 :P 06:07:04 anyway, does that make sense to elliott after already knowing the language? 06:07:17 that much would be nice 06:07:19 oklopol: have you converted qs or ski 06:07:30 oklopol: don't call them commands 06:07:33 that's too impure for clue 06:07:37 i shouldn't, true 06:07:39 it's just 06:07:50 they didn't really have a name, so i just chose a consistent naming for the purpose of writing that. 06:07:57 but so 06:07:59 "betweem" :D 06:08:05 a clue is the set of stuff defining a single function 06:08:09 oklopol: i'll completely rewrite that, _tomorrow_ 06:08:19 go for it 06:08:28 oklopol: now gimme ski and qs without commas 06:08:43 oklopol: based on this ski http://www.vjn.fi/pb/p1739965483.txt 06:09:03 elliott, \filename what is that syntax called? 06:09:09 i suppose an example should actually be a single [1] -> [2] thingie 06:09:14 variable: lambda... it's (\args -> value) 06:09:23 but then i need a name for { ... } 06:09:29 branch 06:09:31 i guess 06:09:37 oklopol: i'm wondering whether removing commas is actually nice 06:09:52 well i haven't seen code with that, it's just something i've been wanting to have 06:10:14 oklopol: do it to qs and a decision can be made 06:10:42 quicksort ~ {. [] -> [] } 06:10:42 quicksort ~ {. [1] -> [1] . [2] -> [2] } 06:10:42 quicksort ~ {:. [4 2 3 1] -> [1 2 3 4] 06:10:43 : [2 3 1] -> [1 2 3] 06:10:43 : [] -> [] 06:10:43 :. [2 5 4 1 5] -> [1 2 4 5 5] 06:10:43 : [1] -> [1] 06:10:44 : [5 4 5] -> [4 5 5] 06:10:44 :. [1 2 3] -> [1 2 3] 06:10:45 : [] -> [] 06:10:45 : [2 3] -> [2 3] } 06:10:46 quicksort ~ length; cdr; car; pivot left; pivot right; quicksort helper 06:10:47 you tell me that's not elegant as shit 06:10:49 Couldn't match expected type `IO b' 06:10:50 against inferred type `[String] -> IO ()' 06:10:54 _ -> mapM_ (\filename -> parseUnn filename >>= putStrLn) 06:10:56 oklopol: well sure 06:11:07 oklopol: what is this supposed to be? 06:11:14 oklopol: so um just want to check, we are standardising on my impl right :p 06:11:19 coppro: quicksort 06:11:26 since... it's incompatible with yours on just about every program now 06:11:28 oklopol: well obviously 06:11:30 due to renames and syntax 06:11:38 but what's with the funny syntax? 06:11:54 coppro: it's clue, if you don't understand it 06:11:54 then 06:11:55 elliott, what am I doing wrong with that? 06:11:55 well 06:11:59 i guess you're mentally retarded cuz 06:12:02 easiest language ever! 06:12:07 elliott: yes, removal of <> will be in clue 1.0 if that's okay by you 06:12:12 variable: you forgot to provide the list at the end 06:12:20 oklopol: 1.0? don't you mean 1.5 06:12:30 oh i forgot to credit myself, which i obviously want to do 06:12:35 oklopol: but i also mean the renaming of funcs and stuff 06:12:45 coppro: the syntax isn't funny 06:12:48 oklopol: can we call what i have clue 1.25 or at least close to it :p 06:12:51 oklopol: what language? 06:12:55 yeah the syntax isn't the funny part of clue 06:12:57 elliott, oh - I'm an idiot :-} 06:13:01 elliott: can't we just call it clue 1.0? 06:13:08 oklopol: but what you had was clue 1.0 06:13:13 i've been thinkin' of this as clue 1.25 06:13:15 but the changes are tiny :\ 06:13:26 oklopol: but it's also the OPTIMISATION 06:13:36 oklopol: clue 1.5 is when we get constants in branches, I know that much :) 06:13:45 oklopol: aww c'mon, let me have the 1.25 version number 06:13:46 oklopol: link 06:13:49 it's so shiny and cuddly? 06:13:49 OR the sensible branching system 06:14:13 oklopol: what's a sensible system 06:14:48 elliott, http://pastebin.com/zVZnPNHj - final version 06:14:52 elliott: the one we designed with ilkka, or mostly i defined 06:14:59 the obvious system. 06:15:00 oklopol: summarise? 06:15:08 oklopol: because i like the current system a lot 06:15:12 instead of having one branching function, separate things one at a time. 06:15:14 variable: yay :P 06:15:14 variable: wut 06:15:21 oklopol: i don't get it 06:15:24 oh 06:15:27 lol 06:15:34 oklopol: that sounds like clue 2.0 to me anyway, not 1.5 06:15:40 if you find something that's true for a certain subset of examples, but not the other ones, first branch on that 06:16:08 oklopol: theoretically that can be done already 06:16:12 oklopol: if you have add in the bag 06:16:13 coppro, what is with the wut ? 06:16:20 oklopol: since it can do addition of booleans... and also other stuff :) 06:16:24 oklopol: like multiplication of booleans! 06:16:27 or even 06:16:29 just cons them into a list 06:16:29 ofc 06:16:36 oklopol: should improper lists be allowed 06:16:37 i.e. cons(1 2) 06:16:38 i'm aware of that. 06:16:41 i say no 06:16:49 variable: nevermind 06:16:59 elliott: no, they should not 06:17:02 rite 06:17:14 there can be a tree type in the stdlib tho 06:17:22 RTYPOE TYPES TYPES 06:17:31 oklopol: can we ditch _? it can easily be coded in two lines 06:17:33 and it's an ugly name 06:17:39 and post-<>-removal it's basically never ever useful ever 06:17:42 certainly 06:17:44 hey 06:17:46 i just realized 06:18:04 you're like the secretary i've been talking about getting that does all the trivial stuff for me because i can't be assed 06:18:10 elliott, I have a new languag. You define a set of functions and set of conditionals for those functions. There is only global state and functions never make calls. instead once a function is started it goes to completion. When a functions completes the compiler chooses randomly from the set of functions whose conditionals are true 06:18:11 how much do you want me to pay ya 06:18:14 hi 06:18:15 sup 06:18:21 oklopol: 0, i find this fun 06:18:24 cheater00: inf 06:18:26 's good language 06:18:28 well okay, i guess 06:18:33 elliot: do you use be? 06:18:41 oklopol: well you can pay me £1000/day if you really want 06:18:43 cheater00: not available here. 06:18:52 cheater00: i'm planning on switching to bogons.net... 06:18:58 i wonder if i can reprogram my bebox to work with other isps 06:19:01 it's still dsl2 06:19:23 are you in uk 06:19:28 no germany 06:19:30 ah 06:19:33 i took my bebox with me :D 06:19:33 cheater00: just buy a linksys 06:19:35 :P 06:19:38 i'm cheap 06:19:39 all other routers are shit 06:19:48 someone should really fix "Quicksort: http://www.vjn.fi/pb/p6825816189.txt SKI: Well I don't have the link at hand but anyway." 06:19:59 and add corrected qs there 06:20:00 and ski 06:20:03 oklopol: well 06:20:08 new language -- define a set of functions and set of conditionals for those functions. There is only global state and functions never make calls or exit early. instead once a function is started it goes to completion. When a functions completes the compiler chooses randomly from the set of functions whose conditionals are true 06:20:09 oklopol: i will fix qs and ski i guess 06:20:13 variable: heh 06:20:18 variable: it's like clue but worse! :) 06:20:22 but then 06:20:23 so is every language 06:20:24 someone should really fix """ someone should really fix "Quicksort: http://www.vjn.fi/pb/p6825816189.txt SKI: Well I don't have the link at hand but anyway." """ 06:20:25 apart from clue 06:20:44 variable: it's like thue but worse 06:20:54 :D 06:20:58 it's like intercal but worse 06:21:06 no THU 06:21:42 " oklopol: i will fix qs and ski i guess" <<< thank you, although i did it already 06:21:43 oklopol: can i convert windows line endings to unix on all these files :D 06:21:48 unless you code with notepad i guess (wordpad can do it) 06:21:49 assuming it was just commas 06:22:05 also, i just did it too 06:22:07 and it's nicer i think 06:22:12 also re-indented ski 06:22:38 can you put them on the wiki AND link them here 06:22:38 ? 06:22:48 sure 06:22:56 i'll even put them on a wiki page, not vjn 06:23:22 k 06:23:27 oklopol: you forgot to mention how : = .. 06:23:32 ohhh 06:23:36 that's like the most important part! 06:24:36 oklopol: you are the weakest link. 06:26:40 -!- lambdabot has quit (Ping timeout: 240 seconds). 06:26:43 lolwat 06:26:54 oklopol: examples added 06:26:59 elliott: i added that information on the page, in its rightful spot. 06:27:00 There is a spammer on the wiki... posting nice but irrelevent stuff. Not a singe link 06:27:13 "You certainly have some agreeable opinions and views. Your blog provides a fresh look at the subject." 06:27:13 oklopol: :D 06:28:34 or maybe that should be mentioned first 06:28:40 no :P 06:28:44 :d 06:28:50 oklopol: it's approaching 7 am so i'm going to sleep soon, but yeah, clue 06:28:52 isn't it great 06:28:57 it's fucking <3 06:29:16 oklopol: possibly your crowning achievement as far as esolangs go 06:29:28 oh sure the others have more interesting "theoretical" bases 06:29:30 yeah i suppose. 06:29:34 but do they obsolete the notion of programming itself?! 06:29:38 :D 06:29:49 oklopol: http://www.vjn.fi/oklopol/clue.txt oh my god what is this, Clue 0.1? 06:29:51 it's so...retro 06:30:01 haha 06:30:07 omg i didn't remember 06:30:09 hahahahaa 06:30:15 oklopol: i actually kind of like it XD 06:30:29 oklopol: i have a suggestion 06:30:31 you know in the bag 06:30:32 #foo 06:30:34 why not drop the # 06:30:35 it's fugly. 06:30:44 then the bag becomes like... "things you need" 06:30:50 yep 06:30:55 that's another great idea 06:30:56 oklopol: will implement :P 06:31:03 yay 06:31:30 Sgeo: one theory is that such spammer bots are trying to put their links in some form field which doesn't actually exist 06:31:33 WHAT ELSE SHOULD IT HAVE TELMMETELMMEE :D 06:31:46 so that they don't show up in the resulting edit 06:31:55 oklopol: BLACKJACK AND HOOKERS 06:32:13 oklopol: stuff_to_clue what is this what what what 06:32:24 ? 06:32:34 ah tknz_helper_list looks useful 06:32:52 split by ";" ? :D 06:33:32 -!- pikhq has quit (Ping timeout: 264 seconds). 06:33:35 okay it seems it does something more than that 06:34:05 oklopol: # purged 06:34:21 you don't even mention helper objects in the article btw 06:34:25 Sgeo: if you google that "You certainly have some agreeable opinions and views" phrase you will find that the spam is also in comments on some sites that are not wikis at all 06:34:33 indeed i don't 06:34:54 as i said, didn't really aim for completeness, but yeah those should certainly be mentioned 06:35:18 website 06:35:24 Found one.. it links to website 06:35:26 -!- pikhq has joined. 06:35:28 examples fixed 06:35:28 :D 06:35:29 http://website/ 06:35:37 Sgeo: huh 06:35:42 http://www.knowyouaregod.com/blog/2010/03/27/13/ 06:36:07 Last comment 06:36:08 oklopol: this is the greatest language 06:36:24 Sgeo: it could be that is also just something being put in the wrong format for a field? 06:36:26 oklopol: i just wish, you know, coding in it didn't suck, because i'd totally use it for everything :D 06:37:03 Ah, here the spammers suceeded: http://www.universities-in-europe.com/7-unconventional-ways-to-pay-for-a-college-education.html 06:37:11 oklopol: so have you ever used emacs 06:37:30 * Sgeo falls in love with Clue 06:37:39 i think i've kinda used it a bit, at some point, but not really a relevant amount. 06:37:58 oklopol: if it had it so that if you changed the name of a clue function, all the lines in the branch would automatically get re-aligned 06:38:01 -shutup- Shut up about Clue! 06:38:05 how much more perfect would your life be 06:38:06 apart from 06:38:07 ENTIRELY 06:38:26 :)))))))))))) 06:38:32 oklopol: IS THAT "ENTIRELY" I HEAR 06:38:38 i believe i specifically forbade entirely as an answer 06:38:51 oklopol: why does stuff.py exist btw, it's not like clue.py isn't 700 lines :D 06:39:32 i... dunno? 06:39:41 it's not like there's any kind of logical separation 06:39:45 :D 06:40:09 i just felt like things should be in multiple files because that's how adults code 06:40:18 :D 06:40:23 i'm a big boy now and i'm going to use multiple files 06:40:28 yep 06:41:41 oklopol: should...multiplication be in the stdlib 06:41:43 i'm thinking yes? 06:41:43 I think PSOX was my only multi-file project thus far 06:41:44 mutual recursion is going to be a very big step, and i have no idea what the nice way to do it is 06:41:44 >.> 06:41:51 elliott: primitive. 06:41:57 mutual recursion is clue 1.75 isn'tit 06:41:58 *isn't it 06:42:01 or even 2.0 06:42:04 I was almost certainly under .. wai 06:42:06 there's no reason to make things slow just for the sake of making them slow 06:42:13 Was about to say under 18, but I must have been 18 06:42:18 Sgeo: in fact i vaguely recall reading that one antispam technique is to include an invisible form field which _only_ bots would fill out, as a honeypot 06:42:27 oklopol: call it "multiply"? 06:42:33 yes 06:42:45 done :) 06:42:52 also divide, and make it fail if result is not int! :P 06:43:01 i'm not sure that's very sensible 06:43:16 I can efel myself barely abl to type 06:43:24 just staring at the screen numbly 06:43:28 I don't know wh 06:43:31 y 06:43:32 Sgeo: being there 06:43:34 oklopol: 06:43:35 ---- factorial 06:43:36 [#0] 06:43:36 | 0 => 1 06:43:38 | 4 => multiply(#0 @(pred(#0))) 06:43:40 :D 06:43:42 that's hilarious 06:43:44 because 06:43:46 factorial(4) doesn't even result in 24 06:43:48 which was my testcase 06:43:51 factorial ~ {. 0 -> 1 } 06:43:52 factorial ~ {:. 4 -> 24 06:43:54 : 3 -> 6 06:43:56 : 2 -> 2 } 06:43:58 factorial ~ multiply; pred; 1 06:44:00 ::: factorial(10) 06:44:00 Downloading... 06:44:00 ValueError: unknown url type: factorial(10) :( 06:44:02 AttributeError: 'NoneType' object has no attribute 'isbase' 06:44:04 ::: factorial(4) 06:44:04 Downloading... 06:44:04 ValueError: unknown url type: factorial(4) :( 06:44:06 AttributeError: 'NoneType' object has no attribute 'isbase' 06:44:08 oklopol: clue.py bug? 06:44:10 oklopol: i think definitely 06:44:20 :o 06:44:28 oh that's umm 06:44:48 yeah that's kinda a clue.py bug. i noticed it earlier but i didn't feel like fixing it 06:44:51 lol 06:44:54 well i fixed it in factorial 06:44:58 that means none of your branches has been chosen as the default one 06:45:00 omg 06:45:01 :D 06:45:08 oklopol: guess what happens when i deprive factorial of 1 06:45:10 but that's an easy fix 06:45:12 ? 06:45:15 ---- factorial 06:45:15 [#0] 06:45:15 | 0 => multiply(pred(#0) pred(#0)) 06:45:16 | _ => multiply(#0 @(pred(#0))) 06:45:18 :DDD 06:45:20 :DDDDDDDDDDDDDDDD 06:45:23 clue is anti-cubic 06:46:09 btw your factorial definition is very weird 06:46:18 howso 06:46:22 did you copy paste it from your fibonacci program 06:46:28 no 06:46:29 why 06:46:33 but yeah 06:46:33 i realise 06:46:36 i don't need the extra : 06:46:37 i separated it out 06:46:37 can i have your current version? 06:46:46 stack-hogging factorial ~ {. 0 -> 1 } 06:46:46 stack-hogging factorial ~ {:. 4 -> 24 06:46:46 : 3 -> 6 06:46:48 :. 3 -> 6 06:46:50 : 2 -> 2 } 06:46:50 yeah, it should still work that way, but you need another base case 06:46:52 stack-hogging factorial ~ multiply; pred; 0 06:46:54 gonna do tail-recursive now 06:46:56 AND THEN SLEEP 06:47:12 because it will actually do the recursion, just ignore the result :D 06:47:24 or... i guess it might use it as well, but then it would prolly be wrong 06:48:17 elliott: 06:48:19 if default==None: 06:48:19 default=clue.branches[len(clue.branches)-1] 06:48:23 in erm 06:48:38 call clue, instead of what was @ if default == None before 06:48:51 that should maybe fix things. 06:49:02 MAYBE NOT, HOWEVER. 06:49:08 oklopol: you do that :P 06:49:12 meanwhile cluetest.py has hung for me 06:49:15 i did, but my version is oooooooooold 06:49:26 oklopol: you can fix it in mine tomorrow, double fun 06:49:29 can i get all your files 06:49:37 and i'm not here tomorro 06:49:37 w 06:49:43 oklopol: well 06:49:46 oklopol: if you promise not to like 06:49:48 rewrite them all 06:49:49 because i'd get sad 06:49:55 i won't rewrite anything 06:50:11 just change those two lines, and maybe test out the current version on the examples 06:50:52 oklopol: does vjn have a file-uploady 06:51:02 yes, the filebin, but i doubt it actually works 06:51:06 link :P 06:51:15 oklopol: btw cluetest is the repl, "python cluetest.py file1 file2 file3", very useful for testing, see its source for more 06:51:26 and i don't know where it is, it seems 06:51:29 oklopol: don't change cluetest or cluebot, though, I want to factor out the luatre code into a separate file rather than copypasting it 06:51:34 before anything else changes 06:52:01 factorial loop ~ {. 0 6 -> 6 06:52:01 . 0 24 -> 24 } 06:52:01 factorial loop ~ {:. 3 1 -> 6 06:52:03 : 2 3 -> 6 06:52:04 i'm not going to change anything. 06:52:05 :. 1 6 -> 6 06:52:07 : 0 6 -> 6 } 06:52:09 factorial loop ~ multiply; pred 06:52:11 factorial ~ {. 0 -> 1 06:52:13 . 3 -> 26 06:52:15 . 4 -> 24 } 06:52:17 factorial ~ factorial loop; 1 06:52:19 why does this hang clue? 06:52:34 maybe because of . 3 -> 26 06:53:06 uploading clue 06:53:13 oklopol: oops :D 06:53:22 oklopol: http://rapidshare.com/files/441572099/clue.zip 06:53:28 elliott: has your superdrive arrived? 06:53:31 oklopol: feel free to correct it to 3 -> 6 locally in numplay.clue :P 06:53:34 cheater00: no, about monday or tuesday 06:53:59 oklopol: btw i would like it if the implementation became properly tail recursive even though python doesn't really allow that 06:54:05 -!- pikhq has quit (Ping timeout: 255 seconds). 06:54:14 oklopol: I might make it compile to something that isn't a tangle of lambdas in a day or so 06:54:26 because right now tail recursive code is useless :D 06:54:32 elliott: that's inacceptable 06:54:36 cheater00: what is 06:54:43 yes, was thinking of mentioning that, but realized you aren't an idiot 06:54:46 this time delay 06:54:50 cheater00: ...why? 06:55:23 elliott: compiling to python bytecode shouldn't be very hard 06:55:27 i mean directly 06:55:42 -!- pikhq has joined. 06:55:42 oklopol: yeah but also python bytecode is kinda gross 06:55:45 oklopol: maybe x86 asm :> 06:56:12 java bytecode would be nice. just because. 06:56:29 everyone else is doing it! 06:56:37 oklopol: well it would certainly be fast. 06:56:39 probably 06:56:44 elliott: because i want you to finally stop using macintosh operating system 06:56:53 cheater00: i've used debian for the past months and ubuntu before that... 06:56:57 i haven't touched os x in like a year 06:57:06 oklopol: python bytecode has the advantage of being able to do reply stuff easy 06:57:08 *easier 06:57:08 YOU HAVE BECOME UNPURE 06:57:13 oklopol: and it's like... fast enough :P 06:57:33 what are you doing with python? 06:58:06 cheater00: Clue 06:58:12 what's that? 06:58:12 the most intuitive language possible 06:58:17 why? 06:58:32 just give the results, and the compiler infers all the code! 06:58:35 cheater00: because you write your programs by simply listing a few example inputs and outputs, and show how they recurse 06:58:35 it's THAT simple! 06:58:40 then there's sortofatinylineofhintsbutwhocaresaboutthat 06:58:44 and it gives you your function! 06:58:49 so it's tdd? 06:58:54 quicksort: oklopol: python 06:58:55 what's tddddd 06:58:56 ... 06:58:59 quicksort: http://esolangs.org/wiki/Clue_%28oklopol%29/Quicksort 06:59:00 cheater00: edd 06:59:04 cheater00: example driven despair 06:59:10 oklopol: test driven dragon 06:59:22 elliott: how does it know what to infer 06:59:26 oklopol: i'ma remove greater than? from quicksort and use is greater than? elsewhere 'cuz it's in stdlib 06:59:27 cheater00: cleverly! 06:59:40 every finite sequence has an infinity of possible continuations 07:00:00 i don't know what test driven development is, but i assume it's something totally gay 07:00:07 done 07:00:22 cheater00: just read http://esolangs.org/wiki/Clue_%28oklopol%29/Quicksort and absorb the simple 07:00:43 yeah it's not really even an esolang, we should be talking in #serious_programming 07:00:48 Vorpal: http://www.minecraftforum.net/viewtopic.php?f=1021&t=124541 very nice!! 07:00:51 elliott: this sounds like one of those mysteries 07:00:53 oklopol: absolutely 07:01:16 like, how does science putty stay hard yet always able to become malleable 07:01:28 Vorpal: this is nicer than painterly 07:01:41 or, how do rice krispies keep crackling and popping?? 07:01:47 Vorpal: winner of the texture pack compo :P 07:01:59 Vorpal: also nice: http://www.eldpack.com/ 07:02:24 oklopol: so, clue self-interp 07:03:17 oklopol: you will like this http://www.minecraftforum.net/viewtopic.php?f=25&t=98896 but i don't think it'll work on smp 07:03:26 the quicksort in clue is really truly the best quicksort ever 07:03:48 in fact i know someone who might be very interested in doing something like this with python bytecode 07:03:53 or even make it generate python 07:04:08 elliott: wanna make me a texture pack where all the blocks are just drawn a thick border 07:04:21 oklopol: how does clue know what to infer 07:04:24 oklopol: i did a almost-all-solid-colour pack but it was beyond fugly 07:04:27 and maybe slightly different hues of black 07:04:29 cheater00: cleverly 07:04:32 cheater00: and it does generate python 07:04:34 well, sorta 07:04:36 that does not answer my question 07:04:47 anyway people sounds like other people sounds scary, they'd probably want to add a way to call functions too 07:04:49 explain to me the procedure 07:05:03 cheater00: http://www.vjn.fi/clue.rar see clue.py 07:05:03 please thanks 07:05:07 glue function in particular 07:05:10 has kinda changed but mostly optimisations 07:05:12 well i can explain the procedure i use in my implementation 07:05:13 that'll give you a good idea 07:05:17 -!- hagb4rd has joined. 07:05:18 argh rar 07:05:28 why must i execute non-gpl code for this 07:05:42 page no find eror 404! 07:05:42 A pages you tried to acess does no exist on this servers. 07:05:42 Copyright 2007 by VJN. All Rights deserted. v: 0.9 07:05:49 cheater00: that's because you're bad 07:05:56 at least i can stay gpl for another couple of minutes 07:06:00 cheater00: http://rapidshare.com/files/441572099/clue.zip 07:06:00 cheater00: it just brute forces 07:06:02 code isn't gpl'd :P 07:06:05 oklopol: well sorta. 07:06:13 if it literally just brute forced it'd never work. 07:06:14 elliott: neither is rar 07:06:21 cheater00: http://rapidshare.com/files/441572099/clue.zip 07:06:26 cheater00: dos line endings because oklopol 07:06:32 can't you use something sane like dropbox? 07:06:41 cheater00: i would just host it myself except my web server is sort of not on. 07:06:46 i normally use filebin.ca 07:06:47 but it's down 07:06:47 again 07:06:58 dropbox requires an account and is bullshit software i don't need irritating me...like all software 07:06:58 dropboxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy 07:07:02 oklopol: do you edit with notepad or wordpad, can't really imagine you using anything else 07:07:04 it's actually pretty nifty 07:07:15 elliott: sorry, idle 07:07:17 i like the tools they provide and they're under steady maintenance 07:07:29 oklopol: ah good, i can convert to unix file endings 07:07:32 cheater00: also non-gpl 07:07:32 oklopol: you're not using vim?????????????? 07:07:40 cheater00: fuck you, oklopol can do what the fuck he wants 07:08:01 elliott: i run it inside a VM so that i don't get infected with non-gpl-aids 07:08:11 elliott: no, oklopol cannot do anything. 07:08:20 oklopol: thing i wanted to type: rm *.pyc 07:08:20 * cheater00 casts a spell of non-doing on oklopol 07:08:24 oklopol: thing i typed: rm *.py 07:08:28 :D 07:08:40 cheater00: it's really hard to just quickly summarize how exactly clue works 07:08:45 * elliott downloads his own zip 07:08:50 * elliott hyperventilates 07:08:51 i guess it's a good illustration if i explain how recursion is done 07:09:11 -!- luatre has quit (Remote host closed the connection). 07:09:16 phew, it still runs 07:09:18 -!- luatre has joined. 07:09:19 oklopol: so you give clue some basic rules and some data and infers some rule that fits the data? 07:09:48 you give is an input -> output pair, and you tell it all the subinputs and suboutputs, which would be done recursively, then subinputs are computed from input, and output from suboutputs. this gives you a rule for computing recursive cases 07:09:53 cheater00: yes 07:09:58 that's the idea 07:10:12 it's the details that are interesting, since they make that feasible 07:10:20 "feasible" 07:10:24 ::: http://www.vjn.fi/pb/p3593752799.txt 07:10:24 Downloading... 07:10:25 Compiling, just a minute... 07:10:25 DepthLimitException: depth limit exceeded (pivot condition 2) :( 07:10:28 given two different implementations of clue, how do they ensure they infer the same rule? 07:10:31 oklopol 07:10:32 what 07:10:42 cheater00: add more examples, and they'll probably have the same rule 07:10:45 no way really 07:10:55 oklopol: you can do it 07:11:00 Why haven't I heard of Fantom before? 07:11:05 do what? 07:11:08 Sgeo: you have, it was called Fan then 07:11:16 elliott, I haven't heard of Fan either 07:11:18 oklopol: you just need to make a canonical way of traversing the space of rules. 07:11:26 eh 07:11:29 -!- luatre has quit (Remote host closed the connection). 07:11:30 of course i can do that 07:11:34 -!- luatre has joined. 07:11:36 ::: http://www.vjn.fi/pb/p3593752799.txt 07:11:36 Downloading... 07:11:36 Compiling, just a minute... 07:11:36 DepthLimitException: depth limit exceeded (pivot condition 2) :( 07:11:38 why would i do that 07:12:02 that's silly 07:12:04 try: 07:12:04 newobj=applier(fun,subsetobjs) 07:12:04 if newobj==None:continue 07:12:05 except: 07:12:07 continue 07:12:09 oklopol: this. this is the worst. 07:12:11 can i remove that 07:12:17 oklopol: to have causality 07:12:21 -!- luatre has quit (Remote host closed the connection). 07:12:26 -!- luatre has joined. 07:12:27 ::: http://www.vjn.fi/pb/p3593752799.txt 07:12:27 Downloading... 07:12:28 Compiling, just a minute... 07:12:28 TypeError: 'int' object is unsubscriptable :( 07:12:34 whatttt 07:13:02 File "/Users/ehird/clue/stuff.py", line 47, in car 07:13:02 def car(l):return l[0] 07:13:02 TypeError: 'int' object is unsubscriptable 07:13:04 oklopol: aha 07:13:06 need to return none 07:13:37 Duration literals? 07:13:47 oklopol: should isempty 3 be None 07:14:01 cheater00: i don't really care what you think, it's a stupid idea to order the search in the spec, because then compilers would have to check that whole path, and in general that's impossible. 07:14:02 Never seen anything like those before, although due to Factor's "syntax", factor may as well 07:14:04 i mean 07:14:07 impossible to shortcut 07:14:15 it's easier to let people compile however they want 07:14:19 oklopol: yes? re isempty 07:14:51 oklopol: not order the search, but canonicize the traversal 07:14:56 cheater00: it's not even specified that the same program should work the same way when compiled twice on the same compiler 07:15:07 cheater00: what's the difference? 07:15:12 oklopol: what should cdr([]) be? 07:15:14 error again? 07:15:17 elliott: error 07:15:23 for example if you have a labirynth and you're traversing it, one way to canonicize it is to say "turn right first" 07:15:33 Fantom is failing to turn me on 07:15:34 you do NOT have to search all paths to do that 07:15:36 oklopol: you will be glad to know, making stuff that should be errors into errors makes clue break the stack 07:15:37 yeah, that's what i meant by ordering the search 07:15:40 It's not turning me off, but it's... boring 07:15:49 Sgeo thinks about languages with his penis 07:16:06 oklopol: you don't have to pre-compute the complete space for that. 07:16:13 cheater00: no, but you can't use another strategy then, and it's not the spec's job to contain the best strategy. 07:16:15 oklopol: it's insane to think that 07:16:22 oklopol: you can 07:16:29 oklopol: just have a specifier 07:16:38 Fantom : C# :: C# : Java 07:16:41 From what I can tell 07:16:43 no you can't, you'd have to prove that it's the first thing you'd've found with the strategy given in the spec. 07:16:59 oklopol: you can input your own strategies. 07:17:11 oklopol: otherwise the language is really infertile 07:17:18 oklopol: well... remind me to fix what i broke in the zip impl tomorrow. dunno what. :(. also: remind me to make that auto-realigning emacs mode. in fact just copy this to a file and restate it to me. 07:17:23 oklopol: additionally, please hold on to your old code 07:17:27 cheater00: you are infertile 07:17:27 so i can correct the current code with it tomorrow 07:17:30 oklopol: okay? 07:17:35 oklopol: i am very fertile 07:17:40 cheater00: you do not understand clue 07:17:46 elliott: i do 07:17:52 you do not 07:17:56 "This means non-nullable is the default unless otherwise specified:" 07:17:59 elliott: you do not understand what i understand about clue 07:17:59 ! 07:18:00 That's.. good 07:18:04 That's a good thing 07:18:06 elliott: sure 07:18:12 oklopol: thx 07:18:13 bai 07:18:15 -!- elliott has quit (Remote host closed the connection). 07:18:18 bye 07:18:23 It's like "Improve this here, improve that there" 07:19:13 oklopol: i think being able to input your own strategies would really be the best eva 07:19:24 -!- luatre has quit (Remote host closed the connection). 07:20:27 cheater00: it would be nice, yes, although possibly the topic of another language. what would be retarded is to write "if there is an implementation of function f with these properties in the ball of size k, then this implementation should be chosen". 07:20:55 or having in the spec that you always follow the right hand wall 07:21:05 for example if you have a labirynth and you're traversing it, one way to canonicize it is to say "turn right first" <-- except this will cause you to miss parts for most labyrinths. which might be analogously relevant for clue as well... 07:21:05 well you define your strategies and put em in a lib 07:21:14 and just say "use X" 07:21:16 or "use Y" 07:21:24 or "use-search-manhattan" 07:21:24 as i said, if you added a whole strategy concept to the language, yes, that would be nice. 07:22:02 oerjan: no, you would not miss them, unless they're unimportant. 07:22:13 oerjan: the idea is simply to get to the other side. 07:22:26 oerjan: backtracking is implied. 07:22:35 huh 07:22:49 what does that mean, the right hand algo doesn't have backtracking 07:22:55 oerjan: it is not a goal to visit every square. 07:23:10 oklopol: imagine two labirynths, one is to your right, one is to your left 07:23:17 oklopol: the one to the right has no exit. 07:23:36 and it has a loop. 07:23:44 cheater00: sorry i somehow read that as "turn right always" :D 07:23:49 you have to backtrack 07:25:15 that's not part of the right hand algo, but yes, you're right, the right hand algorithm doesn't solve all labyrinth related problems. just like it doesn't solve the knapsack problem. 07:25:54 oklopol: i misread him, he didn't actually say the right hand algorithm 07:26:05 indeed he didn't 07:26:08 i misread him too 07:26:14 was wondering what that comment of yours was about 07:26:27 cheater00: i'm sorry as well 07:27:28 anyway it's a good thing that programs work differently on different compilers 07:27:45 the point is to put in enough examples that that doesn't happen, which isn't all that many. 07:28:31 this is meant to be a *practical* language, for your everyday programming needs. 07:28:49 it compiles quicksort in less time than it'd take you to eat a sandwich 07:29:23 and if you compile your programs to ski, you can write ANY PROGRAM POSSIBLE 07:29:23 oklopol: you haven't been paying attention in maths class have you 07:29:29 how so? 07:29:42 every finite sequence has an infinity of possible continuations 07:29:43 didn't you insult my math skills once before? 07:29:51 quite possible :p 07:29:51 yeah that's the most retarded comment i've ever heard 07:29:58 um 07:30:00 seriously 07:30:05 it's mathematically proven 07:30:20 * Sgeo learns of the existence of Noop 07:30:20 so the only thingi i'll answer is NO U 07:30:22 i'm going to stop talking to you now 07:30:29 no u. 07:32:02 but anyway it's clear that you can't continue the sequence 7 5 3 2 1 in anyway for instance, since the next one would have to be a prime number smaller than 1, and one doesn't exist 07:32:04 ARGH 07:32:05 q.e.d. 07:32:12 *any way 07:32:14 SO MANY AWESOME SEEMING LANGUAGES OUT THERE 07:32:25 it can be mathematically proven that there are no prime numbers smaller than 1 07:32:32 let me prove that rigorously: 07:32:51 let p be a prime number that's smaller than 1; then, it must be 0, but 0 is not a prime number 07:33:13 also it could be negative, but then it's not a natural number, and the sequence must be over natural numbers 07:33:16 q.e.d. 07:33:41 so i guess you should take your crazy theories elsewhere 07:34:05 riddle time: imagine there are 2 doors..one leads to heaven (actually the place you want to go), the other leads to hell.. in front of each stands a guardian, one is telling the truth, and the other one lies (you don't know who lies).. u have only one(!) question to find out which door leads leads to paradise; what question would you ask? (if you already know the answer, be nice and let the others take a chance) hf! 07:34:07 oklopol: 1 IS NOT A PRIME NUMBER 07:34:11 oerjan: oh shit 07:34:20 so actually even THAT sequence doesn't exist? 07:34:26 INDEED 07:34:27 damn...... 07:34:31 this is kinda creepy 07:34:32 i mean 07:34:34 you can see it there 07:34:40 but it... doesn't exist 07:34:44 8| 07:34:56 math can be pretty counter-intuitive sometimes 07:35:00 oklopol: you could also drop the 2 07:35:19 have you heard that theorem that if you take a ball, and an infinite amount of boxes, then you can build another ball by making the correct choice? 07:35:21 but that would be an odd thing to do 07:35:33 :D 07:35:56 or was it 5 balls 07:36:24 cheater00: how did it go again, i'm a bit rusty on my advanced complex measure theory? 07:36:35 oklopol: it rings a bell. do you know what's an anagram of banach-tarski? 07:36:47 well? 07:36:59 banach-tarski banach-tarski 07:37:08 :D 07:37:14 that's awesome 07:38:42 hagb4rd: sorry, but if there is anyone here who _doesn't_ know the answer, we'll have to ban him for being insufficiently geeky. 07:38:53 lol 07:39:04 nevermind 07:39:44 * oklopol just went "oh that simple thing" and went on with his life, now wonders if he could actually do it 07:41:19 okay yeah i got it 07:41:30 was slightly deeper than i expected 07:41:47 i didn't know it though 07:43:07 hmm right, there actually is a trivial solution 07:43:09 http://xkcd.com/246/ and http://www.giantitp.com/comics/oots0327.html 07:43:11 was kinda wondering 07:43:36 (also http://tvtropes.org/pmwiki/pmwiki.php/Main/KnightsAndKnaves with the usual warning) 07:43:40 "true?" 07:43:47 "yep" vs "nope" 07:43:53 sorry for spoiler 07:43:59 oerjan, you havent just gooled the answer, did you?^^ 07:44:05 bad bad oerjan 07:44:11 hagb4rd: i ruined it 07:44:19 gave away the whole answer 07:44:21 hagb4rd: of course not, i was trying to find that oots comic from before 07:44:38 i liked it 07:44:49 ahh 07:45:06 but you also don't know which one stands at which door :D 07:45:28 :DDDDD 07:45:34 no you dont :> 07:45:46 so fun, let's try again 07:46:37 btw the tvtropes page _does_ contain spoilers. in fact several options. 07:46:54 http://emerginglangs.com/speakers/ 07:46:58 I want to learn all of these 07:46:59 Right now 07:47:12 Well, not all of them 07:47:20 okay so just use the fact both operations are involutions 07:47:32 i mean id and not 07:47:33 Dalvik isn't even a lang.. well, I guess it kind of ... huh? 07:47:40 "if you asked yourself, ...." 07:49:12 or, route through both gates 07:49:29 hagb4rd: i am currently mind-boggling at oklopol apparently being _two_ geeky to find a simple solution :D 07:49:31 really it's a trivial problem once you put it down formally 07:49:35 *_too_ 07:49:54 oerjan: my solutions are g^2 and gh 07:50:02 can you get away with just one operation? 07:50:04 Now I'm looking at ooc 07:50:06 that's a danger of geekiness, you see too many options 07:50:23 its not that simple.. to be honest.. i spent hours on it 07:50:26 tell me in pm if you can't tell here 07:51:19 to be honest i've known this puzzle for so long that i cannot even remember if i solved it before reading the answer or not (probably not, to be honest) 07:51:36 i mean it's likely those aren't the simplest solutions when you actually translate them to english, but i don't think that's a very interesting problem. 07:56:56 I think ooc has more marketers than program language designers 07:57:30 "Another is set in Transylvania, where people can be either sane or insane (insane people believe untruths) and either a human or a vampire. Humans speak the truth and vampires lie all the time, so an insane human speaks untruths he believes while an insane vampire speaks truths he does not believe in." 07:57:48 Maybe I'm wrong 07:57:59 But the documentation is so... obtuse 07:58:08 I'll look at it agian later I gues 07:58:54 oerjan: doesn't a true mathematician forget all problems, and solve them from scratch every time 07:59:09 i hear neumann started all his proofs from epsilons 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:05 COULD BE 08:00:32 it would be nice if that was a characteristic of a true mathematician, because i still keep proving equivalences between definitions of continuity daily 08:00:50 oklopol: i certainly used to do such things 08:00:56 not so much these days 08:01:09 well, i'm working on finite things now, but usually 08:02:08 were you just like me at 21? 08:02:53 exam in 24 hours, fuckfuckfuck 08:02:55 reproving theorems in my head? yes. 08:03:03 i meant in every way 08:03:25 being paid to do math has made me a really lazy studier, i feel like i'm above taking courses 08:03:28 :D 08:03:48 NOTHING YOU CAN TEACH ME. 08:03:49 i have the impression you're considerably more extroverted than me. but that might not be something which shows perfectly over irc. 08:04:16 i was recently told by a professor that i might enjoy the master's thesis seminar because i'm so extroverted 08:04:39 *g 08:06:29 and once a guy was really surprised i was a mathematician because i actually talked to people 08:06:53 so i wonder what kinda mathematicians he's met because i mostly played the guitar when he visited afair 08:06:55 oklopol: i certainly started dropping a number of lectures after a few years. especially early morning ones. 08:07:44 master in maths, social engineerer, star-author and sex-symbol :> 08:07:48 i've started not doing homework, and improvising a solution if asked (they choose a random dude to present their solution) 08:08:33 sex-symbol? :D 08:08:45 yea 08:08:54 lemme draw you one 08:09:01 oklopol: i think he deduces that from the fact you seem to actually get laid 08:09:12 another translation bug?? 08:09:14 8=====D (|) 08:09:21 if we are to believe you 08:09:24 hagb4rd: no i don't think so 08:09:28 k 08:09:34 oerjan: ah, the nerd definition 08:10:28 actually not so much lately, since i broke up with the gf, although we've been talking about being sex-buddies with an ex 08:11:22 (we broke up because of artistic differences) 08:11:32 i _guess_ all the porn talk could be a factor as well 08:12:01 :D 08:12:12 oklopol: you mean she didn't want to make a porn movie with you? how unartistic. 08:12:24 yes! 08:12:38 actually she didn't, although i'm not entirely sure that was a factor 08:13:17 so now that elliott is gone 08:13:31 there's really NOTHING for me here, i wonder if i should actually start studying soon. 08:13:46 it's just there's a fuckload of theorems : d 08:13:53 i mean a true and serious fuckload 08:14:05 and it's scary. 08:14:07 hundreds of thousands, i hear 08:14:20 lol 08:14:47 do you know green's theorem 08:14:51 erm 08:14:58 in semigroup theory :P 08:15:08 no i'm a bit green on that 08:15:44 maybe we should kick&ban oklopol, until he mad the grade :p 08:15:50 (i thought you meant in analysis, and was going to complain that i missed a pun opportunity) 08:16:21 :D 08:16:28 23hours and a hald 08:16:31 hagb4rd: tried that with Sgeo, didn't work 08:16:53 hagb4rd: also i need to sleep some part of that :D 08:17:14 10 am now, the exam is actually at 9 am tomorrow prolly 08:17:37 it turned out eventually that he only got to doing his homework once he got back on the channel. well i guess the swiftly approaching extended deadline might have had a part as well. 08:17:43 there's maybe 10 pages that contain stuff i couldn't just crap out of my wrist in the exam 08:18:35 oerjan: green's is when you define xLy <=> Sx = Sy and xRy symmetrically 08:18:44 and then H = intersection of those 08:19:16 then a H class is a group iff it contains an identity iff it is closed under multiplication of at least two of its elements 08:19:32 crazy shit huh? 08:19:40 there's a lot more where that came from 08:21:03 well aren't you gonna say "woooooooooow" 08:21:20 oh god, i'm so tired. 08:21:35 wooow 08:21:42 if i go to sleep now, and sleep my usual 10-12 hours, i'll still have like 12 hours left 08:21:43 not really, it doesn't precisely sound surprising 08:22:41 oklopol: in my case i would be more worried about actually being able to be awake tomorrow... 08:23:02 there are many examples of complicated proofs in the literature which prove a small subcase of that 08:23:14 but i guess your sleeping rhythm isn't quite as fragile as mine 08:23:19 why is it not surprising, maybe i don't understand it? 08:23:42 i don't have a sleeping rhythm. 08:23:52 i just sleep when ever i happen to 08:23:55 oklopol: well i guess it could be harder to prove than i think 08:24:03 *whenever 08:24:23 thank god for saying that, i actually took the papers here 08:24:34 *you said taht 08:24:36 *that 08:25:29 the first iff looks like it should be nearly trivial, at least 08:25:35 hmm 08:25:58 hmm indeed 08:26:10 don't spoil it, i'm sure you're faster than me 08:26:25 hm wait is that an identity for H or for the whole semigroup? 08:26:32 for H 08:28:15 yeah then that is trivial 08:28:43 right to left, why does tehre need to be an inverse in H? 08:28:46 *there 08:29:08 because ee = e, so Sx and xS both contain e 08:29:27 or wait hm 08:29:35 Vorpal: http://www.minecraftforum.net/viewtopic.php?f=1021&t=124541 very nice!! <-- quite, but the inventory screen looks weird. 08:29:36 darn 08:29:40 xS and Sx of course contain e, because they are that H class 08:29:53 so? that "inverse" might not be in H 08:30:00 just realized that :D 08:30:46 alrighty, it's possible that there's a very simple proof, and that it's on three pages just for clarity, there's a very nice lemma that clarifies how things jump between these classes 08:30:58 before this 08:31:01 XD 08:31:15 was i too formal? 08:31:20 -!- hagb4rd has changed nick to hagb4rd|afk. 08:31:24 too sarcastic rather 08:31:46 i was being serious :D 08:32:38 deducing something from "closed under multiplication of at least two of its elements" looks somewhat harder anyway 08:32:41 anyway it's inverse semigroups that are the main point of this course, do you remember that semigroup problem we tried to solve in the fall? 08:32:51 vaguely 08:33:14 inverse semigroups are that kinda stuff 08:33:25 you define inverses without an identity 08:33:33 ah yeah 08:33:36 like forallx, x = xyx for unique x 08:33:41 *for all x, 08:33:42 xx'x = x and x'xx' = x' 08:34:00 err right, that for unique is inverse semigroup i think 08:34:24 they turn out to have all kinds of crazy properties 08:34:39 ...which i don't understand at all 08:34:44 :( 08:35:00 i suppose i did at some point, but now i don't even remember what the trace is 08:35:31 we were fooling around with idempotents and proving there was only one and thus it was a group under some condition 08:36:27 * oerjan doesn't recall any trace either 08:36:36 -!- marcules has joined. 08:36:42 What worked for me was not sleeping for 48 hours 08:36:49 * marcules schaut zu hagb4rd|afk :> 08:36:54 S is a group <=> forall x exactly one y: x = x x'x 08:37:00 was it that one? 08:37:05 ;) 08:37:14 The effects of which are still with me 08:37:16 then also exactly one y: x x' idempotent 08:37:26 In the form of staying up and night and sleeping during the day 08:37:33 *x = xyx 08:37:41 *xy idempotent 08:38:13 oklopol: your spelling seems to imply you need sleep 08:38:16 i'm sure it was the first one 08:38:20 oerjan: yeah. 08:38:46 when reading these proofs, the most important thing is being able to retain the about 10 things they name, and remember exactly what equations were proved sofar 08:39:05 and that's like the exact opposite of the being able to do nothing with my brain state that i'm in atm 08:39:28 heeey shoppe is open, maybe i should go buy some pizza, and watch the cleveland show 08:39:32 :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD 08:39:51 this early on a sunday? 08:39:56 -!- dilapan has joined. 08:40:01 i think it's 10-10 every day 08:40:09 -!- Sgeo_ has joined. 08:40:12 hi 08:40:15 it's a kinda special shoppe 08:40:25 BTW, elliott really was trying to login as me 08:40:29 because it's *the* shoppe of the student village i'm living in 08:40:29 -NickServ- 3 failed logins since last login. 08:40:31 -NickServ- Last failed attempt from: elliott!~elliott@unaffiliated/elliott on Jan 08 23:26:33 2011. 08:40:35 most shops in norway don't keep open on sundays, by law 08:40:48 ones under 400m^2 can stay open here 08:40:52 small ones are exempted 08:40:53 hey dilapan :> 08:41:01 and can in general stay open whenever they want 08:41:10 sounds similar 08:42:40 oklopol: there was a great battle here in the early 90s between shops and gasoline stations where the former had to obey closing restrictions but not the latter and the latter started getting more and more shop-like groceries and the like 08:42:40 -!- Sgeo has quit (Ping timeout: 246 seconds). 08:43:48 Ok, the ANI tutorial reads like an esolang spec 08:43:51 after trying for a while to distinguish based on what they sold the politicians eventually gave up and changed it to being based on shop area instead 08:43:57 lol and then shops started selling gasoline 08:44:09 oklopol: well some tried 08:44:13 really? :D 08:44:17 fun 08:44:24 although not for that reason i think 08:45:13 there was a grocery chain (rema 1000) who tried adding gasoline outlets. this was after what i described above though. 08:45:27 s/outlets/pumps/ 08:45:56 i think they sold them off after a while 08:46:30 anyway here in norway 7/eleven tends to be open 24/7 08:47:32 (they're actually franchised by the rema 1000 people) 08:48:03 well here in trondheim at least, don't know if it's true in smaller places 08:48:28 How is ANI not an esolang? 08:48:31 * Sgeo_ mindboggles 08:49:16 i don't know about ANI but we used to require some _intent_ to be esoteric 08:49:36 -!- ais523 has quit (Remote host closed the connection). 08:50:04 I'm sure ANI is perfectly usable for ordinary applications 08:50:05 there was this BancStar thing which was completely insane but which wasn't considered esoteric since it was actually used in some industry 08:50:23 or something like that 08:50:38 It's just.. now I know what it feels like for an imperative programmer to jump headfirst into functional programming 08:50:43 Utterly, utterly bizarre 08:51:00 oerjan, do you know any dataflow languages? 08:51:04 Because that's what ANI is 08:52:04 oerjan: multiplication from left preserves H classes, so if two things have their product in a H-class, you also know their H-classes go into that H-class 08:52:14 hm i don't _know_ any, but i've heard something. sisal rings a bell. 08:52:14 this property of H is easy to prove, although a bit verbose 08:52:35 that's xy \in H => H group 08:52:38 which is the hard part i think 08:52:57 or wait 08:53:17 Oh, I think it's called anic 08:54:17 maybe it's not that simple bleh 08:54:33 um H classes are sort of left-right symmetric aren't they 08:55:02 sure 08:55:22 i specified left because at that precise moment i wasn't sure i wouldn't need to talk about right as well 08:55:33 but now it looks kinda useless, yes 08:55:51 i certainly don't see why multiplication from left preserves H classes 08:59:18 not actually true: what's true is if x, y \in S, xLy, and sx=y, s'y=x, then 1) (s*) : R_x -> R_y is bij., (s'*) : R_y -> R_x is bij 2) (s*) and (s'*) are inverses 3) zLsz for all z \in R_x 4) u, v \in R_x => (uHv <=> suHsv) 08:59:22 :D 08:59:36 argh 08:59:43 the last one 08:59:45 says 08:59:48 wait 09:00:12 ANIC gives me a headache 09:00:17 It looks awesome, but 09:01:08 oklopol: um but S is not necessary a monoid so how do you know there is an s such that sx=y? or is that an assumption? 09:01:12 if xLy, and sx = y, then multiplication by s from left is actually a bijection from R_x to R_y 09:01:14 that's the first one 09:01:30 and that's easy because s' is its inverse 09:01:42 oerjan: oh shit sorry 09:01:45 i have the wrong definition 09:02:04 -!- azaq23 has quit (Quit: Leaving.). 09:02:05 xLy <=> S^1 x = S^1 y 09:02:15 where S^1 is guess 09:02:29 S or identity? 09:02:41 it's S + identity 09:02:51 that's a monoid 09:03:00 hm 09:03:15 if there already is an identity, then S^1 = S 09:03:15 :D 09:03:22 crazy i know! 09:03:37 that's i think equivalent to x \in S y and y \in S x, no? 09:03:58 yes, therefore i could implement this relation with s and s' 09:04:04 I don't even know the name of the thing 09:04:06 so yeah that was implicit up there 09:04:08 Is it ANI or ANIC? 09:04:46 hm except... if S x does not contain x what then 09:05:00 doesn't matter, L is defined using S^1 09:05:11 which is S + identity 09:05:11 it's necessary to use S^1 for that 09:05:33 err, what do you mean 09:05:54 yes, it's necessary to define that particular definition the way it's defined, if you want to define it the way it's defined. 09:06:07 :D 09:06:21 i just gave the wrong definition for relation L, originally 09:06:29 which would've made the theorems impossible to prove 09:06:30 probabl 09:06:31 y 09:06:34 well if S x doesn't contain x then only x is in its class 09:06:52 true 09:07:05 err 09:07:26 in its what class, L class with the correct def? 09:07:33 yes 09:08:16 because S^1 y cannot contain x if S^1 x contains y and x is not y 09:08:42 what? 09:08:53 on in that case 09:08:53 assuming S x does not contain x 09:08:56 okay 09:09:16 why? 09:09:34 i can't think at all right now :\ 09:10:14 really don't see it 09:10:50 -!- GreaseMonkey has quit (Quit: ilua). 09:11:00 assume S x does not contain x, and xLy, x != y. then S^1 x = S^1 y. 09:11:42 since x!=y, y \in S x. also x \in S y. but then x \in S x, contradiction. 09:12:30 you're using the wrong def of L there or? 09:12:37 no, the right one. 09:12:53 since x!=y you cannot have 1 x = y or x = 1 y 09:12:53 so... you assume xLy, and prove S^1 x = S^1 y? 09:13:00 Maybe I should stick with Mozart/Oz instead 09:13:11 that's the definition of L 09:13:13 oklopol: um that's not proving, that's using the definition 09:13:18 opkay 09:13:25 ohh lol 09:13:26 yeah okay 09:13:49 yeah okay you're right 09:14:20 does that give us something interesting? 09:14:33 it seems like it could be the gist of ...something 09:14:46 only a way to rephrase xLy without using S^1 09:14:46 locks 09:14:48 Oz has locks 09:14:58 * Sgeo_ goes back to trying to understand ANIC 09:15:27 hmm err right 09:15:28 :P 09:15:38 Oz is tempting me though in every other way 09:15:42 i suppose it's something i'd normally consider trivial 09:16:14 well i'm tired too 09:20:49 my head hurts 09:21:14 i'll prolly go to the shoppe, eat a pizza, and try to sleep only till like 18 09:21:31 and hope i can stay awake all night and then do the exam :D 09:21:36 hahahahaaaaaaaaaaaaaaaaaa 09:22:09 i've been trying to flip my sleep rhythm all week, but it just keeps around, and i mostly sleep during the day 09:23:11 -!- oerjan has set topic: The fucked up sleep channel | http://esolangs.org/wiki/Main_Page | logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D or (hg) http://codu.org/projects/esotericlogs/hg/. 09:23:23 anyway see ya, might actually be useful to talk about this stuff with you if i was even close to my usual self, but currently i'm just durrrr xS durrrr what did that mean again 09:23:50 see ya 09:24:58 ...actually that's exactly what i did because i defined R using xS and then assumed x was automatically there 09:25:08 but yewah <>-ewaf<-> 09:31:57 skip 09:32:04 Yay, I wrote an Oz program! 09:32:44 All sorts of languages have bizarre ways of saying NOP 09:32:50 i could write an Oz program, if i only had a brain 09:33:01 COBOL's continue, Oz's skip, Python's pass 09:33:03 lol oerjan 09:34:22 -!- kokkoloko has joined. 09:35:12 http://pastie.org/1442161 09:35:24 Hey, this code from the tutorial is comprehendible! 09:35:55 I just realized something, I think 09:36:25 {Max 3 4 X} would bind 4 to X. But {Max 3 4 3} would raise an exception, and {Max 3 4 4} doesn't 09:36:31 That's interesting to think about 09:38:57 There's def. a Prolog vibe here 09:44:14 -!- kokkoloko has left (?). 09:54:18 -!- j-invariant has joined. 10:03:03 * Sgeo_ wonders what Alice is lie 10:03:20 Alice ML? 10:03:26 Grah, don't want to learn SML first 10:03:46 I think it's a sort of toned down version of Oz, but with Types 10:04:09 Is Oz still actively worked on? 10:09:50 ineiros, there is a hole in my mines that I did not blow. I have not been on for a few days but I suspect ehird or PH. It looks like TNT 10:09:59 they were in that area when I last disconnected 10:10:50 ineiros, a lot of damage 10:16:36 ineiros, see /msg for further detailks 10:16:38 details* 10:19:43 http://superuser.com/questions/230871/is-it-possible-to-code-on-two-different-computers-simultaneously 10:19:45 * oerjan predicts this will instigate a violent minecraft civil war which will lasts for months and only peter out when it turns out these explosions are just caused by a somewhat rare interaction of bugs 10:19:51 "Is it possible to code on two different computers simultaenously" 10:19:55 *last 10:26:36 oerjan: Sometimes it feels as if we're in a permanent civil war already. 10:32:39 * Sgeo_ wants to see servers based on war 10:32:51 * Sgeo_ imagines extensive Obsidian mining campaigns 10:33:13 http://en.wikipedia.org/wiki/List_of_programming_languages 10:33:21 Well, there goes any chance of me sleeping ever again 10:33:58 Actually, I have no way of determining which are interesting and which aren;t 10:34:25 All that have odd SHA hashes are interesting. (A scientific fact.) 10:35:31 Sgeo_: you could make something that picks a random one each week and tells you to learn about it 10:35:47 unless it has "Visual" in the name 10:41:53 -!- MigoMipo has joined. 10:54:16 -!- Phantom_Hoover has joined. 10:54:16 -!- Phantom_Hoover has quit (Changing host). 10:54:16 -!- Phantom_Hoover has joined. 10:54:36 -!- dilapan has left (?). 10:58:04 Phantom_Hoover, perhaps you can explain why there is an obvious TNT hole in my mines. You and ehird were the people most recently seen near that place. 10:58:47 I want my lawyer. 10:58:57 ... 10:59:41 Phantom_Hoover, in other words, you did it? 10:59:55 No, I mean that I want my lawyer. 11:01:38 Phantom_Hoover, that sounds absurd in this situation. Anyway someone blew up stuff there. One chest with mined obsidian and diamond (about 15 of each) was in the destroyed area. So I want to know who did it 11:01:56 Erm. 11:02:17 elliott placed the TNT, and I set it off unintentionally. 11:02:31 Ridiculous as that sounds, I have a touchpad with tap-to-click enabled. 11:03:09 So TNT is unremovable? 11:03:29 Phantom_Hoover, ... 11:03:30 Sgeo_, you can safely detonate it if you pour water over it. 11:03:40 Phantom_Hoover, speaking of compensation... 11:04:08 How much obsidian can you mine with 3 diamonds (= 1 diamond pick-axe)? 11:04:23 Vorpal, you have far more obsidian than 15 blocks. 11:04:40 You've stated yourself that you have storerooms full of it. 11:04:54 yes quite. But it is work restoring the area 11:05:01 -!- FireFly has joined. 11:05:14 Phantom_Hoover, you could have told me right away so ineiros could have used a backup to restore that chunk 11:05:43 Well, I can help patching over the hole. 11:06:14 Phantom_Hoover, also compensation doesn't work that way. If you burn down a small garden shed in real life of someone who has a large house and a lot of money there will still be consequences 11:06:36 Vorpal, take it up with elliott. 11:07:03 Phantom_Hoover, I leave it up to you two how to split the compensation between you 11:07:26 Vorpal, that will come to "nothing/2" then. 11:08:04 Phantom_Hoover, very well. I will speak with ineiros when he comes on 11:10:22 Vorpal, I did offer to help repair the damage. 11:10:23 But if you think elliott is going to do anything like help with "compensation", you are being astoundingly naïve. 11:10:26 -!- pingveno has quit (*.net *.split). 11:10:30 -!- coppro has quit (*.net *.split). 11:10:35 -!- Leonidas has quit (*.net *.split). 11:10:45 -!- dbc has quit (*.net *.split). 11:10:49 -!- hagb4rd|afk has quit (Quit: hagb4rd|afk). 11:11:07 Phantom_Hoover, I wonder what he would do in real life in case he messed up for someone else 11:11:31 Sgeo_: With one diamond pickaxe, you can mine 1025 blocks of obsidian, assuming you have the patience (about 4 hours, 22 minutes of solid mining) for it. 11:12:25 -!- dbc has joined. 11:12:39 -!- pingveno has joined. 11:12:39 -!- coppro has joined. 11:12:39 -!- Leonidas has joined. 11:12:57 Minecraft is serious business. 11:13:26 * oerjan distinctly recall someone said obsidian should be made with lava and water, not mined 11:13:30 *recalls 11:13:37 oerjan, yes, it should. 11:13:54 Well, if you don't want to spend ages getting the blocks. 11:17:31 How long does it take to transport all the lava to where you need it? 11:17:53 Sgeo_: Depends on how many buckets you want to make. 11:18:16 Enough to have large stockpiles of lava 11:18:55 If you use all the non-hand slots for buckets, you could carry 27 bucketfuls of lava each trip to your lava sea. 11:25:55 -!- oerjan has quit (Quit: leaving). 11:26:46 fizzie, incidentally, why is the hillside in front of the wooden house scoured of dirt? 11:29:29 Is this a new development or something? 11:30:13 -!- Phantom__Hoover has joined. 11:30:13 -!- Phantom__Hoover has quit (Changing host). 11:30:13 -!- Phantom__Hoover has joined. 11:30:38 03:29:29 Is this a new development or something? 11:30:53 No, just wondering why it was like that in the first place. 11:31:01 Oh. Well, that was before my time. 11:31:30 Phantom__Hoover, to answer your in game question: 26 11:33:15 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds). 12:20:14 I think I like Atomo more than Slate, but.. I'm wondering if Slate syntax weirdness is there for a very good reason 12:20:49 And how, in Atomo, you'd go about pattern matching such that a family of objects might receive etc,' 12:21:00 The way in Slate, you'd use Someclass traits in the thingy 12:21:25 I'm assuming elliott knows the answer to this. He's known almost every language I have ever looked at 12:21:26 . 12:22:33 does wood have any use? or should it all be turned into planks? 12:22:39 -!- dangerouslyfluff has joined. 12:22:47 -!- dangerouslyfluff has left (?). 12:24:01 "For wood to be destroyed by fire it must have several sides simultaneously burning. If only one side is burning, the fire and wood block will last forever. This is probably a bug but makes for nice fireplaces. Now, Netherrack can be used instead, as it burns forever without any tricks." 12:26:05 does wood have any use? or should it all be turned into planks? ← basically, yes. 12:26:18 It's good for decoration, but not much else. 12:26:36 also how does the algorithm for culling leaves work? 12:26:47 when you chop some wood away there is some kind of CA that culls leaves 12:27:16 does wood have any use? or should it all be turned into planks? <-- it is useful to carry as logs in inventory, takes less space for the same amount of wood 12:28:35 Is this list exaustive? http://www.minecraftwiki.net/wiki/Crafting 12:28:40 j-invariant, lets say you are exploring a cave and want to carry torches with you. Carrying 64 logs will be equiv of 256 wood, which can be used for§ 512 torches (with 128 coal). 12:29:08 and this can be done in inventory screen crafting slots 12:30:18 Atomo blocks are the prettiest of them all 12:30:45 j-invariant, think so. But I haven't checked. 12:30:54 but at a quick glance I see nothing missing 12:31:34 j-invariant, though it does combine some where the material varies but the shape does not (various types of armour, the ore blocks) 12:31:40 (and tools) 12:35:28 -!- sebbu2 has joined. 12:37:27 -!- sebbu has quit (Ping timeout: 240 seconds). 12:41:02 -!- sebbu2 has changed nick to sebbu. 12:48:04 * Sgeo_ wants a list of all domain names that end with -lang 13:01:09 Sgeo_, unsure if you can enumerate an entire TLD. Probably not 13:01:56 Vorpal, I am aware that my fantasy is unrealistic 13:02:03 Good thing too. It would be like crack 13:02:15 Any list of new and interesting languages is crack to me 13:06:10 Sgeo_, http://en.wikipedia.org/wiki/Category:Programming_language 13:06:33 Phantom__Hoover, there's no filter on that 13:06:43 I have some idea of what fascinates me and what doesn't 13:06:56 ... 13:06:57 Oh 13:07:00 Oh shit 13:08:43 oklopol: the ball paradox. 13:09:06 it is based on the axiom of choice and uses rotations in 4 dimensions. 13:09:19 Sgeo_ will not be seen alive again. 13:09:53 But there's so many awesome languages not on the wiki! 13:13:14 -!- ELEMENTO has joined. 13:14:15 Vorpal, I am aware that my fantasy is unrealistic Good thing too. It would be like crack <-- what, is it a fantasy to list all domains ending in -lang? 13:14:19 I just searched Freenode for channels tha mention lang 13:14:24 I mean what the hell 13:15:00 I'm screwed 13:15:40 personally I seldom check out new languages unless someone I know mentions it 13:17:03 I found a good set of usable languages that cover my daily needs (haskell, C, erlang, scheme, plus a handful of shell like languages for trivial tasks). 13:18:43 what good -lang channels are there? 13:18:48 Sgeo 13:19:00 I don't know of any that uses such a suffix 13:19:14 I mean, it's #haskell, not #haskell-lang for example 13:19:18 Some have lang in the topic 13:19:33 #euphoria #mirah #haxe #grml #BitC 13:19:35 #arc 13:19:46 the only one I heard of in that list is BitC 13:19:58 which looks somewhat interesting. Might be dead though. Not sure 13:20:02 #atomo 13:20:12 #fancy 13:20:18 oh wait, I heard of arc too 13:20:20 #fantom doesn't mention lang in the topic 13:20:22 do not try arc 13:20:24 ever 13:20:34 Oh? 13:21:03 Sgeo_, it's a very very bad lisp. The PHP of LISPs basically. 13:21:25 Sgeo_, Paul Graham, need I say more. 13:21:36 -!- ELEMENTO has quit (Quit: Linkinus - http://linkinus.com). 13:21:44 "The PHP of LISPs" was more informative than "Paul Graham" 13:23:31 grml is not a language, apparently 13:23:59 It got caught because of "Official language: en" in the topic 13:24:30 Vorpal, Arc? 13:25:13 #hugin 13:25:23 Is not a language 13:27:18 Phantom__Hoover, err. Are you asking if I'm talking about arc or are you asking what arc is? 13:27:27 What is itt? 13:27:30 *it 13:28:20 Phantom__Hoover, the PHP of lisps. I expect elliott hates it too (not sure if it has been mentioned in the channel before). 13:28:46 Yes, but that's just telling me your opinion of it, not what it is or why you think that. 13:29:45 Phantom__Hoover, do you know of Paul Graham at all? 13:29:51 No. 13:30:03 Well, I associate his name with Lisp vaguely. 13:30:31 Phantom__Hoover, hm, you should ask elliott when he comes on. I'm a bit busy today. Water leak and that means calling insurance company and so on. 13:41:08 -!- sebbu2 has joined. 13:41:49 http://i.imgur.com/h5Mjg.jpg 13:41:53 Goddamn it. 13:42:07 Phantom__Hoover, looks awesome 13:42:22 Phantom__Hoover, is it Hindenburg? 13:42:27 Yes, but it's bigger than the ROU and much cooler! 13:42:43 Phantom__Hoover, quite. How many blocks it it from end to end? 13:42:51 Dunno. 13:43:01 Definitely more than the ROU, though. 13:43:04 -!- sebbu has quit (Ping timeout: 255 seconds). 13:43:13 Phantom__Hoover, less I think. But it is much thicker near the middle 13:43:33 Phantom__Hoover, and it is a lot more complete 13:43:43 Phantom__Hoover, what server is it on? 13:44:03 I don't know. 13:47:40 Phantom__Hoover, nice large ocean in that screenshot too, behind the zeppelin or blimp 13:47:40 I'm going to play some more MC 13:47:48 I just wish I didn't have to do it fullscreen 13:47:53 oh wait 13:47:58 that is end of world is it? 13:48:02 Did I mention that it's logically possible to penetrate 1-metre-thick layers of anything? 13:48:04 (rendered world) 13:48:31 Phantom__Hoover, of anything? 13:48:39 Yep. 13:48:47 Phantom__Hoover, well sure with the right tools 13:50:33 Phantom__Hoover, but MC seems to match there except for bedrock. And bedrock can be explained by suspension of disbelief. And also that falling through bottom of world is annoying. 13:57:19 -!- Zuu has joined. 14:20:13 Vorpal, erm, no, I mean without breaking it. 14:20:19 i.e. including bedrock. 14:22:09 Phantom__Hoover, are you saying you can wall through a wall of steel 1 m thick without making a hole? 14:22:49 Erm, I meant in MC. 14:23:00 And only horizontal layers. 14:23:04 Phantom__Hoover, oh I thought this was a "look how unrealistic MC is" rant 14:23:25 And only in SMP. 14:23:31 hm how? 14:24:46 Place track on top of layer. Place minecart on top of track. Climb into minecart. Destroy minecart. 14:26:41 Phantom__Hoover, ah 14:27:10 Phantom__Hoover, where does the minecart end up? 14:27:57 I assume you pick it up while falling into the top-secret enemy base. 14:29:47 Phantom__Hoover, what happens if the layer is 2 or 3 thick? 14:30:23 Vorpal, then it doesn't work, obviously. 14:33:21 Is there a channel on here for music? 14:34:57 I doubt there's a decent one. 14:35:46 http://www.youtube.com/watch?v=S219XUm18LA <-- This particular break is called the AMEN 14:42:13 There should really be a language that compiles into a TM. 14:42:26 TM? 14:42:44 Turing machine? 14:44:13 (I still think that http://www.youtube.com/watch?v=E3keLeMwfHY is the coolest thing ever.) 14:44:30 I think it's silly 14:44:59 you need a computer to build that computer 14:46:25 very attractive machine though 14:47:28 Yes, but to be fair an analogue control mechanism would be nigh impossible to build. 14:50:52 Phantom__Hoover, analogue computers do exist though. 14:54:35 Vorpal, any sophisticated enough for a TM's control mechanism? 14:54:57 Phantom__Hoover, no expert on them 14:55:10 what do you mean Phantom__Hoover? 14:55:15 a TM control mechanism? 14:55:31 The state machine? 14:55:57 The bit which controls the tape? 14:56:22 Phantom__Hoover, isn't that just an FSA basically? 14:56:24 I don't understand. What's that to do with analogue? 14:57:02 Erm. I had a point but I've forgotten it. 14:57:48 "Analogue" is an absurd notation anyway 14:57:59 nothing in reality is analogue 15:03:05 j-invariant: you'd rather explain the idea at length every time you need it rather than give it a name? 15:03:20 oklopol: really? 15:03:35 i don't think it's at all absurd 15:03:44 why not? 15:04:14 anyway Vorpal, a tm is nothing but an FSA with moving, reading and writing 15:05:27 j-invariant: digital is when we use two-valued electrical signals and no moving parts, analogue is else. 15:05:48 okay, I thought it meant something else 15:06:12 well that's a horrible oversimplification. 15:07:02 the significance of the term is that almost everything happens to be digital 15:07:26 so just knowing the vague fact of analogueness is more than enough in many cases 15:07:58 but really i'm not sure what you mean by that nothing in reality is analogue 15:08:48 i hope your point wasn't that the universe is discrete or anything 15:09:07 I meant analogue as in Newtonian physics or exact real numbers (which can hold an infinite amount of information) 15:09:42 if you take these things seriously you get stupid consequences like planetary systems which reach infinity in finite time etc. 15:10:50 i don't know what that means. but analogue is a very concrete concept, and it refers to the kind of continuous scales the universe allows, not to computation with reals. 15:11:01 yeah 15:11:03 what does "reach infinity" mean 15:12:11 http://www.ams.org/notices/199505/saari-2.pdf 15:15:31 ah 15:15:43 so reach infinity in the obvious sense 15:16:50 anyway Vorpal, a tm is nothing but an FSA with moving, reading and writing <-- indeed. Wasn't that what I said? 15:17:01 Vorpal: i was confirming that 15:17:32 *yes, a tm is ... 15:35:52 YouTube comment: "omfg thats diamond i picked that yeter day and thoguht it was a snowball so i threw it into the lava xD" 15:35:57 http://www.youtube.com/watch?v=NaZ6wtes58M&feature=related 15:36:14 Minecraft spells "chestplate" as "chesplate". 15:36:15 I despair. 15:36:40 xD 15:44:27 Jesus, what was that. 15:44:49 Like a screech or some... oh, it's that terrifying ambience. 15:56:12 -!- Sgeo_ has changed nick to Sgeo. 15:58:48 -!- elliott has joined. 15:59:52 elliott, Vorpal told me to ask you why Arc is the PHP of Lisps. 16:00:18 Tell Vorpal I just woke up. 16:00:25 I'm here 16:00:50 Phantom__Hoover: Tell Vorpal I just woke up. 16:01:11 23:34:05 riddle time: imagine there are 2 doors..one leads to heaven (actually the place you want to go), the other leads to hell.. in front of each stands a guardian, one is telling the truth, and the other one lies (you don't know who lies).. u have only one(!) question to find out which door leads leads to paradise; what question would you ask? (if you already know the answer, be nice and let the others take a chance) hf 16:01:11 ! 16:01:15 hahahahaahahahah 16:01:15 j-invariant: real numbers do not hold an infinite amount of information. 16:01:16 Vorpal, he just woke up, apparently 16:01:18 ahhahahahhahahahaha 16:01:21 Phantom__Hoover: thanks 16:01:25 cheater00: yes they do 16:01:36 no 16:01:38 cheater00: consider Chaitin's omega 16:01:49 cheater00, they do. 16:01:50 elliott, uh, you are not on ignore. Why go through Phantom__Hoover? 16:01:54 It's obvious. 16:01:58 every real number can be encoded by a single point on an axis. 16:02:03 Vorpal: because i felt like it! 16:02:08 ah 16:02:10 cheater00: that single point is describable only by a real. 16:02:20 yes! 16:02:21 It can take an infinite number of digits to, say, describe the real in binary 16:02:22 elliott, you are aiming for being awake the same time as oerjan is? 16:02:27 They can be represented by an infinite array of bits; ergo, they represent an infinite amount of information. 16:02:35 but that real is just one piece of information. 16:02:43 Vorpal: clearly. 16:02:46 cheater00: you do not understand information theory. 16:02:51 cheater00, I have a file on my hard drive 16:02:54 cheater00, do please shut up, then. 16:02:56 it cannot be described by a finite amount of binary data 16:02:56 It's Infinity GB 16:03:02 Phantom__Hoover: gfy 16:03:09 It does not store an infinite amount of information, as it's just one file. 16:03:21 cheater00: you do not know what the formal definition of "information" is. accordingly, your arguments have no basis. 16:03:26 Sgeo: you misunderstood my point 16:03:32 a real _does_ convey an infinite amount of information. 16:03:51 elliott: my point is, "finite" depends on what algebraic system you are working on 16:04:14 That's "infinity" that has a tendency to vary, I think 16:04:15 cheater00: http://en.wikipedia.org/wiki/Information_theory 16:04:16 cheater00: thank you 16:04:18 elliott, but how compressible is that real. That is also interesting (though a different issue). 16:04:23 I think "finite" is usually the same, I may be wrong 16:04:33 not sure I'm using the right words for it here 16:04:35 Vorpal: well it's equivalent to a unique infinite stream of naturals. 16:04:41 so it's exactly as compressable as that :) 16:04:44 in Z, you can only encode +oo with an infinite amount of numbers which tend to +oo 16:04:45 (more or less) 16:05:04 in Z u {+oo} you can encode +oo in a finite amount of information 16:05:15 cheater00: question, what makes you say that you know more mathematics than other people and act condescending towards them when clearly you have no idea at all? 16:05:26 i act condescending? 16:05:51 yes 16:05:54 i'm just explaining myself. 16:05:56 I don't think you act condescendingly. Just wrongly. 16:06:00 elliott: question, what makes you say that you know more mathematics than other people and act condescending towards them when clearly you have no idea at all? 16:06:01 23:29:42 every finite sequence has an infinity of possible continuations 16:06:01 23:29:43 didn't you insult my math skills once before? 16:06:01 23:29:51 quite possible :p 16:06:02 elliott, what I was thinking of was that you can some reals, such as pi or e as a simple algorithm that can calculate it to any given precision. 16:06:02 23:29:51 yeah that's the most retarded comment i've ever heard 16:06:04 23:29:58 um 16:06:06 23:30:00 seriously 16:06:08 23:30:05 it's mathematically proven 16:06:10 ^ this is idiotic and condescending towards oklopol 16:06:13 enjoy /ignore 16:06:18 16:05 < elliott> 23:29:42 every finite sequence has an infinity of possible continuations 16:06:19 how cute 16:06:21 that is correct 16:06:24 j-invariant: indeed it is 16:06:36 j-invariant: however, cheater00 was repeating it over and over, acting like oklopol didn't know it, 16:06:39 someone's got a chip on their shoulder 16:06:41 j-invariant: and trying to use it to "disprove" that Clue works 16:06:47 what LOL 16:06:53 i wasn't disproving anything. 16:06:58 the fact is that that theorem has basically NO relevance ...ever... 16:07:01 it's not some great truth 16:07:16 we're back to elliott making up bs 16:07:31 as usual when he's pissed off at something in his life and wants to channel it onto *someone* 16:07:54 how is that not an attempt to make things worse? 16:08:08 my conversation with oklopol was fairly relaxed. 16:08:22 j-invariant: what i just said about elliott? 16:08:27 lol @ logs, cheater00, always the psychoanalyst 16:08:44 j-invariant: how can it possibly get worse when i address the immediate problem at hand? 16:08:49 i wonder what kind of person it takes to be a persistent troll without actually actively trying to _troll_, and then acting really stupid whenever anyone treats him like a troll 16:08:53 llol at putting someone onn ignore then just reading what they say anyway X) 16:09:14 yeah, whatevs elliott 16:09:15 j-invariant: it's great because i can just ignore 90% of it and yell at them for the remaining 10% 16:09:25 I found masses of coal 16:09:32 elliott, Atomo: Nice language or piece of crap? Same question for Slate 16:09:53 What's atomo and isn't slate that copycat thing 16:09:54 lol @ logs, cheater00, always the psychoanalyst <-- what exactly is the point of /ignore then :P 16:09:56 Sgeo: try deciding yourself...unless you're going through like 498543795345794354354 languages and need a reply 16:10:07 Vorpal: i'm asking myself. 16:10:08 elliott: he is going through the whole list 16:10:12 Vorpal: gets him angry, lets me ignore 90% of what he says without my irc client beeping 16:10:21 It's just that Atomo and Slate are... similar 16:10:24 elliott, oh you have it beep your speakers? 16:10:27 not really. not at all in fact. 16:10:32 Vorpal: when someone highlights me, yes. i find it useful. 16:10:35 atomo: Hey guys, guys check this out: What if we took scheme right.. and then ... changed the syntax to look like ruby! 16:10:55 elliott: being on ignore doesn't make me angry, you making up bs and getting angry at me for no reason like a hormonal 13 year old girl on a rag makes me angry 16:10:56 Sgeo: atomo i don't...care about... at all... it's just...not interesting in the slightest and doesn't innovate at all really 16:11:05 elliott, i just make it flash the emacs "button" in the taskbar. 16:11:18 I don't know anything about slate 16:11:23 Sgeo: slate is interesting! i have talked to the people behind it. it's prototype-based but with multiple-dispatch. 16:11:32 but...it's still a mutable, imperative OO language 16:11:40 and i'm completely sick of them. 16:11:42 Isn't Atomo also prototype-based with multiple-dispatch? 16:11:46 they are very much not the way forward. 16:11:48 Sgeo: i don't know nor care 16:12:03 okay, looks like it. but it's irrelevant. 16:12:07 firstly, it's just a toy language. 16:12:14 secondly, Erlang's concurrency model sucks. 16:12:21 thirdlyi t's just ... how can you even get interested in it 16:12:22 it's shit 16:12:30 it is impossible to care about 16:12:54 also it has macros, which are anti-features. 16:12:59 anti-features 16:13:00 ? 16:13:01 It's like a prettier Slate.. missing some Slate stuff 16:13:10 slate is pretty. 16:13:16 j-invariant: "features" that make a language worse 16:13:19 @ is not pretty 16:13:21 j-invariant: example: mutability 16:13:24 I like macros in Scheme 16:13:26 The rest of it is, @ is not. 16:13:33 Sgeo: good to know we're still extremely superficial 16:13:53 Although.. it might be easier to understand than whatever magic Atomo does 16:14:12 atomo also has bad concurrency and macros, as i said. two points against it. 16:14:18 also, slate is an actual project, atomo is a toy language. 16:14:27 also it has macros, which are anti-features. ← even the Lispy ones? 16:14:32 Slate seems to have taken a hiatus, and is just now waking up 16:14:40 Phantom__Hoover: pretty much. 16:14:47 Sgeo: it has been going since the 90s. their irc channel is relatively active. 16:14:58 Sgeo: it still works fine. :p 16:14:59 The huge manual is supposedly obsolete, there are no up-to-date binaries 16:15:06 elliott, how do they make the language worse? 16:15:09 Downloads 16:15:09 slate.little.32.2011-01-01.image.bz2 16:15:09 slate.little.64.2010-04-01.image.bz2 16:15:10 Show all » 16:15:12 Sgeo: no up to date binaries? 16:15:20 I stand corrected 16:15:29 "Release Overview (Currently Old Releases Only)" 16:15:29 Phantom__Hoover: (f (g hello) (h)) 16:15:31 Phantom__Hoover: this can't be the same as 16:15:37 Why do they say "old releases only" then? 16:15:43 Phantom__Hoover: (let ((hello 2)) (f (g hello) (h)) 16:15:44 Wait 16:15:46 Sgeo: those are snapshots, I believe 16:15:55 Phantom__Hoover: basically... you can't rely on anything with function applications 16:15:58 Phantom__Hoover: every invariant breaks 16:16:07 Ah, right. 16:16:09 Ah, got it 16:16:47 Phantom__Hoover: it is possible to manage this but i'm gradually and gradually getting more pissed off that the computer doesn't tell me when i did something stupid 16:16:56 Phantom__Hoover: also, 60% of what you want macros for can be done with lazy evaluation. 16:17:30 Ioke differentiates between macros and functions such that macros are just functions that are call-by-name, Io style 16:17:43 the remaining 40% can be either reworked to be slightly different and not require a macro somehow, or can be done with something like Template Haskell that, yes, is big and ugly to use, but you get signs in your code yelling "HEY I AM CALLING A MACRO HERE", and besides, you shouldn't use it much anyway 16:17:45 *anyway. 16:18:01 Phantom__Hoover: also: macros introduce more of a "compile time" 16:18:05 semantically 16:18:08 whereas lazy evaluation doesn' 16:18:08 t 16:18:52 elliott, how out of date is http://files.slatelanguage.com/progman/ ? 16:19:27 Sgeo: #slate 16:19:43 clog-logged, I would add. 16:19:48 TUNES represent :) 16:20:51 "their irc channel is relatively active." 16:20:52 LIES 16:21:19 Sgeo: perhaps because they haven't had a sgeo to irritate them. 16:27:17 so I have to somehow aquire like a million iron ingots 16:27:23 j-invariant: why? 16:27:35 so I can make a track from the spawnpoint to somewhre interesting 16:27:52 j-invariant: make sure to make it underground :P 16:27:57 Ugh 16:27:58 why? 16:27:58 or high in the air would probably be ok 16:28:01 j-invariant: mobs will walk on it 16:28:05 Also need to install git 16:28:05 and you'll bash into them 16:28:09 hmm 16:28:10 and your booster energy will go 16:28:15 j-invariant: make sure to use boosters, not powered minecrats 16:28:17 *minecarts 16:28:21 unless you want a really slow ride 16:28:25 I want a very fast :P 16:28:31 j-invariant: impossible :) but boosters are close 16:28:37 j-invariant: http://www.minecraftwiki.net/wiki/Minecart_booster 16:28:57 j-invariant: it's a "bug" but although some people it's being fixed i'm not sure it will be in the short term at all, everyone uses them 16:29:03 and it's SO MUCH FASTER than powered carts 16:29:27 it is being fixed? :( 16:29:41 j-invariant: well. some people say it is but i haven't actually seen evidence 16:29:50 Hmm 16:29:52 j-invariant: anyway, easy enough to convert to whatever it gets replaced with when that happens. 16:29:58 just removing them would be a joke, powered carts are useless 16:29:58 Actually, I think I understand @ a bit better 16:30:02 -!- Mathnerd314 has joined. 16:30:05 use a minecart enhancement mod if that happens :P 16:30:20 wow http://www.youtube.com/watch?v=0v5cAFYouWY#t=4m52s cool 16:30:25 j-invariant: anyway one booster can keep you going for hundreds of blocks 16:30:29 so you only really need...one 16:31:53 j-invariant: btw, an "easy" way to make a resetting booster is to make it go upwarda fater the cart leaves and hit a wall :D 16:31:54 *upwards after 16:31:59 but using the south-west rule is more reliable 16:35:09 http://www.youtube.com/watch?v=19PZA1tnKtg cool 16:36:37 elliott, Slate has macros 16:36:47 antifeature indeed 16:36:58 why? 16:37:17 j-invariant: http://www.youtube.com/watch?v=4PA2uLm8ups enjoy being crepeed out 16:37:18 why what? 16:37:38 you're against macros? 16:37:44 j-invariant: pretty much :) 16:37:54 why! 16:38:13 j-invariant: 16:38:15 16:15 elliott: Phantom__Hoover: (f (g hello) (h)) 16:38:15 16:15 elliott: Phantom__Hoover: this can't be the same as 16:38:15 16:15 Sgeo: Why do they say "old releases only" then? 16:38:17 16:15 elliott: Phantom__Hoover: (let ((hello 2)) (f (g hello) (h)) 16:38:19 16:15 Sgeo: Wait 16:38:21 16:15 elliott: Sgeo: those are snapshots, I believe 16:38:23 16:15 elliott: Phantom__Hoover: basically... you can't rely on anything with function applications 16:38:25 16:15 elliott: Phantom__Hoover: every invariant breaks 16:38:27 16:16 elliott: Phantom__Hoover: it is possible to manage this but i'm gradually and gradually getting more pissed off that the computer doesn't tell me when i did something stupid 16:38:29 16:16 elliott: Phantom__Hoover: also, 60% of what you want macros for can be done with lazy evaluation. 16:38:31 16:17 Sgeo: Ioke differentiates between macros and functions such that macros are just functions that are call-by-name, Io style 16:38:33 16:17 elliott: the remaining 40% can be either reworked to be slightly different and not require a macro somehow, or can be done with something like Template Haskell that, yes, is big and ugly to use, but you get signs in your code yelling "HEY I AM CALLING A MACRO HERE", and besides, you shouldn't use it much anyway 16:39:03 Slate's macros require knowing that you're calling a macro, I think 16:40:30 j-invariant: http://www.minecraftwiki.net/wiki/Minecart_booster has all kinds of boosters 16:40:56 j-invariant: lol http://www.minecraftwiki.net/images/f/fa/Minecart-booster-door-1.jpg "well it's not like i haven't used 3485739845 iron anyway, i'll make some blocks of it" 16:43:35 I don't like the idea that, in a message send, a clone of a clone of a clone of an object (essentially, a child) is not necessarily the same as the object itself in choosing what's dispatched 16:43:45 Maybe I'm misunderstanding it 16:46:17 Vorpal: house built on top of ice: best idea? 16:47:33 oklopol: well... remind me to fix what i broke in the zip impl tomorrow. dunno what. :(. also: remind me to make that auto-realigning emacs mode. in fact just copy this to a file and restate it to me. 16:47:55 Vorpal: oh wait bad idea, can't build underground 16:47:56 oklopol: yess indeed i will do that in 2 min 16:47:56 s 16:49:57 elliott, eh. house on top of ice sounds cool, and cold. And dark since you can't use torches 16:50:49 j-invariant: lol http://www.minecraftwiki.net/images/f/fa/Minecart-booster-door-1.jpg "well it's not like i haven't used 3485739845 iron anyway, i'll make some blocks of it" <-- ignoring the iron blocks the idea is still very neat 16:51:29 elliott, btw tried out the two winner texturepacks (well, not the second place one, that candy one). Both are way too dark in colours for me. 16:51:46 eldpack is somewhat better when it comes to that, but still too dark 16:52:07 http://www.minecraftwiki.net/wiki/File:Minecart-booster-door-2.jpg <-- why!? 16:52:43 oh I guess it can't go into the block fully 16:52:45 that must be why 16:55:20 OK. I built a path from spawn to my new house (out of wood markers). It's in a nice area. I have a sword. 16:55:26 But I need coal! 16:55:37 And there are no mountains to speak of nearby. 16:55:40 elliott, oh where is that house? 16:55:43 it sounds fun 16:55:48 elliott, you finally getting a house I mean 16:55:54 Vorpal: Er, on my single-player game. 16:55:58 elliott, oh okay 16:57:21 "As opposed to PostScript? 16:57:21 I learned Japanese well after I learned PostScript. It turned out to my delight that Japanese and PostScript grammar have quite a lot in common. I don't know why it hasn't made the Japanese masters at writing clever PostScript though. 16:57:21 Oh wait." 16:57:26 (oh wait is link to obfuscated raytracer in postscript) 16:57:30 so that's why anagolf is full of postscript ;) 16:57:31 *:) 16:57:42 oklopol: ok i'ma code now 16:58:13 File "/Users/ehird/clue/clue.py", line 425, in call_clue 16:58:13 return call_branch(clue,default,args,depth_lim) 16:58:13 File "/Users/ehird/clue/clue.py", line 411, in call_branch 16:58:15 suboutputs.append(call_clue(clue,subinputs,depth_lim-1)) 16:58:17 File "/Users/ehird/clue/clue.py", line 425, in call_clue 16:58:19 return call_branch(clue,default,args,depth_lim) 16:58:20 File "/Users/ehird/clue/clue.py", line 411, in call_branch 16:58:23 suboutputs.append(call_clue(clue,subinputs,depth_lim-1)) 16:58:24 File "/Users/ehird/clue/clue.py", line 425, in call_clue 16:58:27 return call_branch(clue,default,args,depth_lim) 16:58:29 oklopol: that's bad, isn't it 17:02:08 oklopol: can i er 17:02:10 elliott, in /general/ backtraces probably are bad. 17:02:11 have your files 17:02:14 to figure out what i broke 17:02:21 elliott, though iirc there is some esolang based on error handling? 17:02:33 Vorpal: no this is example based programming, the most powerful paradigm 17:02:38 and i lost all my py files and my release doesn't work 17:02:44 elliott, I didn't say that one was based on errors 17:02:50 elliott, please read what I said :) 17:02:58 i did 17:02:59 i discarded it 17:03:09 oklopol: oh wait... it actually works, just depth limit errors turn into stack overflows 17:03:12 oklopol: is that...right? 17:03:16 elliott, elliott, though iirc there is some esolang based on error handling? Vorpal: no this is example based programming, the most powerful paradigm <-- this exchange makes no sense 17:03:52 and i lost all my py files and my release doesn't work <-- how? 17:04:10 rm *.pyc ----> rm *.py, and no, i'm not going to alias it into rm -i, i'm just going to be more careful 17:04:26 now i'm just trying to figure out why the zip i made doesn't work the same 17:04:27 elliott, a decent compromise might be rm -I ? 17:04:39 my rm does not have that option :) 17:05:03 elliott, oh okay. For being a GNU extension (I assume) it is damn useful 17:07:03 http://sprunge.us/EAUF didn't quite realise how tiny the Luatre implementation is 17:07:07 cool :D 17:07:32 elliott, Luatre? 17:07:44 a language for calling Clue programs, basically. 17:07:48 ah 17:07:49 luatre, the clue bot, uses it. 17:07:52 and also the clue repl i wrote. 17:08:13 elliott, the function names...? 17:08:45 Vorpal: well "eval" is python's. 17:08:49 "run" is another thing. 17:08:55 elliott, also where is "cabinetoflaughter" called apart from inside itself? 17:09:02 Vorpal: um that's a module 17:09:04 other things call it 17:09:06 for instance the repl and the bot 17:09:11 cabinetoflaughter is just your eval func, obviously 17:09:12 elliott, oh so it isn't the whole thing then 17:09:15 yes it is 17:09:17 it's the whole language impl 17:09:22 cabinetoflaughter(park(code)[0]) is what other things do 17:09:25 to provide a UI 17:09:31 ah right 17:10:10 elliott, are the other functions part of the public API too? 17:10:20 (doesn't python use some special naming convention for private?) 17:10:31 nothing is public, clue and all tools related to it are closed source 17:10:34 that you have to pay for 17:10:45 oklopol, a very different sense of public :P 17:10:59 unless you really want to distribute them and download them for free 17:11:25 oh indeed, i didn't read context at all 17:11:26 oklopol: is it ok if the interp stack overflows sometimes rather than, say, raising a depth overflow thingy 17:11:51 not really, if that means the program crashes 17:11:58 i don't care what error messages say tho 17:12:07 also, it's your interpreter, what does my opinion matter 17:12:19 oklopol: it's your interp that i'm modifying :p 17:12:25 oklopol: in call branch, 17:12:26 suboutputs.append(call_clue(clue,subinputs,depth_lim-1)) 17:12:26 oh indeed it is 17:12:31 i figured you were just asking 17:12:34 shouldn't that immediately return None if that returns none? 17:12:37 what luatre should print out or something 17:12:41 -!- lambdabot has joined. 17:12:43 yeah? 17:13:05 well i don't care what luatre prints out 17:13:17 it's not luatre 17:13:20 it's the damn clue.py 17:13:27 i thought 17:13:42 " yeah?" meant "yes, it's luatre whose output we're talking about" 17:13:50 :D 17:13:50 which i don't care about, as such 17:14:08 i'll work it out later 17:14:16 if depth_lim==0: 17:14:16 return ["nothing here"] 17:14:16 yeah you can make it immediately return none 17:14:16 that should be return None right..? 17:14:24 also, i tried that, but it didn't stop the stack overflow, so nm :) 17:14:27 erm... 17:14:32 but yeah shouldn't nothing here be None... 17:14:41 right runtime errors are currently "nothing here" :D 17:14:50 but yeah you should totally change all those to None 17:14:58 elliott, btw if you use version control rm *.py will be non-fatal (sure, changes since last commit would be lost) 17:15:08 (but that is much less of a problem) 17:15:08 Vorpal: it's oklopol. so no 17:15:11 because failed runs will also return "nothing here"'s when you use them for inference 17:15:16 oklopol: except i think it's a compile time error too 17:15:17 right 17:15:17 yeah 17:15:23 i've used a version control system once! 17:15:29 for an actual project 17:15:30 oklopol, which one? 17:15:43 the program was called tortoisesvn 17:15:51 Vorpal: Incidentally, turns out the N900 default camera app also has a manual white-balance knob nowadays (added by one of the firmware updates, I think); it still doesn't really have any other manual controls (like exposure/focus), but at least that's something. 17:16:01 That's a Windows Subversion client. 17:16:02 oklopol: i changed all one instance and nothing changed :D 17:16:18 why would anything happen 17:16:18 -!- cheater- has joined. 17:16:57 if there's a stack overflow, then clearly the "nothing here" thing is not reached, as that cuts the search. 17:17:04 oklopol: because i'm getting a stack overflow when given a wrong program and depth_lim should be catching it!! 17:17:16 -!- cheater00 has quit (Ping timeout: 240 seconds). 17:17:20 also, i'm not sure it does, there's no checks for nothing here :D 17:17:21 anywhere 17:17:21 if your depth_lim is small enough, then sure 17:17:31 it's 5... 17:17:49 but the search should never be able to continue more than depth lim deep 17:17:50 def unvararg(f,n): 17:17:51 vrs=",".join(["n"+str(i) for i in xrange(n)]) 17:17:51 l="lambda "+vrs+" : f("+vrs+")" 17:17:52 return eval(l,{"f":f}) 17:17:54 genius 17:18:09 is depth lim always decremented when you recurse in the interp? 17:18:19 oklopol: it's YOUR interp :D 17:18:33 oklopol: but uh 17:18:34 if not demolishing_done or not first_round: 17:18:34 new_depth_lim=depth_lim-1 17:18:35 else: 17:18:37 new_depth_lim=depth_lim 17:18:40 not sure what that's about, you added it 17:18:40 note that it's possible that there's a huge stack of functions calls that were inferred, and can't be caught by the interp 17:18:48 that's during compilation 17:20:09 should that stay? 17:20:21 i guess so, changing it doesn't do anything 17:20:29 lesson: don't write invalid programs 17:20:36 fizzie, nice 17:21:01 elliott, ANIC. Worth learning or illegible mess? 17:21:02 :D 17:21:11 Dataflow programming sounds fun 17:21:17 Sgeo: what's special about it? 17:21:20 have you tried example-driven programming? 17:21:26 i hear it's the new c++! 17:21:41 -!- luatre has joined. 17:21:50 Vorpal: Tried it out on the boat (they have that "promenade" walking-thing) but unfortunately it has randomly cycling coloured lighting, which pretty much does the same thing as a randomly fluctuating white-balance. 17:22:10 ::: http://www.vjn.fi/pb/p6237641484.txt 17:22:10 Downloading... 17:22:11 Compiling, just a minute... 17:22:11 Compiled in 0.0759010314941 seconds 17:22:11 factorial: [#0] | _ => factorial loop(#0 1) 17:22:11 stack-hogging factorial: [#0] | 0 => multiply(pred(0) pred(0)) | _ => multiply(#0 @(pred(#0))) 17:22:11 factorial loop: [#0] | 0 => #1 | _ => @(pred(#0) multiply(#0 #1)) 17:22:11 fibonacci: [#0] | _ => fast fibonacci loop(#0 0 1) 17:22:12 fast fibonacci loop: [#0] | 0 => #1 | _ => @(pred(#0) #2 add(#1 #2)) 17:22:12 slow fibonacci: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0)))) 17:22:17 fizzie, oh right you are in Sweden now? 17:22:20 :. factorial(100) 17:22:20 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000L 17:22:28 Vorpal: No, I was on Saturday; we're home now. 17:22:32 fizzie, ah 17:22:40 oklopol: how hard would it be to make the interp tail-recursive? i'm guessing very 17:25:09 easiest way would be to notice tail rcursion at runtime, and just hack up a tail recursive python call 17:25:22 but, i'd just compile to bytecode, in which case it's eay 17:25:25 *easy 17:26:09 or actually 17:27:40 there are no tail recursive python calls really :) 17:27:44 hmm, yeah i don't know if there's a way to easily make a while loop out of that, it would get messy with functions that can branch in multiple ways 17:27:45 oklopol: def name(n):return map(chr,range(97,123))[n%26]+"'"*(n/26) 17:27:49 that's why hack up 17:27:51 oklopol: thought you might enjoy that function 17:27:58 it's not that hard to change the contents of the stack 17:28:11 it gives a,b,c,...,z,a',b',..,z',a'',b'',...,...,f'''' 17:29:28 i just love that function 17:30:26 hmm 17:30:49 >>> dict(enumerate([1,2,3])) 17:30:49 {0: 1, 1: 2, 2: 3} 17:30:50 yess :D 17:31:00 r='('+', '.join(names)+') => ['+past(clue.condast,dict(enumerate(names)))+'] ' 17:31:24 oh wait i need # in front 17:31:35 oklopol: so have you added constants to branchers yet :D 17:31:44 -!- augur has changed nick to augur[afk]. 17:32:07 map(chr,range(97,123))[n%26] looks far more sensibly written as chr(97+n%26). 17:32:17 fizzie: GOOD POINT 17:32:21 and even uglier too 17:32:23 well 17:32:24 less comprehensible 17:34:29 RuntimeError: maximum recursion depth exceeded while calling a Python object 17:34:30 what 17:34:33 oklopol: i broke qsort:DDDD 17:34:40 fizzie's is better 17:34:48 yeah id id 17:34:49 well that happens 17:34:57 life is like thate 17:34:58 *that 17:35:00 Exception: Syntax error: ,[2]]]] 17:35:00 wtf 17:35:03 sometimes things go well 17:35:04 there is no , in the source 17:35:05 and then suddenly 17:35:15 nowait i broke ski did i 17:35:16 recursion depth is exceeded 17:35:22 probably both 17:35:45 ski seems to work 17:35:51 i will fix qsort soon 17:35:58 oklopol: DONE CONSTANTS IN BRANCHERS YET? 17:36:11 no. 17:37:20 oklopol: will you ever or do i have to SLAVE over the code. 17:38:21 well i might even do it today, it's like two lines of code 17:38:25 omg the output is almost beautiful :DD 17:38:32 but i should really try to read these couple of pages i have left 17:39:02 btw you know that your compare function is just python's cmp? :D 17:40:12 it's really not 17:40:20 howso 17:40:27 try changing it to cmp 17:40:31 oh, it's reversed 17:40:32 -cmp then 17:40:45 no but cmp is a builtin 17:40:52 so my function check fails 17:40:53 ;D 17:40:57 oklopol: nono i just mean 17:41:00 the body can be replaced :P 17:41:03 ohh 17:41:04 oklopol: so wait is it cmp or -cmp 17:41:09 well that is of course true 17:41:10 i've turned it into 17:41:10 umm 17:41:12 def compare(a,b): 17:41:12 if not isint(a,b):return None 17:41:12 return cmp(a,b) 17:41:12 what does that matter? 17:41:18 those are the same thing in clue 17:41:19 because it changes the behaviour? :D 17:41:20 oh wait 17:41:20 haha 17:41:22 omg i love clue 17:41:43 yeah, that's probably the awesomest thing about the language 17:41:52 you can change even the interface of functions 17:41:57 without telling anyone 17:41:57 | 3 => @(pair(#1 #2)) 17:41:59 waaait what... 17:42:02 ski apply only has one parameter 17:42:04 ?? 17:42:13 yeah, the current string 17:42:17 that's being rewritten 17:42:20 I think I just had an effect on the evolution of Slate and Atomo 17:42:27 oklopol: yes, but 17:42:34 oklopol: the param is #0 17:42:39 so wtf are #1 and #2 :D 17:42:42 i already replace helper objs 17:43:03 Sgeo: did you hear that in example-driven programming, you can change the sign of the output of your api function, and no one using that function will have to change their code. well, usually anyway. 17:43:19 that's the latest buzz of the example-driven programming community 17:43:30 btw is there such a term already, i didn't actualyl check :D 17:43:32 *actually 17:43:36 oklopol, um... what? How does that happen? 17:43:37 i doubtit :P 17:43:40 *doubt it 17:43:42 Sgeo: cleverly 17:43:48 elliott: no idea what #1 and #2 are. 17:43:57 oklopol: :DDD 17:44:03 i like how printing this is fucking hard 17:44:03 :D 17:44:20 -!- VelcroMan has joined. 17:44:21 i should probably try to find out how that numbering thing works at some point 17:44:33 or better yet, you should :D 17:44:35 i have a feeling it's like 17:44:37 totally broken 17:44:54 wellllll 17:44:58 that happens 17:44:59 oklopol: what i'm doing if you can't tell, is naming the arguments 17:44:59 that's life 17:45:07 in the printout 17:45:09 well i could've guessed that 17:45:12 didn't tho 17:45:14 just because it WASN'T READABLE ENOUGH 17:45:34 okay...deep first's compilation is...very very wrong :D 17:45:42 oklopol: you should see this: 17:45:49 ---- deep first 17:45:49 (a) => [car(a)] 17:45:49 | _ => a 17:45:51 | _ => @(car(a)) 17:45:56 :DDDD 17:46:33 one idea that i had was that 5x"."'d be used for these sort of clue lambdas, where you give an example of a subcomputation; unfortunately this would mean you could just show it the whole computation 17:46:43 oklopol: ^^ 17:46:48 elliott, is Mozart/Oz dead? 17:46:52 oklopol: what...it works 17:46:57 oklopol: how 17:47:06 what? 17:47:08 two _'s? 17:47:11 oklopol: oH 17:47:17 oklopol: clue has figured out that if car returns None 17:47:21 then it's not a list 17:47:27 and so it can return the element directly 17:47:27 i.e. 17:47:40 deep first([[1] 2]) -> deep first([1]) -> deep first(1) -> car returns None -> 1 17:47:41 oklopol: BUT 17:47:44 oklopol: it also has a default branch 17:47:49 and both are represented in the ast by None :D 17:47:57 oklopol: tl;dr your code doesn't give up on None for some reason 17:47:58 or my code :P 17:48:04 so it's actually matching on None itself 17:48:07 to use car to do is list? 17:48:24 it's very possible that that's true 17:48:30 i haven't thought about failing at all 17:48:41 oklopol: so what functions actually call to test things :P 17:48:55 oklopol: ALSO surely raising some special exception would be more reliable than None 17:49:00 since... 17:49:02 things like this 17:49:03 not handling it 17:49:16 the compiler makes sure that all computation is legal, and no Nones are seen 17:49:31 oklopol: well it...doesn't :) 17:49:35 otherwise this func would never be generated 17:49:54 there's no condition? 17:49:55 just a? 17:50:05 umm the [] bit is the condition 17:50:09 oklopol: a is the param 17:50:12 oh alright 17:50:14 ---- deep first 17:50:15 (a) => [car(a)] 17:50:15 | _ => a 17:50:16 | _ => @(car(a)) 17:50:18 so this is actually 17:50:28 case car(a) of None -> a; _ -> recurse(car(a)) 17:50:31 which should never be generated, of course 17:50:35 ever 17:50:41 i.e., it's doing 17:50:42 lemme look at code... 17:50:47 case is list?(a) of 0 -> a; 1 -> recurse(car(a)) 17:50:53 oklopol: do you want my current files :P 17:51:12 not really 17:51:23 as stupid as that is. 17:52:41 -!- VelcroMan has quit (Ping timeout: 246 seconds). 17:53:17 oh shit 17:53:33 wait no 17:53:54 car should throw an exception if it's called with illegal input during search 17:54:04 oklopol: well....... 17:54:06 and in that case, the resulting object is not added to the list of available objects 17:54:10 oklopol: where do you call functions in a search? 17:54:13 I'll make it handle None 17:54:17 try: 17:54:17 newobj=applier(fun,subsetobjs) 17:54:17 if newobj==None:continue 17:54:17 except: 17:54:17 continue 17:54:22 oklopol: yeah no i removed that :D 17:54:30 it's now 17:54:31 newobj=applier(fun,subsetobjs) 17:54:31 if newobj==None:continue 17:54:33 oklopol: but note ==None: 17:54:37 car DOES return None given illgeal input 17:54:38 in my version 17:54:39 *illegal 17:54:42 well obviously it doesn't work if you break it 17:54:47 def car(l): 17:54:47 if not isinstance(l,list) or not l:return None 17:54:47 return l[0] 17:54:48 see above 17:54:50 i didn't break it 17:54:53 it returns None 17:54:57 so it gives exactly the same results 17:55:03 because you do the same on newobj==None and 17:55:13 mhm? 17:55:16 i do, so what, it doesn't work after that correction? 17:55:26 *i do; 17:55:46 oklopol: i'd like to point out that i removed it so that i got useful exceptions rather than "depth limit" for all of them :) 17:55:53 considering the way of failure is to return None 17:56:03 yeah yeah it was a good change, if you fixed functins appropriately 17:56:05 *functions 17:56:07 oklopol: anyway, i have no idea why it wouldn't work in my version, since it's functionally equivalent, are you sure your version doesn't produce the same output? 17:56:12 and yeah i did 17:56:28 i'm not sure my version doesn't produce the same output, no 17:56:34 i don't have a good way to check 17:56:38 oklopol: cluetest.py 17:56:42 python cluetest.py numplay.clue 17:56:48 remember to fix the 3 -> 6 example in factorial first 17:56:50 it's 3 -> something else 17:56:54 in the version you have 17:57:47 -!- VelcroMan has joined. 17:58:34 -!- Behold has joined. 17:59:11 hmm this person must be an esolanger... 17:59:27 elliott, you must tell me your thoughts on Oz. I'll tell you my thoughts: It's large, but... fascinating. Just wish I was more confident that it was actively worked on 18:00:18 erm, can i give parameters to the program from the IDE, adding python to my command line path sounds like a chore, and the default python is 3.1 so i can't drag and drop; you don't use the same IDE tho 18:00:33 oklopol: erm...maybe 18:00:50 oklopol: import sys; sys.argv=['','numplay.clue']; import cluetest 18:02:29 a fucking million useless settings for permissions, but you can't make python.exe not fucking close the terminal after running 18:02:32 i fucking hate this os 18:02:33 i fucking hate it 18:02:34 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds). 18:02:51 arghh 18:02:52 oklopol: trying it from the cmd line instead? :p 18:02:55 i hate command line arguments 18:03:02 oklopol: just do it in cmd.exe and write out the full path to python or something 18:03:05 i dragged-and-dropped 18:03:06 or 18:03:09 it might actually be in the path 18:03:10 i think python adds it 18:03:10 changed default python 18:03:16 ah. 18:04:20 no module named readline 18:04:37 oklopol: :DD 18:04:39 python is not in the path even though i have three versions of it installed. 18:04:41 comment out the import readline in cluetest.py 18:04:48 it's ... sort of not windows-tuned, thsi 18:04:49 *this 18:05:24 yay, works. 18:05:34 wait why am i running numplay? 18:05:40 what was the function 18:05:41 oklopol: ...good question! 18:05:43 deep first 18:05:45 yeah 18:05:49 might wanna turn on demolishing 18:06:13 so now parsing fails 18:06:18 with the same error you pasted 18:06:24 ,[2] 18:06:29 oklopol: yeah it's a bug in ski.clue 18:06:30 remove the comma 18:07:38 now it just plain old can't compile 18:07:49 oklopol: what howso 18:08:45 what the fuck, YOU CAN'T COPYPASTE FROM THE COMMAND LINE WINDOW IN WINDOWS 7 18:08:49 WHAT THE FUCKING HELL 18:08:50 WHY?!?!?!? 18:08:51 oklopol: um 18:08:52 are you sure 18:08:55 you can. 18:08:57 you have to right click the title bar and click mark 18:08:58 :P 18:08:58 not using mouse tho 18:09:02 see above 18:09:05 you've always had to do that 18:09:06 i know 18:09:10 yeah 18:09:13 yes, and you STILL have to do it 18:09:16 WHAETHGAIYUIAGGVKLJEUG 18:09:18 oklopol: dude, use it from idle, it'd be nicer prolly 18:09:20 i'm going to destroy 18:09:58 -!- VelcroMan has left (?). 18:10:28 okay what, now it seems it's compiling 18:10:30 oklopol: yeah you can just remove the readline line and then do 18:10:32 import cluetest 18:10:34 in idle 18:10:36 and it works great 18:10:40 then .load ski.clue 18:11:47 might be nice if you got some sort of sensible output from the compiler if you asked 18:12:03 oklopol: eh? 18:12:09 .load printso ut all the compiled ASTs 18:12:10 *prints out 18:12:12 in the repl 18:12:16 i mean during compilation 18:12:19 ski is still compiling 18:12:20 .show foo is also useful 18:12:21 oklopol: right 18:12:29 oklopol: i might add that, once I can figure out whether the breakage is yours or mine :> 18:12:32 and then fix it 18:12:33 actually it's taking so long i doubt it'll actually happen 18:12:42 oklopol: did you enable destructing 18:12:58 demolishing i mena 18:12:59 mean 18:13:15 no, but when i enable it, it gives the compile error, it seems 18:13:22 oklopol: what error? 18:13:27 Traceback (most recent call last): 18:13:28 File "", line 1, in 18:13:28 import cluetest 18:13:28 File "C:\stuff\clue\cluetest.py", line 55, in 18:13:28 refresh() 18:13:28 File "C:\stuff\clue\cluetest.py", line 48, in refresh 18:13:28 funcs,asts=clue.compile_all(open(filename).read(),stuff.funcs) 18:13:29 File "C:\stuff\clue\clue.py", line 708, in compile_all 18:13:29 [i+"("+unfounds[i]+")" for i in compilees if not compilees[i].iscompiled])) 18:13:30 Exception: Can't compile deep first with cutoff(depth of first), depth of first(inc), ski type?(depth of first), ski apply(ski type?) 18:13:35 oklopol: change inc to succ 18:13:36 in ski 18:13:38 it's another bug 18:13:38 :p 18:13:41 (fixed in mine) 18:13:41 oh hah 18:14:00 what a clear error message 18:14:07 "i can't compile!" 18:14:11 yeah it should probably be topographically sorted or sth 18:14:16 :p 18:14:17 it is 18:14:25 it is? 18:14:32 yes 18:14:32 inc would be last, if that were so 18:14:36 oh umm 18:14:39 :P 18:14:41 or first 18:14:53 yeah not sorted in that message, but compilation of course sorts 18:15:07 because you can't compile if there's an uncompiled function in your bag 18:15:16 rigght 18:15:17 *right 18:15:55 ---- depth of first 18:15:55 [is list?(#0)] 18:15:55 | 0 => 0 18:15:55 | 1 => succ(@(car(#0))) 18:15:59 was it this one? 18:16:29 oklopol: no, deep first 18:17:20 lemme look 18:17:31 ---- deep first 18:17:31 [is list?(#0)] 18:17:31 | 0 => #0 18:17:31 | 1 => @(car(#0)) 18:17:35 sry 18:17:40 oklopol: ff 18:17:43 ok so i added a bug in 18:17:44 will fix soon 18:17:47 writing a clue editor first 18:17:49 (emacs mode = too hard) 18:17:53 :) 18:17:57 it's gonna be schwoot 18:19:21 lambdas would not only allow cheating, they would also make functions significantly uglier, because you'd have your clue cluttered with completely meaningless snippets of dataflow 18:19:42 cheating :D 18:19:49 best user-hostile language veer 18:19:54 :D 18:20:40 you wouldn't lose stuff like being able to flip the sign of compare tho 18:20:45 hey actually 18:21:08 what about like [1, 2, 3] -> [2, 3] -> [3] for cddr for instance 18:21:40 with the meaning that the middle objects are just hints, "this object is useful!" 18:21:41 oklopol: for recursion you mean? 18:21:47 oklopol: oh, i see 18:21:53 oklopol: that owuld be nice but what semantics would it have 18:21:54 *would 18:22:03 no semantics. 18:22:06 :D 18:22:09 i mean 18:22:16 at the level of what functions compile to 18:22:35 more like standardized compiler directive 18:22:49 $class = 'Database' . ucfirst($wgDBtype); 18:22:49 $db = new $class( $this->backupServer(), $wgDBadminuser, $wgDBadminpassword, $wgDBname, false, $flags ); 18:22:57 j-invariant: OH GOD STOP IT 18:23:03 AAAAAAAAH 18:23:06 $wgDBtype is something like 'SQL' or 'PGSQL' 18:23:10 STOP 18:23:12 STOPSTOPSTPOSTSPTJSPOTJSOPTJOPSTJOPSJTPOSJTPESRJGOIDKLFGMLKHFGJ 18:23:17 and there are classes DatabaseSQL and DatabasePGSQL 18:23:19 * elliott vomits 18:23:21 * elliott vomtvomtvoimtits 18:23:24 basically, my idea was that in a_1 -> ... -> a_n, first a_2 would be found using a_1, then all state would be dropped, and another search would be started for a_3 from a_1 and a_2 18:24:05 which sounds really stupid of course, dropping state essentially means you'll make the same objects again :D 18:24:37 but, you would've sort of reached a milestone 18:25:04 also, btw, it should definitely be possible to ask the compiler that the bottleneck is 18:25:09 -!- asiekierka has joined. 18:25:27 ey 18:25:27 i mean, there are a fixed number of searches, you could just make them store compilation times automatically 18:26:37 elliott: you removed the check for default==None between 18:26:37 if i.value==None: 18:26:38 default=i 18:26:38 return call_branch(clue,default,args,depth_lim) 18:27:04 for i in clue.branches: 18:27:04 if i.istest():continue 18:27:04 if i.value==value: 18:27:05 return call_branch(clue,i,args,depth_lim) 18:27:07 if i.value==None: 18:27:09 default=i 18:27:11 return call_branch(clue,default,args,depth_lim) 18:27:13 did I 18:27:21 i think so 18:27:33 oklopol: well that's my clue.py 18:27:36 so i don't see how :P 18:27:50 i have 18:27:51 if default==None: 18:27:51 default=clue.branches[len(clue.branches)-1] 18:27:51 return call_branch(clue,default,args,depth_lim) 18:28:06 i think i mentioned this to you, but it may have been a change after you last got my code 18:28:17 i know, i know 18:28:23 that [-1] thing you're gonna mention 18:28:49 that change means that all functions are total. 18:28:59 currently, it's possible they are inferred non-total 18:29:19 that is, it's possible that there is actually no default branch, now the default branch is the last one 18:29:36 ! should be used for failure explicitly, should be easy to add 18:32:32 one way is that ! is just added as a separate object in the clue object parser, and it simply evaluates to a None. 18:32:44 i believe that'd do the trick 18:32:46 oklopol: i'm pretty confused now 18:33:06 about what 18:33:11 everything :D 18:33:16 Phantom__Hoover, how many blocks would ROU be now again when finished. Approx? 18:33:18 okay 18:33:24 oklopol: can i have your .pys 18:33:36 Vorpal, IIRC it was 10,000 or so for the hull. 18:33:48 the important thing: add "if default==None:default=clue.branches[len(clue.branches)-1]" 18:33:50 Phantom__Hoover, ah and why didn't movecraft work for this? 18:34:15 i haven't done any changes to my old files, or your files, but you can have my old files if you really want to. 18:34:28 Vorpal, it has a built-in threshold of 1000 blocks; this is changeable, apparently, but I have a suspicion it'd clobber the memory and CPU to actually move something that big. 18:35:10 Phantom__Hoover, right. So making that castle I'm building on my local test server (because single player is horribly laggy since beta) fly is not realistic then 18:35:28 Phantom__Hoover, it has over 60000 obsidian alone :) 18:35:37 Vorpal, probably not. 18:36:05 Also, the algorithm for separating the ship from everything else would probably mess it up. 18:36:19 * Sgeo gets a headache trying to talk to someone 18:36:29 Phantom__Hoover, and iirc over 500 000 stone (though hard to measure with such tools, the terrain below it is very uneven. 18:36:30 [Not Alluded-To] 18:36:54 (I guess anything between 150 000 and 400 000 is part of the proper castle) 18:36:59 Vorpal, stone and dirt aren't incorporated into ships. 18:37:08 Phantom__Hoover, oh well. 18:37:15 elliott: so where is the printing of the compiler output done? 18:37:27 oklopol: cluetest.py 18:37:28 oklopol: but er 18:37:33 oklopol: i've kinda rewritten that in my version 18:37:38 if you're going to change it thennn :P 18:37:42 Phantom__Hoover, wait, I'm testing it right now and I could place a stone block on top o my none-stone and it worked 18:37:50 i just want to know where the #x's come from 18:38:01 clearly your output lacks their origin 18:38:04 Phantom__Hoover, however, stone below or to the sides were not included 18:38:07 Vorpal, was the stone moved with it? 18:38:08 -!- BMG has joined. 18:38:10 Phantom__Hoover, yes 18:38:13 probably because neither of us knows what they even are 18:38:15 Huh. 18:38:17 -!- BMG has quit (Changing host). 18:38:17 -!- BMG has joined. 18:38:19 Phantom__Hoover, but only if placed more or less inside the craft 18:38:20 -!- BMG has changed nick to BeholdMyGlory. 18:38:24 Phantom__Hoover, (it was a ship) 18:38:37 what's a none-stone 18:38:42 -!- drakhan has quit (Quit: Wychodzi). 18:39:13 elliott, any block that is not a stone (and implicitly in this context: not air or a fluid either) 18:39:39 I think this person's text messaging stuff is delayed by a few messages 18:39:53 And for some reason, her texts include my text. 18:40:51 Vorpal, the other reason a flying castle is impractical: MoveCraft empties chests. 18:40:59 elliott, what is the largest structure known to have been done in MC so far? Largest as in most blocks placed. 18:41:08 -!- drakhan has joined. 18:41:15 Phantom__Hoover, ah yes that is indeed a known bug 18:41:19 -!- Behold has quit (Ping timeout: 246 seconds). 18:41:23 Phantom__Hoover, at least it is on the todo-list 18:41:53 Phantom__Hoover, also it doesn't rotate crafts yet. Meaning you better make it rotationally symmetric for now 18:42:06 Vorpal: dunno 18:42:24 oklopol: my clue editor is a total nazi 18:42:30 oklopol: it reformats your code every time you do anything :D 18:42:45 * Sgeo fantasizes about war on a MoveCraft server 18:42:59 Sgeo, it screws up TNT cannons as well. 18:43:00 -shutup- Shut up about your fantasies! 18:43:02 elliott, what about largest bounding box (in a single direction) 18:43:07 Phantom__Hoover, aww, darn 18:43:40 Although I was thinking more of dropping TNT from ships than cannons on.. no, I was thinking cannons on ships too, more for defense 18:43:43 What is it with the people who act like playing MC on peaceful is a personal insult? 18:43:45 elliott, considering something like a 1x1x4000 cobbblestone thingy 18:43:48 bb* 18:44:29 -shutup- Shut up about your fantasies! <-- just ignore it, that /me you did above was perfectly okay IMO 18:44:49 http://www.minecraftwiki.net/wiki/Difficulty 18:44:58 [[ * Notch made a tweet on October 22nd 2010, stating that "I'm changing "difficulty" to "realism". Lowest setting = creative. Highest setting = starve" ]] 18:45:08 -!- cheater00 has joined. 18:45:10 'Cos obviously difficulty == realism! 18:45:17 Phantom__Hoover, haven't happened so far yeah 18:45:32 Notch is just like me1 18:45:34 Phantom__Hoover: that's the one thing i'd change about mc 18:45:40 [In the always taking hiatuses aspect] 18:45:41 thank god notch noticed it 18:46:08 elliott: so umm the #'s are just helper objects + inputs + subrec outputs, as one might imagine 18:46:15 it says so quite clearly in your code 18:46:20 oklopol: sure but there's more than there should be :D 18:46:25 Phantom__Hoover, btw craftbook is cool 18:46:27 oklopol: for instance #1 and #2 in ski apply 18:46:31 Because it's completely unrealistic not to have malicious creatures unrelentingly stalk you during the night 18:46:33 ski apply has no helpers 18:46:33 *! 18:46:39 and those are _inside_ the subrec _inputs_ 18:47:03 Phantom__Hoover, I have portcullises that can open and such now 18:47:11 well subrec inputs can be calculated from outputs of previous subrecs 18:47:15 -!- cheater- has quit (Ping timeout: 240 seconds). 18:47:16 so i don't see what the problem is 18:48:10 in ski apply, when #1 and #2 are used, they refer to the outputs of the first and second subrec, and they are first used in the third case 18:48:53 wait what 18:48:55 oklopol: right! but #1 and #2 should get inlined 18:49:01 to be @(...) things 18:49:05 but they're not?? 18:49:08 OH 18:49:14 rrrrrrright i was being a retard 18:49:19 nrpls['#'+str(i.get_arity()+len(clue.helper_objs)+sub)] = past(rrgs,rpls) 18:49:21 i mean 18:49:23 notice the lack of using nrpls there 18:49:28 i was thinking like of a completely different thing 18:49:49 :P 18:50:46 why do you rename to nrpls midway? 18:51:08 hmm 18:51:13 because 18:51:15 it only applies for that one branch 18:51:25 (a) => [ski type?(a)] 18:51:25 | 0 => a 18:51:25 | 1 => @(car(cdr(a))) 18:51:27 | 2 => @(cadar(a)) 18:51:28 | 3 => @(pair(#1 #2)) 18:51:30 | 4 => @(pair(#1 ski type?(cdr(a)))) 18:51:32 bugger, still doesn't work 18:52:07 oh right 18:52:27 Phantom__Hoover, movecraft fails at shadows. There is a shadow matching my aircraft on ground. Far from where the aircraft actually is currently 18:52:45 rrgs.append(past(i.getsubast(sub,ar),rpls)) should use nrpls 18:52:48 Vorpal, that's probably MC failing, actually. 18:52:59 hm could be 18:53:27 -!- impomatic has joined. 18:53:30 Hi :-) 18:53:37 hi 18:54:34 elliott: well, did you fix it? 18:54:54 oklopol: done 18:55:02 testing now 18:55:05 Phantom__Hoover, also why does lightstone give shadows on ground 18:55:16 since it is as bright as the sun... 18:55:30 Vorpal, yes, but it has z-axis attenuation, while the sun doesn't. 18:55:41 Phantom__Hoover, good point 18:57:08 | 3 => @(pair(@(pair(cadaar(a) ski type?(cdr(a)))) @(pair(cadar(a) ski type?(cdr(a)))))) 18:57:09 Phantom__Hoover, hm flying minecart. That should be possible to make smooth 18:57:09 oklopol: hooray 18:57:21 :S 18:57:24 oh 18:57:26 ---- deep first 18:57:27 (a) => [is list?(a)] 18:57:27 | 0 => a 18:57:29 | 1 => @(car(a)) 18:57:29 oklopol: what... 18:57:33 * Sgeo imagines huge Obsidian bunkers, for things such as mining flint from gravel 18:57:34 Phantom__Hoover, or flying boat (boat as in boat-crafted-in-workbench) 18:57:34 wait what, it actually infers that whole thing? 18:57:36 oklopol: turning on destructing makes it do the bad version, I think 18:57:37 Vorpal, did you try to move a craft with a minecart on it? 18:58:01 Phantom__Hoover, I haven't 18:58:09 In theory, with time+patience, all gravel can be turned into flint? 18:58:17 I doubt it'll work. 18:58:19 Sgeo, yes. 18:58:21 Phantom__Hoover, but I wonder. if you could not make smooth movements instead of the one block at a time thing 18:58:21 elliott: no it doesn't, at least in mine 18:58:23 using one of those 18:58:25 Phantom__Hoover, with a mod 18:58:29 i can't even compile ski without demolishing 18:58:33 if default is None: 18:58:33 default=clue.branches[len(clue.branches)-1] 18:58:33 ^^ so do I want to add this in? 18:58:49 done, let's see if it does anything 18:58:51 Vorpal, not without radical alterations to MC, which is outside the scope of hMod's plugin architecture. 18:58:53 Phantom__Hoover, you can get flying boat when you time out and are in a boat and falling down. So clearly it will work on the client side 18:59:04 Hmmm... does anyone know how I can work out the position of the rightmost 1 bit without using bitwise operations? (n & -n normally does the trick) 18:59:15 ---- deep first 18:59:15 (a) => [car(a)] 18:59:15 | _ => a 18:59:16 | _ => @(car(a)) 18:59:20 oklopol: that's WITH your fix, can i have your clue.py and stuff.py? 18:59:21 elliott: after adding that, the order of examples matters, which i'm not sure i like 18:59:23 to see where ours differ 18:59:28 but it's better than not having it, still 18:59:31 ew no, i don't like tht 18:59:31 that 18:59:33 i'm removing it :D 18:59:57 -!- copumpkin has quit (Ping timeout: 260 seconds). 19:00:11 impomatic, n & -n assumes two-complement doesn't it? 19:00:37 -!- copumpkin has joined. 19:00:56 Vorpal: yes, that's one of the problems. 19:01:15 impomatic, hah! And here I was trying to make a silly remark :P 19:01:17 elliott: okay, in that case make it return None, otherwise it'll be order-dependent anyway 19:01:31 impomatic, now I'm interested, what language or platform are you targeting here? 19:01:36 oklopol: oaky 19:01:39 if you make it return None, you basically have an implicit default branch that fails. 19:01:46 vorpal: redcode :-) 19:01:49 hmm 19:01:52 ---- deep first 19:01:52 (a) => [car(a)] 19:01:52 | _ => a 19:01:53 | _ => @(car(a)) 19:01:54 impomatic, hm 19:01:55 oklopol: still does it though :) 19:02:33 i really think you should have that order-dependence thing, actually, it just makes everything so much simpler. 19:03:09 Vorpal: I'm optimizing a non-recursive program to draw this: http://twitpic.com/3nt74q 19:03:11 elliott: well i dunno, why didn't you save your old code so i don't have to up it 19:03:20 oklopol: oh i did 19:03:24 oklopol: but you've evidently changed it :> 19:04:00 impomatic, why not make it recursive 19:04:00 i haven't 19:04:02 Hmmm... pastebin.ca has been inaccessible here for a couple of days :-( 19:04:10 oklopol: well i didn't remove that defaulting thing 19:04:11 impomatic, also what sort of signed integers does redcode use? 19:04:17 oklopol: so you must have added it? :/ 19:04:44 impomatic, use sprunge.us 19:04:49 impomatic, it is good, and loads faster 19:05:50 Vorpal: I have a recursive program too... Redcode only has positive numbers. -x is represented as CORESIZE-x. In a normal core -1 is 7999 19:06:00 elliott: i haven't touched it 19:06:04 impomatic, that's so wtf 19:06:16 well i may have, but it's unlikely that i have, more likely that the universe has a bug 19:06:34 :-) 19:06:43 oklopol: :D 19:06:56 impomatic, why is it not a power of 2? Everything is better as a power of 2. No exceptions except for the exception that ternary is awesome. 19:07:16 oklopol: should i make the editor automatically turn .. into : 19:07:24 upon my files says roughly so: http://www.vjn.fi/pb/p5657189962.txt http://www.vjn.fi/pb/p9156561368.txt 19:07:24 oklopol: you type .., it becomes :, type a ., it becomes :., type a dot, it becomes :: 19:07:45 Vorpal: coresize can be any value, but historically it's been 8000. 19:07:46 ...what? :D 19:07:50 oklopol: in the editor1 19:07:51 *editor! 19:07:52 oklopol: should i make the editor automatically turn .. into : oklopol: should i make the editor automatically turn .. into : <-- what for? 19:07:52 cled 19:07:59 Vorpal: they are equivalent in clue 19:08:00 so... how do you get a dot then? :D 19:08:12 oklopol: don't type an even number of them, duh! 19:08:22 oh lol 19:08:25 oklopol: it's keeping your code to the Clue Standardisation Board's recommendations for colon and dot entry 19:08:27 yeah i well whatev 19:08:32 THIS IS IMPORTANT DUDE 19:08:44 sure 19:08:45 elliott, yes but why do you want to enforce using one them rather than the other 19:08:57 - if default is None: 19:08:57 - return None 19:08:57 + if default==None:default=clue.branches[-1] 19:09:00 hehe 19:09:17 well yeah obviously i added that one 19:09:26 mine is so much better 19:09:28 order is so impure 19:09:34 elliott, wait, are you using a VCS now? 19:09:48 no 19:09:52 i'm using diff 19:09:57 ah 19:10:10 well, see, yours has the slight disadvantage that you can't write *any* functions with just one example in each hint 19:10:13 oklopol: okay our versions have no notable differences to speak of other than the exception-catching :D 19:10:14 erm 19:10:18 in each branch 19:10:31 oklopol: well... come up with an algo that isn't order-based, any algo 19:10:32 (not random :P) 19:10:34 and i'll use it 19:10:46 Hmm 19:10:59 Water spouts are apparently quite resistent to explosions 19:11:01 there is no way 19:11:11 elliott, order for what? 19:11:13 no simple way at least 19:11:17 things 19:11:19 oklopol: are you sure 19:11:26 oklopol: maybe default branches need syntax :/ 19:11:32 one way would be to have *drumroll* conditions 19:11:36 or maybe, you know, man up and add another case 19:11:39 elliott, are you trying to decide which order to try things in? 19:11:42 because... 19:11:44 i mean 19:11:46 if you only have one case 19:11:49 stuff breaks a lot anyway :P 19:11:54 'cuz it likes to hardcode 19:11:54 that was actually one of the reasons i had conditions, i just forgot about it 19:12:02 oklopol: who cares, SO IMPURE 19:12:06 yeah syntax for defaults is very much okay 19:12:50 elliott, what are conditions in this context and why are they impure? 19:12:55 things 19:12:57 and because lame 19:13:07 oklopol: ofc it breaks down when you have complex conditions nayway 19:13:12 gee, being unhelpful 19:13:14 oklopol: i don't see what's wrong with needing two example cases 19:13:15 oklopol: i mean 19:13:20 oklopol: if you just do 19:13:22 Vorpal: a condition is a function used as the parameter of the switch statement that is the body of each function. 19:13:22 . 0 1 -> 1 19:13:28 oklopol: it'll probably hardcode the 1 or something stupid like that 19:13:30 oklopol, thank you 19:13:31 in a lot of cases 19:13:54 oklopol, why would they be impure though? 19:14:01 they were removed in the form they existed in the first version of clue, and were replaced with something else, but this is slightly technical. 19:14:11 oklopol, can they have side effects? 19:14:12 If you have a bunch of TNT together, does it make a stronger explosion or not? 19:14:35 basically, you used to be able to give the toplevel function, like you could say you switch on the value of f, switch(f(...)), but ... may be guessed by the compiler in any way 19:14:40 Vorpal: no. 19:14:52 oklopol, so in what sense are they impure? 19:15:10 subjective 19:15:20 oklopol, ah 19:15:25 they are code written by the programmer 19:15:31 hah 19:15:36 Jan 08 20:51:23 Gregor's apples to oranges comparision convinced me to like oranges // I win forever? :P 19:15:44 oklopol, but in a sense the examples is code written by the programmer. 19:15:46 for instance, if the output format of that function f was changed, it's possible that it can't directly be used to branch anymore. 19:16:01 so the compiler should be allowed to do post-processing on the value of f 19:16:06 -!- asiekierka has quit (Ping timeout: 240 seconds). 19:16:12 so it's impure in a very precise sense. 19:16:57 hm okay 19:17:00 Vorpal: examples are code written by the programmer in a sense, sure. but the sense i'm referring to is the one that breaks the ability to change output and input protocol. 19:17:10 which is one of the points of clue 19:17:25 you don't even have to read the api, as long as you know what the functions do on an intuitive level 19:17:38 of course this would only be true if the compiler was 100 times faster than mine 19:19:14 elliott: nothing wrong with needing two example cases i guess 19:19:16 :P 19:19:48 oklopol: my editor is... so nazi 19:19:54 it's actually kinda scary 19:19:55 would it be wrong if 1) if there's only one branch, it's always default 2) if there's exactly one recursion, it's default if no one else is 19:20:01 you can't insert more than one space in a row 19:20:06 oklopol: yeah that sounds ok 19:20:12 oklopol: since... you can't get base case recursion :D 19:20:16 that would be nice and practical, but kind of impure. 19:20:22 oklopol: would it? 19:20:27 oklopol: recursion to me basically IMPLIES some defaultness 19:20:30 oklopol, hm okay 19:20:34 oklopol: and one branch is default by basically definition 19:20:45 yeah 19:20:52 those are *very* natural, in actual programs 19:20:53 i'll impl that after cled works :D 19:21:08 oklopol: well i even think "random" functions obey that too 19:21:10 people would basically just assume them anyway. 19:21:12 base cases don't recurse, by definition 19:21:18 and recursion is walking towards a base case 19:21:23 anything that isn't a base case, covers a range of values 19:21:25 and is thus a default 19:21:31 yeah but 19:21:36 you can't insert more than one space in a row <-- how do you indent then? 19:21:40 you could have some function used for branching 19:21:45 elliott, also what editor is this? leaden? 19:21:50 Vorpal: no, cled 19:21:52 also, it indents for you 19:21:55 everything is automatic 19:21:56 EVERYTHING 19:21:56 elliott, cled being? 19:21:57 and you could have an infinite number of base cases, say all the cases where that function gives a positive number 19:22:08 CLuEDitor 19:22:09 and if the function gives you a 0, it means you haven't found the result yet, and have to recurse 19:22:19 elliott, is it an emacs mode? 19:22:24 in that case it'd be the base case that's defaul 19:22:25 oklopol: so add more than one example :> 19:22:25 t 19:22:31 Vorpal: no, i decided it would be way too hard like that 19:22:49 sure sure, i'm just saying it's technically possible to have a base case be the natural default 19:23:01 but then you'd just need to tell the compiler that by having two examples. 19:23:04 oklopol: it's more pure than assuming the last is default, let's put it that way. 19:23:12 elliott, hm, Is it ncurses-based? 19:23:15 about 42 times purer. 19:23:18 Vorpal: no, tk(inter) 19:23:21 but it's not total! :D 19:23:21 elliott, ah 19:23:24 because it's convenient in python 19:23:28 and not _hideously_ ugly on os x / windows 19:23:38 the whole UI is a text box with a scrollbar to the right anyway 19:23:44 so it won't even be too horrid on x11 :) 19:23:46 elliott, it is rather ugly on linux though 19:23:49 *x11 19:24:05 elliott, Tk scrollbars are ugly on linux 19:24:18 elliott, do you use that theme thingy whatever it was called 19:24:22 Vorpal: no 19:24:27 elliott, why not 19:24:33 don't think tkinter can do that. 19:24:35 i don't really care how ugly a single scrollbar is anyway :P 19:24:50 elliott, wait, you don't care about aesthetics? 19:25:00 not for cled 19:25:00 ! 19:25:07 elliott, how unlike you! 19:27:51 elliott, last xkcd is so sad, but the title text was actually quite funny. 19:29:20 "If you look at these languages in order, Java, Perl, Python, you notice an interesting pattern. At least, you notice this pattern if you are a Lisp hacker. Each one is progressively more like Lisp. Python copies even features that many Lisp hackers consider to be mistakes. You could translate simple Lisp programs into Python line for line. It's 2002, and programming languages have almost caught up with 1958." 19:29:32 [[Nevertheless, some historians still consider it was Hilliard who won that dude battle.]] 19:29:37 BEST WIKIPEDIA QUOTE EVER 19:29:42 No, wait, it isn't 19:29:54 j-invariant, where is that quote from? 19:30:05 [[Fukutsuru died in 2005 but his frozen sperm lived on for people’s benefit.]] 19:30:14 THAT is the best Wikipedia quote ever. 19:32:34 TypeError: cannot concatenate 'str' and 'int' objects 19:32:36 wait,what... 19:32:54 *wait, what 19:33:02 -!- TLUL has joined. 19:33:18 j-invariant: you could translate simple haskell programs into dofigj line for line. it's 2032, and programming languages have almost caught up with 1994. 19:34:30 elliott, I wish I lived in such a world 19:34:53 text.delete("1.0+%dc" % idx+1, "1.0+%dc" % spc) 19:34:53 TypeError: cannot concatenate 'str' and 'int' objects 19:34:54 wtfff. 19:34:55 idx is an int. 19:38:42 A good argument for Better Grass: http://i.imgur.com/82ndJ.jpg 19:39:17 Vorpal: have you tried http://www.largames.com/lartexture? 19:39:25 hey the graphics look different 19:39:36 j-invariant, j-invariant, where is that quote from? 19:39:48 j-invariant: different texture pack 19:39:49 also a mod 19:40:37 elliott, it looks rather flat somehow. I prefer something suggesting a real world rather than something suggestion a flat mario64-like world. But sure I'll try it some day. 19:40:50 but it is flat. 19:41:23 elliott, uh and? I don't want the texture to make it look flatter than the default texture pack does 19:41:38 It doesn't ... 19:41:46 elliott, to me it looks that way 19:41:55 from the screenshots 19:42:16 oklopol: 19:42:17 text.delete("1.0+%dc" % idx+1, "1.0+%dc" % spc) 19:42:17 TypeError: cannot concatenate 'str' and 'int' objects 19:42:18 seriously wtf 19:42:21 idx is an int 19:42:36 ohhh 19:42:38 need parens 19:45:42 oklopol: it would be nice if compilations could be written to a file 19:45:46 even if just with pickle 19:45:48 or marshal 19:46:02 obviously 19:46:30 it could even check that the compilation is correct 19:46:38 oklopol: :P 19:46:39 FOR FUN 19:46:59 I thought it was correct by construction 19:47:06 oklopol: i think i'm gonna make cled hold the program as a structure in memory and just write it as a string all the time... 19:47:12 and respond to keypresses :P 19:47:13 it'd be simpler 19:47:37 i have to go shoppe 19:52:37 -!- cheater- has joined. 19:55:16 -!- cheater00 has quit (Ping timeout: 240 seconds). 19:55:53 oklopol: i just realised that if i make it hold it as an object i get to make a terrible terrible semantic ui for it 19:55:58 oklopol: you are gonna use this to write all your programs right :D 19:57:09 hey Vorpal how do you make an emacs mode 19:57:27 elliott, by writing elisp and reading docs. 19:57:39 are you making an emacs mode for Clue? 19:57:40 elliott, I haven't done it. I have tweaked existing ones however 19:57:43 Vorpal: yes, but, without the second thing 19:57:50 j-invariant: well. i'm writing an editor program BUT 19:57:51 j-invariant, you never answered: j-invariant, j-invariant, where is that quote from? 19:57:55 it might be easier to do it as an emacs mode :D 19:57:58 Vorpal: pg. 19:58:06 elliott, "pg"? 19:58:09 pg. 19:58:21 elliott, as in postgresql command binary prefix? 19:58:26 elliott, that is all I know it as :P 19:58:30 emacs modes tend to have a certain format: They have a syntax hilighter table and such 19:58:35 elliott, so what do you mean by pg 19:58:46 paul g 19:58:46 pol grayam 19:58:50 elliott, ah 19:58:54 pearly graham crackers 19:59:13 j-invariant: yeah but in this case I want auto-indentation which is less than trivial for clue 19:59:16 because it depends on the first line of the block 19:59:18 specifically the length of the name 19:59:54 elliott, I believe some modes manage such auto indention 19:59:59 I can't remember which ones 20:00:26 well yeah but i want to do it easily :D 20:01:48 you lazy 20:01:57 oklopol: question! 20:01:58 elliott, insert fitting can-only-have-2-out-of-3 statement here 20:02:04 eh actually i have no question really 20:02:07 (I can be lazy too) 20:02:18 oklopol: ok question 20:02:26 oklopol: what's the max number of examples you'd put on one line 20:02:26 kebab place was the complement of a set containing an open ball arouns each of its points :( 20:02:27 two? 20:02:44 two or three 20:02:50 i mean 20:03:11 i can imagine something like . number -> number more than twice on one line 20:04:31 yeah 20:04:38 i'll make it 20:04:42 less than five, so long as the result is less than 50 chars 20:04:49 why limit it? 20:04:49 or actually 40 20:04:49 -!- impomatic has left (?). 20:04:56 oklopol: because really long lines are ugly 20:04:59 oklopol: this is the auto-formatter 20:05:09 oh right because ur editor hates jews 20:05:10 oklopol: cled has kinda morphed into this thing where you edit the bags and branches and stuff as actual objects 20:05:15 oklopol: and it just reads and writes to the files 20:05:19 in the background 20:05:23 oklopol: you know... like oklOS :D 20:05:32 :))))))))))))))))))))))))))))))))))))))))))))) 20:05:37 -!- Wamanuz has quit (Remote host closed the connection). 20:09:19 oklopol: should i make it impossible to put a function that doesn't exist into the bag :D 20:09:23 nah, that's excessive. probably 20:09:34 -!- Wamanuz has joined. 20:10:54 -!- ais523 has joined. 20:15:12 Mmm, snow. 20:16:54 oklopol: 20:16:56 more than 3 ~ {. 0 -> 0 } 20:16:56 more than 3 ~ {. 1 -> 0 } 20:16:56 more than 3 ~ {. 2 -> 0 } 20:16:59 more than 3 ~ {. 3 -> 0 } 20:17:01 more than 3 ~ {. 4 -> 1 . 5 -> 1 } 20:17:03 more than 3 ~ 0; 1 20:17:05 oklopol: written by a program :D 20:19:18 now add a feature where you can write a function, and it's compiled into examples 20:19:20 :D 20:19:24 oklopol: :D 20:19:37 oklopol: that would officially be the most pointless combination of programs in existence 20:19:41 haha 20:19:50 oklopol: i'm considering never putting more than one example on a line... 20:19:53 it's... always kinda ugly 20:22:39 depth of first ~ {. 0 -> 0 . 5 -> 0 } 20:22:39 depth of first ~ {:. [[1 2] [3 4]] -> 2 20:22:39 : [1 2] -> 1 20:22:41 :. [[[1 2 3] 4] 5] -> 3 20:22:43 : [[1 2 3] 4] -> 2 } 20:22:45 depth of first ~ is list?; cons; car; cdr; succ; 0 20:22:47 oklopol: written by a program :D 20:24:40 nice 20:25:21 oklopol: i think we should just make this the new official syntax for clue: http://sprunge.us/HXGG 20:25:26 also by written, I mean turned into text, obviously 20:25:29 it didn't actually write the program 20:25:32 although that would be nice 20:25:51 oklopol: ooh i'ma make the bag into a set. 20:28:31 in what sense? 20:30:36 oklopol: um in that it's a python set :D 20:30:41 and ordered when it gets turned into a string 20:31:10 err okay, that sounds like a reeeeally useful change 20:31:35 but i suppose it means you can't use order for optimization, which is good because the order shouldn't be meaningful. 20:31:55 oklopol: oh no no i don't mean in clue.py 20:31:57 i mean in cled 20:32:05 the semantic CluEDitor! 20:32:19 oklopol: you have to tell me now that you're gonna use this thing to write all your clue programs, even though it's crazy :D 20:32:26 oh heeh go for it. 20:32:27 TI-83+ is weird, it has orthogonal persistence when turning off due to no key being pressed after a number of minutes. But if you manually turn it off you get back to the basic "shell screen" (for lack of better name) next time you turn it on. 20:32:30 There's a film adaptation of Asimov's Foundation series coming. 20:32:32 i'll consider it. 20:32:32 :'( 20:32:46 I could not get into that book at all 20:32:48 elliott, ^ 20:32:54 Vorpal: heh 20:32:58 the first bit was cool but it started dragging and dragging..... 20:33:11 pikhq: I want to be a filmmaker for the sole purpose of making Ed stories and Fine Structure into films. 20:33:23 To be directed by Roland Emmerich. 20:33:27 (Yes, I have considered how to depict Unbelievable Scenes.) 20:33:47 pikhq: 2012: It's a Disaster! 20:33:57 You may know him for really, really *stupid* films, such as Independence Day and The Day After Tomorrow. 20:34:08 And, yes, 2012. 20:34:20 pikhq: http://www.youtube.com/watch?v=ZW2qxFkcLM0 20:35:50 So, if this adaptation is any good at all, it will be a miracle that psychohistory could not predict at all. 20:35:55 To be directed by Roland Emmerich. ← NOOOOOOOOOOOOOOOO 20:36:30 Phantom__Hoover: At least it's not Uwe Boll. 20:36:48 pikhq, that wouldn't be much worse! 20:36:53 pikhq: http://www.youtube.com/watch?v=HSZhBParVjo 20:36:59 Phantom__Hoover: Yes it would. 20:36:59 erm 20:37:00 At least with Uwe Boll we would know everyone would hate it! 20:37:00 wrong link 20:37:02 Yes it would. 20:37:05 pikhq: http://www.youtube.com/watch?v=ZW2qxFkcLM0 20:37:15 elliott: Hah. 20:37:18 pikhq, Emmerich is a major director. 20:37:28 His film will be well-funded and widely promoted. 20:37:29 SO IS UWE BOLL 20:37:36 People will *see* it. 20:37:40 People I know IRL. 20:37:58 People who will not have read the book and will not see the film for the dross it will inevitably be. 20:38:19 Phantom__Hoover: THIS IS EXACTLY WHY I HAVE TO FILM ED STORIES AND FINE STRUCTURE. 20:38:32 elliott, you haven't read the latter! 20:38:32 OTHERWISE SOMEBODY, SOMETIME IN THE FUTURE, WHEN SAM HUGHES IS DEAD BUT INCREDIBLY POPULAR, SOMEONE WILL MAKE A FILM OF THEM 20:38:34 AND IT WILL _SUCK_ 20:38:40 Phantom__Hoover: I've read, like, over half of it! 20:38:46 Shame we can't resurrect Kubrick and have him do it. 20:38:54 Phantom__Hoover: Really though it'd be a worthy film even just with Unbelievable Scenes and 1970—. 20:38:58 Ed would really be better as an episodic miniseries thing. 20:39:10 Phantom__Hoover: At the start... but not Be Here Now onwards. 20:39:12 And FS would not compress into an average-length film. 20:39:17 At all. 20:39:28 Phantom__Hoover: Who said anything about "average-length"? 20:39:37 How would you even go about turning FS into a film/ 20:39:40 Phantom__Hoover: Up to The Story So Far fits into my head-film with plenty of space left. 20:39:41 pikhq, there is an upper limit on film length. 20:39:42 It'll be a 12 hour cinematic experience, I'm sure. 20:39:53 Phantom__Hoover: People watch LotR in a single sitting. 20:39:55 Phantom__Hoover: 3 hours, maybe? 20:39:57 Any further questions? 20:39:59 To three and a half. 20:40:04 That's not unheard of. 20:40:06 pikhq, that is two hours longer than the total length of LoTR. 20:40:10 And it's epic enough. 20:40:15 Phantom__Hoover: Not the extended editions. 20:40:32 Phantom__Hoover: If you can tell me why FS can't fit into three and a half hours without spoiling past The Story So Far, go ahead. 20:40:33 LoTR actually compresses pretty well into a film; the large amount of description becomes unnecessary. 20:40:58 LotR would compress pretty well into a book; the large amount of description *is* unnecessary. 20:41:02 >:D 20:41:34 Anyway, with enough rejiggling of the starting bits (adding filler/transitions), Ed Stories could work as a film, I think. 20:41:35 `addquote LoTR actually compresses pretty well into a film; the large amount of description becomes unnecessary. LotR would compress pretty well into a book; the large amount of description *is* unnecessary. 20:41:43 Or maybe it could be in medias res. 20:41:52 Starting with that moment where Ed calls up and says "hey, what did I ever invent that could work". 20:42:05 Each invention leading to a flashback of the relevant short story. And then work Be Here Now into there somehow. 20:42:09 263) LoTR actually compresses pretty well into a film; the large amount of description becomes unnecessary. LotR would compress pretty well into a book; the large amount of description *is* unnecessary. 20:42:23 I'm too lazy to fix it 20:42:25 what. 20:42:31 Gregor: what manner of witchery is this. 20:42:34 also, "pikh" 20:42:37 try delquote 20:42:47 pikhq, I actually found the Silmarillion less dreary than LoTR because of that. 20:43:09 I tried to read Fellowship once, and decided that Tolkien was fucking with me about 100 to 200 pages in. 20:43:10 Phantom__Hoover: You found the Silmarillion *less* dreary. 20:43:12 *Less*. 20:43:20 Then I gave up. 20:43:23 elliott: The series is worth reading. Once. 20:43:24 It confuses me. 20:43:27 does anyoen know what I'm talking about?? 20:43:31 j-invariant: what did you say 20:43:38 (That I found it easier.) 20:43:39 pikhq: The movies themselves were fairly slow too, but fun. 20:43:47 pikhq, I was *dragging* myself through Return. 20:44:03 I wish it were public domain, so it would be legal to edit out the unneeded content. 20:44:23 regarding Foundation: the first bit was cool but it started dragging and dragging..... 20:44:26 ah 20:44:27 i haven't read it 20:44:31 And leave the poetry as an appendix, or a seperate volume, rather than IN THE FREAKING STORY. 20:44:32 I didn't make it into the good bits, I guess 20:44:33 oklopol: this is going to be soooo much of a semantic editor 20:44:37 because everyone loves that book... 20:44:39 oklopol: it's gonna be RIDICULOUS 20:44:42 j-invariant: What was the last bit you got to? 20:44:43 The movies are actually way better. 20:44:54 pikhq: I can't remember, they were making wikipedia 20:44:57 pikhq: Lord of the Rings in 500 Pages would be a great book. 20:45:14 I have some issues with the movies, but they do demonstrate that, dammit, Tolkien would be much improved with editing. 20:45:30 Though The Hobbit does this, as well. 20:45:31 elliott, until pretentious literary types start badmouthing it. 20:45:51 Phantom__Hoover: Oh, they can go to hell. They badmouthed the books until recently anyways. 20:46:14 http://tolkien.slimy.com/etext/EtextChps.html what is this. 20:46:21 -!- oerjan has joined. 20:46:21 Because it wasn't ~deep and meaningful analysis of the human condition~? 20:47:48 Phantom__Hoover: The pretentious literary types really seem to like terrible fiction. About 50 years after it's been published. 20:48:01 Examples? 20:48:04 On occasion they like good fiction as well, but I suspect this is a fluke. 20:48:29 oklopol: this editor is going to be pretty horrible :D 20:48:36 oklopol: it's basically going to be a shitload of boxes inside other boxes 20:49:41 Phantom__Hoover: "The Grapes of Wrath", by Steinbeck. 20:50:02 That's terrible? (I wouldn't know.) 20:50:06 Phantom__Hoover: This book earned Steinbeck a Pulitzer and a Nobel Prize. 20:50:08 oklopol: 20:50:09 if default is None: 20:50:09 if len(clue.branches)==1: 20:50:10 default=clue.branches[0] 20:50:12 else: 20:50:14 recs=filter(lambda i:i.isrec(),clue.branches) 20:50:16 if len(recs)==1: 20:50:17 Every *other* chapter has plot. 20:50:18 default=recs[0] 20:50:20 else: 20:50:22 return None 20:50:24 return call_branch(clue,default,args,depth_lim) 20:50:49 The plotless chapters are pretentious mental wanking put on a page, in the form of allegory. 20:51:25 We only have 12 years to wait 20:51:27 except for you 20:51:30 you have 42 20:51:35 lolsonnybono 20:51:56 copumpkin: By "12" or "42" you mean "infinity". 20:52:00 coppro: 6 20:52:00 elliott, other random info: a goto based loop in TI-BASIC is about 5 times slower than a for-based one. A for is about 20% faster than a while loop. 20:52:02 coppro: ^ 20:52:08 pikhq: what 20:52:12 copumpkin: YOU MEAN INFINITY DAMMIT 20:52:34 elliott: Pooppy witchery. 20:52:36 coppro: Retroactive copyright extensions happen every time Mickey Mouse is about to hit public domain. 20:52:39 pikhq: I have no clue what you meant to say there 20:52:41 who is copumpkin? 20:52:42 Gregor: Oh. 20:52:42 pikhq: oh, not here 20:52:48 Vorpal: An evil witch. 20:52:53 coppro: Correct pikh -> pikhq. 20:53:10 maybe you guys 20:53:14 we have 12 years 20:53:14 Vorpal: who is Vorpal? 20:53:35 (once I get an indication of what information you're looking for in an answer to that kind of question, I can answer yours :P) 20:53:36 coppro: This tends to be enforced by WIPO. 20:53:41 I can't find what " copumpkin: YOU MEAN INFINITY DAMMIT" was a reply to 20:53:42 pikhq: uh what 20:54:00 yet more proof you have no scrollback 20:54:24 I think they both meant coppro 20:54:25 Every 20 years or so they get a stick up their ass, become convinced copyright needs to be 20 years longer, and strongarms most of the world into compliance. 20:54:28 copumpkin, "someone new here" "someone who changed nick", "sometime who been away for many years but used to be a regular" 20:54:32 both pikhq and elliott 20:54:32 copumpkin: no 20:54:33 copumpkin, that kind of stuff 20:54:34 oh 20:54:36 copumpkin: stop lying 20:54:39 copumpkin: you mean infinit 20:54:40 y 20:54:42 and you know it's true 20:54:43 pikhq: not Canada 20:54:47 Vorpal: he's a #haskell informant. 20:54:52 Vorpal: someone who's been here for about a week or two now I think, but yeah, relatively new :P 20:55:04 coppro: Member of WIPO, as well. 20:55:10 elliott, aha 20:55:20 yeah copumpkin is a member of wipo 20:55:23 i agree 20:55:34 wipo? 20:55:38 absolutely 20:55:40 oh okay 20:56:46 copumpkin, are you the codomain of pumpkins or? 20:57:00 I'm a pumpkin in the opposite category 20:57:05 ah 20:57:54 coppro: Well I'll be. You guys haven't gone beyond the international-treaty-required-minimum of *life plus 50*. 20:58:01 pikhq: nope 20:58:03 -!- Behold has joined. 20:58:20 Which is still bullshit. 20:58:20 are we doing category theory 20:58:21 j-invariant: implement copumpkin in your category theory 20:58:23 pikhq: agreed 20:58:24 j-invariant: no 20:58:27 lol 20:58:30 I'll go back to sleep them 20:58:55 pikhq: in fact, Mickey Mouse has 6 more years here. 20:59:33 00:10:28 actually not so much lately, since i broke up with the gf, although we've been talking about being sex-buddies with an ex 20:59:33 00:11:22 (we broke up because of artistic differences) 20:59:37 More so under US copyright law, where Congress only has the power to enact copyright law for the purpose of increasing the works produced... 20:59:39 movies are ridiculously short when you get used to watching seasons of a tv series in one go 20:59:45 oklopol: *phew* i still couldn't quite see you as being in a stable, long-term relationship 20:59:50 you seem less..conflicting now 21:00:01 ^ 21:00:09 "Artistic differences"? 21:00:21 Did you disagree with her views on interior decoration? 21:00:47 (that is to say, under a strict interpretation of the US constitution, Congress *does not have the power* to create a copyright law that does not increase the amount of artistic expression.) 21:01:06 elliott: Consider this http://pastebin.com/raw.php?i=VBavHxpt 21:01:06 Phantom__Hoover, artistic difference could mean so very very much when oklopol says it. 21:01:07 pikhq: have fun with that one 21:01:13 pikhq: you should sue the government 21:01:17 elliott: the problem is to write init in terms of foldr 21:01:20 (of course, under a strict interpretation of the US constitution, Congress doesn't have the power to do almost everything it does, so hey!) 21:01:25 Phantom__Hoover, consider yesterday's discussion between him and zzo for example 21:01:29 pikhq: yep 21:01:43 j-invariant: i've written functions in terms of foldr all the time 21:01:45 elliott: Maybe the methods here could be incorperated into Clue 21:01:51 lol :) 21:01:55 j-invariant: since i think that data should be represented as its foldr 21:01:55 elliott: I am pointing out that the derivation is systematic 21:01:59 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds). 21:01:59 as in, instead of church representation etc. 21:02:02 j-invariant: yes, indeedy 21:02:14 Hmm. Of things it commonly does, it has the power to: run the military, fund roads, run the postal service, and tax. 21:02:16 elliott: I have been watching some videos about the difference between the encodings data = ... and folds 21:02:47 j-invariant: people have already encoded data as its fold as an implementation technique? 21:02:53 and made pattern matching and recursion compile to that? 21:02:55 slitting wrists brb 21:03:00 pikhq, isn't the postal service private in US? If so that surprises me 21:03:04 what? 21:03:09 j-invariant: ? 21:03:14 elliott: it was rather stable and long-term imo 21:03:32 Vorpal: The postal service is very much public. 21:03:38 oklopol: yeah but it isn't any more, which is the good thing. also if you're somehow normal enough to get offended by me saying this, just say 21:03:44 -!- KingOfKarlsruhe has joined. 21:03:45 well right 21:03:54 i get offended if you tell me i suck at math 21:03:58 elliott: You should learn uAgda: In this language we define data types by their elimination behavior and theen program with them using parametricity 21:03:58 that's it 21:04:03 pikhq, I don't know if the word exists (it probably doesn't) but that is an geochronism 21:04:09 (or whatever) 21:04:11 j-invariant: :D 21:04:14 oklopol: you suck at math 21:04:18 (probably chron has to do with time) 21:04:20 fuck you 21:04:26 oklopol: i'm jokin i'm jokin 21:04:26 (so it should be anageonism or something) 21:04:29 oklopol: u r math god 21:04:36 oklopol: do you actually do any math 21:04:47 which one? 21:04:56 Vorpal: It functions independentally, does not receive any money *from* the federal government, but it's a government agency nevertheless. 21:05:00 j-invariant: yes 21:05:01 he does all the maths j-invariant 21:05:05 "which one?" 21:05:11 he's a BACHELOR! he even got a plaque, saying he's a bachelor 21:05:12 pikhq, uh... 21:05:14 i think this is how degrees work 21:05:14 I hate trying to help people in IR 21:05:16 IRC 21:05:18 they never listen to me 21:05:36 j-invariant, I know the feeling 21:05:38 Vorpal: The functioning independentally is just a matter of how the bureaucracy works. 21:05:43 do I just come across as some sort of liar that wants to trick people or what 21:05:46 pikhq, hm 21:05:48 j-invariant: i listened to you :< 21:06:24 Vorpal: It's part of the executive branch, and technically the President could just start bossing people around. 21:06:33 pikhq, hah 21:07:41 oklopol: have you ever used tkinter 21:07:47 Also, it predates the US, and was founded by Ben Franklin. 21:07:48 * j-invariant listens to HAPPY SONG 21:07:52 elliott: yes 21:07:52 j-invariant: wat 21:07:58 oklopol: can i like 21:08:11 elliott: http://www.youtube.com/watch?v=JwmU9kQTv4U 21:08:12 oklopol: recursively transform an object structure into a gui widget, different widget type per class 21:08:16 oklopol: and have it sort of automatically update? 21:08:34 i haven't used it enough to tell you more than any tutorial could 21:08:38 j-invariant: i thought you just had a song that you referred to as HAPPY SONG for no reason :D 21:08:43 i've mostly just made basic interfaces with it 21:08:47 :P 21:08:52 like you know text box + button 21:09:03 oklopol: i'm tempted to just do this with sdl :D 21:09:07 or whatever 21:09:09 pygame or sth 21:10:45 what a waste of tiem geez 21:11:15 j-invariant: ? 21:11:26 elliott, what are you doing then? 21:11:31 elliott: this guy wanted to know how to write init as foldr, I tried to help him but he just ignored me 21:11:32 j-invariant, har har 21:11:37 oklopol: like i can't figure out how to do this, do i have to reconstruct every object constantly 21:11:41 (wrt games) 21:11:41 Vorpal: what is har har/ 21:11:47 j-invariant: do you mean me >_> 21:11:53 i don't recall wanting to know that 21:11:55 elliott: ?? no 21:11:57 oh 21:12:11 lol 21:12:11 it's possible he just didn't see your message... 21:12:22 j-invariant, wait nvm. I read "geez" as "games" somehow (and sorted out the grammar without noticing it) 21:12:46 I think I need to sleep 21:12:52 Vorpal: well I /have/ spent about 60% of the last few days playing minecraft 21:13:05 j-invariant, that was why I went "har har" :P 21:14:45 oklopol: i think i need... zippers... in python :D 21:14:51 or just 21:14:52 omg 21:14:53 mutable integers :D 21:14:57 BEST IDEA 21:20:14 oklopol: oh wow it's actually working. 21:21:04 oklopol: dude. 21:21:09 it's 21:21:10 WORKING 21:23:36 mutable integers :D <-- what exactly do you mean? 21:23:38 something like 21:23:41 1 = 5? 21:23:48 Vorpal: x = IntHolder(5) 21:23:51 x.value = 6 21:24:05 oklopol: i think i need... zippers... in python :D ← Well, someone already did monads... 21:24:10 elliott, uh. so it is inc() ? 21:24:11 hmm possibly these objects should know their parents 21:24:16 elliott, or wait 21:24:17 Vorpal: what 21:24:22 elliott, you mean x = 5; x = 6 ? 21:24:23 Vorpal: the point is that it's (int *) 21:24:24 basically 21:24:26 no 21:24:26 elliott, but boxed? 21:24:32 well yes 21:24:38 x = Holder(5); f(x); x ==> Holder(6) 21:24:40 if f is 21:24:43 elliott, so you need boxed mutable variables. Okay 21:24:44 x.value += 1 21:24:54 Phantom__Hoover: http://imgur.com/JybuB 21:25:59 oklopol: current state of cled: http://i.imgur.com/931qc.png 21:26:05 oklopol: those buttons are actually going to be like text boxes 21:26:06 but whatever 21:26:32 oklopol: the idea is basically that everything is a list: e.g. a branch is a list of examples 21:26:37 what's cled? 21:26:42 oklopol: you can go up and down a list, "descend" into a list, and ascend back up 21:26:54 oklopol: so for instance, the list shown there is 1, 2 and 3 21:26:54 elliott, AAAAAAAAAARRRRRGGGGGHHHH 21:27:11 oklopol: if you are over, e.g. an integer, then you can type a new one to replace it 21:27:27 oklopol: bags are obviously an auto-sorted unique list (set) of their elements 21:27:31 oklopol: lists are of course lists of their elements 21:27:39 oklopol: and the whole program is an auto-sorted unique list (set) of the functions 21:27:49 and there's one extra key, / 21:27:53 /foo jumps to the function foo 21:28:05 oh, and there's also "insert element to list here" and "delete element" 21:28:13 you create a function by inserting an element in the program, typing the name, and going from there 21:28:15 Phantom__Hoover: what's aaargh 21:28:27 elliott, that creeper 21:28:31 Phantom__Hoover: Ah. 21:28:51 oklopol: the keys to create "more than 3" look something like this: 21:29:00 elliott: what is it! 21:29:04 Phantom__Hoover: http://imgur.com/JybuB <-- that looks like a cross between a creeper, a duck and some blobby creature from generic scifi that can shape shift. 21:29:07 j-invariant: an editor for Clue trees 21:29:11 oh 21:29:17 elliott, end result is not scary but just laughable 21:29:23 it is terrifying. 21:29:27 Vorpal, the moooouuuuuutttthhhh 21:29:42 Phantom__Hoover, yes it just looks silly 21:29:54 Phantom__Hoover, a mouth that shape, how would it close it? 21:30:07 it doesn't 21:30:08 duh 21:30:12 ever seen a creeper with its mouth closed? 21:30:20 elliott, no and I blame notch for that 21:30:22 oklopol: +emore than 3+e+e0e0... and more 21:30:29 oklopol: i swear this is easy to use :D 21:30:41 -!- BMG has joined. 21:30:53 -!- BMG has quit (Changing host). 21:30:53 -!- BMG has joined. 21:30:58 -!- BMG has changed nick to BeholdMyGlory. 21:31:07 Vorpal: so anyway, water flows upwards now http://i.imgur.com/4mx3X.png 21:31:21 oh 21:31:22 just visual 21:31:23 :( 21:31:33 http://www.minecraftforum.net/viewtopic.php?f=35&t=99048 21:33:56 oklopol: i get the feeling you don't think this editor is brilliant : 21:33:57 :D 21:34:32 -!- Behold has quit (Ping timeout: 260 seconds). 21:39:15 -!- GreaseMonkey has joined. 21:46:03 http://imgur.com/JybuB = awesome 21:47:55 someone should totally make mc with those graphics 21:48:30 haha this guy shows how to make a memory cell using boats and doors 21:55:30 oklopol: making this is so hard :D 21:55:36 -!- augur[afk] has changed nick to augur. 21:56:06 -!- sebbu has joined. 21:56:15 -!- KingOfKarlsruhe has quit (Remote host closed the connection). 21:56:46 http://imgur.com/nlL89 hd textures :D 21:57:00 sleeeeeeeep 21:58:04 -!- sebbu2 has quit (Ping timeout: 240 seconds). 21:59:17 oklopol: what, why 22:00:09 pikhq: I dare you to retell Lord of the Rings in 10 sentences. 22:00:17 pikhq: (Not ten chapter-long sentences.) 22:02:45 elliott: Frodo Baggins must destroy the Ring of Power, so that ultimate evil cannot use it! He does so. 22:02:50 2. 22:02:52 There. 22:03:26 pikhq: That leaves out almost all details. Try and pack all the important details into 10 sentences. 22:03:30 This is going somewhere. 22:06:11 "First Wikileaks, then their followers. Next will be the follower's followers. Eventually the US will get their real target: Kevin Bacon 22:06:30 :D 22:06:47 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:06:53 Like my conspiracy to conspire to commit fraud. 22:09:50 -!- azaq23 has joined. 22:11:39 -!- j-invariant has quit (Quit: leaving). 22:12:30 Vorpal: tile would probably work with this actually 22:12:31 but whatever 22:13:28 oklopol: what, why <-- he has an exam tomorrow, remember? 22:13:32 oerjan: so? 22:13:53 Vorpal: so anyway, water flows upwards now http://i.imgur.com/4mx3X.png <--- old, happens all the time with diagonals like that. It can go down if you have a 2x2 basin without the corners for example 22:13:53 * oerjan swats elliott -----### 22:14:09 Vorpal: tile would probably work with this actually <-- this made no sense 22:14:17 pikhq: i have a tk question 22:14:17 I do not know the context 22:14:22 Vorpal: tk themeable widgets 22:14:28 oh right 22:14:30 well okay 22:14:31 night 22:14:36 elliott: I don't know Tk well, but k. 22:14:45 pikhq: what event do I bind to on an entry (single-line text input field) such that it triggers whenever an extra char gets inserted? 22:14:48 doesn't work 22:14:54 it calls even for things like tab, cursor keys, etc. 22:14:56 Hell if I know. 22:15:03 pikhq: :( 22:17:33 pikhq: MAKE IT WORK 22:19:45 -!- Behold has joined. 22:22:08 fizzie, mcmap feature request? 22:22:56 -!- BeholdMyGlory has quit (Ping timeout: 250 seconds). 22:23:00 Could it copy the block data it receives to an SSP-compatible world file? 22:25:52 Phantom__Hoover: fizzie already has that planned. 22:26:06 Maybe I could plan how to blow up Mount Vorpal locally. 22:29:50 pikhq: Do you know of a tcl wiki link listing tk events? 22:32:52 -!- pikhq has quit (Ping timeout: 240 seconds). 22:37:18 -!- FireFly has quit (Quit: swatted to death). 22:48:14 hmm, that was a bizarre spambot on Esolang 22:48:23 it's replacing arbitrary links with piped links to its own website 22:49:32 sounds like one that might be effective 22:49:35 ais523: hi! 22:49:57 ais523, looks like it was just programmed to s/[.*/ / 22:50:57 Phantom__Hoover: indeed 22:52:41 it really screwed up the syntax 22:53:06 ais523: have you ever used a semantic editing tool? 22:53:18 ais523, not too badly. 22:53:30 It actually worked perfectly. 22:53:52 Links become links to the spammer's site, but with a single ] at the end. 22:56:16 What happened to voxelperfect, BtW? 22:56:32 Phantom__Hoover: Expired. 22:56:45 The domain? 22:57:40 Yes. 22:57:42 ais523: yes/no? :p 22:59:19 What's a semantic editing tool? 23:08:39 Phantom__Hoover: I'LL GET TO THAT LATER 23:08:59 elliott, my Complaining About People Not Liking The Show entry on TV Tropes' MC article has been bumped to the YMMV tab. 23:09:12 Phantom__Hoover: Haa. 23:09:27 Other things in that tab are "Demonic Spiders". 23:09:34 This isn't even marked as subjective. 23:09:39 I despair. 23:10:54 "Creepers are of the same species as the Slender Man." 23:10:55 Oh dear god 23:11:14 DON'T MENTION THAT 23:12:40 Phantom__Hoover: Meanwhile, http://www.youtube.com/watch?v=RiJh5fpWPAo 23:13:16 :) 23:14:12 Phantom__Hoover: Incidentally, with the kind of rates he gets there, HHI could double its TNT supply in days. 23:14:42 Roll on creeper Wednesdays! 23:19:11 -!- TLUL has changed nick to TLUL|afk. 23:26:31 http://www.minecraftforum.net/viewtopic.php?f=1016&t=71196 23:26:33 SCIENCE! 23:26:40 Pigman science! 23:30:23 elliott, Notch fanboy stupidity of the week: 23:30:48 Someone on TV Tropes said that you'd be mocked relentlessly for appreciating the things Notch does FOR FREE! 23:30:51 -!- fizzie has quit (Read error: Operation timed out). 23:31:07 Free.... except for the €15 charge for the beta. 23:31:33 Bahaaha. 23:32:49 what, voxelperfect works again 23:32:54 ais523: ^ 23:32:55 oerjan: ^ 23:33:02 -!- fizzie has joined. 23:33:13 -!- ais523 has quit (Remote host closed the connection). 23:34:45 oklopol: hey it's actually working :D 23:37:32 -!- pikhq has joined. 23:37:41 elliott: woohoo! 23:39:25 :: foo ~ { -> 3 }; foo ~ 3 23:39:26 IndexError: list index out of range :( 23:39:29 :: foo ~ { -> 3 } foo ~ 3 23:39:29 IndexError: list index out of range :( 23:39:31 hmm 23:39:36 i should complain to oklopol about that :D 23:39:39 http://www.youtube.com/watch?v=EylMIwGLRBg 23:39:42 How... 23:39:53 How did he get FPS that high on the Reddit creative server? 23:39:59 WITH SCIENCE!!!!!!!!!!!!!!!!!!!!!!! 23:41:11 Y'know, CS isn't really a science... 23:41:16 Phantom__Hoover: Obviously. 23:41:17 It's more of a whatever mathematics is. 23:41:25 Phantom__Hoover: It *is* a field of mathematics. 23:41:26 Phantom__Hoover: "Computing theory". 23:41:29 Or "Computation theory". etc. 23:41:37 CS is neither a science nor related to computers. 23:41:39 People who claim otherwise are ignorant. 23:42:14 pikhq, any other novels which are awful and loved by the pretentious? 23:42:29 Phantom__Hoover: Lemme find some. 23:43:20 Phantom__Hoover: Alternately, I could cut the work and just say "Look at a literature cirriculum." 23:43:21 Phantom__Hoover: Iain M. Banks 23:43:21 * elliott OHHHHHHHH 23:43:44 elliott, M.? 23:43:47 Not loved by the pretentious. 23:43:52 Phantom__Hoover: T'was joke. 23:44:01 But yeah, I should have said just Iain Banks. 23:44:02 Iain Banksy. 23:44:10 http://en.wikipedia.org/wiki/Pulitzer_Prize_for_Fiction Here's a list. 23:44:28 SF in general isn't loved by the pretentious, since you need to have a modicum of intelligence to appreciate it. 23:44:33 -!- Behold has quit (Remote host closed the connection). 23:44:36 (note: some omissions required. Namely: Hemingway is a good author.) 23:45:00 (whose writing style is most notable for lacking any bullshit at all.) 23:46:43 "Bullshit" here meaning "all forms of punctuation higher than the full stop." 23:46:48 Er, *". 23:47:22 I want to like Vonnegut but can't because he hates semicolons. It is a wretched state of existence I find myself in. 23:47:28 Actually, it's more that he's completely unpretentious. 23:47:36 The Road is meant to be good. 23:47:41 elliott, I like semicolons! 23:47:46 SO DO I 23:47:54 Of course, this is natural, considering that he's also quite legitimately a badass. :P 23:47:57 Oh, pissmarsed. 23:48:06 "First rule: Do not use semicolons. They are transvestite hermaphrodites representing absolutely nothing. All they do is show you've been to college." 23:48:08 —Vonnegut 23:48:11 The Road is also speculative fiction. 23:48:15 COINCIDENCE 23:48:28 elliott, I learnt it in my first year of senior school"! 23:48:32 s/"// 23:48:41 I don't recall *not* knowing proper use of the semicolon! 23:48:48 Turns out that the guys who wrote the Oxford Latin Course love semicolons. 23:49:23 I used to never use the semicolon, then I did, and used it excessively to the point of insanity in here; then I decided to stop entirely for a few months, which I did, and my writing became a bit less silly; and then I started again, but more moderately. 23:49:31 Of course, "moderately" here means "a few times per sentence". 23:50:22 Remember my Comic Sans essay? 23:50:34 The teacher scolded me for "semicolon splicing". 23:51:01 When I pointed out to her that that was the ENTIRE POINT of the semicolon, she said I still wasn't using it properly. 23:51:10 * Phantom__Hoover wonders if he still has that essay handy. 23:52:00 Yes, I do, but it's in LyX. 23:52:09 Might as well convert it to LaTeX. 23:52:15 Semicolon splicing. 23:52:15 <3 23:52:32 Phantom__Hoover: Next up, write an essay on the proper use of semicolons. 23:52:38 Cite every major style guide. 23:52:49 (they're not likely to disagree on major points.) 23:53:32 pikhq, well, her quibble was more that I had used it between sentences that weren't very logically connected. 23:54:06 Phantom__Hoover: Define "logically connected". 23:54:23 Dunno. 23:54:41 I could put the text of the essay up, if you want, but it's not terribly good. 23:54:52 I've probably seen worse. 23:54:55 I knocked it together in about 2 hours on the day before it was due. 23:55:10 And I was then scolded *again* for formatting it wrongly. 23:55:23 Phantom__Hoover: Wrongly = with LaTeX? :D 23:55:25 (To be fair, I did use sections and a couple of footnotes.) 23:55:36 elliott, naw. 23:55:55 Although lots of people made the oh-so-clever suggestion to typeset it in Comic Sans. 23:56:24 GODDAMN IT APTITUDE I DON'T CARE IF THERE'S AN UNMET DEPENDENCY IN A COMPLETELY DIFFERENT PACKAGE TO THE ONE I WANT TO INSALL 23:56:27 *INSTALL