00:00:42 instance Bits a => Bits (a -> a -> a) where (xor f g) x y = f x y `xor` g x y 00:01:13 :src Bits 00:01:16 @src Bits 00:01:16 Source not found. Wrong! You cheating scum! 00:01:24 oerjan: i'm sure there's more than xor anyway 00:01:55 a whole heap of methods, actually 00:03:13 testBit is the one that could be a problem to do sanely 00:03:16 :t testBit 00:03:17 forall a. (Bits a) => a -> Int -> Bool 00:03:27 oh and isSigned 00:03:31 :t isSigned 00:03:32 forall a. (Bits a) => a -> Bool 00:03:44 with state you could do it 00:03:52 isSigned f = thunk (waitForInput f) 00:03:52 -!- Judofyr has quit (Remote closed the connection). 00:03:55 well 00:03:58 isSigned f = analyze (thunk (waitForInput f)) 00:04:13 bitSize seems a bit dubious, although easy to cheat 00:04:20 ehird: huh? 00:04:38 -!- KingOfKarlsruhe has joined. 00:04:38 oerjan: as in, "don't evaluate until we get two inputs for f from the ether; then analyze the result" 00:04:50 so forcing (isSigned f) would hang until you did (magicallyPsychicTransmission v1 v2) 00:04:59 but haskell doesn't do such evil state :) 00:05:12 it needs to be polymorphic, remember? 00:05:22 instance Bits a => Bits (a -> a -> a) 00:05:43 oerjan: magicallyPsychicTransmission :: Bits a => TokenOfTransmission a -> a -> a -> () 00:06:42 it's not _particularly_ hard to set it undefined either 00:06:57 oerjan: but this is more correct! 00:07:03 albeit breaking everything else in the proess 00:07:45 -!- pikhq has joined. 00:15:11 So. 00:15:15 :t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap 00:15:17 forall (f :: * -> *) (f1 :: * -> *) (f2 :: * -> *) a b (f3 :: * -> *). (Functor f, Functor f1, Functor f2, Functor f3) => f (f1 (f2 (a -> b))) -> f (f1 (f2 (f3 a -> f3 b))) 00:15:35 yes, that one is periodic 00:15:49 with the function instance 00:15:53 :t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap 00:16:03 * ehird kicks lambdabot 00:16:03 ..however it takes some time to infer longer fmap chains 00:16:09 thread killed 00:16:09 try it in ghci 00:16:14 :t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap 00:16:17 that doesn't mean type checking doesn't blow up :D 00:16:29 thread killed 00:16:34 well, this is type inference. and it is decidable, just takes some time. 00:16:42 Gracenotes: I am a Truly Accepted & Worthwhile Endeavor of the Ancient Society of the "Lambda-Bot", est. 1758. 00:16:57 Gracenotes: (doubly?) exponential 00:16:58 We swear off such Foul demons as that monster "G-H-C-I". 00:17:00 @djinn (f -> f1 -> f2 -> a -> b) -> (f -> f1 -> f2 -> (f3 -> a) -> f3 -> b) -- using function instances of the above chain 00:17:01 Cannot parse command 00:17:05 blargh you 00:17:10 @djinn (f -> f1 -> f2 -> a -> b) -> (f -> f1 -> f2 -> (f3 -> a) -> f3 -> b) 00:17:10 We are pure; and fathomed we must be. 00:17:11 f a b c d e f = a b c d (e f) 00:17:33 oddly enough, it seems that any chain of fmaps always produces djinn functions in the original order 00:17:40 For lo, this is Flight, and this is the Holy Ghost, and our Endeavor is to Achieve the Union of these Concepts manifest. 00:17:49 just with parens. like, for instance, a b c d e -> a (b c) (d e) 00:17:54 :t t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap 00:18:01 Couldn't match expected type `((a -> b) -> f a -> f b) 00:18:01 -> ((a1 -> b1) -> f1 a1 -> f1 b1) 00:18:01 -> ((a2 -> b2) -> f2 a2 -> f2 b2) 00:18:04 oops 00:18:07 :t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap 00:18:09 it is useless 00:18:13 SPAMMER NO SPAMMING! 00:18:13 :t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap 00:18:14 SPAMMER NO SPAMMING! 00:18:16 SPAMMER NO SPAMMING! 00:18:18 :t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap 00:18:18 SPAMMER NO SPAMMING! 00:18:21 Gracenotes: I'm not spamming, stop it. 00:18:22 thread killed 00:18:28 thread killed 00:18:33 thread killed 00:18:41 thread holocaust 00:19:04 etymology? killed with fire? 00:19:16 :t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap 00:19:31 thread killed 00:19:37 it is srsly cyclic 00:19:40 :t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap 00:19:41 I'm renaming fmap. 00:19:43 It is now Bufallo. 00:19:48 pikhq: Bufallo? 00:19:49 Wat. 00:19:53 forall (f :: * -> *) (f1 :: * -> *) (f2 :: * -> *) a b (f3 :: * -> *). (Functor f, Functor f1, Functor f2, Functor f3) => f (f1 (f2 (a -> b))) -> f (f1 (f2 (f3 a -> f3 b))) 00:19:57 Bufe., allo 00:20:00 *Buf, allo. 00:20:06 pikhq: impossible, Bufallo is a constructor *ducks* 00:20:27 I wish we had Caleskell. 00:20:28 oerjan: I am inverting the rules. 00:20:31 :t Just . Just . Just . Just . Just . Just . Just . Just 00:20:37 forall a. a -> Maybe (Maybe (Maybe (Maybe (Maybe (Maybe (Maybe (Maybe a))))))) 00:20:38 :t let (.) = fmap in (.) . . (.) 00:20:40 parse error on input `.' 00:20:43 :t let (.) = fmap in (.) . (. (.)) 00:20:46 forall (f :: * -> *) b a b1 (f1 :: * -> *). (Functor f1, Functor f) => ((f1 a -> f1 b1) -> b) -> f (a -> b1) -> f b 00:21:03 -!- KingOfKarlsruhe has quit (Remote closed the connection). 00:21:05 :t let (.) = fmap in (.) . (. (.)) . (((.) . ((.) . (.)) .) . ((.) .) . (.) 00:21:14 parse error (possibly incorrect indentation) 00:21:14 boom 00:21:17 waaaaaaaaat 00:21:17 some pl'ing eh 00:21:29 me no likey (.) = fmap 00:21:31 :t let (.) = fmap in (.) . ((.)) . ( ((.) . ((.) . (.)) .) . ((.) .)) . (.) 00:21:38 forall (f :: * -> *) (f1 :: * -> *) (f2 :: * -> *) (f3 :: * -> *) (f4 :: * -> *) a b (f5 :: * -> *) a1. (Functor f5, Functor f4, Functor f3, Functor f2, Functor f1, Functor f) => (a1 -> b) -> f (f1 ( 00:21:38 a -> a1)) -> f (f1 (f2 (f3 (f4 (f5 a))) -> f2 (f3 (f4 (f5 b))))) 00:21:39 Gracenotes: but (.) and map are useless; they're just fmap 00:21:43 Gracenotes: that's not odd. anything composed from (.) can be unwound when applied, and it never swaps anything 00:21:44 plus, "succ . [1,2,3]" looks jawsome 00:21:47 @src (->) fmap 00:21:48 fmap = (.) 00:21:54 @src [] fmap 00:21:54 fmap = map 00:21:58 Any questions? 00:22:01 @unpl (.) . ((.)) . (((.) . ((.) . (.)) .) . ((.) .)) . (.) 00:22:02 e.g. (.) a b c = a (b c) 00:22:02 (\ z b c f h i l o s -> z (b c f (h i l o s))) 00:22:03 oerjan: that is true. 00:22:08 Hilos. 00:22:19 isn't that a greek word 00:22:22 @unpl let (.) = fmap in (.) . ((.)) . (((.) . ((.) . (.)) .) . ((.) .)) . (.) 00:22:22 let { (.) = fmap} in (\ z b c f h i l o s -> z (b c f (h i l o s))) 00:22:27 Laaaaame 00:22:29 @unlet let (.) = fmap in (.) . ((.)) . (((.) . ((.) . (.)) .) . ((.) .)) . (.) 00:22:29 Parse error 00:22:34 BITCH YOUR FUCK BUGGER. 00:22:35 :| 00:22:50 :t liftM 00:22:59 lambdabot, ehird mood inference! 00:23:00 forall a1 r (m :: * -> *). (Monad m) => (a1 -> r) -> m a1 -> m r 00:23:05 Gracenotes: what is more you can do it in reverse too, except for id in the degenerate case iirc 00:23:06 :t liftM2 00:23:07 thread killed 00:23:08 forall a1 a2 r (m :: * -> *). (Monad m) => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r 00:23:15 :t liftM2 liftM2 00:23:18 forall a1 a2 r (m :: * -> *) (m1 :: * -> *). (Monad m, Monad m1) => m1 (a1 -> a2 -> r) -> m1 (m a1) -> m1 (m a2 -> m r) 00:23:21 >:) 00:23:27 > liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 00:23:33 mueval-core: Prelude.read: no parse 00:23:33 mueval: ExitFailure 1 00:23:37 :t liftM2.liftM2 -- this actually a useful function 00:23:39 :t liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 00:23:53 thread killed 00:23:54 thread killed 00:24:00 It's like fmap on the monads! 00:24:04 YOU KILLED IT! YOU DIRTY HUMAN! 00:24:06 Gracenotes: a b (c d) = (.) (a b) c d = (.) (.) a b c d 00:24:11 :t liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 liftM2 00:24:15 oerjan: yes, I've deduced 00:24:23 Occurs check: cannot construct the infinite type: a2 = m a2 00:24:23 Expected type: a2 00:24:23 Inferred type: m a2 00:24:32 Gracenotes: so did i a while ago 00:24:32 oerjan: so with . we can eliminate non-(.) parens? :-D 00:24:42 :t liftM3 (liftM2 liftM2) 00:24:43 ehird: yep :) 00:24:49 er wait 00:24:57 thread killed 00:25:04 I don't spend hours upon hours on the subtleties of (.), as it stands.. 00:25:15 there is also the argument/result system 00:25:16 ehird: no, you might still need parentheses for composing the (.) parts 00:25:27 which I am not familiar with 00:25:50 Prelude Control.Monad> :t liftM3 (liftM2 liftM2) 00:25:50 liftM3 (liftM2 liftM2) 00:25:51 :: (Monad m, Monad ((->) a3), Monad m1) => 00:25:53 m1 (a3 -> a1 -> a2 -> r) 00:25:55 -> m1 (a3 -> m a1) 00:25:57 -> m1 a3 00:25:59 -> m1 (m a2 -> m r) 00:26:19 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 00:26:44 :t ap ap . ap . ap ap 00:26:46 forall b b1 a. (((b1 -> b) -> a -> b1) -> (b1 -> b) -> a) -> (((b1 -> b) -> a -> b1) -> b1 -> b) -> ((b1 -> b) -> a -> b1) -> b 00:26:49 oerjan: Find a use, now. 00:28:14 I've found one 00:28:20 @type undefined :: (((b1 -> b) -> a -> b1) -> (b1 -> b) -> a) -> (((b1 -> b) -> a -> b1) -> b1 -> b) -> ((b1 -> b) -> a -> b1) -> b 00:28:34 undefined is always happy to be of use ^_^ 00:28:36 thread killed 00:28:40 OR IS IT 00:29:00 that undefined was not happy, it made suicide 00:29:24 ugh. Why am I being attracted to languages that are apparently so difficult to learn 00:29:33 I from the proof school of Haskell view undefined as that ultimate abomination; an inconsistency whereby we can show that any given statement is true, and thus true is false, and we are all very troubled about this, and indeed consider switching to total FP languages often, but then there comes an occasional time when we want to actually do something, and we are put firmly back into our senses. 00:29:35 natural languages 00:29:39 I looooooooove long sentences. 00:30:45 lessee, that ap ap . ap . ap ap has no Monad in its type 00:30:49 at first I thought I'd learn Japanese, then hopefully pick up some Kanji to eventually help with learning Chinese, and maybe learn a bit of Korean because I've heard good things about the alphabet 00:31:04 so it is clearly specialized to ap = s 00:31:18 it's not 00:31:19 it seems each of these languages requires about two years each to just reach some proficiency 00:31:20 ghci doesn't do that 00:31:25 it gives 00:31:26 ap ap . ap . ap ap 00:31:26 :: (Monad ((->) ((b1 -> b) -> a -> b1)), 00:31:28 Monad ((->) (((b1 -> b) -> a -> b1) -> b1 -> b)), 00:31:30 Monad ((->) (b1 -> b))) => 00:31:32 (((b1 -> b) -> a -> b1) -> (b1 -> b) -> a) 00:31:35 -> (((b1 -> b) -> a -> b1) -> b1 -> b) 00:31:36 -> ((b1 -> b) -> a -> b1) 00:31:38 -> b 00:31:40 incidentally, adding any more . ap ap or . aps to the mix breaks it 00:31:42 infinite type 00:31:53 oerjan: oh hm 00:31:57 ehird: whatever, it clearly uses the -> instance 00:31:57 (Monad ((->)...)) 00:31:59 maybe I should stick to a romance language.. 00:32:01 that's odd 00:32:04 i've never seen that before ;P 00:32:06 *:P 00:32:13 Gracenotes: LEARN DGIJOBJDFI 00:32:17 ehird: maybe you haven't imported the instance? 00:32:24 ah! 00:32:24 yes 00:32:39 ehird: is it a useful language to know in the real world????!? 00:32:45 Control.Monad.{Reader,Instances} 00:32:57 Gracenotes: HURF DURF I TURN KLAXON 00:34:49 what is DGIJOBJDFI? 00:34:59 no google hits 00:35:38 ADAJSODIJO 00:36:02 -!- pikhq has joined. 00:36:21 @unpl ap ap . ap . ap ap 00:36:21 (\ c -> (\ m n -> m >>= \ k -> n >>= \ j -> return (k j)) >>= \ e -> (\ w -> ((\ ah ai -> ah >>= \ af -> ai >>= \ ae -> return (af ae)) >>= \ z -> c >>= \ y -> return (z y)) >>= \ t -> w >>= \ s -> 00:36:21 return (t s)) >>= \ d -> return (e d)) 00:36:28 ! 00:36:48 * oerjan goes back to doing it by hand 00:37:13 c m n k n j k j e w ah ai ah af ai ae af ae z c y z y t w s t s d e d 00:37:44 I missed an m. 00:38:15 also, I think the intro to Manns's Blinded by the Light is the best part. verse is meh. 00:38:45 (ap ap . ap . ap ap) x y z = ap ap (ap (ap ap x)) y z = ap y (ap (ap ap x) y) z = y z (ap (ap ap x) y z) 00:39:04 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 00:39:42 oerjan: function application is left-associative 00:40:09 = y z (ap ap x z (y z)) = y z (ap z (x z) (y z)) 00:40:12 and? 00:41:09 I'm probably mistaken, but for.. ap ap (ap (ap ap x)) y z -> ap y (ap (ap ap x) y) z 00:42:22 is there something wrong with that? 00:42:36 I think it's right, but I'm too tired to determine if this is the case. seems anomalous..sort of 00:42:44 hm, .check. 00:42:46 ap = s = \a b c -> a c (b c), btw. 00:42:53 yes, I know.. 00:43:24 oh I see, you're applying the first ap there 00:43:33 it almost seemed like you were applying the second 00:43:39 but that is not the case 00:43:40 huh 00:44:18 = y z (z y z (x z (y z))) 00:44:52 anyway, it would be nice to mark ap/>>= to pl to assert that it applies to (->)r 00:45:23 you mean unpl 00:45:40 both 00:45:51 come to think about it 00:45:57 @pl s x y z = x z (y z) 00:45:57 s = ap 00:46:06 pl already knows how to use them 00:46:32 although once it turns it into ap, it doesn't know anything about it 00:46:39 so to say 00:46:44 oerjan: just let ap x y z = x z (y z) in ... 00:46:47 then you won't get monad spew 00:47:16 if only pl were that smart 00:47:50 @pl ap id 00:47:51 ap id 00:48:01 Gracenotes: it is 00:48:02 :t ap 00:48:04 just prefix your shit with that 00:48:05 jeez :P 00:48:17 thread killed 00:48:20 :t ap 00:48:35 :t ap id 00:48:36 thread killed 00:48:37 oh gawd, there are 11183 characters in the Korean unicode block 00:48:47 for combined Hangeul characters 00:48:50 thread killed 00:49:24 :t map 00:49:34 something's wrong with lambdabot 00:49:39 thread killed 00:49:43 we killed it? 00:49:43 :D 00:49:50 no u did 00:50:03 maybe it's being spammed by someone else 00:51:36 death note anime: y/n? 00:53:43 -!- pikhq has joined. 00:56:34 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 00:58:21 :t map 00:58:23 forall a b. (a -> b) -> [a] -> [b] 00:59:00 :t ap 00:59:01 forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b 00:59:11 -!- pikhq has joined. 01:01:15 :t ap . (:[]) 01:01:16 forall a b. (a -> b) -> [a] -> [b] 01:01:23 :t ap . return 01:01:24 forall (m :: * -> *) a b. (Monad m) => (a -> b) -> m a -> m b 01:01:28 @pl ap . return 01:01:29 fmap 01:01:31 lol 01:01:38 @pl ap return 01:01:39 ap return 01:02:27 :t ap.($) 01:02:29 forall a b a1. (a1 -> a -> b) -> (a1 -> a) -> a1 -> b 01:09:45 :t ap `fmap` ($) 01:09:46 forall a b a1. (a1 -> a -> b) -> (a1 -> a) -> a1 -> b 01:12:37 I want to make a gloriously unsafe language. 01:12:49 With macros and syntax 01:12:51 :| 01:13:35 Also, things like (printf "foo %s") can work strongly-typed because "foo %s" can be taken as a type constructed by calling a macro. 01:13:36 Somehow. 01:15:13 * oerjan did not expect to see "gloriously unsafe" and "strongly-typed" in the same language 01:15:22 oerjan: The ML family of languages want a word. 01:15:27 With you. In private. 01:17:34 i don't think of those when hearing "gloriously unsafe" 01:18:51 iirc ML was around where the phrase "well-typed programs cannot go wrong" was invented 01:22:04 ehird: So, what do you want? Strongly-typed, good macros, close to the hardware? 01:22:08 :P 01:22:32 Not the last one. 01:24:04 pikhq: Let's say: very nice type system, nice enough that you can use it as a scripting language and everything Just Works. side effects. good, seamless macros (NOT anything like TH) 01:24:29 eg the list with elements 1, 2 is of type [1 | 2] 01:24:30 So, strongly typed M-expression Lisp. :P 01:24:41 1.. is [Num] or whatever 01:24:42 eeeewww mexps 01:24:58 elements 3, "hello", () is [3 | "hello" | ()] 01:25:17 foo x = [3, "hello", (), x] 01:25:18 → 01:25:29 foo :: a -> [3 | "hello" | () | a] 01:25:37 type sigs pretty much reflect the definition in this case 01:26:34 wtf is the konami code 01:26:43 google it 01:26:59 ↑↑↓↓←→←→BA[start] 01:28:11 -!- coppro has joined. 01:29:39 "Putting all of these qubits into superposition states — the initial Hamiltonian in the adiabatic algorithm — gives 2^{128} \sim 3 \cdot 10^{38} simultaneously held states. Not quite the number of atoms in the earth, but close." 01:29:42 128 qubit chip 01:29:47 http://dwave.wordpress.com/2009/04/14/128-qubit-chip-mounted-on-io-system/ 01:46:25 armageddon scenario 34016: a quantum computer putting 256 qubits in superposition causes the actual simulation earth is living in to run out of memory 01:54:40 -!- M0ny has quit. 02:03:05 -!- Gracenotes_ has joined. 02:06:12 "Monad the Ultimate". 02:06:15 What a great idea. 02:12:02 -!- Gracenotes has quit (Connection timed out). 02:12:31 -!- Gracenotes_ has changed nick to Gracenotes. 02:24:53 -!- FireFly has quit ("Later"). 02:24:56 -!- BeholdMyGlory has quit (Remote closed the connection). 02:34:16 -!- calamari has quit (Remote closed the connection). 03:34:50 -> as a monad is.. Impressive. 03:36:59 > mapM (+) [1,2,3] 4 03:37:00 [5,6,7] 03:38:57 Yes. I grok it. It's just pretty impressive. :) 03:52:21 Does O3D already have the Intel stuff in it? 03:52:27 Or is that not implemented uet? 03:56:29 Restarting Firefox 3.5==not smart 03:56:30 zzz 03:57:17 * oerjan saw that on reddit 04:02:11 oerjan, O3D and Intel, or the 3.5 issues? 04:02:14 Also, all I see is water 04:02:39 3.5 04:03:19 but, i recommend _not_ using a computer in water 04:03:53 unless, of course, it is special built for the purpose 04:06:14 lol 04:23:55 -!- coppro has quit (Remote closed the connection). 04:37:14 -!- coppro has joined. 05:13:10 -!- oerjan has quit ("Good night"). 05:32:03 -!- DarkPants has joined. 05:32:37 -!- GreaseMonkey has quit (Nick collision from services.). 05:32:39 -!- DarkPants has changed nick to GreaseMonkey. 05:49:46 -!- upyr[emacs] has quit (Remote closed the connection). 06:00:16 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 06:09:20 -!- Pthing has quit (Remote closed the connection). 06:15:07 -!- Sgeo has quit (Read error: 60 (Operation timed out)). 06:55:37 -!- augur has quit (Read error: 104 (Connection reset by peer)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:09:45 -!- coppro has quit (Remote closed the connection). 08:16:05 -!- DarkPants has joined. 08:21:26 -!- GreaseMonkey has quit (Nick collision from services.). 08:21:30 -!- DarkPants has changed nick to GreaseMonkey. 08:24:13 -!- Gilmore has joined. 08:30:26 > map (\x -> fst (randomR (0,5) (mkStdGen x))) [0..30] 08:30:27 [5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5] 09:06:28 -!- Gilmore has quit ("dig"). 09:16:29 Looks random to me. 09:19:20 -!- MigoMipo has joined. 10:03:46 -!- augur has joined. 10:28:08 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server"). 11:09:05 -!- GreaseMonkey has quit ("HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it"). 11:18:08 -!- BeholdMyGlory has joined. 11:29:20 -!- KingOfKarlsruhe has joined. 11:45:05 -!- Judofyr has joined. 11:59:32 AnMaster: 100k tarballs. When you have a 2 second latency. <-- portage can start downloads in parallel iirc? 12:04:10 -!- jix has joined. 12:36:47 -!- inurinternet has quit (Read error: 110 (Connection timed out)). 13:22:38 -!- MizardX has joined. 13:34:38 -!- KingOfKarlsruhe has quit (Remote closed the connection). 13:35:35 -!- BeholdMyGlory has quit (Remote closed the connection). 13:38:40 -!- BeholdMyGlory has joined. 13:55:25 -!- BeholdMyGlory has quit (Remote closed the connection). 13:59:14 -!- BeholdMyGlory has joined. 14:00:51 -!- MigoMipo has joined. 14:31:25 -!- MizardX has quit (Read error: 104 (Connection reset by peer)). 14:31:25 -!- MizardX- has joined. 14:31:55 -!- MizardX- has changed nick to MizardX. 14:55:16 -!- FireFly has joined. 15:14:21 -!- MizardX has quit (Read error: 110 (Connection timed out)). 15:26:50 -!- oerjan has joined. 15:29:29 > map (\x -> take 3 (randomRs (0,5) (mkStdGen x))) [0..30] 15:29:32 [[5,5,3],[5,4,1],[5,3,0],[5,3,4],[5,2,2],[5,1,1],[5,0,5],[5,0,3],[5,5,2],[5... 15:29:41 -!- MizardX has joined. 15:30:47 * oerjan guesses it ignores the low bits 15:31:22 > map (\x -> fst (randomR (0,5) (mkStdGen x))) [0,33 ..1000] 15:31:23 [5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5] 15:31:31 > map (\x -> fst (randomR (0,5) (mkStdGen x))) [0,333 ..1000] 15:31:33 [5,5,5,5] 15:31:42 > map (\x -> fst (randomR (0,5) (mkStdGen x))) [0,3333 ..1000] 15:31:43 [5] 15:31:51 er 15:31:55 > map (\x -> fst (randomR (0,5) (mkStdGen x))) [0,3333 ..100000] 15:31:56 [5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4] 15:32:22 > map (\x -> fst (randomR (0,5) (mkStdGen x))) [0,33333 ..1000000] 15:32:23 [5,5,4,4,3,2,2,1,1,0,5,5,4,3,3,2,2,1,0,0,5,4,4,3,3,2,1,1,0,5,5] 15:33:00 -!- Pthing has joined. 15:34:05 > map (\x -> fst (random (mkStdGen x))) [0..30] :: [Int] 15:34:06 [-117157315039303149,7917908265643496962,-2493721835987381530,5541392136091... 15:34:08 -!- MizardX has quit (Read error: 131 (Connection reset by peer)). 15:34:48 -!- MizardX has joined. 15:40:54 -!- sgeo has joined. 15:45:56 -!- upyr[emacs] has joined. 16:02:29 -!- augur has quit (Read error: 110 (Connection timed out)). 16:03:11 -!- jix has quit (Read error: 60 (Operation timed out)). 16:12:12 -!- ais523 has joined. 16:29:12 -!- pikhq has joined. 16:47:53 -!- oerjan has quit ("leaving"). 16:55:05 -!- MizardX has quit (Read error: 131 (Connection reset by peer)). 16:55:15 -!- MizardX has joined. 17:25:18 -!- Pthing has quit ("Leaving"). 17:25:30 -!- Pthing has joined. 17:30:16 -!- icefox has quit. 17:34:31 -!- MizardX- has joined. 17:36:03 -!- MizardX has quit (Success). 17:36:28 -!- MizardX- has changed nick to MizardX. 17:45:15 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 17:45:50 -!- pikhq has joined. 17:57:51 -!- BeholdMyGlory has quit (Remote closed the connection). 17:58:07 -!- BeholdMyGlory has joined. 18:06:15 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 18:07:15 -!- MizardX has quit (Read error: 104 (Connection reset by peer)). 18:07:56 -!- MizardX has joined. 18:08:15 -!- pikhq has joined. 18:11:18 -!- Judofyr has quit (Read error: 60 (Operation timed out)). 18:13:36 -!- Judofyr has joined. 18:23:44 I was in Genova with a group of about 10 people from ECOOP. I was the only American in this group. We stopped because somebody wanted to buy something; after she did, the shopkeeper looked at us, then pointed at me and said "You're Americano, sí?". I said "Sí", and he responded "I love Americans!" It was weird, but what's more weird is that he had clearly identified me as the only American in this group (he didn't think the others were Americans), wi 18:23:47 thout my saying anything. I guess I just exude Americanism. 18:26:55 -!- MizardX has quit (Read error: 104 (Connection reset by peer)). 18:27:08 -!- MizardX has joined. 18:27:51 GregorR: It's the Moxie. 18:29:28 I'm pretty Moxious. 18:29:38 I was wearing a fuschia shirt with an orange tie :P 18:37:47 WHY THE CRAP DOES ICEDTEA NOT COUNT AS A JDK, GENTOO. WHY. 18:39:56 Because it's part of OpenJDK now? :P 18:41:18 Gentoo offers the "icedtea6" package, which provides OpenJDK. 18:41:21 (I think?) 18:42:29 Anyways, icedtea6 tries to pull in sun-jdk. Which is retarded. 18:44:48 Icedtea was mostly the library stuff, the JDK should be OpenJDK. 18:45:13 Just install OpenJDK, then install icedtea, and go "whoah liek it works" 18:45:20 -!- Gracenotes has quit ("Leaving"). 18:45:31 Irf there were an OpenJDK package, I would. 18:47:07 "IRF" is cybersex over IRC. 18:52:54 * pikhq has managed to get icedtea to use gcj-jdk as a build-time dependency. Yay? 18:54:49 -!- sebbu2 has joined. 18:54:55 Uh, not yay :P 18:55:18 gcj = suck :P 18:57:51 -!- sebbu has quit (Read error: 60 (Operation timed out)). 18:58:26 * pikhq wonders why icedtea6 depends on a JDK. 18:58:37 When it provides virtual/jdk. 19:03:02 > do {x <- (+1); return . (+x)} 5 19:03:03 : parse error on input `5' 19:03:11 > do {x <- (+1); return . (+x)} $ 5 19:03:12 No instance for (GHC.Show.Show (m a)) 19:03:13 arising from a use of `M8531327416... 19:03:20 Curses. 19:04:05 > do {x <- (+1); y <- (+x); return y } $ 5 19:04:07 11 19:04:27 -!- Gracenotes has joined. 19:05:49 @src $ 19:05:49 f $ x = f x 19:13:17 Hello. 19:13:29 Hellote. 19:22:44 -!- BeholdMyGlory has quit (Remote closed the connection). 19:24:59 -!- BeholdMyGlory has joined. 19:37:51 * pikhq wonders why icedtea6 depends on a JDK. When it provides virtual/jdk. <-- needed to bootstrap 19:37:59 AnMaster: 100k tarballs. When you have a 2 second latency. <-- portage can start downloads in parallel iirc? 19:38:35 pikhq, make sure parallel-fetch is in FEATURES 19:38:47 fetches packages while the previous is compiling 19:39:40 ah, bootstraps 19:39:43 the stupidest things ever 19:39:56 AnMaster: Yes, I have it in FEATURES. 19:40:09 Also, icedtea6 is installed, yet it depends on another JDK. 19:40:29 macports downloads a ghc binary to compile ghc 19:41:30 As does Gentoo. 19:41:54 (if there's not already an installed ghc) 19:44:01 you can use binary only ghc iirc on gentoo 19:44:27 also bootstrapping icedtea was an educated guess 19:44:37 I remember reading that java is partially written in java 19:44:54 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 19:45:14 The Java compiler is, yes. 19:45:24 that was what I meant 19:46:17 Why Gentoo can't just have a precompiled javac is beyond me. 19:54:46 -!- oerjan has joined. 19:56:25 I was wearing a fuschia shirt with an orange tie :P 19:56:28 no hat? 19:56:34 http://merd.sourceforge.net/ I wish this wasn't dead 19:56:52 well maybe with a name that isn't "shi—" 19:56:59 (intentionally0 19:57:00 ) 19:57:24 :D 19:58:04 the icon is a fly 19:58:12 oerjan: Of course I was wearing a hat. 19:58:16 oerjan: yes it is 19:58:21 I don't recall which now, maybe the Tam O'Shanter? 19:58:56 tam o'shitner 19:59:00 ahahahah 19:59:09 ............................... 20:00:46 "# horizontal layout: 1+2 * 3 is (1+2) * 3 (merd innovation!) " 20:00:49 totally not a merd innovation 20:00:54 i did that too 20:00:56 apparently its name is merdy. 20:01:56 "it comes from the french word ``merde'' meaning shit :)" 20:02:11 no innocence excuse there, no sir! 20:07:55 oh, another thing i want: 20:08:02 superpositions 20:08:17 x == (1 \/ 2) is (x == 1) || (x == 2) 20:08:28 well actually, it's 20:08:37 (x == 1) \/ (x == 2) 20:08:42 but it comes to the same thing if you collapse it 20:09:11 hm didn't icon have something like that 20:09:14 yes 20:09:19 based on pass/failing stuff 20:09:27 but seriously, i hate writing "x in [1,2]" and shit like that 20:09:29 it's so unflexible 20:09:48 also, you can do quantum-y stuff with it 20:09:59 2 + (1 \/ 0) and do probabilities and stuff to collapse it 20:10:42 http://search.cpan.org/~lembark/Quantum-Superpositions/lib/Quantum/Superpositions.pm — is GREAT! 20:10:49 due to damien conway originally too 20:11:13 foo = (1 \/ 2 \/ 3) * 2 20:11:14 → 20:11:18 foo is (2 20:11:19 er 20:11:24 foo is (2 \/ 4 \/ 6) 20:11:31 foo == 4 20:11:32 becomes 20:11:37 seems your keyboard collapsed on the return key 20:11:41 (false \/ true \/ false) 20:11:53 you could do things like making that false 20:11:57 since false dominates 20:12:00 or whatever 20:12:05 although (x \/ x) is probably x. 20:12:09 so it'd be (false \/ true) 20:12:23 "This mechanism is provided by the two types of superposition available. A disjunctive superposition is true if any of its states is true, whereas a conjunctive superposition is true only if all of its states are true." 20:12:27 i would make this a method on superpositions 20:12:33 foo = (1 \/ 2 \/ 3) * 2 20:12:37 if (foo.any) { ... } 20:12:41 if (foo.all) { ... } 20:13:28 print "The smallest element is: ", 20:13:28 $array[any(@i)<=all(@i)]; 20:13:30 is pretty beautiful 20:13:39 we could do that like: 20:13:43 If this damned thing depends on icedtea6-bin or gnu-classpath-jdk, I'm going to hunt someone down and kill them. 20:13:53 list = [3, 7, 1, 99] 20:14:06 I make no guarantees as to this murder being against someone guilty of this. 20:14:07 qntm = quantum list 20:14:11 (quantum is just folding \/) 20:14:12 then 20:14:18 stuff 20:14:19 :P 20:15:58 -!- inurinternet has joined. 20:16:01 i'm not sure i like the any() and all() being actually fundamental to the superpositions though 20:16:08 I'd prefer they'd be like QuantumViews 20:16:12 so you could do after that: 20:16:24 smallest = qntm.any <= qntm.all 20:19:13 > do {x <- (+1); y <- (+x); return y } $ 5 20:19:14 11 20:19:23 oerjan: yeeeeeeeeeeeeeeees? 20:19:28 > do {x <- (+1); (+x) } $ 5 20:19:29 11 20:19:46 just improving pikhq's expression 20:20:14 > succ >>= (+) $ 5 20:20:14 11 20:20:24 hey i was getting to that :D 20:20:31 (well maybe not the succ) 20:20:32 > (+) =<< succ $ 5 20:20:33 11 20:20:39 (easier to comprehend) 20:22:01 oerjan: i'm going to implement superpositions in haskell >:) 20:22:10 prolly have to violate some laws 20:24:42 data Superposition a = Superposition [a] 20:24:46 how boring! 20:27:32 data Superposition a = Superposition [a] deriving Monad 20:27:35 > [all, any] <*> (> 5) <$> [1..10] 20:27:37 Couldn't match expected type `a -> a1 -> b' 20:28:03 pikhq: deriving Monad? Uhh, no 20:28:15 ehird: Yes, I'm aware. 20:28:23 Is called shorthand. 20:28:30 Superpositions aren't monads 20:29:11 > [all, any] <*> [(> 5)] <*> [[1..10]] 20:29:12 [False,True] 20:29:51 Looks like it's a datatype that contains just a list. 20:30:32 pikhq: Yes, and we all know that all list-things are exactly the same. 20:30:40 You have clearly been following what I was talking about. 20:31:20 Bah. 20:31:47 > [1..5]>>=(+2) 20:31:49 No instance for (GHC.Enum.Enum [b]) 20:31:49 Unfortunately, there is no way to make (1 \/ 2) and (1 \/ 2 \/ 3) work sanely in haskell. :< 20:31:50 arising from the arithmetic sequence... 20:31:54 not eeven with a typeclass 20:32:19 > [1..5]>>=return . (+2) 20:32:21 [3,4,5,6,7] 20:32:40 Because mapping takes too much effort to write. 20:32:57 pikhq: CALESKELL! 20:33:01 (+2).[1..5] 20:33:10 > (+2)<$>[1..5] 20:33:10 Caleskell? 20:33:11 [3,4,5,6,7] 20:33:28 pikhq: Cale used to have lambdabot lie about stuff. It had (.) = fmap 20:33:32 oerjan: Yes, yes, there's the applicative stuff. 20:33:34 And similar things 20:33:43 But then it went all normal due to confusing the shit out of everyone. 20:33:55 group pressure! 20:33:59 poor lambdabot 20:34:03 ehird: :D 20:34:05 fmap should definitely be called fmap. 20:34:05 Erm. 20:34:05 (.) 20:34:12 food -> 20:34:13 Yes. 20:34:16 And "map" should not exist. 20:34:28 It's just a special case of fmap. 20:34:31 Which is lame. 20:34:35 So is (.) :-P 20:34:36 Indeed, though. 20:34:58 entangle :: [a] -> Superposition a 20:34:58 entangle [] = error "(The universe quietly expires.)" 20:36:00 > (+)<*>2<$>[1..5] 20:36:02 No instance for (GHC.Num.Num (a -> a)) 20:36:02 arising from the literal `2' at <... 20:36:15 Ah, yes. /me should not be dumb. 20:37:05 Hmm. 20:37:14 @src (->) =<< 20:37:15 Source not found. That's something I cannot allow to happen. 20:37:25 @src (->) >>= 20:37:25 strange comment 20:37:26 Source not found. Do you think like you type? 20:37:44 ... 20:37:45 instance Eq a => Eq (Superposition a) where 20:37:45 Superposition xs == Superposition ys = Superposition $ zipWith (==) xs ys 20:37:47 FUCK YEAH 20:37:57 ais523: \bot is master of the insults. 20:38:00 @src (->) >>= 20:38:00 Source not found. 20:38:02 @src (->) >>= 20:38:02 Source not found. This mission is too important for me to allow you to jeopardize it. 20:38:03 @src (->) >>= 20:38:04 Source not found. You speak an infinite deal of nothing 20:38:06 say the Bob one! 20:38:07 @src (->) >>= 20:38:08 Source not found. That's something I cannot allow to happen. 20:38:09 @src (->) >>= 20:38:10 Source not found. I can't hear you -- I'm using the scrambler. 20:38:11 @src (->) >>= 20:38:11 Source not found. You type like i drive. 20:38:13 SAY IT DAMMIT 20:38:14 @src (->) >>= 20:38:15 Source not found. This mission is too important for me to allow you to jeopardize it. 20:38:16 @src (->) >>= 20:38:16 Source not found. Just try something else. 20:38:18 @src (->) >>= 20:38:18 Source not found. My mind is going. I can feel it. 20:38:22 I hate you \bot 20:38:22 @src (->) >>= 20:38:22 Source not found. 20:38:24 @src (->) >>= 20:38:25 Source not found. Wrong! You cheating scum! 20:38:26 @src (->) >>= 20:38:27 Source not found. stty: unknown mode: doofus 20:38:30 -____________ 20:38:30 - 20:38:32 @src (->) >>= 20:38:32 Source not found. That's something I cannot allow to happen. 20:38:34 @src (->) >>= 20:38:34 Source not found. You untyped fool! 20:38:35 ehird: Any reason for Superposition not being a monad? It's not like it's... difficult. 20:38:36 @src (->) >>= 20:38:37 Source not found. Are you on drugs? 20:38:38 @src (->) >>= 20:38:38 Source not found. Where did you learn to type? 20:38:40 @src (->) >>= 20:38:40 Source not found. This mission is too important for me to allow you to jeopardize it. 20:38:41 @src -> >>= 20:38:43 Source not found. You type like i drive. 20:38:45 pikhq: That's not its semantics. 20:38:47 @src (->) >>= 20:38:47 Source not found. Sorry about this, I know it's a bit silly. 20:38:48 @src (->) >>= 20:38:51 Source not found. Have you considered trying to match wits with a rutabaga? 20:38:56 @src (->) >>= 20:38:56 Source not found. Sorry about this, I know it's a bit silly. 20:38:59 ;;;;;;;;;;;;_;;;;;;;;;;;; 20:39:00 @src (->) >>= 20:39:01 Source not found. Are you on drugs? 20:39:03 @src (->) >>= 20:39:03 Source not found. Do you think like you type? 20:39:05 FUCK 20:39:06 YOU 20:39:08 I GIVE UP\ 20:39:11 ehird: Needs moar monads. 20:39:11 s/\/$// 20:39:12 -!- augur has joined. 20:39:18 @src -> >>= 20:39:18 Source not found. You speak an infinite deal of nothing 20:39:25 Which one did you want? 20:39:28 -!- Judofyr has joined. 20:39:28 Couldn't match expected type `Bool' 20:39:29 against inferred type `Superposition Bool' 20:39:35 DAAAAAAAAAAAAAMN YOUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU 20:39:43 Why isn't there a Boolean typeclass? 20:39:45 I mean really. 20:40:13 GODDAMMIT ICEDTEA STOP DEPENDING ON GNU-CLASSPATH-JDK. 20:41:02 YOU'RE INSTALLED. YOU MAY DEPEND ON YOURSELF NOW. 20:42:34 "dev-java/icedtea6" IS TOTALLY SOMETHING THAT CAN RESOLVE THAT DEPENDENCY ACCORDING TO YOUR EBUILD. 20:43:59 @src -> (>>=) 20:44:00 Source not found. That's something I cannot allow to happen. 20:44:30 @src (->) (>>=) 20:44:31 f >>= k = \ r -> k (f r) r 20:44:34 whew 20:44:51 why the heck cannot @src ignore parentheses 20:47:17 this kb has no delete key 20:47:20 it ragifies me 20:49:38 yeah you look a bit ragged 20:52:15 @hoogle [a] -> [a] -> [Bool] 20:52:15 Prelude (++) :: [a] -> [a] -> [a] 20:52:16 Data.List (++) :: [a] -> [a] -> [a] 20:52:16 Data.List deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a] 20:52:19 meh 20:52:58 zipWith isn't good enough for you? 20:53:11 i had to write it twice but then I realised i could use a where clause 20:53:20 wait no 20:53:23 that doesn't span across pattern matchii 20:53:28 matchae 20:53:37 was that (classpath) the Java standard class library that hung if you clicked anything in the window? 20:54:14 Ilari: No. Classpath is the entirety of the Java standard library. 20:54:58 match appears to be depressingly germanic 20:55:01 What does GCJ use? It can't compile some Java software I have due to some missing stdlib routines. 20:55:52 why isn't there a definition-wide where clause :< 20:55:55 oerjan: ? 20:56:47 Specifically, it was missing String.(byte[], Charset), PrintStream.(String, String), Math.scalb(double, int) and Math.getExponent(double). 20:57:00 ehird: no latin endings need apply 20:57:12 ah :P 20:58:52 -!- upyr[emacs] has quit (Remote closed the connection). 20:59:44 GNU Classpath. 20:59:51 > let f (Just x) | x < 0 = fnord | otherwise = "nope" where { fnord = show x }; f Nothing = "hm..." in f (-5) 20:59:52 No instance for (GHC.Num.Num (Data.Maybe.Maybe t)) 20:59:52 arising from a use of... 20:59:56 GNU Classpath is not a complete implementation. 21:00:00 > let f (Just x) | x < 0 = fnord | otherwise = "nope" where { fnord = show x }; f Nothing = "hm..." in f $ Just (-5) 21:00:02 "-5" 21:00:30 Any xs == Any ys = any equal 21:00:31 All xs == All ys = all equal 21:00:32 where equal = zipWith (==) xs ys 21:00:40 oerjan: think i could convince the haskell' people to standardize that as working? 21:00:43 ehird: because the where would then be inside several different scopes with possibly different names defined 21:00:47 bah. 21:01:19 e.g. x is not defined in the f Nothing clause i wrote there 21:01:48 and it could even have been defined in conflicting ways 21:02:06 -!- jix has joined. 21:03:04 what should i do then? 21:03:09 i hate adding a stupid new one-off top level function 21:03:10 Turns out I had a useflag enabled that made icedtea depend on a library which depends on virtual/jdk-1.4 21:03:15 I could use a case I guess 21:03:22 case (x,y) of ... 21:03:31 -!- ais523 has quit (Remote closed the connection). 21:03:50 Stupid one-off module level function. 21:03:52 ehird: also you want or/and, not any/all with that definition 21:04:02 oerjan: eh really? why? 21:04:05 :t any 21:04:07 forall a. (a -> Bool) -> [a] -> Bool 21:04:07 any/all takes a predicate 21:04:08 :t all 21:04:09 forall a. (a -> Bool) -> [a] -> Bool 21:04:11 oerjan: oh 21:04:17 oerjan: but why 21:04:19 i'm opearting on two lists 21:04:21 operating 21:04:50 equal is a [Bool] 21:04:58 oh 21:04:59 I see 21:06:03 oerjan: what would you call ((a -> b -> c) -> Superposition a -> Superposition b -> Superposition c)? 21:06:06 ehird: hm wait there is something you can do. Any/All are constructors, right? 21:06:06 i'm thinking something quantumy 21:06:11 like 'entoperate' 21:06:12 or something 21:06:15 oerjan: yes, but I just used 21:06:18 Any xs == Any ys = or $ zipWith (==) xs ys 21:06:18 All xs == All ys = and $ zipWith (==) xs ys 21:06:19 in the end 21:07:09 data ... = Any { inside :: [a] } | All { inside :: [a] } 21:07:22 would allow you to use inside in both branches 21:07:42 what, really? 21:07:46 well 21:07:51 hot, but, doesn't help with (==) 21:08:03 you still need a case expression 21:08:13 oh well 21:08:23 oerjan: what is an operation that combines two superpositions into a third, new one anyway 21:08:27 i need to name this thing :D 21:09:01 sum 21:09:13 (weighted sum) 21:09:29 oerjan: isn't that just for summation or something 21:10:02 well that's what it is in quantum mechanics. which has little to do with the above anyway. 21:10:52 i'll just call it operate 21:11:03 and operate2 for the two argument version 21:15:50 operate2 :: (a -> b -> c) -> Superposition a -> Superposition b -> Superposition c 21:16:02 oerjan: is there a name for a zip that cycles the shorter list to fit? 21:16:25 not that i know of 21:17:21 oerjan: no function that takes [a] and [b] and cycles one to fit the larger length? which is the main part of it ofc 21:19:01 it's a rather special purpose thing, don't you think? ;D 21:19:15 i find myself needing it quite often 21:19:26 i'd prefer zip worked that way by default 21:19:29 maybe 21:23:20 hm... i think that would ruin deforestation 21:23:46 deforest your face. 21:23:57 since you couldn't throw away the beginning of either list until the end of both was reached 21:24:37 * oerjan doesn't know how much ghc manages to deforest zips, anyway 21:24:57 also, it could blow up memory 21:25:18 > let fib = zipWith (+) fib (tail fib) in fib 21:25:23 mueval-core: Prelude.read: no parse 21:25:23 mueval: ExitFailure 1 21:25:26 er no 21:25:32 > let fib = 1:1:zipWith (+) fib (tail fib) in fib 21:25:33 [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,1... 21:26:02 that would blow up with such a zip 21:26:39 unless it managed to detect both lists were infinite 21:27:19 *that 21:28:56 oerjan: er just store the entire list 21:29:00 ie keep 'fib' around 21:29:44 er the point is _not_ to do that, if you want to save memory 21:30:29 oerjan: but you don't save memory anyway, as you bind 'fib' to a name and use it 21:30:32 so you're keeping it around anyway 21:30:37 yes you would 21:30:49 and since it'd never reach the END of either, 21:30:53 it'd never try and cycle one 21:31:16 printing that fib runs in constant memory (ignoring bignums there) 21:31:44 it would anyway 21:31:46 So, my hard drive failure. Turns out my 500G drive is a) notorious as the Deathstar b) hard as fuck to replace c) has a 1 year warranty. 21:31:47 Fuck it, I'm getting a new drive. 21:31:47 i think you are the thinking wrong 21:31:53 pikhq: *DeskStar 21:32:02 you bought a hitachi drive? 21:32:12 ehird: No, a Samsung. 21:32:14 welcome to stupidity, population infinite! 21:32:16 oh 21:32:21 ehird: no, i'm pretty sure laziness means you don't keep the beginning of the list after the first few steps 21:32:26 pikhq: Samsung drives are renowned 21:32:30 spinpoint f1 21:32:36 This one isn't. 21:32:42 pikhq: which model is it? 21:32:48 anyway get a western digital. 21:32:57 *not a Green 21:33:04 I'm looking at the Seagates and the WDs. 21:33:18 if you go seagate get a barracuda 21:33:24 if you go WD get anything but a green 21:33:30 well maybe 21:33:32 you might want a green 21:33:38 there's some fud and some stuff that looks legit 21:33:42 pikhq: what's the model you have 21:33:48 HD501LJ. 21:33:57 It failed in a few months. 21:34:01 hmm probably crap then. 21:34:04 pikhq: get a 1TB :-P 21:34:37 Quite likely. 21:39:35 ahh i need to make this language 21:40:06 it's the language making addiction! 21:40:17 yes! 21:40:19 it would be awesome 21:40:24 there's got to be a pretentious greek word for it 21:40:45 glosso- something? 21:41:08 glossomania? 21:41:25 yes, and -mania at the end. but it needs something in between. 21:41:30 ... why does that sound like some game? 21:41:33 for "making" 21:42:06 what is the name for "god complex" or whatever it is called. 21:42:11 apparently it's a disease 21:42:12 god complex 21:42:22 ehird, I meant the pretentious name 21:42:27 megalomania gets close 21:42:29 god complex :P 21:42:39 A God complex is a non-clinical term. It does not appear in the Diagnostic and Statistical Manual of Mental Disorders (DSM)[1] 21:42:46 Narcissistic personality disorder (NPD) is a personality disorder defined by the Diagnostic and Statistical Manual of Mental Disorders, the diagnostic classification system used in the United States, as "a pervasive pattern of grandiosity, need for admiration, and a lack of empathy." [1] 21:42:48 The narcissist is described as turning inward for gratification rather than depending on others, and as being excessively preoccupied with issues of personal adequacy, power, and prestige.[2] Narcissistic personality disorder is closely linked to self-centeredness. It is also colloquially referred to as "the God complex." 21:42:48 oerjan, ah yes, and since gods great the world... 21:42:52 clearly that should be used 21:42:52 Megalomania (from the Greek word μεγαλομανία; megalo-, meaning large, and mania) is a historical term for behavior characterized by an obsession or preoccupation with wealth, power, genius, or omnipotence—often generally termed as delusions of grandeur or grandiose delusions. Megalomania denotes an obsession with having and/or obtaining, grandiosity and extravagance (especially in the form of great fame and popularity, material wealth, soci 21:42:57 al influence or political power, or more than one or even all of the aforesaid). It may be a symptom of manic or paranoid disorders.[citation needed] However it is not considered a distinct mental disorder of itself according to the Diagnostic and Statistical Manual of Mental Disorders. 21:43:06 they really great the world 21:43:09 and i verb language 21:43:11 spammomania 21:44:14 -!- MizardX has quit (Read error: 131 (Connection reset by peer)). 21:44:32 -!- MizardX has joined. 21:46:07 and i verb language <-- some meme? 21:46:20 dude, it's calvin and hobbes 21:46:35 ehird, that is even worse than garfield IMO! 21:46:40 ............................. 21:46:48 verbing weirds language 21:46:49 Did you really just say that? Do you fully understand what you just said? 21:46:52 Are you sure you're not mixing things up, AnMaster? 21:46:59 Because you just fucking said that Calvin and Hobbes is worse than Garfield. 21:47:06 ehird, might be the Swedish translation used by newspapers here... 21:47:15 AnMaster: i think you have to exile to the moon now 21:47:19 I knew you were shit-for-brains, I was just assuming this was more than vacuously true — you clearly don't have a brain. 21:47:22 Not even a shit-brain. 21:47:27 oerjan, why? I hate Calvin and Hobes 21:47:28 Tragic. 21:47:33 hobbes* 21:47:59 oerjan: you get the pitchfork or me? 21:48:00 AnMaster: of course calvin is ehird's great hero, which might explain his reaction 21:48:04 lol 21:48:07 oerjan, ah! 21:48:08 who said that :D 21:48:13 ehird: i did 21:48:16 omg 21:48:18 it's an oerjan 21:48:23 oerjan, yeah it might explain it... 21:49:41 why do I have koffice installed *confused* 21:49:55 maybe you have a koffein addiction 21:50:04 hah hah 21:50:19 koffice is shit though 21:50:58 > (++"office")<$>['a'..'z'] 21:50:59 Couldn't match expected type `[GHC.Types.Char]' 21:51:03 eep 21:51:07 > (:"office")<$>['a'..'z'] 21:51:08 ["aoffice","boffice","coffice","doffice","eoffice","foffice","goffice","hof... 21:51:53 !haskell (:"office")`map`['a'..'z'] 21:51:54 ["aoffice","boffice","coffice","doffice","eoffice","foffice","goffice","hoffice","ioffice","joffice","koffice","loffice","moffice","noffice","ooffice","poffice","qoffice","roffice","soffice","toffice","uoffice","voffice","woffice","xoffice","yoffice","zoffice"] 21:53:42 -!- MizardX has quit (Read error: 145 (Connection timed out)). 21:56:36 * pikhq is getting a terabyte Seagate drive. 21:58:18 pikhq: barracuda? 21:58:23 one of those with terable performance 22:00:20 ehird: Yes. 22:00:31 pikhq: cool. 22:00:37 pikhq: any reason not to go w/ WD? 22:01:01 The Seagate was slightly cheaper and had free shipping. 22:01:28 Also, I trust Seagate a bit more. 22:02:37 -!- darthnuri has joined. 22:02:48 pikhq: Wut? 22:02:56 WD are pretty much the most reliable HD maker in existence. 22:03:09 I've got 15 year old Seagate drives that still work. 22:03:12 pikhq: Also, all newegg items have free shipping :P 22:03:20 ... No. 22:03:24 Maybe in UK-land, but not here. 22:06:07 pikhq: newegg don't exist in the UK. 22:06:11 only in the US, really. 22:06:15 pikhq: but yes. 22:06:40 I guess they used to? But alas, such is not the case any more. 22:06:48 UK-land, also known as Eng-land, Scot-land, Welsh-land and part of Ire-land. 22:06:58 pikhq: Uh? You sure? 22:07:08 Yes. 22:07:19 They specifically advertise which items *have* free shipping. 22:07:50 huh 22:08:47 GregorR: i think you welshed a bit on that one 22:12:01 oerjan: "Wales" doesn't end in "-land", gimme a break :P 22:13:12 GregorR: i decided to give you a pun instead 22:18:43 -!- inurinternet has quit (Connection timed out). 22:18:49 Cym-rae, however. 22:18:51 :P 22:22:53 -!- jix has quit (".zZ"). 22:31:51 -!- coppro has joined. 22:38:31 "I am extremely displeased with today’s comic. XKCD, which I normally agree with and enjoy, has made several errors in one comic, from my point of view. Global warming is a lie so get over that one already." 22:38:36 —xkcd blag comment 22:39:00 * coppro is rather annoyed at the whole global warming thing 22:40:00 coppro: wat? 22:40:10 don't tell me you're a wackjob too 22:42:12 The whole thing annoys me, too. 22:42:13 "“Climate change” is, incidentally, a non-falsifiable hypothesis (the record shows temperatures have changed a lot, particularly if you recognize that Mann, et al’s hockeystick is bad science), taking it OUT of the realm of science, and into religion." 22:42:15 —signed Michael 22:42:20 Not because I don't think it's happening, but because it's a moot point. 22:42:21 Zombie Crichton! 22:42:31 pikhq: uh huh. and how is this so? 22:43:05 Regardless of whether or not the shit we're dumping in the air is heating up the earth, it's still adding shit to the air that hurts the environment. 22:43:25 Climate change is just one of the ways that our massive stream of pollution fucks things up. 22:43:26 ah 22:43:44 ehird: no, hardly 22:43:51 coppro: what then? 22:43:55 I'm annoyed at the way people think of it 22:44:16 like, it's become a bit of a religious debate as to whether climate change is happening 22:44:37 and people are missing the fundamental point which is that we should be nice to our planet 22:44:38 the only people who challenge that it's happening are nutjobs 22:44:45 and most sane people don't argue with nutjobs 22:44:49 so of course the arguments are a shitfest 22:45:03 ehird: Nut jobs and people who stand to lose money from not being nice to the planet. 22:45:33 my policy is to ignore all nutjobs unless i'm bored, in which case I flame them. 22:45:34 it's relaxing. 22:47:50 brb. 23:10:48 -!- coppro has quit (Remote closed the connection). 23:17:30 http://codu.org/pics/main.php?cmd=imageview&var1=Genova%2Fcrw_2946_contrast.jpg 23:30:30 i love looking down on the clouds 23:31:22 I love when the plane is between to layers of clouds. 23:31:42 And also seeing mountains through clouds, that's effing sweet (although only an experience I've had once :P ) 23:36:00 to layers of clouds 23:37:04 :( 23:37:05 two 23:37:23 I apparently have lost the ability to distinguish homonyms entirely. 23:43:17 http://imgur.com/jV0N4.jpg 23:46:46 Ohhhhhhhhhh kay 23:49:18 of course with my evolved intelligence i can see those are all just paper silhouettes anyhow. 23:54:03 So you've evolved the ability to not recognize symbols? Must be useful :P 23:55:09 GregorR: oerjan: if you combine you'll be know that Wether Balloons are actually paper silhouettes 23:59:55 ehird: "You'll be know"?