00:00:02 Ooh. 00:00:09 @src replicateM_ 00:00:09 replicateM_ n x = sequence_ (replicate n x) 00:01:03 > let f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:01:08 mueval-core: Time limit exceeded 00:01:15 wtf 00:01:42 > let f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:01:45 *Exception: 1 2 00:02:02 > let f 1 2 = LT; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:02:05 *Exception: 3 4 00:02:59 > let f x y | (x,y) `elem` zip [1,3] [2,4] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:03:01 *Exception: 1 3 00:03:14 > let f x y | (x,y) `elem` zip [1,3,1] [2,4,3] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:03:16 *Exception: 5 6 00:03:57 > let f x y | (x,y) `elem` zip [1,3,1,5] [2,4,3,6] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:04:00 *Exception: 7 8 00:04:27 > let f x y | (x,y) `elem` zip [1,3,1,5,7,5] [2,4,3,6,8,7] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10] 00:04:30 *Exception: 1 5 00:10:10 -!- copumpkin has joined. 00:11:14 > sortBy (\x y -> case (ord x - ord y) `mod` 3 of 0 -> EQ; 1 -> GT; 2 -> LT) "copumpkin cobrigade" 00:11:16 "adn becoucoripmpgki" 00:12:17 http://qntm.org/tetris 00:12:24 interesting there are several common substrings to without the co 00:12:28 oerjan: I see 00:12:28 copumpkin: You have 1 new message. '/msg lambdabot @messages' to read it. 00:13:39 in fact just a k and i moved 00:38:34 > error (error "yo") 00:38:36 *Exception: yo 00:41:14 Today, Anki expects me to recall 51 Finnish words and learn an additional 20. 00:41:17 I am screwed. :P 00:41:31 > error $! error "yo" 00:41:32 *Exception: yo 00:41:58 oops 00:42:14 > error undefined 00:42:16 *Exception: *Exception: Prelude.undefined 00:42:21 that's a good one 00:42:33 tama mika on? se on bussi 00:42:43 i wonder why error (error "yo") doesn't give two... 00:43:02 > error $ ' ':error "yo" 00:43:03 *Exception: *Exception: yo 00:43:11 thats my finnish vocab. i believe it means "what is that? that is bus" 00:43:22 > error $ error "yo" 00:43:23 *Exception: *Exception: yo 00:43:24 > fix (error .) "yo" 00:43:25 or something similar 00:43:26 "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E... 00:43:27 wat 00:43:46 > error (error "yo") 00:43:47 *Exception: yo 00:43:56 clearly this is something subtle... 00:44:08 @src ($) 00:44:08 f $ x = f x 00:44:17 > error (error (error "yo")) 00:44:19 *Exception: yo 00:44:45 > error $ error $ error $ "yo" 00:44:46 *Exception: *Exception: *Exception: yo 00:44:52 if there were a rewriting rule, i'd expect it to trigger with $ as well 00:45:25 -!- copumpkin has quit (Ping timeout: 252 seconds). 00:45:49 -!- copumpkin has joined. 00:46:14 copumpkin: shachaf: do any of you have any idea why this differs? 00:46:20 ? 00:46:23 I just got disconnected 00:46:42 oerjan: That's kind of weird. 00:46:47 copumpkin: lambdabot gives different printout for error (error "yo") and error $ error "yo" 00:46:47 > error (error "yo") 00:46:48 *Exception: yo 00:46:53 > error $ error "yo" 00:46:54 *Exception: *Exception: yo 00:47:03 yeah, someone brought that up a while ago 00:47:05 > error (error (error "yo")) 00:47:05 *Exception: yo 00:47:05 > error $ error $ error $ "yo" 00:47:05 *Exception: *Exception: *Exception: yo 00:47:10 Isn't ($) lazy? 00:47:16 > error `id` error "foo" 00:47:16 I can't remember why it is, but I think there was discussion about it on haskell-cafe 00:47:17 *Exception: *Exception: foo 00:47:21 it's some sort of bug somewhere 00:47:38 > id error (error "foo") 00:47:39 *Exception: *Exception: foo 00:47:44 elliott: they _should_ be identical. i'd be extremely surprised it f $ x isn't rewritten to be identical to f x inside ghc 00:47:46 > error (error "foo") 00:47:47 *Exception: foo 00:48:02 > (let x = error in x) (error "foo") 00:48:03 *Exception: foo 00:48:13 > (let x = error in x `seq` x) (error "foo") 00:48:14 *Exception: foo 00:48:19 > (let x = error in id x) (error "foo") 00:48:20 *Exception: *Exception: foo 00:48:26 Exciting. 00:51:00 found it: http://www.haskell.org/pipermail/haskell-cafe/2011-February/088905.html 00:54:56 So GHC knows that error is strict, but not that id error is? 00:55:00 Makes sense, I guess. 00:55:22 "But in version (B), 00:55:22 the demand analyzer only knows that ($) is strict in its first 00:55:23 argument -- it's not strict in its second." 00:55:30 > id error (error "foo") 00:55:31 *Exception: *Exception: foo 00:55:33 > error (error "foo") 00:55:34 *Exception: foo 00:56:13 "If ($) were getting inlined, the code would look the same coming into 00:56:14 demand analysis in both cases, so you wouldn't see a difference. So 00:56:14 I'm guessing you're compiling with -O0. 00:56:14 " 00:58:01 -funroll-loops 00:59:17 -funroll-all-loops 00:59:33 -funroll-in-the-hay 01:10:57 soittaa 01:41:39 -!- FireFly has quit (Quit: swatted to death). 01:45:12 -!- tswett has quit (Ping timeout: 246 seconds). 01:46:22 -!- tswett has joined. 01:47:46 `addquote I'm having nostalgia for when we could see the glass from the floor 01:47:47 520) I'm having nostalgia for when we could see the glass from the floor 01:48:52 is there context 01:59:27 -!- cheater__ has joined. 02:02:52 -!- cheater_ has quit (Ping timeout: 240 seconds). 02:04:52 monqy: minecraft 02:04:56 also technically a jok 02:04:57 e 02:40:57 " thats my finnish vocab. i believe it means "what is that? that is bus" <<< i would translate it as "thïs whät is? it is a bus." 02:41:10 close enough :> 02:41:32 certainly 02:41:43 wahahaha 02:42:26 certainly understandable 02:42:48 yeah.. somehow that phrase stuck 02:43:13 a similar sentence that means something would be "mikä tämä on? se on bussi" 02:43:36 ah.. i wouldn't know how to create such a character 02:43:40 what is this? it is a bus. 02:45:02 so im studying some haskell .. very beginner stuff 02:45:10 i don't know how not to know how to make such a character, so i certainly have some sympathy 02:45:39 erm 02:45:54 oh haskell 02:46:04 not finnish 02:46:05 ... 02:46:09 i have just learned fst (1,'a') and snd ("abc",2) 02:46:14 i was about to ask why the fuck everyone's learning it 02:46:20 but okay haskell 02:46:22 then i'll just ask 02:46:27 why the fuck is everyone learning it? 02:46:45 the reasons should be obvious 02:46:53 oklopol: on beesti languagi 02:47:10 xD 02:47:47 my friend who i left behind in an old chatroom would be very happy to hear i know any haskell words 02:48:01 "besti" is occasionally used i think 02:48:31 i think that the toughest part to learn is pronunciation 02:48:40 > fst . fst . fst . fst $ (((("fst!",1),2),3),4) 02:48:42 "fst!" 02:48:53 whoa.. slow down 02:48:56 >.< 02:49:01 * oerjan cackles evilly 02:49:23 itidus20: how deep expressions have you learned to evaluate so far? 02:49:39 i'm sorry, obscure haskell demonstrations are obligatory on this channel 02:49:56 (not that that was particularly obscure for haskell) 02:49:56 that 4 was roughly my limit i think 02:49:58 an exercize was: Exercise 3.2 Use a combination of fst and snd to extract the character out of the tuple 02:49:59 ((1,’a’),"foo"). -- which i did 02:50:17 lol.. rocket science 02:50:19 snd . fst 02:50:28 oh.. the thing is the book doesn't have the dot 02:50:38 hmm this brings back grave memories 02:50:38 i have a hunch he may not have learned . and $ yet :P 02:51:00 itidus20: that's fine you can use parentheses instead 02:51:09 well anyway biggest penis = snd (fst penis) 02:51:16 the k and r book wasn't referencing certain characetrs when someone tried to show me 02:51:30 so that is a deep concern 02:51:43 ^s/referencing/showing 02:51:47 ah. 02:51:59 gulp 02:52:21 but is probably safe 02:52:25 itidus20: well haskell mostly uses just plain ascii, although there is a flag for using unicode for some stuff if you want things to look more like typeset math 02:52:53 uh.. im gonna assume the book simply didn't introduce the . yet 02:52:59 itidus20: almost certainly 02:53:07 however.. yeah that reminds me that my k and r book.. had missing chars 02:53:23 or maybe they just used \circ instead 02:53:32 > fst (fst (fst (fst (((("fst!",1),2),3),4)))) 02:53:33 "fst!" 02:53:41 better? :) 02:55:35 wurk -> 02:55:36 i see 02:56:55 > snd(snd (1,(2,3))) 02:56:56 itidus20: if f and g are functions, (g . f) is a new function that first applies f, and then applies g to the result. main use of this of course being obfuscation. 02:56:56 3 02:57:14 * oerjan swats oklopol -----### 02:57:20 oklo: im not listening.. :P im not taking the combinatrics approach 02:57:36 i 02:57:36 err 02:57:55 i mean i will if it ever gets there but yeah 02:58:04 you don't get that definition? 02:58:15 oklopol: you don't get that he might not get it? 02:58:25 oerjan: you don't get that i don't get that he might not get it? 02:58:31 wait 02:58:33 you totally got that. 02:58:37 yes i do. 02:58:38 i have no math background.. i encountered a curious ebook though which seems to be good at people like me 02:59:09 but worse than no math background my brain is wired in a strange way 02:59:16 itidus20: is it that Learn You a Haskell book? it's frequently recommended although i learned haskell before that... 02:59:42 Yet Another Haskell Tutorial by some guy Hal Daume 02:59:46 ah. 03:00:09 that's a bit older i think. 03:00:18 I don't think very well. But I do think. 03:00:48 :D 03:00:53 okay i really have to 03:01:32 > prtStrLn "bye" 03:01:33 Not in scope: `prtStrLn' 03:01:39 ok sweet 03:01:58 :-s 03:02:00 itidus20: lambdabot only does expression printing, not output functions 03:02:06 cool 03:02:10 you might try EgoBot instead 03:02:17 !haskell putStrLn "bye" 03:02:19 bye 03:02:38 on the other hand, lambdabot has many more functions imported by default 03:02:40 so i got hugs 03:03:05 itidus20: these days the recommendation is the haskell platform 03:03:23 hugs is sadly completely unmaintained now 03:03:46 although i used it for a long time 03:03:57 if i get anywheer i will keep it in mind 03:04:30 oh.. unrelated.. i have a curious function i would like to define 03:04:46 someone was explaining the game of pennymatching to me yesterday 03:04:53 Using Hugs these days is a bit like using GCC 1 for your C development. 03:05:37 itidus20: oh also when you asked the thing about characters i checked your client version and you seem to be on windows. so (1) there's a character map which you can use to get strange characters (2) if you use hugs you probably want to use winhugs 03:06:44 i have winhugs yeah. haskell book is ok. but once upon a time the k&r book had some troubles leaving out certain chars. ill have to check up one day if it has them 03:07:18 so about pennymatching.. one curious thing is that the rules are identical for each player 03:07:44 so they don't have to be defined for each player, only for a generic player. 03:08:16 (im weird) 03:08:26 sounds like nim-type games 03:08:38 oh.. pennymatching is very very simple. 03:09:07 2 players choose a binary digit (such as heads or tails) in private and then compare. 03:09:27 if they are the same then player 1 wins. if they differ then player 2 wins 03:09:41 someone described it to me yesterday 03:09:51 heh ok that's probabilistic so not really nim-like 03:10:31 looks like a simple mixed strategy game 03:11:16 so, as i started to overanalyze it, i realized that of the four outcomes: 00,01,10,11 that theres no other possible win condition except "one of the players wins by getting 00 or 11" 03:11:43 er what 03:11:56 i though you said player to wins on 01 and 10 03:11:59 *two 03:12:03 well each player supplies a binary digit to the game 03:12:33 and.. of the 2 players.. one of them wins on 00/11 and one of them wins on 01/10 03:12:56 the rule about which player wins on which is arbitrary 03:13:10 itidus20: oh also when you asked the thing about characters i checked your client version and you seem to be on windows. so (1) there's a character map which you can use to get strange characters (2) if you use hugs you probably want to use winhugs 03:13:15 what characters are strange for haskell? 03:13:21 none 03:13:24 as far as i know 03:13:27 i was asking oerjan :P 03:13:33 oh haha ok 03:13:44 elliott: well he was pointing out he couldn't make finnish ä, i think 03:13:56 cut and pastes: ä 03:14:00 hehe 03:16:41 so when i started to analyze this pennymatching what i found is that in order to have a fair game, whatever player 1 does, player 2 must have a 50% chance of winning 03:17:19 i don't know how to formalize the idea exactly.. but it's fascinating since the idea of fairness is recursive between the 2 players 03:18:30 option A = 50% chance. option B = 50% chance. 03:19:17 i should try drawing it for myself in paint 03:22:47 -!- azaq23 has quit (Ping timeout: 250 seconds). 03:22:56 -!- azaq23 has joined. 03:23:14 itidus20: i think it depends on your definition of fair. you might also make it >= 50% i think 03:23:33 uh like.. if you go heads, you have 50% chance of winning because they also have 50% chance of winning *pulls out hair* 03:23:34 hm wait 03:23:52 hehe 03:24:10 there may not be any way in this game of making it > 50% for any option 03:24:18 its simple enough 03:24:48 > 50 for heads: always win (for fairness: for tails: always lose) 03:24:49 Not in scope: `for'Not in scope: `heads'Not in scope: `always'Not in scope:... 03:24:56 i mean, it wouldn't necessarily by unfair if A had a choice that guaranteed that A loses 03:24:56 a vanilla coinflip 03:24:59 if you say that a player wins on 10/11 and the other player wins on 01/00 03:25:15 oerjan: true.. not if they didn't know the rule 03:25:25 but there wouldn't then be enough options with just heads and tails to make it fair the other way around 03:25:43 i think 03:25:57 but it could work if there were more than two options 03:26:01 i worded it in a very obfuscated way 03:26:26 but what fascinated me most of all is the recursive way of defining a 50% chance of winning between the 2 players 03:27:12 i lack the math skill to see sense in it 03:27:24 its surely something trivial 03:29:44 blah. 03:30:41 itidus20: you probably are calculating what's called a nash equilibrium. see http://en.wikipedia.org/wiki/Strategy_(game_theory)#Mixed_strategy it even has a link to Penny Matching 03:30:54 thanks 03:32:35 -!- BeholdMyGlory has quit (Remote host closed the connection). 03:56:52 -!- copumpkin has changed nick to contrapumpkin. 04:02:33 -!- contrapumpkin has changed nick to yoda. 04:02:46 -!- yoda has changed nick to coyoda. 04:03:00 yoda, opposite category is in, hm? 04:04:58 -!- coyoda has changed nick to YodaLemma. 04:07:17 -!- canaima17242 has joined. 04:07:56 holaa 04:08:33 -!- canaima17242 has quit (Quit: Leaving.). 04:09:14 -!- YodaLemma has changed nick to copumpkin. 04:56:46 -!- Sgeo__ has changed nick to Sgeo|DiesAtBadTi. 05:20:39 -!- zzo38 has joined. 05:23:50 zzo38: hmm, is the Unispace specification stable? 05:25:13 i feel it is still vague about multiple labels and INTERCAL operators 05:25:36 lifthrasiir: Some people (including you) can change it if you want to. Including to make it less vague, or discussion those things on the Talk page, or add other Unicode space characters, etc 05:26:43 okay, but as always i wanted to implement it in esotope and the stability of the language is paramount ;) 05:27:39 i appreciate the choice made by Migomipo who separated Migol 09 and 11, for example 05:31:04 It isn't completely stable yet, it is just some ideas I wrote. Feel free to update whatever is unclear or incomplete on that wiki article for Unispace. 05:41:56 Holy crap. There is a lake of sulfuric acid. 05:42:39 A naturally occuring lake of *sulfuric acid*. 05:43:00 ah yeah 05:43:06 thats not that difficult 05:43:35 Still. Fuck. 05:43:43 happens around volcanos especially 05:43:53 ever watched dantes peak? 05:44:17 No. 05:44:26 But, yeah, it makes sense how it can occur. 05:44:53 Volcanic gas very high in sulfur bubbling into a lake — bam, sulfuric acid lake. 05:45:22 which specific one are you talking about? 05:45:41 Ijen. 05:45:45 pH of 0.5. 05:48:13 ew mining sulfur by hand 05:48:27 nobody needs that job 05:48:51 And even less so sans gas mask. 05:50:13 under no conditions 05:52:56 There's different levels of "fuck no", though. 05:53:32 sure 05:53:35 fine 05:53:57 but all of them are above a threshold of taking action 05:54:47 Of course, there's *much* better ways of getting sulfur, making the whole proposition sickening and pointless. 05:55:44 Though, TBH, most of those really hazardous things that people in undeveloped nations end up doing are either pointless or much better done via machines. 05:56:08 what are we waiting for? 05:56:23 lets go put that sugar refinery out of business! 05:56:38 Well, there's this nasty problem with economic inequities... 05:56:43 those poor guys need to be unemployed 05:57:36 And it's very, very nontrivial to bootstrap an economy. 05:59:06 who needs to bootstrap an economy? we just bring in our own people and equipment, pay fair tax on export and use of the land... 05:59:32 eventually theyll take over the operation themselves cuz thats just how things go 05:59:44 but for now, it cant hurt them really 06:01:27 Or, knowing humanity's propensity for dickishness, we'll just settle in and create an oppressed underclass that eventually rises up and then has no idea how to run shit, causing things to go to shit. 06:03:17 wtf? create? theres already one! otherwise there wouldnt be people carrying sulfur out of a volcano for $13/day 06:04:06 That's not the *underclass* in that society. 06:04:13 You may now be frightened. 06:05:19 so you agree we wouldnt really be hurting them to build some infrastructure there? 06:05:43 Well. No. My only issue is that there's a decent chance the people involved in doing so will be royal dicks. 06:06:39 i was saying we should be those people 06:06:46 pretty sure i'm not a dick :) 06:06:53 Oh, we personally? No argument. :P 06:07:17 Though I'm afraid that at the moment, they're paid higher wages than I. 06:07:23 haha 06:07:41 (fuck you, Bush.) 06:08:51 not long ago i heard a few fuck reagans 06:09:01 Why did you get dead yesterday? 06:09:01 Also fuck Reagan. 06:09:03 He started it. 06:09:08 so it seems we shall have a good oldfashioned consie president orgy soon 06:09:45 And why didn't you write that book tomorrow? 06:11:08 who are you talking to zzo38? 06:12:07 You, in case you are on this channel. 06:13:06 -!- oerjan has quit (Quit: Good night). 06:13:07 oh 06:13:59 well ask again last week and maybe I'll havd an answer for you by the day i am laid to rest 06:14:42 OK, I will try. But maybe I can't. 06:15:15 -!- copumpkin has quit (Read error: Operation timed out). 06:15:49 well, if i never try to find out how your attempt went, then you can both succeed and fail 06:17:06 -!- copumpkin has joined. 06:24:06 I read book once, it says Jesus is laughing and none of the things they described in the Bible actually existed, they are mythology meant to make up ideas and philosophy and parables and those things, and it makes Gnostic Christianity still valid. 06:25:57 (In the past, it was, and still is in the present, my opinion, that the proper meaning of religion, it doesn't matter whether or not the events described in the Bible actually happened or not.) 06:28:29 Do they exist any of the mana symbols and other symbols for Magic: the Gathering, and energy card symbols for Pokemon card, and Fanucci suit symbols, and so on, in METAFONT? 06:28:57 RE: MTG symbols. No, but there should be. 06:30:10 Yes I think it would be good idea. Would you know who knows how to do it with a good job? 06:37:41 There is at least one (probably several) TTF of (some) MTG symbols, it might be possible to do some manual convertatation, or at least use it as a starting point. (Though I have no clue how good it is; I just saw one somewhere.) 06:39:10 Don't know about how one would do those multicolored hybrid symbols in METAFONT; isn't it quite strictly monochromatic? 06:40:38 Yes it is monochromatic (although you can use specials if needed). It doesn't need colored; you can do it in monochrome so that it works on monochrome printers. The background circle is the colored part and it would be a separate circle symbol, inserted whenever needed for color symbols on color printers. 06:41:44 But there are those two-color ones, like http://wiki.mtgsalvation.com/images/4/4b/Manaur.gif -- though I guess you could have the two halves as separate symbols. 06:42:28 Yes you can have the two halves as separate symbols. 06:42:52 -!- CakeProphet has joined. 06:42:53 -!- CakeProphet has quit (Changing host). 06:42:53 -!- CakeProphet has joined. 06:43:04 (You could use ImageMagick colors, PostScript colors, PDF colors, or what I prefer is CMYKX color specials (where X is like K but used for monochrome printers, while CMYK is for color printers)) 06:44:30 I think separate symbols would work. Each half of circle is one symbol which is colored when printing. And the mana symbols can just be the smaller ones than normal and then put in place. 06:47:52 -!- Taneb has joined. 06:48:05 http://www.mezzacotta.net/garfield/?comic=141 I do believe that the text beneath is the best bit about this one. 06:48:24 * pikhq is a-archive-binging sqrt(-$garfield) 06:48:56 Morning! 06:49:26 The other way is to convert the images used in MSE directly to GF format for the specified resolutions. 06:49:39 > sqrt 3.14159 06:49:41 1.7724531023414978 06:50:59 > sqrt -3.14159 06:51:01 Overlapping instances for GHC.Show.Show (a -> a) 06:51:01 arising from a use of `... 06:52:01 orosu 06:52:14 > sqrt (-pi) 06:52:15 NaN 06:52:19 woot 06:52:23 There you have the floating-point version. 06:52:28 thanks 06:52:49 > sqrt -3.14159 06:52:50 need parens 06:52:53 around the negative number 06:52:59 nods 06:53:20 Otherwise it's (-) sqrt 3.14159, which is of course a type error. 06:53:37 ahh 06:53:45 hmm 06:53:51 so you can't have a negative function 06:54:10 Unary minus is a bit of a hack in Haskell. 06:54:32 (TBH, it's a bit of a hack in pretty much every language with both it and binary minus, but that's beside the point) 06:54:35 well.. mathematical theory probably hasn't explored the implication of a negative function 06:55:05 but since a function isn't really a number im just being dumb 06:55:16 Well, I suppose you could do a variant of Church numerals, thereby getting you functions as numbers. 06:55:18 :) 06:55:28 Actually, without "variant of". 06:55:46 You only need to do extra legwork if you want it to do negatives or something. 06:56:32 hummm 06:56:37 don't mind me 06:57:56 > sqrt $ (-pi) :+ 0 06:57:57 0.0 :+ 1.7724538509055159 06:58:02 sometimes i find my own words to be a thicket, because i have seen how calculated peoples words can be after they start reading about manipulative psychology 06:58:27 How was it with lambdabot, how does it have all the modules (all of them) available by default? 06:58:29 almost every sentence can be evil if the intent behind it is evil 06:58:46 What does :+ do? Is it for specifying complex numbers? 06:58:55 It's the complex number constructor, yes. 06:59:11 itidus20: That is difficult to know if it is correct or whatever it is 06:59:46 you mean sqrt (-pi) ? 07:00:01 Does the intent behind a sentence make it evil? I don't know. 07:00:12 or do you mean followers of general semantics 07:00:24 and all such nonsense 07:00:52 -!- CakeProphet has quit (Ping timeout: 255 seconds). 07:00:53 That is the philosophical ideas of evil and such. 07:01:43 it has come to my attention that rather than using words to express feelings, people these days are interested in using communication as a weapon 07:02:21 being entirely two faced thinking noone knows what they are doing 07:02:42 Floating-point vs mathâ„¢: floating-point wins again: 07:02:43 > (-pi) :+ 0 == mkPolar pi pi 07:02:44 False 07:02:45 i don't mean here i just mean in general 07:02:47 > magnitude $ ((-pi) :+ 0) - (mkPolar pi pi) 07:02:48 Ambiguous occurrence `magnitude' 07:02:49 It could refer to either `Data.Complex.ma... 07:03:21 Hrm, do I need to full-qualify that? 07:03:25 > Data.Complex.magnitude $ ((-pi) :+ 0) - (mkPolar pi pi) 07:03:26 3.8473413874435795e-16 07:04:32 (Wonder what the other sort of magnitude is.) 07:04:59 > mkPolar pi pi 07:05:00 (-3.141592653589793) :+ 3.8473413874435795e-16 07:05:08 Almost, but not quite. 07:05:22 Effing floating point. 07:05:24 marketing, salespeople, advertising, pickup artists, brainwashing, cults, suggestion, covert hypnosis, n.l.p., body language, double-entendres, general semantics, operant conditioning.. all this crap and whatever else comes from it 07:05:47 Yes it is possible not everyone knows exactly what they are thinking, because even your thoughts are all hallucination, too. You can say things for many purposes. One reason, is to ask question, answers, tell something, notify something, etc. 07:05:48 And *now* I realise what "mkPolar" is doing. 07:06:12 Seems so obvious. 07:06:35 Just constructing a complex number from a polar coordinate pair. 07:06:37 Or for word games. 07:06:49 (sorry, just first time I'd seen that function) 07:06:56 > pi * (cis pi) 07:06:57 (-3.141592653589793) :+ 3.8473413874435795e-16 07:07:15 Yeah, that would be the obvious implementation. 07:07:37 zzo: well anyway, the people involved sell themselves out 07:07:40 Effing floating point. :P 07:08:31 But yes it is true, they say things for lying and marketing and so on, too. 07:08:48 Interestingly, 'cis' and 'mkPolar' seem to be independently implemented: "mkPolar r theta = r * cos theta :+ r * sin theta" and "cis theta = cos theta :+ sin theta", from the sources. 07:09:20 How strange. I wonder what difference exists. 07:09:56 Hmm. Actually, might be laziness. 07:10:27 Don't think that'd be *notable*, though. 07:11:26 Might be laziness. On an "intermediate results in higher precision" machine and an old-fashioned language, you might also get better results from doing "r * cos theta" and "r * sin theta" separately, before stuffing them into a "struct complex" or whatnot which would potentially involve truncamation. 07:11:50 Like the good old x87's 80-bit floats, a regular source of surprising inequalities. 07:12:14 Floats already produce some surprising inequalities, though. 07:12:49 I think for measuring angles in a computer, neither radians nor degrees is best. Instead maybe you can have something such as 0xC000 for one full turn (using unsigned 16-bit numbers). 07:13:19 -!- monqy has quit (Quit: hello). 07:13:51 zzo38: It really depends on why you're measuring angles. 07:15:18 "Degrees" where 256 == full turn are quite often used too, since when you put those into a byte-sized variable, the wrap-around is in many cases quite "natural", plus 256 elements is still borderline reasonable for a trig table. 07:15:40 -!- zzo38 has quit (Remote host closed the connection). 07:15:41 -!- azaq23 has quit (Quit: Leaving.). 07:16:41 -!- Scientits has joined. 07:18:40 And the grads (gradians) which have the value of 400 as 2*pi (sorry, tau). I think I had a calculator which could be set to grads, for some inexplicable reason. 07:20:04 -!- ais523 has quit (Remote host closed the connection). 07:20:12 *Aaah*, calculators. 07:20:24 Is there any good reason for them? 07:20:48 You can play (multiplayer, with the link cable) Tetris with them in class? 07:20:57 You can do that with a Gameboy. 07:21:03 Your point? 07:21:06 Yes, but that might be more conspicuous. 07:21:53 Also there's a demo called Anal Party IV for the TI-86, which does sound (well... some) by twiddling the link port registers. 07:22:10 is there any field where humans still actually calculate immediate expressions by hand? 07:22:28 itidus20: Education. 07:22:38 what are immediate expressions? 07:22:39 (It's not an especially impressive demo; the graphics hardware in TI-86 only has a simple bitmapped screen, so you can't do anything really clever with it.) 07:22:40 uh.. by immediate expressions i mean.. as in .. resolving an equation to a value 07:22:56 scientits: im a newbie, a duimbass and i don't know math. forgive my use of these words 07:23:03 heheh 07:23:12 is my name that intimidating? I don't know much maths 07:23:32 I was going to say shopping, in response to your question 07:23:36 oh you call it maths.. you must not be from the us 07:23:41 because that's apparently what we're best at as a society 07:23:48 I am from the internets 07:23:53 sory 07:23:58 Scientits: btw this channel is about programming 07:24:15 i dun really wanan know 07:25:25 where i live its also called maths though 07:29:14 -!- Scientits has left ("Leaving"). 07:30:04 eek what did i do 07:31:47 so what i meant was.. inserting numbers into equations and working out the answers without the aid of a calculator 07:32:00 or..even.. doing it with a calculator 07:32:58 Yes, that's only done in education. 07:33:09 Which *suggests* that it does not belong there. 07:34:07 it's bizzare 07:35:38 itidus20: it was me 07:35:46 everyone thinks this is an esoterica channel. 07:36:40 is it? 07:43:44 no 07:45:21 @die 1d6 07:45:22 1d6 => 3 07:53:08 a certain tradeoff is occuring to me. in general normal people are not entertained by their own work. 07:53:54 for example, a poet probably doesn't contemplate on their own poems. a writer on their own novels, a director on their own films, a musician on their own music, etc 07:54:05 nahhhh 07:54:08 that's just false humbleness 07:54:42 I mean sure there may be some people who don't think their work sucks but has absolutely no interest in it 07:54:47 but I very much doubt they're in the majority 07:55:03 humm 07:55:29 well, in general it is easier to be entertained I think by something someone else made 07:55:33 Also, most programmers hate everyone *elses* code, and only likes their own. 07:55:49 well programming is something difficult to place in this sense 07:55:51 pikhq: [asterisk]like 07:56:04 itidus20: that's certainly true 07:56:20 but that may be just because the act of creating a work involves so much attention to it that it's like playing a song nine hundred times 07:57:05 This always brings to mind field of dreams for me 07:57:23 about building something for someone else 07:58:33 i want to be my own audience because i can tailor something to my exact needs and i can give myself the most direct feedback 07:58:41 but however... perhaps it is like incest 07:58:48 and.. just wrong 08:18:27 theres this feeling i get when looking at code of a kind of boredom or ennui knowing it isn't going to do anything exciting, or knowing it doesn't mean anything 08:19:00 im not sure if its the "you should turn on your intellect now" feeling 08:19:19 maybe i am just too inexperienced to "get it" 08:19:50 it was quite late in life afterall that I started to give a damn about politics or legal or economic matters in newspapers 08:19:53 -!- Taneb has quit (Read error: Connection reset by peer). 08:20:14 maybe i just need to let it come 08:23:09 -!- Sgeo|DiesAtBadTi has changed nick to Sgeo. 08:48:26 http://wellnowwhat.net/transfers/testWaveform.wav 08:49:04 sounds waveformy 08:49:30 it does 08:50:04 we're working on making it better tho 08:50:21 i think part of the problem is the time resolution, giving it a sort of modem-y sound 08:50:49 -!- Taneb has joined. 08:50:59 what is it meant to be 08:51:01 a e i o u? 08:51:22 "a i o" 08:51:35 "a e i o u" isnt a bad guess 08:51:53 given the phonetics of "e" 08:52:13 and the apparent strength of the final [u] in the "o" 09:04:49 -!- ineiros has quit (Read error: Operation timed out). 09:05:08 -!- ineiros has joined. 09:36:12 -!- Zwaarddijk has quit (Ping timeout: 258 seconds). 09:36:15 -!- Zwaarddijk has joined. 10:03:32 -!- copumpkin has quit (Ping timeout: 240 seconds). 10:03:56 -!- copumpkin has joined. 10:31:24 -!- Ycros has left. 10:41:57 -!- Taneb has quit (Ping timeout: 252 seconds). 10:48:38 " a certain tradeoff is occuring to me. in general normal people are not entertained by their own work." <<< i love pretty much all of my own work 10:49:00 i also think all of it sucks ass 10:51:38 " but that may be just because the act of creating a work involves so much attention to it that it's like playing a song nine hundred times" <<< i think the majority of people enjoy hearing the same thing over and over (although with other stuff in between repetitions) 10:54:20 -!- FireFly has joined. 10:59:03 well, at least if that thing is pure greatness 11:02:03 -!- Taneb has joined. 11:12:23 Well, my BF Joust evolutiony thing is approaching being ran 11:16:04 I predict it will enslave humanity in approximately 7 hours. 11:16:07 That's what always happens. 11:16:56 I've taken precautions 11:17:02 It's written in Python 11:17:04 That's also what they always say. 11:17:26 Mine was written in Perl, and it still enslaved a couple of humanities. 11:23:18 Also, the evolution process is controlled by me 11:26:25 Ychat just announces the now.. but 11:26:39 i was going somewhere with it 11:27:21 i feel there is a disconnect with programming languages and the desired result 11:27:42 (yeah its called the art of programming dumbass) 11:30:23 but uh.. I suspect that things can be better 11:32:40 ]]]]]]]]]]]]]]]]]]]]] 11:32:45 oops 11:34:46 -!- sebbu has quit (Ping timeout: 260 seconds). 11:36:02 -!- sebbu has joined. 11:36:28 `addquote The Russian's emblem was the hammer and sickle, not the fist and other fist 11:36:32 521) The Russian's emblem was the hammer and sickle, not the fist and other fist 11:36:40 YES 11:47:16 -!- boily has joined. 11:50:11 Well, now my BF Joust interpreter might be working 12:00:39 Well, I'm running it 256 times 12:00:53 And it had an error 12:01:18 This'd be much easier if Python had until loops 12:01:34 Taneb: Have you tried "while not"... 12:04:12 `addquote Deewiant: So you... reverse the byte order manually, but then call ntohl too? fizzie: The host might be big-endian! 12:04:13 522) Deewiant: So you... reverse the byte order manually, but then call ntohl too? fizzie: The host might be big-endian! 12:04:31 fizzie: Technically that quote is missing a space, since you apparently still put spaces after line-terminating question marks. 12:10:07 Yes, I can't seem to shake that hobbit. 12:18:58 -!- CakeProphet has joined. 12:19:15 I just had to explain to my parents in an argument that you don't actually feel anything with your heart. 12:19:19 they disagreed. 12:20:07 `addquote God, I sure do hate Apple and their header files that only include the functions they're specified to. 12:20:09 523) God, I sure do hate Apple and their header files that only include the functions they're specified to. 12:22:44 It's like they don't _want_ to be at fault here! 12:24:29 CakeProphet: then they're idiots 12:24:59 I feel with my left foot, personally 12:25:00 ...Python just crashed 12:25:45 well there are nerves in the heart right? 12:25:50 as in, not an exception? it segfaulted? 12:26:02 oklopol: yes, but that's not what they feel /with/ 12:26:03 It just dissappeared 12:26:11 I'm on Windows temporarily 12:26:19 ...well, it is sort of, but... fuck, you know what I mean. 12:26:24 well i can feel something with my hand 12:26:29 i'm sure this is all your parents meant 12:26:42 that you can also touch stuff with your heart and feel it 12:26:44 no I think you give them too much credit. 12:27:19 Have a friend who was absolutely certain that the capital of the US is in British Columbia 12:27:20 I started to explain that you feel emotions in your brain, and they said if they felt things with their head then they could turn them off. 12:27:38 so obviously they're just completely ignorant of everything. 12:27:49 maybe they were just fucking with you 12:28:32 then this is quite a prank they're pulling. It's a joke they've been pulling my entire life. 12:28:50 being that dumb, that is. 12:29:31 I can't be outdone by idiots like your parents! 12:29:59 I'm going to have children, then pretend to be an idiot until they are 21! 12:30:34 i'm going to make my children think i'm dead, and show up as a ghost every now and then 12:30:44 "if they felt things with their head then they could turn them off" -- what? 12:30:55 give them like a bit of lsd so they don't know if it was real or not 12:31:06 I often turn things off with my head 12:31:13 For example, light switchs 12:31:15 yeah it's called telekinesis 12:31:18 and it's perfectly normal 12:31:29 fizzie: I kid you not. 12:31:37 Telekinesis? I just call it hitting my head off things 12:31:47 apparently everything in your head is under conscious control. 12:32:16 cake: which includes so called unconcious concious? 12:32:50 that you can also touch stuff with your heart and feel it 12:32:54 i don't think your heart has nerves 12:33:05 I can't be outdone by idiots like your parents! 12:33:05 I'm going to have children, then pretend to be an idiot until they are 21! 12:33:10 Do one better! Pretend to be an idiot until YOU DIE. 12:33:12 this is where it became intolerable. "feeling with your heart" was kind of reasonable, because emotions are experience as bodily sensations to an extent, but.. they didn't think that emotions were a result of their "head" 12:33:15 And leave NO TRACE of you ever not being an idiot. 12:33:18 It will be the ULTIMATE prank. 12:33:21 well prolly not enough that you could actually feel stuff touching it, but i mean if you say bang it with a hammer 12:33:39 it definitely has nerves 12:33:50 " Do one better! Pretend to be an idiot until YOU DIE." <<< nah just wait until your kids die 12:33:58 Does it have touch receptors? 12:34:24 my heart feels meaty. 12:34:29 well why would it 12:34:48 I dunno, the liver has light receptors 12:35:13 haven't heard that one, why the fuck? 12:35:15 to recognize when you've been disemboweled in the daytime? I could see that as being useful information. 12:35:21 Taneb: that's because... ummm... err.... 12:35:25 `addquote Do one better! Pretend to be an idiot until YOU DIE. 12:35:27 524) Do one better! Pretend to be an idiot until YOU DIE. 12:35:27 err.............. 12:35:36 NihilistDandy: My, aren't I quotable today. 12:35:46 Indeed 12:35:51 The liver light receptors were a co-incedence that slowly led to the developement of eyes 12:36:50 god was like lol evolution ur being so dum 12:38:19 unintelligent design. 12:39:01 i think with my liver 12:42:02 i more or less accept that we exist as a kind of mysterious tradeoff 12:42:20 me too 12:42:43 not even that.. i just don't know 12:42:48 i mean i have no idea what that means, but i assume that's your point 12:43:01 well.. self and other 12:43:08 theres no real divide between self and other 12:43:13 the mind just approximates it 12:43:38 just guessing 12:44:25 yep black and white, real and unreal, yin and yang, lemme get my crystal ball 12:44:43 i should sleap 12:44:49 Like, is my left hand part of me? 12:44:52 Is my sock? 12:45:00 Is this sofa I'm sitting on? 12:45:04 Is my brain? 12:45:15 taneb: having spent far too much time thinking about these things... i have only led myself into depressions 12:45:29 left hand yes, sock only if you just jizzed on it, sofa no except if you just jizzed on it 12:45:40 *in 12:45:49 but it helps to remember that not knowing is not knowing 12:45:50 brain yes 12:46:34 taneb: a depressed view of existence isn't necessarily a more accurate one 12:47:31 what if you jizz on everything? Does everything become one? 12:47:47 have you even READ the bible? 12:47:58 I suppose you have to jizz on your jizz 12:48:59 So... God has jizzed on everything? 12:49:12 have you even READ the bible? 12:49:37 Tried to once. 12:49:42 Couldn't get into it. 12:49:43 me too 12:49:48 me neither 12:49:48 `addquote So... God has jizzed on everything? have you even READ the bible? 12:49:50 525) So... God has jizzed on everything? have you even READ the bible? 12:51:20 i shall now sleep until the sun goes down 12:52:21 oklopol: so rude to sun 12:54:58 i agree, that's why i always go to sleep when the sun starts sunning rudely 12:56:24 oklopol: it's four pm there dude 12:57:22 yes i usually sleep all day 12:57:29 got a problem with that? 12:57:40 nope it's just that the sun has been sunning rudely for quite a while 12:57:45 you should try doing it a bit earlier so that you miss all of it 12:57:50 well how would i know 12:57:55 i can't actually see it 12:58:55 Hire someone to see it for you? 12:59:21 Well, my BF Joust interpreter works 13:01:26 Nope, I've broken it 13:08:40 Fixed it 13:09:08 Nälkä, eikä oo ruokaa. 13:12:24 ...Myös. 13:12:59 Olen käsine! Ei, olen kaksi käsineet! 13:18:00 Jsem rukavice! Ne, já jsem dva rukavice! 13:18:21 Ben bir eldiven! Hayır, iki eldiven! 13:18:37 Ich bin ein Handschuh! Nein, ich bin zwei Handschuhe! 13:18:48 Why is German so long? 13:18:53 It's inefficient 13:19:08 I just want to express my identity as a glove 13:19:20 -!- cheater__ has quit (Ping timeout: 255 seconds). 13:19:25 Then correct myself as my glove identity has duplicated 13:20:23 Yeah, in "Ich bin ein", everything but "bin" is redundant, and "Handschuh" is longer than it has to be. 13:21:00 It should be, like, "Bin Glof! Nein, bin zwei Glofe!" 13:21:25 We should make a petition to reform the German language 13:21:45 Nah, we should all just speak Spanish instead. I like that one. 13:22:01 Soy un guante! No, yo soy dos guantes! 13:22:13 ¡Soy guante! 13:22:18 It's not as short as Turkish... 13:22:27 What you say if being a glove is your job. 13:22:41 ¡No, soy dos guantes! 13:24:01 Damn, python.org is down 13:24:28 ...Is there a short way to find the sum of all the numbers in a list in python? 13:24:37 -!- elliott has quit (Read error: Connection reset by peer). 13:24:45 -!- elliott has joined. 13:25:54 Taneb: yes, sum 13:26:02 Ooh, that's handy 13:26:04 builtin function I believe. 13:26:09 Even handier 13:26:29 In the words of the great Stephen Fry: Wo ist mein Handy? 13:26:44 hmmm, my Python knowledge is a little rusty. 13:26:54 haven't used it in quite a while. 13:26:59 Mine is extremely incomplete 13:27:16 but it was my first language, so I spent a lot of time mastering it. 13:27:23 not that it's... difficult to master. 13:27:53 are you familiar with generator comprehensions? 13:27:59 or, whatever they're called... 13:28:15 Not especially 13:28:42 (expr for var in list). if you use square brackets it's a list comprehension which is strictly evaluated, but using () makes a lazy iterator object 13:29:03 Taneb: You should use Haskell it's a great thing and also better than Python. 13:29:06 so for large iterations, generators are preferable. 13:29:09 Opinions hour with Elliott. 13:29:19 CakeProphet: Only true if you're going to iterate over it afterwards 13:29:27 I'm better at Python than I am at Haskell 13:29:44 Actually, I'm awful at Haskell 13:29:52 reversed([x for y in z]) shouldn't be much slower than reversed(x for y in z) 13:29:55 Although the latter is nicer 13:30:10 Taneb: It's called self-improvement. :p 13:30:11 elliott: well... yes. I was talking about iterating, not representing data. 13:31:34 elliott: well reversed can't take an iterator at all. 13:31:41 Well that sucks 13:31:46 It'll be in itertools somewhere 13:31:51 it wouldn't be very efficient anyways. 13:32:01 compared to reversed(list) 13:33:08 also the /length/ of the list is important. Which is why I say that for large iterations, generators are much more space efficient. For small lists/iterations, it's not going to be a noticable difference. 13:33:57 You'll probably rarely be able to tell at all what with how slow Python is 13:34:13 well, yeah. 13:34:55 I've just made it a habit to use generators when I do not need to store the values later because they're generally more efficient for that purpose. 13:35:29 for example: using xrange instead of range (though I believe in Python 3 range produces an iterator) 13:36:20 I've always found worrying about efficiency in languages like Perl and Python to be somewhat ironic. 13:37:29 You can worry about algorithmic efficiency, but microoptimising is basically completely pointless 13:37:32 I suppose being concerned about how performance /scales/ is reasonable, but trying to get the fastest runtimes would be silly. 13:37:35 ...yes, what you said. 13:37:56 Now in Haskell, you can microoptimise without significantly changing the global structure of your code, if you need it... ;D 13:38:05 I can twist literally anything into an argument for why Haskell is the best, try me. 13:38:20 (Says the guy who spends most of his Haskell-coding time groaning about its glaring imperfections.) 13:39:08 Python's C interface is pretty good. The "Great Language Shootout" benchmarks have the lowest Python-to-C ratio at 1.02 13:39:18 obviously these programs cheat and write everything in C.. 13:39:56 but it shows that there's not much overhead to this approach when micro-optimizing computationally intense sections of code. 13:40:47 ... C-to-Python ratio, actually. 13:40:58 er, not, since it's runtime. 13:42:13 my main complaint with Python is that it has poor functional programming support in libraries and syntax. 13:42:48 Bäck. 13:44:01 I believe I suggested improving the functools module on the Python mailing list one time, including things such as id and compose functions. It wasn't taken seriously. 13:44:49 at least it has a partial application constructor thing. 13:45:38 but I think it would be much cleaner to write a function decorator that supported partial application directly in the __call__ method. Because partial(f, a, b, c) is uglier than just f(a,b) 13:45:43 *f(a,b,c) 13:46:50 @curriable \n def func(a,b,c): ... 13:46:50 Unknown command, try @list 13:47:40 ophet(+i)] [4:Freenode/#esoteric(+cn)] [Act: 3,5,6] 13:47:45 ...? 13:47:56 hand must have slipped and did something weird. 13:48:24 Taneb: ^^^ do this stuff 13:48:36 it would be a func and pretty easy little module 13:48:42 lol *fun 13:49:13 What am I tryinh? 13:50:14 basically you would create a class called curriable, that took a function as its constructor argument, and defines a __call__ method that returns a partial application when every mandatory argument to the original function is not given. 13:51:00 you'd have to use the inspect module to grab the functions signature information and stuff, so that you can know when to partially apply and when to return the normal result. 13:51:32 and functools, so that you could borrowed the partial class 13:51:39 *borrow 13:51:52 ..have I lost you? 13:51:59 Slightly 13:52:37 okay if you import functools, you get a class called partial. Partial is constructed with a function and some arguments to that function. 13:53:20 it then returns a callable object that takes the rest of the functions arguments, and then gives you the result. This is called partial application, where you supply some of the functions arguments at one point in execution, and then supply the rest later. 13:53:47 Okay 13:54:12 the problem is that this does not occur automatically, you have to construct the partial object manually: thus, partial(f,a,b) instead of just f(a,b) 13:54:15 HOWEVER 13:54:42 you could create a class called curriable, that wraps over a function, and implements a __call__ method that does the partial application semantics when not enough arguments are supplied. 13:55:31 to determine if this is the case, you could use the inspect module. Which has a function (can't remember the name) that returns information about a functions parameters. 13:55:42 So, if enough arguments are supplied, it calls the function as normal, otherwise it returns the partial? 13:55:46 yep. 13:55:57 -!- elliott has quit (Read error: Connection reset by peer). 13:56:01 -!- elliott_ has joined. 13:56:04 and then, using Pythons decorate syntax, you could define functions that are automatically curriable 13:56:08 @curriable 13:56:08 Unknown command, try @list 13:56:11 def func(a,b,c): ... 13:56:13 like that. 13:56:15 ignore lambdabot 13:57:16 @d; def func(): ... === def temp(): ...; func = d(temp) 13:57:16 Parse error at "..." (column 13) 13:57:42 ; is linebreak since this is Python and Python is stupid. 13:58:49 basically the @whatever is just a sugary way to wrap a function inside another object, so that you can implement special call semantics or whatever you want to do really. 13:59:06 you could have a wrapper that logs function calls, for example. 13:59:14 -!- cheater_ has joined. 13:59:55 or provides some metadata. or allows you to change the definition of the function at runtime (I think I've actually done this before...) 14:04:20 also you write class methods (aka static methods) in Python by putting @classmethod above the method definition. 14:04:57 in Java I like to call static methods "functions" 14:05:15 since this is basically when they are used. 14:06:38 -!- BeholdMyGlory has joined. 14:07:04 er, actually Python has staticmethod and classmethod. classmethod makes the method take the class as its implicit argument, while staticmethod has no implicit argument at all. 14:09:01 I hope I am making sense right now... 14:09:12 I enjoy teaching people things. 14:09:16 Sort of... 14:10:11 anything you're confused about? 14:11:35 does italian have separate singular and multiple "you"? 14:11:36 So, I'm making something that takes a function and some parameters, and returns a function, which is the same function as before but with the parameters hardcoded? 14:11:45 currying 14:12:08 Taneb: well, you could, but that's already been done for you if you import functools and then type functools.partial 14:12:39 And if there are enough parameters, the function is called? 14:12:58 what you would be making is a thing (aka class) that takes a function and produces a function that will either partial apply or completely apply based on the number of arguments. 14:13:31 actually it wouldn't be producing a function directly, because you can define function-like objects by implementing the __call__ method. 14:13:42 which is called whenever your object is called as though it were a function. 14:13:52 So, if I had a kinda boring function called total that took two arguments and returned their sum 14:14:11 whatever(total,3) would return a function that added three to things 14:14:15 yep 14:14:21 > map (+3) [1..] 14:14:22 [4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30... 14:14:22 but whatever(total,3,7) would return 10? 14:14:30 ...no it's more like 14:14:40 whatever(total)(3) would return the function that adds three to things 14:14:40 A function that returns ten? 14:14:51 and whatever(total)(3,7) would return 10 14:15:13 and then you just use @whatever above the def for total 14:15:21 to make it a curriable function. 14:16:10 whatever(total) just augments total so that it automatically partially applies when (get ready for it) applicable. 14:16:56 it could do this by either returning a function, or by being a class that implements a __call__ method 14:17:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:18:10 this is the semantics Haskell does by default. (3+) is a function that adds three to things. 14:18:25 but Python can do this as well if you define a function wrapper for it. 14:20:10 -!- oklopol has quit (Ping timeout: 250 seconds). 14:20:54 then you could have: import operator, itertools; add = whatever(operator.add); map(add(3), itertools.count(0)) 14:21:14 which is roughly equivalent to the Haskell code map (+3) [0..] 14:21:33 except it's wordier because you have to import some boilerplate to get the desired semantics. 14:23:41 -!- cheater_ has quit (Ping timeout: 255 seconds). 14:24:50 Apparently, built-in functions don't count as functions 14:24:57 how so? 14:25:08 TypeError: is not a Python function 14:25:16 what is the offending code. 14:25:27 inspect.getfullargspec(len) 14:25:32 ah, yes. 14:25:47 inspect can't get the argument information from a built-in function. 14:27:12 -!- oklopol has joined. 14:29:20 in that case you can have a special-case for built-in functions where you catch a TypeError, test if it was a built-in, and then see if the exception message matches func_name + "() takes exactly .*? arguments? (\d+ given)" 14:29:28 or something equally hackish 14:32:18 -!- oklopol has quit (Ping timeout: 250 seconds). 14:36:53 -!- cheater_ has joined. 14:37:26 Taneb: but in the meantime you could just ignore built-ins 14:43:24 -!- copumpkin has joined. 14:44:40 also when returning the partial object you may want to wrap that object within your class as well. 14:44:52 so that the partially applied function can be partially applied further. 14:45:12 thus whatever(total)(2)(4) 14:45:38 well, bad example. whatever(three_argument_function)(a)(b)(c) 14:46:58 So it's... weirdly recursive? 14:47:07 no, not recursive at all. 14:47:16 it just returns instances of the same class when called. 14:47:44 so that the functionally is contagious, so to speak. 14:48:13 @hoogle a -> b -> c 14:48:14 Prelude curry :: ((a, b) -> c) -> a -> b -> c 14:48:14 Data.Tuple curry :: ((a, b) -> c) -> a -> b -> c 14:48:14 Prelude flip :: (a -> b -> c) -> b -> a -> c 14:48:16 @hoogle a -> b -> c -> d 14:48:16 Text.Regex.Base.RegexLike makeRegexOpts :: RegexMaker regex compOpt execOpt source => compOpt -> execOpt -> source -> regex 14:48:17 Network.BufferType buf_append :: BufferOp a -> a -> a -> a 14:48:17 Network.BufferType buf_snoc :: BufferOp a -> a -> Word8 -> a 14:48:55 > let if' a b c = if a then b else c in (if') (True) (2) (3) 14:48:56 2 14:49:05 -!- oklopol has joined. 14:49:34 @let if' a b c = if a then b else c 14:49:36 Defined. 14:49:56 > (((if' False) 3) 4) 14:49:58 4 14:50:19 demonstrating how partial application works in Haskell, called currying in Haskell. You can curry the curried function. 14:50:53 -!- oklofok has joined. 14:53:31 -!- oklopol has quit (Ping timeout: 252 seconds). 14:53:46 currying is useful because it allows you to construct more specific functions from general functions. 14:55:11 -!- oklofok has quit (Ping timeout: 240 seconds). 14:55:47 for example const in Haskell lets you create functions that always return a constant value. 14:55:53 map (const 3) [1,2,3,4] 14:55:55 > map (const 3) [1,2,3,4] 14:55:56 [3,3,3,3] 14:56:44 in Python const would look like: @curriable; def const(a,b): return a 14:59:21 def makeconst(a): return lambda b: a 14:59:32 yes 14:59:50 but thats lame. 15:00:14 because it actually needs to be 15:01:25 def makeconst(a, b=NotImplemented): return ((lambda b: a) if b is NotImplemented else a) 15:02:50 I used NotImplemented instead of None because there might be situations where you want to use None for b 15:03:01 and NotImplemented is pretty unused. 15:04:28 heh, NotImplementedType is a pretty fancy type. 15:04:36 it's got a __repr__ method and nothing else. 15:04:42 NotImplemented exists to be shown. 15:05:19 -!- oklopol has joined. 15:05:26 NoneType only defined __repr__ and __hash__. hmmm, interesting, so NotImplemented cannot be used in a dictionary. 15:06:24 oh wait, yes it can, I think it just inherits __hash__ from object. 15:07:27 Python's object hierarchy propagates a wealthy family history of opioid use. 15:09:35 -!- oklopol has quit (Ping timeout: 255 seconds). 15:09:47 -!- oklopol has joined. 15:10:39 -!- oklofok has joined. 15:14:05 -!- oklopol has quit (Ping timeout: 255 seconds). 15:17:39 -!- oklofok has quit (Ping timeout: 264 seconds). 15:18:30 -!- oklopol has joined. 15:54:38 `addquote Vorpal: Won't be slower than Python ;-) elliott_, yeah but that is like saying a T-Ford going down a hill won't be slower than a bicycle uphill on a bumpy road :P 15:54:39 526) Vorpal: Won't be slower than Python ;-) elliott_, yeah but that is like saying a T-Ford going down a hill won't be slower than a bicycle uphill on a bumpy road :P 15:56:55 (for reference, he was talking about a program written in C...) 16:17:38 import teleporter 16:35:03 -!- Taneb has quit (Ping timeout: 252 seconds). 16:37:49 -!- zzo38 has joined. 16:38:29 -!- Taneb has joined. 16:49:15 -!- pikhq has quit (Ping timeout: 246 seconds). 16:49:20 -!- pikhq has joined. 16:56:00 -!- MigoMipo has joined. 17:06:26 Hello people! 17:07:04 hi 17:07:21 Oh, you don't count, I was just talking to you 17:17:21 Oh God I am crazy 17:17:34 I'm trying to implement Numberwang in C++ 17:17:46 I haven't even touched C++ in years 17:17:49 -!- boily has quit (Quit: WeeChat 0.3.5). 17:20:27 Oh, I won't bother 17:27:26 Good work ethic 17:28:17 Even so far my DVI optimization program does a better job than TeX although I am still improving it. You can also suggest other things with it, including optimizations I may have missed, and so on. 17:28:36 I'll do it in JavaScript instead 17:28:43 I know JavaScript 17:38:58 -!- zzo38 has quit (Remote host closed the connection). 17:47:17 -!- elliott_ has quit (Read error: Connection reset by peer). 17:51:41 -!- azaq23 has joined. 18:01:01 -!- elliott has joined. 18:13:38 -!- monqy has joined. 18:18:28 -!- pikhq_ has joined. 18:19:21 -!- pikhq has quit (Ping timeout: 258 seconds). 18:25:06 Does anyone know how to convert a string like "4.4" to a number in Javascript? 18:27:06 parseInt(n,10) 18:28:32 That loses the .4 18:28:56 parseFloat works, though! 18:32:07 Okay, that's a bit weird/ 18:32:23 In Chrome, at least, NaN is not equal to itself... 18:32:45 But it is not equal to itself 18:33:55 Yes, that's by definition. 18:34:48 Does the definition recommend a way to test for NaN-ness? 18:35:23 there's probably something like an isNaN function 18:35:24 isNan(x)? 18:35:31 Yes, it's isNaN. 18:35:36 (The lowercase 'n' was a typo.) 18:35:44 Thanks 18:37:33 parseFloat works, though! 18:37:34 Oh, right. 18:37:36 Make sure to include the ten. 18:37:41 Or 0 at the start = different parsing. 18:37:54 Really? How interesting 18:38:01 It's because it thinks it's octal 18:38:04 0x makes it hex, etc. 18:38:06 Too smart for its own good 18:38:43 I'm not sure if parseFloat does that 18:39:01 parseFloat("019") returns 10 18:39:03 *19 18:39:06 Hmm, fair enough 18:39:08 Still wouldn't trust it :P 18:39:17 and parseFloat("0x19") returns 0 18:47:14 I've just had an idea for an Esolang 18:47:31 One consisting entirely of error handling 18:48:28 And everything that isn't error handling causes an error 18:48:37 Which is then handled 18:48:40 With vigour 18:50:00 shades of http://esolangs.org/wiki/Reaper 18:51:24 -!- Cheery has joined. 18:51:37 Not quite what I had in mind 18:51:49 hi.. #compilers is rather quiet channel.. so I came to ask this here.. 18:52:42 is it unadvisable somehow to insert spillnodes early and reduce them out later if they appear to become unnecessary? 18:53:04 you're building a spillnode-based esolang? 18:53:42 (What's a spillnode?) 18:54:18 oh. i forgot to provide context. 18:54:47 I attempt to output machine code from intermediate language of some sort. 18:55:11 that is.. compile IR into target machine code :) 18:56:42 once I take much as possible away from it.. it becomes mostly a problem of just selecting instructions and mapping target machine registers for variables. 18:58:12 `addquote This staircase is very good for correcting people's opininons about communism 18:58:13 527) This staircase is very good for correcting people's opininons about communism 18:59:57 Taneb: spillnode is a node that translates into load or store whenever live variable gets spilled into memory. 19:07:02 -!- atehwa has quit (Ping timeout: 250 seconds). 19:24:54 hi 19:25:22 hi 19:31:41 -!- oerjan has joined. 19:33:51 -!- Taneb has quit (Read error: Connection reset by peer). 19:35:46 -!- elliott_ has joined. 19:35:47 -!- elliott has quit (Read error: Connection reset by peer). 19:38:41 -!- cheater_ has quit (Ping timeout: 255 seconds). 19:40:09 well.. mathematical theory probably hasn't explored the implication of a negative function 19:40:30 um it probably has, in several different variants. that's the way it usually goes. 19:40:51 oerjan: I discussed one such way not long after. 19:40:52 but first you have to define what kind of negative function you _mean_ by the word 19:40:56 Well, more "touched on". 19:41:23 also 19:41:36 (one of the obvious ways of doing a "negative function" is, of course, a Church pair of a Church boolean and a Church numeral) 19:41:41 > (sqrt-3.14159) 2 19:41:43 -1.7273764376269047 19:41:47 * oerjan whistles innocently 19:42:15 Smartass. :P 19:42:38 :t (sqrt-3.14159) 19:42:39 forall a. (Floating a) => a -> a 19:43:13 That... Is the thing I least expected. 19:43:22 * oerjan cackles evilly 19:43:30 it is simple really 19:43:37 Do tell. 19:43:51 > (sqrt-3.14159) 3.14159 19:43:52 -1.369136897658502 19:44:06 > (sqrt-3.14159) 4 19:44:07 -1.1415899999999999 19:44:09 > (sqrt-3.14159) x 19:44:10 sqrt x + negate 3.14159 19:44:26 ... 19:44:29 derp 19:44:49 lambdabot has instances Num b => Num (a -> b), Floating b => Floating (a -> b) etc., which simply applies the usual numerical methods to the result 19:44:57 *apply 19:45:05 e.g. 19:45:10 > (2*id) 3 19:45:11 6 19:45:42 this is fairly common mathematical usage e.g. when considering vector spaces of functions 19:46:22 > sqrt 2 19:46:24 1.4142135623730951 19:46:27 > (add 1 * add 2) 1 19:46:28 Not in scope: `add'Not in scope: `add' 19:46:34 oerjan: Okay, that'd do it. 19:46:44 > let add = (+) in (add 1 * add 2) 1 19:46:46 6 19:47:07 Also explain why the type error on "sqrt -3.14159" was a missing Show instance, not a missing Num instance. :) 19:47:14 yeah 19:47:44 or rather, an overlapping instance - there are two conflicting modules defining Show for functions 19:47:53 > putStr 1 19:47:55 No instance for (GHC.Num.Num GHC.Base.String) 19:47:55 arising from the literal `... 19:47:58 argh 19:48:01 > putStr "1" 19:48:02 19:48:14 elliott_: Thought you might like to know that Linux 3.0 is going to be released "soon". 19:48:20 previously the function instance was similar to that 19:49:21 pikhq_: Cool. 19:49:36 elliott_: A clone of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git should be 100% usable; unless someone finds a major bug, that's getting released. 19:49:49 pikhq_: lambdabot in private tells that the instances are from the smallcheck and vector-space packages 19:49:55 oerjan: Ah. 19:51:07 so sometimes the inability to selectively import instances in haskell gets rather annoying 19:51:30 -!- cheater_ has joined. 19:52:20 -!- GuestIceKovu has joined. 19:53:25 -!- augur has quit (Remote host closed the connection). 19:53:32 -!- Slereah has quit (Ping timeout: 240 seconds). 19:53:56 i believe they have done some work to ensure lambdabot no longer has overlapping name definitions (e.g. it no longer imports pure from both Control.Arrow and Control.Applicative), but the instances are impossible to get rid of with import statements 19:54:03 :t pure 19:54:05 forall a (f :: * -> *). (Applicative f) => a -> f a 19:54:19 :t Control.Arrow.pure 19:54:20 Not in scope: `Control.Arrow.pure' 19:54:23 grmbl 19:54:26 @hoogle pure 19:54:27 Control.Applicative pure :: Applicative f => a -> f a 19:54:49 hm it is possible they simply removed pure from Arrow altogether 19:55:02 (it was just a synonym of arr anyhow) 19:55:27 removed pure?!? 19:56:00 oklopol: it got annoying whenever someone wanted to import both Control.Arrow and Control.Applicative 19:56:18 to have two different functions named the same thing 19:57:34 what does pure do 19:58:06 How was it with lambdabot, how does it have all the modules (all of them) available by default? 19:58:39 i believe > runs in the environment of a module named L, which contains a heap of import statements 19:58:48 but certainly not _all_... 20:00:06 -!- Taneb has joined. 20:01:28 > magnitude $ ((-pi) :+ 0) - (mkPolar pi pi) 20:01:46 darn so apparently they didn't get rid of all ambiguity 20:02:44 that vectorspace package strikes again, redefining magnitude 20:02:55 oerjan: didn't arrow become a subclass of Category, with pure replaced by something from Category? 20:03:16 Category has no pure 20:03:58 hmm, indeed not 20:05:46 this is stupid, as i believe it should be easy to get ghc to give error messages if you do that kind of ambiguity 20:05:54 -!- pumpkin has joined. 20:07:00 !haskell module Main(Control.Monad, liftM) where import qualified Control.Monad; liftM = 3.14; main = print liftM 20:07:18 oops 20:07:29 !haskell module Main(Control.Monad, liftM) where import qualified Control.Monad(*); liftM = 3.14; main = print liftM 20:07:31 -!- copumpkin has quit (Ping timeout: 258 seconds). 20:07:35 wait what 20:07:43 zhttp://www.youtube.com/watch?v=k91u6dtwYm8 20:07:48 !haskell module Main(Control.Monad(*), liftM) where import qualified Control.Monad; liftM = 3.14; main = print liftM 20:08:06 huh what _is_ the syntax for that... 20:08:34 re-exporting modules? 20:08:43 yes 20:09:50 module Foo (baz,module Bar) I think 20:09:55 yeah found it 20:10:06 !haskell module Main(module Control.Monad, liftM) where import qualified Control.Monad; liftM = 3.14; main = print liftM 20:10:06 (if Foo also wants to export a local function baz) 20:10:10 3.14 20:10:13 wtf 20:11:05 apparently it doesn't perform the check in that case 20:11:16 maybe it has to be compiled, not just loaded 20:11:35 exporting two different symbols with the same name is apparently not an error :) 20:11:40 maybe Main is special though 20:12:04 could be 20:12:58 the report is pretty clear that this kind of thing should be a clash 20:13:08 oh well 20:22:28 elliott_: I should do something about your aimake concept. 20:22:49 I'm not sure how to do it, but C builds should not be harder than "build foo.c" 20:23:05 :p 20:23:29 :t re 20:23:30 Not in scope: `re' 20:23:52 @hoogle Complex a -> a 20:23:53 Data.Complex imagPart :: RealFloat a => Complex a -> a 20:23:54 Data.Complex magnitude :: RealFloat a => Complex a -> a 20:23:54 Data.Complex phase :: RealFloat a => Complex a -> a 20:24:01 The *obvious* method involves adding annotations to the source, but that feels a bit like a copout (not to mention hard to not fuck up). 20:24:06 > realPart (0 :+ undefined) 20:24:07 *Exception: Prelude.undefined 20:24:26 pikhq_: apparently Complex is strict, so no laziness available 20:26:06 oerjan: So mkPolar is defined the way it is for strictness reasons? "mkPolar r theta = r * cis theta" would be less strict than "mkPolar r theta = r * cos theta :+ r * sin theta", presuming a lazy *. 20:27:16 pikhq_: um no i was implying that since Complex is a strict type, that _shouldn't_ be the case 20:27:22 oerjan: Ah. 20:27:29 So, mkPolar is defined the way it is for no good reason. 20:27:38 perhaps. 20:28:11 well one reason is for stupid compilers which would otherwise create a temporary value 20:29:24 presumably parts of the haskell report predates clever compilers by quite a lot 20:29:49 Uh, Data.Complex isn't in the Report. :) 20:29:57 yes it is. 20:30:01 Oh, sorry. 20:31:08 elliott_: On a scale of 1 to 10, how bad of an idea is adding notations to C source to make things happen somewhat sanely? 20:31:36 11. 20:31:45 * oerjan runs away 20:32:07 pikhq_: 99 20:32:24 -!- pumpkin has changed nick to copumpkin. 20:33:34 Hmm. *Regardless*, it'd probably need to have a full C preprocessor. :/ 20:33:41 Well, more like 3/4ths of one. 20:33:55 -!- augur has joined. 20:37:46 Also, the evolution process is controlled by me 20:37:57 elliott_: You. Insight. :P 20:38:16 clearly someone hasn't read yudkowski, or elliott_'s (?) rants about it 20:38:27 oerjan: yudkowsk_y_ 20:38:38 * elliott_ has not ranted on any AI topic to his knowledge 20:38:45 elliott_: yay i got closer than expected! 20:38:46 maybe argued, but not monologued 20:39:02 pikhq_: but i would agree with him, seeing as this is bf joust and the programs are kilobytes at most. :p 20:39:03 ok ok 20:39:07 Nah, just I haven't got around to automating that yet 20:39:18 elliott_: Relevant insight. 20:40:04 Taneb: no i mean, yudkowsky would say that thinking you control the AI would be no match against a _real_ superhuman AI 20:41:38 also, i was somewhat joking 20:42:14 Okay 20:42:39 I really need to do rather a lot of optimization, maybe a language change. 20:42:59 It takes about 5 minutes to evaluate a generation 20:43:22 I could probably get that down to two fairly easily 20:45:00 Probably the single biggest problem is that there is no *way* to tell from just C source whether something is intended as a library or a program. 20:45:40 Unless it has a comment saying "THIS IS A LIBRARY" 20:45:48 `addquote The Russian's emblem was the hammer and sickle, not the fist and other fist 20:45:56 http://theredhunter.com/Fateh%20logo.gif 20:46:05 Followed closely by how it's utterly impossible in the general case to discover what should be linked into that. 20:46:24 (Al Fatah) 20:46:38 Though it's actually pretty easy if you assume that each header file corresponds to 0 or 1 C files that should be linked. 20:47:38 *With* that assumption, you can just about do it by grepping for #include statements. 20:51:32 oerjan: there's some good quotes later on :D 20:51:47 you don't say. 20:56:26 Why does my brother have to have a friend with almost exactly the same name as him? 20:57:33 maybe he just likes people with similar names to his 20:58:23 Of course, that comment was a) rhetorical, b) completely irrelevant, c) fundamentally useless, d) kinda stupid, and e) 20:58:30 I couldn't think of an e 20:59:15 > e 20:59:16 e 20:59:23 lambdabot could 20:59:31 My word 20:59:43 sadly it's not _the_ e 21:00:00 E, nevah 21:00:14 > exp 1 -- is this the e? 21:00:15 2.718281828459045 21:00:26 That be the e 21:00:40 To an appropriate number of decimal places 21:00:56 > exp 1 :: CReal 21:00:57 2.7182818284590452353602874713526624977572 21:01:05 yes, I think it was a bit few to be truly appropriate 21:01:17 ping 21:01:27 6uod 21:02:22 I've got a friend who makes a quote list similar to HackEgo's... but NOT ON IRC! 21:02:24 does italian have separate singular and multiple "you"? 21:02:30 yes, tu and voi 21:02:42 also a polite one, lei 21:03:03 This is the same friend who thought Washington DC was in British Columbia, managed to set a pan of water on fire, and whom I tried to teach Lambda Calculus 21:03:19 "managed to set a pan of water on fire", wow 21:03:32 Nobody's sure how she did it 21:03:40 Taneb: are you sure he hasn't escaped from a sitcom somewhere? 21:03:55 Pretty sure. 21:03:55 or... are you sure you're not living in one 21:04:08 She's female. In sitcoms it's generally the males who are idiots 21:04:14 ah. 21:05:46 well i recall at least one exception (from cheers, although there were male idiots too) 21:06:03 oh and friends had one 21:06:14 -!- pumpkin has joined. 21:06:16 * oerjan is not entirely up-to-date with modern sitcoms 21:06:21 And if this were a sitcom, she and I would have more unresolved sexual tension 21:06:36 Maybe you're just in a really badly-written sitcom 21:06:45 for a value of not entirely approximately equal to "entirely not" 21:06:49 BUT THERE'S NO LAUGH TRACKS 21:06:57 Taneb: IT'S AN OLD SITCOM 21:07:10 BUT I'VE GOT AN iPOD! 21:07:14 my mom used to boil rags to clean them, and once accidentally left one to boil for a few days. nothing happened. 21:07:18 Taneb: IT'S LIKE THE JETSONS 21:07:26 Mein. Gott. 21:07:43 Mon. Dieu. 21:07:53 -!- copumpkin has quit (Ping timeout: 252 seconds). 21:07:56 Deus. Meus. 21:08:06 * oerjan ponders a civilization which would find ipods hilariously anachronistically futuristic 21:08:40 There was one of them in Doctor Who, I think 21:08:44 (see: Zeerust on tvtropes) 21:08:47 One of the Eccleston episodes 21:08:59 I'm avoiding TVTropes 21:09:06 Because my system is perfect 21:09:11 -!- Cheery has quit (Quit: Lost terminal). 21:09:18 hey i was being nice and not giving a link 21:09:23 oerjan: hilariously anachronistically futuristic? what's that even mean? 21:09:38 olsner: like the jetsons 21:09:41 remove anachronistically and you'll get it 21:10:28 oerjan: so, hmm... like the future looked a long time ago? 21:10:34 My biology teacher: I'll do the teachering. 21:10:36 olsner: as i said, zeerust 21:10:53 yeah maybe not hilariously futuristic, more like futuristic in a hilarious way 21:11:09 Well. I at least have a quick, stupid proof-of-concept. 21:11:21 http://sprunge.us/KXSb 21:12:07 I'm being kicked off to go to bed now 21:12:10 Goodnight 21:12:20 -!- Taneb has quit (Read error: Connection reset by peer). 21:12:32 Given a main.c, it attempts to search for all needed source files. 21:12:41 poor Taneb, he would fit in so well here if he could just get a messed up sleep schedule 21:12:54 oerjan: what was your conclusion? 21:13:19 oklopol: to what? 21:13:22 pondering 21:13:36 oh. i think i just pondered pondering. 21:13:45 cool 21:13:51 i have to do some stuff -> 21:14:07 poor Taneb, he would fit in so well here if he could just get a messed up sleep schedule 21:14:08 see also ph 21:14:38 i have a pretty nice sleepy time distribution 21:14:50 16-22 21:21:54 -!- pumpkin has changed nick to copumpkin. 21:26:53 also regarding tvtropes, http://www.mezzacotta.net/postcard/?comic=926 21:27:12 (yes, there is no picture) 21:35:06 today's darths & droids is particularly hilarious, i think 21:53:56 So, my scan script, though naive, works nicely for things that don't try to break it. 22:17:54 -!- Wamanuz2 has joined. 22:18:24 -!- Wamanuz2 has quit (Remote host closed the connection). 22:20:31 -!- Wamanuz has quit (Ping timeout: 258 seconds). 22:21:33 -!- Wamanuz has joined. 22:26:42 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:27:49 -!- elliott_ has quit (Ping timeout: 252 seconds). 22:29:32 -!- Sgeo_ has joined. 22:29:44 I obviously have a good Internet connection 22:30:42 -!- Sgeo has quit (Ping timeout: 250 seconds). 22:34:20 -!- MigoMipo has quit (Read error: Connection reset by peer). 22:34:21 -!- CakeProphet has quit (Ping timeout: 260 seconds). 22:35:45 -!- CakeProphet has joined. 22:35:46 -!- CakeProphet has quit (Changing host). 22:35:46 -!- CakeProphet has joined. 22:36:03 like everyone else 22:39:19 -!- Sgeo_ has changed nick to Sgeo. 22:49:54 -!- copumpkin has joined. 22:51:36 -!- pikhq_ has quit (Read error: Operation timed out). 22:54:25 -!- pikhq has joined. 23:03:07 Well, now I have a simple compiler wrapper. 23:03:16 -!- pumpkin has joined. 23:03:19 http://sprunge.us/AXBj 23:03:46 Perfect, no; better, yes. 23:04:48 -!- augur has quit (Remote host closed the connection). 23:05:19 -!- pumpkin has changed nick to copumpkin_. 23:06:23 -!- copumpkin has quit (Ping timeout: 276 seconds). 23:12:59 -!- copumpkin has joined. 23:15:17 -!- copumpkin_ has quit (Ping timeout: 246 seconds). 23:30:36 http://sprunge.us/CQWO Added some annotations to make up for my laziness... 23:32:33 XD, minor bug. Anyways. 23:47:51 Gregor: eso.codu.org appears not to be loading 23:48:35 or http://www.codu.org/eso/ork/exa/orkipple.ork 23:49:12 oh wait that one is also in the file archive 23:49:28 Gregor: but still, broken wiki links, i hope it's temporary... 23:49:32 -!- augur has joined. 23:51:26 oerjan Uhh, E_WORKSFORME 23:51:44 ic 23:52:56 well _now_ it works 23:53:21 Gregor: there are some doubts about Ork's TC-ness, see Talk: page 23:54:03 oerjan: Oh nooooose 23:56:20 for the brainfuck interpreter, the problem would be that it's not unbounded in either cell number (explicitly) or cell size (because they're doubles, per the spec) 23:56:43 for the kipple interpreter, the problem would be that i cannot make heads or tails of it