←2011-06-26 2011-06-27 2011-06-28→ ↑2011 ↑all
00:12:02 -!- elliott_ has joined.
00:12:14 <elliott_> <elliott_> <newsham> i want a shirt made of spider silk
00:12:16 <elliott_> <elliott_> um are you ph
00:15:26 -!- myndzi has quit (Remote host closed the connection).
00:20:47 -!- augur has joined.
00:38:05 -!- augur has quit (Remote host closed the connection).
00:52:05 -!- myndzi has joined.
01:08:40 <Lymee> > 1/0
01:08:41 <lambdabot> Infinity
01:08:43 <Lymee> > 0/0
01:08:44 <lambdabot> NaN
01:08:56 <Lymee> > [1/0
01:08:57 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
01:09:00 <Lymee> > [1/0,5..]
01:09:01 <lambdabot> [Infinity,5.0,-Infinity,-Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,N...
01:09:08 <oerjan> wtf :P
01:09:26 <Lymee> > [1/0,5,1/0..]
01:09:27 <lambdabot> <no location info>: parse error on input `..'
01:09:35 <Lymee> > [1/0,5..-1/0]
01:09:36 <lambdabot> Not in scope: `..-'
01:09:39 <Lymee> > [1/0,5..-(1/0)]
01:09:40 <lambdabot> Not in scope: `..-'
01:09:43 <Lymee> > [1/0,5..0-(1/0)]
01:09:44 <lambdabot> [Infinity,5.0,-Infinity,-Infinity]
01:09:52 <Lymee> > [1/0,5..(0/0)]
01:09:53 <lambdabot> []
01:11:49 <oerjan> > let l = [1/0,5..] in l !! 2 == l !! 3
01:11:50 <lambdabot> True
01:12:30 <elliott_> Gregor Gregor Gregor Gregor Gregor
01:12:42 <Lymee> > [1/0,pi..]
01:12:44 <lambdabot> [Infinity,3.141592653589793,-Infinity,-Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN...
01:12:47 <Lymee> > [1/0,pi..-pi]
01:12:48 <lambdabot> Not in scope: `..-'
01:12:50 <oerjan> weird, why does it have two equal elements and _then_ a different one...
01:12:53 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:12:53 <Lymee> > [1/0,pi..-1000]
01:12:54 <lambdabot> Not in scope: `..-'
01:12:55 <elliott_> oerjan: foalting point
01:13:00 <Lymee> oerjan, because infinity is weird.
01:13:40 <oerjan> elliott_: well i'm just wondering what kind of algorithm can do that, it means it cannot be adding the same constant each time...
01:13:55 <elliott_> oerjan: um you realise (==) is not true on floating point
01:14:02 <elliott_> a can == b but f a can /= f b
01:14:14 <oerjan> oh hm...
01:14:54 <oerjan> @src RealFloat
01:14:54 <lambdabot> Source not found. Do you think like you type?
01:15:01 <oerjan> er
01:15:06 <oerjan> :k RealFloat
01:15:08 <lambdabot> Class `RealFloat' used as a type
01:15:08 <lambdabot> In the type `RealFloat'
01:15:19 <oerjan> ok it exists
01:15:23 <elliott_> what are you looking for
01:15:31 <oerjan> the RealFloat methods...
01:15:34 <elliott_> http://www.haskell.org/ghc/docs/7.0.2/html/libraries/base-4.3.1.0/src/Numeric.html
01:15:39 <elliott_> or uh wait
01:15:40 <Lymee> > [0/1,0/1..]
01:15:42 <lambdabot> [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0....
01:15:46 <elliott_> http://www.haskell.org/ghc/docs/7.0.2/html/libraries/base-4.3.1.0/Prelude.html#t:RealFloat
01:15:47 <elliott_> oerjan: http://www.haskell.org/ghc/docs/7.0.2/html/libraries/base-4.3.1.0/Prelude.html#t:RealFloat
01:15:49 <Lymee> > [1/0,1/0..]
01:15:50 <lambdabot> [Infinity,Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,...
01:15:56 <Lymee> wtf
01:16:05 <Lymee> > [0/0,1/0..]
01:16:06 <lambdabot> [NaN,Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,N...
01:16:11 <Lymee> > [0/0,5..]
01:16:12 <lambdabot> [NaN,5.0,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,Na...
01:17:25 <oerjan> > map decodeFloat [1/0,5..]
01:17:26 <lambdabot> [(4503599627370496,972),(5629499534213120,-50),(-4503599627370496,972),(-45...
01:17:36 <Lymee> > map decodeFloat [0/0,5..]
01:17:38 <lambdabot> [(-6755399441055744,972),(5629499534213120,-50),(-6755399441055744,972),(-6...
01:17:41 <oerjan> > drop 2 $ map decodeFloat [1/0,5..]
01:17:42 <lambdabot> [(-4503599627370496,972),(-4503599627370496,972),(-6755399441055744,972),(-...
01:17:59 <oerjan> elliott_: well that did not distinguish them
01:18:14 <elliott_> hmm
01:18:17 <elliott_> ?src Float enumFromTo
01:18:18 <lambdabot> Source not found. And you call yourself a Rocket Scientist!
01:18:26 <Lymee> > map decodeFloat $ map (\x y -> (x/10,y)) [1/0,pi..-pi]
01:18:27 <lambdabot> Not in scope: `..-'
01:18:30 <elliott_> oerjan: i guess a sequential addition loop would do differently
01:18:33 <Lymee> > map decodeFloat $ map (\x y -> (x/10,y)) [1/0,pi..]
01:18:34 <lambdabot> No instance for (GHC.Float.RealFloat (t -> (a, t)))
01:18:34 <lambdabot> arising from a use o...
01:18:45 <Lymee> > map decodeFloat $ map (\x y -> (x/10,y)) $ [1/0,pi..]
01:18:47 <lambdabot> No instance for (GHC.Float.RealFloat (t -> (a, t)))
01:18:47 <lambdabot> arising from a use o...
01:19:01 <Lymee> > map decodeFloat $ map (\(x, y) -> (x/10,y)) $ [1/0,pi..]
01:19:02 <lambdabot> No instance for (GHC.Float.RealFloat (t, t1))
01:19:02 <lambdabot> arising from a use of `GHC...
01:19:06 <Lymee> :<
01:19:27 -!- elliott_ has quit (Remote host closed the connection).
01:19:58 -!- elliott has joined.
01:20:27 -!- cheater__ has quit (Ping timeout: 255 seconds).
01:20:52 -!- tswett has joined.
01:20:52 <oerjan> > map (map decodeFloat) $ map (\(x, y) -> [x/10,y]) $ [1/0,pi..]
01:20:54 <lambdabot> No instance for (GHC.Enum.Enum (a, a))
01:20:54 <lambdabot> arising from the arithmetic seque...
01:20:57 <oerjan> oops
01:21:00 <tswett> Hey, does anyone want to play Zendo?
01:21:11 <oerjan> oh wait
01:21:21 <Lymee> > map ma decodeFloat [1/0,pi..]
01:21:22 <lambdabot> Not in scope: `ma'
01:21:25 <Lymee> > map decodeFloat [1/0,pi..]
01:21:26 <lambdabot> [(4503599627370496,972),(7074237752028440,-51),(-4503599627370496,972),(-45...
01:21:40 <elliott> sebbu: ur a zendo
01:21:54 <oerjan> > map (map decodeFloat) $ map (\x -> [x/10,x]) $ [1/0,pi..]
01:21:55 <Lymee> > drop 3 $ map decodeFloat [1/0,pi..]
01:21:55 <lambdabot> [[(4503599627370496,972),(4503599627370496,972)],[(5659390201622752,-54),(7...
01:21:56 <lambdabot> [(-4503599627370496,972),(-6755399441055744,972),(-6755399441055744,972),(-...
01:22:11 <Lymee> [(4503599627370496,972),(7074237752028440,-51),(-4503599627370496,972),(-4503599627370496,972),(-6755399441055744,972),(-6755399441055744,972)]
01:22:15 <Lymee> Now to figure out wtf is happening.
01:22:23 <oerjan> well i have a theory
01:22:36 <tswett> sebbu: no, I'm a zendo!
01:22:36 <elliott> enumFromTo probably does not use repeated addition
01:22:39 <oerjan> > [1/0,5..]
01:22:39 <elliott> perhaps instead multiplying the constant
01:22:40 <lambdabot> [Infinity,5.0,-Infinity,-Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,N...
01:22:41 <tswett> No, I mean...
01:22:44 <tswett> elliott: no, I'm a zendo!
01:22:45 <Lymee> > -Infinity - -Infinity
01:22:46 <lambdabot> Not in scope: data constructor `Infinity'Not in scope: data constructor `In...
01:22:55 <elliott> > 5+(1/0)
01:22:56 <lambdabot> Infinity
01:22:58 <elliott> > 5+(1/0)+(1/0)
01:22:59 <lambdabot> Infinity
01:23:02 <elliott> > 5+(1/0)+(1/0)+(1/0)
01:23:04 <lambdabot> Infinity
01:23:06 <Lymee> > (-1/0) - (-1/0)
01:23:06 <elliott> oh wait it's removing
01:23:07 <lambdabot> NaN
01:23:09 <elliott> > 5-(1/0)
01:23:11 <lambdabot> -Infinity
01:23:12 <Lymee> > 5 - (-1/0)
01:23:13 <lambdabot> Infinity
01:23:14 <elliott> > 5-(1/0)-(1/0)
01:23:15 <lambdabot> -Infinity
01:23:16 <elliott> > 5-(1/0)-(1/0)
01:23:17 <lambdabot> -Infinity
01:23:18 <elliott> > 5-(1/0)-(1/0)-(1/0)
01:23:19 <lambdabot> -Infinity
01:23:23 <elliott> oerjan: yeah, it is not repeated subtraction
01:23:23 <elliott> or
01:23:24 <elliott> maybe it is
01:23:27 <elliott> but with different precedence
01:23:35 <elliott> > 5-((1/0)-((1/0)-(1/0)))
01:23:36 <lambdabot> NaN
01:23:38 <elliott> oerjan: :D
01:23:39 <elliott> tada
01:23:41 <Lymee> elliott.
01:23:45 <elliott> > 5-((1/0)-(1/0))
01:23:46 <lambdabot> NaN
01:23:48 <elliott> oh
01:23:49 <Lymee> >(1/0) - 5
01:23:54 <Lymee> > (1/0) - 5
01:23:55 <lambdabot> Infinity
01:23:56 <elliott> Lymee: stop pinging me without saying anything
01:24:02 <Lymee> > 5 - ((1/0) - 5)
01:24:03 <lambdabot> -Infinity
01:24:10 <Lymee> > (5 - ((1/0) - 5)) - ((1/0) - 5)
01:24:11 <lambdabot> -Infinity
01:24:19 <Lymee> > ((5 - ((1/0) - 5)) - ((1/0) - 5)) - ((1/0) - 5)
01:24:20 <lambdabot> -Infinity
01:24:23 <Lymee> nyan?
01:24:43 <oerjan> > let f x y = x : f y (y+(y-x)) in f (1/0) 5
01:24:44 <lambdabot> [Infinity,5.0,-Infinity,-Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,N...
01:24:48 <oerjan> elliott: ^
01:24:54 <oerjan> is my theory
01:25:02 <elliott> oerjan: what a strange way of doing it
01:27:28 <oerjan> yeah you'd think that would be inefficient
01:29:17 <oerjan> hm that's not what h98 report says...
01:29:43 <Lymee> > 1 + 1 = 1
01:29:44 <lambdabot> <no location info>: parse error on input `='
01:29:48 * Lymee runs
01:30:23 <oerjan> > let f x y = map ((x+).((y-x)*) [0..] in f (1/0) 5
01:30:24 <lambdabot> <no location info>: parse error on input `in'
01:30:35 <oerjan> > let f x y = map ((x+).((y-x)*)) [0..] in f (1/0) 5
01:30:37 <lambdabot> [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,Na...
01:30:54 <oerjan> oh hm
01:31:11 <Lymee> ?pl let f x y = map ((x+).((y-x)*)) [0..] in f (1/0) 5
01:31:11 <lambdabot> map ((1 / 0 +) . ((5 - 1 / 0) *)) [0..]
01:31:14 <Lymee> What.
01:31:23 <Lymee> That's not as near as dotty as I expected.
01:31:50 <oerjan> there are no lambdas to dot
01:31:58 <elliott> um that's just beta reduction Lymee
01:32:02 <elliott> to remove the f point
01:34:08 -!- cheater__ has joined.
01:38:51 <elliott> tehz is really annoying...
01:43:24 <oerjan> Enum Double appears to be an orphan instance, it's hard to find the actual source :(
01:45:12 -!- Lymia has joined.
01:45:38 -!- Lymee has quit (Disconnected by services).
01:45:40 -!- Lymia has changed nick to Lymee.
01:47:25 -!- augur has joined.
01:50:59 * oerjan finally finds a link to GHC.Float source
01:52:59 <elliott> oerjan: you should just download ghc when looking for internal module sources :P
01:53:35 -!- augur has quit (Remote host closed the connection).
01:54:19 <oerjan> hmph
01:58:11 <oerjan> numericEnumFromThen n m= n `seq` m `seq` (n : numericEnumFromThen m (m+m-n))
01:58:24 <oerjan> finally found it in GHC.Real
01:58:48 <elliott> :D
01:58:57 <elliott> but why such a weird definition, i guess maybe it's more accurate
02:00:52 -!- Madk has joined.
02:01:06 <Madk> hello
02:01:19 -!- Madk has quit (Client Quit).
02:01:30 <monqy> hi
02:01:58 <oerjan> elliott: according to some comments i found under way, these were originally in the haskell 1.2 report
02:02:04 <oerjan> the h98 report instead has
02:02:16 <oerjan> numericEnumFromThen n m = iterate (+(m-n)) n
02:02:36 <elliott> was that madk....
02:02:53 <oerjan> well those comments may of course be out of date for the actual current ghc code
02:03:35 <oerjan> the ghc code has a strictness error, me thinks
02:03:44 <oerjan> > [1.0, undefined ..]
02:03:45 <lambdabot> *Exception: Prelude.undefined
02:03:58 <oerjan> the report indicates it should give the 1.0
02:04:04 <elliott> oerjan: report it? :P
02:04:09 <oerjan> NEVER
02:04:17 <elliott> oerjan: (also, you realise h98 isn't the report any more, right?)
02:04:26 <elliott> where does it indicate that?
02:04:29 <oerjan> yeah but i doubt this changed
02:04:36 <oerjan> http://www.haskell.org/onlinereport/standard-prelude.html
02:04:37 * elliott will report it
02:04:52 <elliott> oerjan: which part exactly?
02:04:54 <elliott> gimme a string to grep :P
02:05:07 <elliott> enumFromThen :: a -> a -> [a] -- [n,n'..]
02:05:07 <elliott> that?
02:05:41 <oerjan> numericEnumFromThen
02:06:13 <elliott> oerjan: um is exact identicality required?
02:06:16 <elliott> even when _|_ is involved?
02:06:29 <oerjan> _especially_ when _|_ is involved.
02:06:33 -!- Lymia has joined.
02:07:29 <oerjan> there was a reasonable improvement to filterM which they wouldn't make because it would cause certain _|_'s to show up in a different place
02:07:34 <elliott> argh, Chrome, forget my guest/guest login
02:08:13 <oerjan> elliott: you might mention the silly [1/0, 5..] behavior :P
02:08:25 <elliott> how is it silly?
02:08:45 <elliott> FUCK THIS HOW THE FUCK DO I LOG IN JESUS
02:09:29 -!- Lymee has quit (Ping timeout: 240 seconds).
02:09:32 <elliott> fu;KCK
02:09:37 <elliott> ill use firefox
02:09:52 <oerjan> see, this is precisely the kind of reason why i refuse to report things :P
02:10:13 <elliott> um that was my stupidity for logging in to the guest account first
02:10:18 <elliott> > [0, undefined..]
02:10:19 <lambdabot> [0*Exception: Prelude.undefined
02:10:22 <elliott> > [0.0, undefined..]
02:10:24 <lambdabot> *Exception: Prelude.undefined
02:10:55 <elliott> oerjan: paste me numericEnumFrom, numericEnumFromThen definitions?
02:10:56 <elliott> from ghc
02:11:11 <oerjan> numericEnumFrom :: (Fractional a) => a -> [a]
02:11:12 <oerjan> numericEnumFrom n= n `seq` (n : numericEnumFrom (n + 1))
02:11:12 <oerjan> numericEnumFromThen :: (Fractional a) => a -> a -> [a]
02:11:12 <oerjan> numericEnumFromThen n m= n `seq` m `seq` (n : numericEnumFromThen m (m+m-n))
02:11:44 <oerjan> the former looks reasonable
02:12:33 <oerjan> although the seq means it's not entirely equivalent to the standard Prelude
02:13:13 <elliott> > map (const ()) [0, undefined..]
02:13:14 <lambdabot> [()*Exception: Prelude.undefined
02:13:41 <elliott> oerjan: hm so the standard evaluation of [0.0, undefined..] should be...
02:13:42 <elliott> ?src iterate
02:13:43 <lambdabot> iterate f x = x : iterate f (f x)
02:14:09 <elliott> 0.0 : iterate (+(0.0-undefined)) (0.0+(0.0-undefined))
02:14:15 <elliott> oerjan: in other words, 0.0 : undefined?
02:14:31 <oerjan> 0.0 : repeat undefined, i think
02:14:51 <elliott> oerjan: um so
02:14:51 <elliott> <elliott> > map (const ()) [0, undefined..]
02:14:51 <elliott> <lambdabot> [()*Exception: Prelude.undefined
02:14:52 <elliott> is broken too?
02:15:15 <elliott> oerjan: does that mean more than numericEnumFromThen is broken?
02:15:30 <oerjan> ok, confirmed nothing has changed with those two functions in h2010
02:15:58 <oerjan> elliott: erm Integer doesn't use numericEnumFromThen
02:16:10 <elliott> oerjan: i already confirmed that
02:16:14 <elliott> oerjan: and yes, but doesn't it mean it's still broken?
02:16:14 <oerjan> it's solely for Float and Double
02:16:20 <elliott> whatever is used there
02:16:54 <oerjan> there is no code. it is quite possible undefined behavior is not specified for those :P
02:17:04 <elliott> fair enough
02:17:12 <elliott> > [undefined..]
02:17:13 <lambdabot> *Exception: Prelude.undefined
02:17:29 <elliott> > iterate (+1) undefined
02:17:30 <lambdabot> [*Exception: Prelude.undefined
02:17:34 <elliott> > map (const ()) (iterate (+1) undefined)
02:17:35 <lambdabot> [(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),()...
02:19:08 <elliott> oerjan: http://hackage.haskell.org/trac/ghc/ticket/5279
02:19:26 <elliott> oerjan: my first GHC bug :)
02:19:31 <elliott> er, I probably should have credited you
02:19:35 <elliott> I can edit it if you want :P
02:19:39 <elliott> or, hm, no I can't, only reply
02:19:53 <oerjan> elliott: oops
02:19:57 <elliott> oerjan: ?
02:20:07 <oerjan> i wasn't quite finished checking the report
02:20:14 <elliott> oerjan: well I did my own checking...
02:20:17 <oerjan> "For all four of these Prelude numeric types, all of the enumFrom family of functions are strict in all their arguments."
02:20:33 <elliott> argh
02:21:11 <oerjan> the code in the report is not consistent with it, but ghc may have added those seq's for it
02:21:27 <elliott> oerjan: made invalid
02:21:31 <elliott> (by me)
02:21:48 <oerjan> anyway, this still doesn't change that enumFromThen is stupidly defined on Float/Double
02:22:05 <oerjan> by repeatedly recalculating the difference to add
02:23:21 <oerjan> elliott: btw this means Integer is not strict _enough_ in ghc :P
02:23:27 <elliott> oerjan: :D
02:23:30 <elliott> you can never be unstrict enough
02:23:30 <oerjan> > [0, undefined..]
02:23:31 <lambdabot> [0*Exception: Prelude.undefined
02:23:39 <elliott> oerjan: you could reply to the bug report as a guest saying it's sort of valid :P
02:23:51 -!- Robdgreat has quit (Ping timeout: 244 seconds).
02:24:00 <oerjan> by that report line that should not give the initial 0
02:24:23 <elliott> oerjan: check that that's ABSOLUTELY sure and I'll report it
02:24:48 <oerjan> since when am i absolutely sure about anything
02:25:03 <elliott> oerjan: >:(
02:25:20 <oerjan> but i just quoted that line above, which applies to Int, Integer, Float and Double
02:25:55 <oerjan> of course the report (both h98 and h2010) is inconsistent :P
02:26:11 <elliott> oerjan: report a bug in the report :P
02:29:58 <oerjan> no.
02:32:15 <elliott> oerjan: fly
02:36:04 -!- Lymia__ has joined.
02:36:16 -!- Lymia__ has changed nick to Lymee.
02:36:18 -!- Lymee has quit (Changing host).
02:36:18 -!- Lymee has joined.
02:38:11 -!- myndzi\ has joined.
02:38:54 -!- Lymia has quit (Ping timeout: 276 seconds).
02:41:17 -!- myndzi has quit (Read error: Connection reset by peer).
02:42:09 -!- augur has joined.
02:58:04 -!- Lymia has joined.
02:58:44 -!- Lymee has quit (Disconnected by services).
02:58:46 -!- Lymia has changed nick to Lymee.
03:02:06 <monqy> http://www.haskell.org/ghc/docs/latest/html/libraries/ghc-prim-0.2.0.0/src/GHC-Tuple.html#%28%2C%29 this is the best thing
03:02:10 <monqy> especially the commented out part
03:03:34 <oerjan> wait, ghc actually defines tuples in source?
03:04:14 <elliott> why wouldn't it?
03:04:31 <elliott> monqy: lol at segfault
03:04:38 <oerjan> mainly because it's not legal haskell syntax
03:04:41 <monqy> and it just keeps on going
03:04:50 <elliott> oerjan: um neither is (:) and []
03:05:12 <elliott> /home/elliott/Code/test.hs:1:6:
03:05:12 <elliott> Illegal binding of built-in syntax: (,)
03:05:15 <oerjan> indeed. are they defined in source, too?
03:05:17 <elliott> oerjan: i guess ghc-prim gets some special flags
03:05:31 <oerjan> elliott: maybe it's that GHC.Generics import
03:05:58 * elliott looks for lits
03:06:00 <elliott> list
03:06:22 <elliott> argh it makes reference to GHC.List, which is not listed
03:07:16 <oerjan> hm i had similar trouble finding GHC.Float
03:07:22 <elliott> oerjan: checking the tarball now
03:08:01 <elliott> huh GHC.List may not actually exist?
03:08:03 <elliott> dunno
03:08:10 <elliott> oh wait
03:08:25 <elliott> module GHC.List (
03:08:25 <elliott> -- [] (..), -- Not Haskell 98; built in syntax
03:08:26 <elliott> oerjan: hmph
03:08:46 <elliott> -- We need to set the package name to ghc-prim (without a version number)
03:08:46 <elliott> -- as it's magic.
03:08:46 <elliott> ghc-options: -package-name ghc-prim
03:08:50 <elliott> oerjan: i bet that allows binding of the syntax
03:09:02 <elliott> GHC.Generics is just
03:09:04 <elliott> {-# OPTIONS_GHC -XNoImplicitPrelude -XTypeOperators #-}
03:09:04 <elliott> module GHC.Generics where
03:09:04 <elliott> default ()
03:09:04 <elliott> data Unit = Unit
03:09:04 <elliott> #ifndef __HADDOCK__
03:09:05 <elliott> data (:+:) a b = Inl a | Inr b
03:09:07 <elliott> data (:*:) a b = a :*: b
03:09:09 <elliott> #endif
03:09:12 <oerjan> elliott: i found it in the same directory as GHC.Float, i think it's split according to original base version
03:09:48 <oerjan> ah
03:10:55 <oerjan> NoImplicitPrelude might help with some things too
03:11:00 <Sgeo> Some of my (or my parents' I guess) money went to Deepak Chopra
03:11:02 <Sgeo> :(:(:('
03:12:16 <elliott> hahahahahaha
03:12:32 <elliott> ?hoogle (a -> Bool) -> (a -> b) -> (a -> b) -> a -> b
03:12:33 <lambdabot> Control.Parallel.Strategies (-|) :: (a -> b) -> Strategy b -> (b -> c) -> a -> c
03:12:33 <lambdabot> Control.Parallel.Strategies (-||) :: (a -> b) -> Strategy b -> (b -> c) -> a -> c
03:12:33 <lambdabot> Control.Parallel.Strategies (.|) :: (b -> c) -> Strategy b -> (a -> b) -> a -> c
03:12:36 <elliott> :(
03:12:45 <elliott> ?. pl djinn (a -> Bool) -> (a -> b) -> (a -> b) -> a -> b
03:12:45 <lambdabot> (line 3, column 11):
03:12:45 <lambdabot> unexpected ">" or "-"
03:12:45 <lambdabot> expecting variable, "(", operator or end of input
03:12:49 <elliott> ?.djinn (a -> Bool) -> (a -> b) -> (a -> b) -> a -> b
03:12:50 <lambdabot> f a b c d =
03:12:50 <lambdabot> case a d of
03:12:50 <lambdabot> False -> b d
03:12:50 <lambdabot> True -> c d
03:12:54 <elliott> ugh
03:13:33 <oerjan> :t bool
03:13:35 <lambdabot> Not in scope: `bool'
03:13:39 <oerjan> :t if'
03:13:40 <lambdabot> Not in scope: `if''
03:13:42 <elliott> > a+b `mod`
03:13:43 <elliott> > a+b `mod` c
03:13:44 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
03:13:44 <lambdabot> a + b `mod` c
03:13:47 <elliott> >_<
03:13:50 <elliott> > (a+b) `mod` c
03:13:51 <lambdabot> (a + b) `mod` c
03:13:55 <elliott> > a+(b `mod` c)
03:13:56 <lambdabot> a + b `mod` c
03:14:00 <oerjan> they don't seem to have included any of those yet
03:14:19 <elliott> actually, I'm id if the condition is not true
03:14:29 <elliott> ?hoogle (a -> Bool) -> (a -> a) -> a -> a
03:14:30 <lambdabot> Prelude until :: (a -> Bool) -> (a -> a) -> a -> a
03:14:30 <lambdabot> Prelude (.) :: (b -> c) -> (a -> b) -> a -> c
03:14:30 <lambdabot> Data.Function (.) :: (b -> c) -> (a -> b) -> a -> c
03:14:34 <elliott> gah
03:14:46 <elliott> it's foo p f x = if p x then f x else x
03:14:56 <elliott> oerjan: chr (ord 'a' + ((ord c - ord 'a') + n) `mod` 26)
03:14:57 <elliott> MAKE PRETTIER
03:15:34 -!- zzo38 has joined.
03:16:26 <oerjan> dunno
03:17:02 <zzo38> There are many things in Magic: the Gathering that if I was making rules of a similar game I would consider different things to be logical than what they would have.
03:17:27 <Sgeo> I wonder how many of the MtG rules are due to historical cruf
03:17:29 <Sgeo> cruft
03:17:37 <Sgeo> Making sure old cards still work etc.
03:17:47 <Lymee> I don't think there's as much as exists in Windows.
03:17:51 <Lymee> If that's a useful comparison.
03:17:53 <zzo38> Like, I would name the zones differently: library is now called "draw zone", graveyard is "discard zone", hand is still called "hand zone", exile/remove-from-game is called "miscellaneous zone", stack is still caleld "stack zone".
03:18:34 <Lymee> Those arn't rules.
03:18:58 <zzo38> I dislike the rule that a aura is not also allowed to be a creature, and would remove that rule.
03:20:36 -!- oerjan has quit (Quit: Good night).
03:20:47 <zzo38> When a object moves from one zone to another, in most cases, the old object no longer exists and the new object is created from the old object's "initial data". A token has none and therefore when it moves, nothing is added to the new zone; there would be no state based effect for making tokens cease to exist when moving outside play.
03:21:02 <zzo38> A copy of a spell would now be considered a token.
03:21:37 <zzo38> This means a copy of a artifact/creature/enchantment spell can be played and you move an object from stack to play, it remains the same object so it is the same token and it will still work.
03:24:25 <zzo38> And then that sources of damage that do not exist do not deal any damage (the target will not receive any damage from non-existent source). However damage still waiting to be dealt is still dealt the same way if the source object still exists, regardless of changes that might have been made (except possibly for triggered abilities that prevent it).
03:24:55 <zzo38> Do you think my way is more logical or more insane or both or neither?
03:27:52 -!- azaq23 has joined.
03:31:27 -!- Robdgreat has joined.
03:32:09 <elliott> :t replicate
03:32:10 <lambdabot> forall a. Int -> a -> [a]
03:34:29 <Lymee> > replicate 4 4
03:34:30 <lambdabot> [4,4,4,4]
03:34:34 <Lymee> > replicate 4 [1..]
03:34:35 <lambdabot> [[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,2...
03:39:03 -!- azaq23 has quit (Ping timeout: 255 seconds).
03:56:35 <elliott> i like how (f x x) and (let y = x in f y y) aren't equivalent
03:57:05 <Sgeo> o.O What?
03:58:03 -!- Lymia has joined.
03:58:33 <elliott> Sgeo: consider
03:58:41 <elliott> > let foo f x = f x in foo 9 9
03:58:42 <lambdabot> 9
03:58:49 <elliott> > let foo f x = f x in (let x = 9 in foo x x)
03:58:50 <lambdabot> 9
03:58:53 <elliott> wait what
03:58:55 <elliott> oh
03:58:59 <elliott> > let foo f (x::Int) = f x in (let x = 9 in foo x x)
03:59:00 <lambdabot> 9
03:59:05 <elliott> wait, what?
03:59:11 <elliott> that surely should be a type error
03:59:27 <elliott> oh wait
03:59:32 <elliott> Sgeo: ok im pretty sure you can have it done but
03:59:36 <elliott> its not that easy :D
03:59:56 <Lymia> -' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.
03:59:56 <Lymia> -._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'
03:59:56 <Lymia> -' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.
03:59:56 <Lymia> -._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'
03:59:57 <Lymia> Pewpew.
04:00:40 <copumpkin> elliott: ?
04:00:58 <elliott> copumpkin: ?
04:01:05 -!- Lymee has quit (Ping timeout: 240 seconds).
04:01:11 <copumpkin> why should it be a type error?
04:01:31 <elliott> coppro: it shouldn't
04:01:31 <elliott> copumpkin:
04:02:07 <copumpkin> why?
04:02:10 <copumpkin> oh
04:02:12 <copumpkin> yeah, it shouldn't
04:02:20 * copumpkin doesn't get what you were trying to show
04:03:05 <elliott> copumpkin: a case of (f x x) and (let y = x in f y y) one of which failing to type and the other not
04:04:37 <Sgeo> Does this have anything to do with monomorphic thingies?
04:05:06 <monqy> none of the attempts make any sense to me
04:05:09 <elliott> Sgeo: yes
04:05:10 <coppro> elliott: how dare you take my name in vain
04:05:10 <elliott> monqy: why not
04:05:15 <elliott> coppro ass
04:05:38 <coppro> elliott: why thank you
04:06:17 <monqy> (let foo f x = f x in foo 9 9) => (9 9) => ??????????????
04:06:42 <monqy> my ghci can't type it either without assitance :(
04:07:00 <elliott> monqy: num instance for functions
04:07:03 <monqy> oh
04:07:06 <elliott> f+g = \x -> f x+g x
04:07:07 <elliott> etc.
04:07:14 <monqy> > 9 9
04:07:15 <lambdabot> 9
04:07:24 <monqy> lambdabot is crazy
04:07:30 <elliott> ur MOM is cerzzy
04:08:14 <monqy> I always expect things like that to be in a newtype so it's harder to accidentally apply them
04:08:31 <Lymia> > 4 9
04:08:32 <lambdabot> 4
04:08:37 <Lymia> > 4 $ 9
04:08:38 <lambdabot> 4
04:08:41 <Lymia> What
04:08:48 <elliott> monqy: thats so less elegant :(
04:08:55 <elliott> > (succ + pred) 9
04:08:56 <lambdabot> 18
04:09:15 <monqy> ouch
04:09:18 <Lymia> ?pl (succ + pred) 9
04:09:18 <lambdabot> (succ + pred) 9
04:09:22 <Lymia> nyan oh
04:09:44 <Lymia> > (succ + pred / succ + pred) 9
04:09:45 <lambdabot> 18.8
04:09:49 <Lymia> wat
04:09:56 <monqy> > succ + pred
04:09:57 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
04:09:57 <lambdabot> arising from a use of `...
04:11:11 <Lymia> :t (succ + pred)
04:11:12 <lambdabot> forall a. (Enum a, Num a) => a -> a
04:12:17 <Lymia> :t succ
04:12:18 <lambdabot> forall a. (Enum a) => a -> a
04:12:20 <Lymia> :t red
04:12:21 <lambdabot> Not in scope: `red'
04:12:23 <Lymia> :t pred
04:12:24 <lambdabot> forall a. (Enum a) => a -> a
04:12:36 <Lymia> Does " (Enum a, Num a) " mean "an Enum and Num?"
04:13:22 <elliott> yes
04:14:41 <monqy> > (show :: Num a => a -> String) (succ + pred)
04:14:41 <lambdabot> "*Exception: show: No overloading for function
04:14:53 <monqy> oops
04:15:01 <Lymia> :t show $ (succ + pred)
04:15:02 <lambdabot> String
04:15:12 <Lymia> :t show (succ + pred)
04:15:13 <lambdabot> String
04:15:19 <Lymia> :t show . (succ + pred)
04:15:20 <lambdabot> forall a. (Num a, Enum a) => a -> String
04:17:25 <Lymia> ?pl show . (succ + pred)
04:17:25 <lambdabot> show . (succ + pred)
04:17:35 <Lymia> What is point-free style anyways?
04:20:32 <monqy> ?pl (\ x -> x x) (\ x -> x x)
04:20:35 <lambdabot> ap id id (ap id id)
04:20:35 <lambdabot> optimization suspended, use @pl-resume to continue.
04:20:47 <monqy> @pl-resume
04:20:54 <lambdabot> ap id id (ap id id)
04:20:54 <lambdabot> optimization suspended, use @pl-resume to continue.
04:20:57 <monqy> mmh
04:26:22 <Lymia> @pl-resume
04:26:35 <lambdabot> ap id id (ap id id)
04:26:35 <lambdabot> optimization suspended, use @pl-resume to continue.
04:27:29 <elliott> <Lymia> What is point-free style anyways?
04:27:31 <elliott> the lack of points
04:27:44 <elliott> where a point is a named argument
04:27:51 <elliott> i.e. \x -> x has one point, id has none
04:28:13 <elliott> point-free style builds up functions with combinators and composition rather than explicitly writing a lambda transformation
04:32:23 <Sgeo> That sounds annoying to write out in some circumstances
04:33:09 <elliott> can you do any more haskell than that goldilocks joke again
04:33:46 <Sgeo> I wrote a junky BF interpreter onc
04:33:47 <Sgeo> oncee
04:33:49 <Sgeo> once
04:34:07 <Sgeo> I kind of misplaced it
04:39:19 <elliott> > succ (9::Integer)
04:39:20 <lambdabot> 10
04:39:25 <elliott> > toEnum 0
04:39:26 <lambdabot> ()
04:39:28 <elliott> ?src Enum
04:39:29 <lambdabot> class Enum a where
04:39:29 <lambdabot> succ :: a -> a
04:39:29 <lambdabot> pred :: a -> a
04:39:29 <lambdabot> toEnum :: Int -> a
04:39:29 <lambdabot> fromEnum :: a -> Int
04:39:31 <lambdabot> [3 @more lines]
04:43:37 -!- azaq23 has joined.
04:44:33 <elliott> :t foldr
04:44:34 <lambdabot> forall a b. (a -> b -> b) -> b -> [a] -> b
04:55:20 <newsham> foldr? I just met'r!
05:00:44 <newsham> ?src ap
05:00:44 <lambdabot> ap = liftM2 id
05:01:28 <newsham> ?type ap id id
05:01:28 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
05:01:29 <lambdabot> Probable cause: `id' is applied to too few arguments
05:01:29 <lambdabot> In the second argument of `ap', namely `id'
05:03:46 <coppro> lol xkcd
05:06:11 <elliott> loaded, saw title, closed
05:06:38 <elliott> theory: it is impossible to write anything relating to douglas hofstadter without being really cringeworthy, this includes being hofstadter and writing anything
05:07:30 <elliott> Does anyone know how to find something in Chrome's cache?
05:07:36 <elliott> It stores a lot of things compressed, etc.
05:08:17 <monqy> a quick search came up with about:cache -- is that what you want
05:08:45 <newsham> i bet they know in #chromium and #chromium-os
05:08:54 <elliott> monqy: no that's just a huge list of cached things
05:09:01 <elliott> newsham: but this is the channel for everything :(
05:09:03 <monqy> try clicking on them??
05:09:10 <elliott> monqy: gives the compressed data :)
05:09:16 <monqy> oh ew :(
05:09:31 <Lymia> ?pl [pi..]
05:09:32 <lambdabot> [pi..]
05:09:36 <elliott> -ChanServ- [#chromium] Welcome to #chromium! Please see topic; this is NOT a support channel.
05:09:37 <elliott> newsham: you lied to me
05:09:38 <monqy> oh hey toying around with it and the back button crashed chromium
05:09:39 <monqy> what do you know
05:09:55 <monqy> speaking of esolangs, is there a record of who makes the most brainfuck derivatives
05:09:55 <elliott> monqy: srsly?
05:10:06 <monqy> chromium crashes on the stupidest things sometimes
05:10:14 <monqy> I tried to hit back while viewing some good compressed data
05:10:15 <monqy> bam crashed
05:10:18 <newsham> everything i say is a lie
05:10:20 <newsham> except that
05:10:21 <newsham> and that
05:10:22 <newsham> and that
05:10:23 <newsham> and that
05:10:32 <elliott> monqy: i suspect something that isnt chromium
05:10:48 <monqy> maybe it's something that isn't chromium
05:11:13 <monqy> but then why would that kill chromium
05:11:15 <monqy> a mystery
05:11:39 <elliott> packaging
05:11:43 <elliott> something else in your system
05:11:43 <elliott> etc
05:11:53 <elliott> chrome literally never crashes for me
05:12:04 <newsham> parody error
05:12:36 <monqy> it only crashes on dumb things for me
05:12:54 <monqy> like hitting back or dragging a bookmark into the tab bar thing
05:13:09 -!- sebbu has quit (Ping timeout: 260 seconds).
05:13:14 <monqy> and even then it only crashes sometimes
05:13:20 <elliott> what wm
05:13:32 <monqy> and by hitting back I mean specificially when viewing cached data and only that one time. I haven't tried reproducing it
05:13:35 <monqy> xmonad
05:13:44 <monqy> does xmonad have a reputation for killing chromium
05:13:52 <elliott> maybe chromium has some tiling wm-related bugs
05:14:12 <monqy> bizarre they would trigger then though
05:15:05 <elliott> well "dragging"
05:15:08 <elliott> thats a wm-ish thing
05:15:14 <newsham> maybe because xmonad causes it to resize the window quicker than it is prepared to be resized?
05:15:18 <newsham> or something like that
05:15:38 <newsham> ie. race condition
05:15:55 -!- sebbu has joined.
05:15:56 -!- sebbu has quit (Changing host).
05:15:56 -!- sebbu has joined.
05:16:32 <monqy> I just tried some fancy resizing tricks and did get a bug but not a crashy one
05:16:52 <monqy> the tab bar failed to resize and now it's running out of the frame
05:17:07 <monqy> by which I mean it cuts off
05:25:23 <elliott> http://esolangs.org/wiki/Image:Staq.jpg
05:25:23 <elliott> art
05:26:03 <monqy> which prompted me to raise my question about brainfuck derivative quantity championship
05:26:51 <monqy> assuming that language is indeed a brainfuck derivative -- I only glanced at it (too many instructions but I might try reading the spec anyway)
05:27:55 <coppro> monqy: yes
05:27:59 <coppro> have such a competition
05:28:02 <coppro> advertise on slashdot
05:28:42 <coppro> I wouldn't call staq a bf derivative though
05:29:00 <monqy> distant cousin
05:30:18 <elliott> still need a hostname here
05:30:50 <monqy> from my glance, []() and the command style/syntax/program execution style taste of brainfuck
05:32:54 -!- cheater__ has quit (Ping timeout: 255 seconds).
05:38:14 <coppro> monqy: It's got an execution model nothing like brainfuck's
05:38:25 <monqy> my glance sucked
05:38:46 <coppro> [] admittedly are similar to BF
05:38:47 <monqy> I'm going to pretend style doesn't mean model
05:39:15 <coppro> but otherwise, the only similarity is that every instruction has no arguments
05:39:51 <coppro> (and are, except for {}, one character)
05:40:21 <monqy> I wish there were fewer nonessential instructions so I could find the good parts
05:41:22 <elliott> its a madk language it is probably boring
05:42:05 <coppro> it's closer to befunge, honestly
05:42:06 -!- comex has quit (Read error: Connection reset by peer).
05:42:10 <monqy> I dunno; it is characterized by its fairly unique take on program flow, which allows intertwined loops and instruction overrides among other oddities. The language has robust access to two separate stacks, so the language is probably Turing-complete.
05:42:27 <coppro> oh it's obviously turing complete
05:43:47 <coppro> it's pretty easy to implement fixed-tape-length BF on top of it
05:44:00 <coppro> slightly more complex if you want infinite tape
05:44:03 <coppro> but far from impossible
05:44:36 <elliott> lol coppro
05:44:40 <elliott> you realise that was a copypaste
05:45:00 <coppro> nope
05:45:09 <coppro> I didn't read the wiki article
05:45:13 <coppro> just the definition
05:45:20 <coppro> articles are lame
05:45:21 -!- cheater__ has joined.
05:45:30 <monqy> it makes it sound exciting
05:45:45 <monqy> or at least fairly unique
05:46:30 <coppro> elliott: how's your nethack variant coming along
05:48:44 <elliott> coppro: you mean vagrant?
05:50:11 <coppro> no
05:50:54 <elliott> coppro: then??
05:50:57 <elliott> ais is the one with acehack
05:51:58 <coppro> elliott: do you have an angband variant?
05:52:34 <elliott> ...
05:52:35 <elliott> no
05:52:42 <elliott> do you know some other elliott
05:53:18 <zzo38> I have been unable to compile Nethack and probably won't bother with it.
05:54:43 <coppro> elliott: you do not have an angband variant
05:54:47 <coppro> therefore you have a nethack variant
05:54:48 <coppro> qed
05:55:05 <elliott> coppro: oh
05:57:28 <zzo38> coppro: That is not any sort of proper proof. Q.E.D.
05:57:45 <elliott> coppro: i am starting a zzo38 appreciation club do you want to join
06:04:16 <coppro> elliott: only if we get to be snobby
06:07:45 <pikhq> GCC bootstrap: worst thing, or worst thing *ever*?
06:09:15 <elliott> Gregor Gregor Gregor
06:09:20 * pikhq wonders who thought it made sense to build the compiler not once, not twice, but three times.
06:09:32 <elliott> I NEED GREGOR'S ASSISTAIOTNE
06:14:25 <Sgeo> pikhq, does it actually make a difference if you don't build it the third time?
06:14:51 <pikhq> Sgeo: It hardly makes a differencew if you don't build it a second time.
06:16:14 <Sgeo> Seems like the second time would be a sort of safety thing. Unless I'm counting weirdly. Or second time with itself, and first time by your numbering is second time total, just first time with itself?
06:16:17 * Sgeo dizzies
06:25:49 <Gregor> Elizacat: You do not need my assisteaoux
06:26:08 <elliott> Gregor: I dooooo
06:26:14 <elliott> Gregor: The prgmr billing page how does it wooork
06:26:14 <Gregor> YOU DO NOT
06:26:27 <Gregor> By fucking MAGNETS.
06:26:31 <elliott> Gregor: I literally do, I think my prgmr billing page is broken :P
06:26:42 <elliott> Ohwait
06:26:47 <elliott> Now it works because it is asking for my money
06:27:06 <Gregor> elliott: They send you an invoice by email, the actual site just allows you to choose how often you wish to pay and that kind of thing.
06:27:23 <elliott> Gregor: It's just that I went to "Change payment information"
06:27:23 <elliott> and
06:27:27 <elliott> bill.html P.O. number
06:27:27 <elliott> Attention
06:27:27 <elliott> Email address to invoice
06:27:30 <elliott> Last one has no field
06:27:33 <elliott> Attention has "customerElliott Hird"
06:27:36 <elliott> P.O. number has "paypal"
06:27:37 <elliott> >what
06:27:55 <elliott> Gregor: Hmm, is it going to bug me to do a paypal payment every single month? Greaaat :P
06:28:36 <Gregor> lul
06:42:04 -!- aloril has quit (Ping timeout: 246 seconds).
06:55:09 -!- aloril has joined.
07:12:58 <elliott> wow, they made opengl even more of a pain to use
07:13:02 <elliott> begin/end have been removed
07:13:15 <elliott> you're meant to use shader programs and buffer objects now APPARENTLY
07:16:07 <monqy> I know very little about opengl but that sounds delicious
07:16:20 <monqy> the most I know is that it's a pain
07:16:33 <monqy> I've also used the haskell bindings a bit but I've pretty much forgotten everything I knew about them
07:29:11 -!- zzo38 has quit (Remote host closed the connection).
07:45:30 -!- jcp has quit (Ping timeout: 241 seconds).
07:48:18 * pikhq wonders why Linux *needs* Perl to build.
07:51:55 -!- jcp has joined.
08:05:51 -!- monqy has quit (Quit: hello).
08:07:05 -!- jcp|other has joined.
08:35:12 -!- Wamanuz2 has joined.
08:37:00 -!- Wamanuz has quit (Ping timeout: 252 seconds).
08:40:22 <elliott> http://en.wikipedia.org/wiki/Quantum_tic_tac_toe
08:41:27 -!- cheater__ has quit (Ping timeout: 255 seconds).
09:13:31 -!- lambdabot has quit (Ping timeout: 258 seconds).
09:18:04 -!- lambdabot has joined.
09:28:47 <Lymia> elliott, want to play?
09:29:20 <elliott> Lymia: you mean quantum tictactoe?
09:29:23 <elliott> got no idea how :)
09:32:03 <Deewiant> The linked Java applet was somewhat illustrative
09:42:18 <elliott> i didnt click :<
10:04:35 <Lymia> http://translate.google.com/#ja|en|%E3%81%8A%E3%81%A3%E3%81%99
10:13:50 -!- elliott has quit (Remote host closed the connection).
10:14:15 -!- elliott has joined.
10:41:02 -!- Wamanuz2 has quit (Remote host closed the connection).
10:41:16 -!- Wamanuz2 has joined.
10:45:13 -!- Wamanuz2 has quit (Read error: Connection reset by peer).
10:45:30 -!- Wamanuz2 has joined.
11:03:28 <elliott> "Is there code to draw a teapot without GLUT?"
11:19:04 <elliott> so uh is anyone an opengl expert
11:21:14 <elliott> "ZeeBoy
11:21:14 <elliott> I wishing you cancer. :("
11:21:14 <elliott> "oh yeah!! than u
11:21:14 <elliott> Hope u drown in ur own Butt Mucous.
11:21:14 <elliott> Perhaps ur head is already too far up ur "___" fill in the blanks.
11:21:14 <elliott> plz dont take offence.
11:21:16 <elliott> sorry"
11:24:17 <Sgeo> wut.
11:26:27 -!- elliott_ has joined.
11:26:28 -!- elliott has quit (Read error: Connection reset by peer).
11:36:31 <Elizacat> sup
11:36:48 <Elizacat> <Gregor> Elizacat: You do not need my assisteaoux
11:36:52 <Elizacat> I need your soul
11:40:07 <elliott_> who are you
11:52:41 <elliott_> http://i.imgur.com/Uf5Xc.png YES! progress!
11:53:01 <Deewiant> The beginnings of a teapot?
11:54:51 <elliott_> Deewiant: I think a teapot is a little ambitious at this point.
11:55:01 <elliott_> Deewiant: But hey, it ties OpenGL and SDL together in Haskell.
11:55:19 <elliott_> Deewiant: Although I fear "GL.renderPrimitive GL.Points" might be using that deprecated begin/end stuff that is _obviously_ evil.
11:55:33 <Deewiant> Yep, evilness abound
11:55:39 <elliott_> But http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-BufferObjects.html terrifies me, so.
11:55:49 <elliott_> Or is it that, or was it something else.
11:55:56 <elliott_> http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-VertexArrays.html Whatever it is it's terrifying.
11:57:05 <Deewiant> I'm only half-evil, I used display lists
11:57:15 <elliott_> Deewiant: How'd those work
11:57:26 <elliott_> And why are they even evil why is any of this evil why was begin/end removed why is all this shit shit
11:57:30 <Deewiant> compileDisplayList $ do GL stuff
11:57:38 <elliott_> HOW IS THAT ANY DIFFERENT
11:57:42 * elliott_ cires
11:57:59 <Deewiant> And then callList
11:58:17 <elliott_> GL.renderPrimitive GL.Points $ do
11:58:17 <elliott_> GL.vertex $ GL.Vertex2 (0::GL.GLint) 0
11:58:17 <elliott_> GL.vertex $ GL.Vertex2 (99::GL.GLdouble) 99
11:58:23 <elliott_> That second line is causing no difference to the drawing
11:58:25 <elliott_> Still just a single pixel
11:58:25 <elliott_> Hmm
11:58:36 <elliott_> http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-DisplayLists.html ;; I see no compileDisplayList
11:58:41 <Deewiant> elliott_: It's like the difference between interpreting the renderPrimitive stuff every time versus compiling it once and then running it
11:58:43 <elliott_> defineNewList is probably it
11:58:45 <Deewiant> Oh, whoops
11:58:53 <Deewiant> Yeah, it is
11:59:00 <Deewiant> compileDisplayList was a helper of mine
11:59:04 <elliott_> There's a CompileAndExecute mode, which seems... missing the point.
11:59:13 <elliott_> Deewiant: What did you use for windowing/event stuff?
11:59:21 <Deewiant> GLFW
11:59:44 <elliott_> Deewiant: Cool, it's that thing I rejected because it takes callbacks in IO.
11:59:54 <Deewiant> As opposed to? :-P
12:00:05 <elliott_> Deewiant: As opposed to not being callback-based so I can use liftIO in my own monad
12:00:08 <elliott_> Consider
12:00:10 <elliott_> forever $ do
12:00:10 <elliott_> ev <- SDL.waitEvent
12:00:10 <elliott_> case ev of
12:00:10 <elliott_> SDL.Quit -> SDL.quit >> exitSuccess
12:00:10 <elliott_> _ -> print ev
12:00:45 <Deewiant> I just use IO and millions of IORefs
12:01:08 <elliott_> Deewiant: I'm trying to write an entire game here (yeah yeah, build one to throw away), that's kind of a non-ideal solution :P
12:01:25 <elliott_> Deewiant: (At the very least I'm going to use STM to make me feel better about myself, even if I'm not exactly sure how multiple cores would help here.)
12:01:31 <elliott_> (Maybe map generation could run in a background thread.)
12:01:35 <Deewiant> http://tar.us.to:31177/ just take a look if you like (warning, may not compile etc)
12:02:21 <elliott_> Oh man, is this where I do the fizzie mirroring thing
12:02:35 <elliott_> fatal: http://tar.us.to:31177/liaera/info/refs not found: did you run git update-server-info on the server?
12:02:43 <elliott_> DISAPPOINTED DEEWIANT
12:02:55 <Deewiant> The .git was incidental :-P
12:03:08 <elliott_> What's this actually trying to do anyway
12:03:19 <Deewiant> HAVE FUN REVERSE ENGINEERING
12:03:28 <elliott_> What if I just ran it
12:03:33 <elliott_> WHAT THEN
12:03:38 <Deewiant> Oh well, I ran that command
12:03:45 <Deewiant> I think it'd do nothing without an input file but I may misremember
12:03:49 -!- Vorpal has joined.
12:03:55 <elliott_> oh wait duh i just typod the url
12:04:02 <elliott_> error: The requested URL returned error: 400 while accessing http://tar.us.to:31177//info/refs
12:04:04 <elliott_> thats the actual error
12:04:13 <elliott_> oh wait, need the .git
12:04:15 <Deewiant> Uh
12:04:15 <elliott_> maybe it will work
12:04:17 <Deewiant> Yes
12:04:25 <elliott_> IT WORKED HAHAHA IM KING
12:04:33 <elliott_> a king without all these dependencies oh well
12:04:48 <elliott_> is this meant to be like some kind of freaky source code viewer
12:04:51 <Deewiant> cabal install
12:04:56 <elliott_> Deewiant: also need c libs
12:05:06 <Deewiant> pacman -S
12:05:09 <elliott_> newPath :: Gr Path ()
12:05:09 <elliott_> -> Map (Pair Int Int, Pair Int Int) G.Node
12:05:09 <elliott_> -> Pair Int Int
12:05:09 <elliott_> -> G.Node
12:05:09 <elliott_> -> Pair Int Int
12:05:10 <elliott_> -> Pair Int Int
12:05:14 <elliott_> -> Pair Int Int
12:05:16 <elliott_> -> ( Gr Path ()
12:05:18 <elliott_> -> Map (Pair Int Int, Pair Int Int) G.Node
12:05:20 <elliott_> -> G.Node
12:05:22 <elliott_> -> (Gr Path (), Map (Pair Int Int, Pair Int Int) G.Node))
12:05:24 <elliott_> -> (Gr Path (), Map (Pair Int Int, Pair Int Int) G.Node)
12:05:26 <elliott_> i think when you get function arrows this big
12:05:28 <elliott_> its time to reconsider your code
12:05:30 <elliott_> and, also, your life
12:05:34 <Deewiant> :-)
12:06:30 <elliott_> i think im just going to write my own code and forget you as a person exist
12:06:37 <elliott_> itll be therapeutic ok time to try this display list stuff
12:06:47 <Deewiant> That's not really relevant to your interests
12:06:56 <elliott_> what, the code?
12:06:57 <Deewiant> Assuming your interests == GL
12:07:00 <Deewiant> That code
12:07:05 <Deewiant> Function arrows etc
12:07:05 <elliott_> right
12:07:10 <elliott_> well my interest is
12:07:13 <elliott_> not GL
12:07:16 <elliott_> it's writing this fucking game
12:07:21 <Deewiant> What game
12:07:24 <elliott_> i'm just not enough of an idiot to think that software rendering will have acceptable performance
12:07:32 <elliott_> Deewiant: trade secret (its elliottcraft)
12:07:48 <elliott_> im nihing entire million dollar products
12:07:53 <elliott_> wait i was already doing that
12:08:31 <elliott_> hmm... how do I render some points with display lists
12:08:32 <elliott_> or do I just
12:08:34 <elliott_> not do that stuff
12:08:36 -!- oerjan has joined.
12:08:39 <elliott_> like the "GL.Points" stuff
12:08:42 <elliott_> hi oerjan im failing at opengl/haskell
12:09:12 <oerjan> ic. well i only know some of the latter part.
12:11:31 <elliott_> GL.defineNewList GL.CompileAndExecute $ do -- GL.Points $ do
12:11:31 <elliott_> GL.vertex $ GL.Vertex2 (0::GL.GLint) 0
12:11:31 <elliott_> GL.vertex $ GL.Vertex2 (99::GL.GLdouble) 99
12:11:33 <elliott_> Deewiant: well that is not right
12:12:59 <Deewiant> Beats me
12:13:08 <Deewiant> I'm gone, server's still up in case you lose your local copy -->
12:17:27 <elliott_> drawLine w2d p1 p2 =
12:17:27 <elliott_> GL.renderPrimitive GL.Lines $
12:17:31 <elliott_> Deewiant: youre just as bad as me
12:17:38 <Deewiant> elliott_: Like said, half-evil
12:17:45 <Deewiant> (I didn't go after all)
12:17:57 <elliott_> Deewiant: but that's begin/end :<
12:18:07 <Deewiant> Yes, but it's put in a display list
12:18:11 <Deewiant> Half-evil
12:19:47 <elliott_> Deewiant: i dont understand your ways..............................
12:19:54 <elliott_> do you know what these display object things are btw i honestly have no idea
12:20:26 <Deewiant> A display list is something like a compiled sequence of opengl commands
12:21:25 <elliott_> not display list
12:21:31 <elliott_> i mean the things that are totally unevil
12:22:22 <Deewiant> I think the least unevil thing these days would be writing your stuff with OpenCL or equivalent and compiling it to a shader
12:22:30 -!- elliott_ has quit (Remote host closed the connection).
12:22:33 <Deewiant> But no, I don't really know anything
12:23:03 <Deewiant> His head apparently exploded, so I'm really leaving now -->
12:23:06 -!- elliott has joined.
12:24:17 <elliott> 12:22:22: <Deewiant> I think the least unevil thing these days would be writing your stuff with OpenCL or equivalent and compiling it to a shader
12:24:21 <elliott> haha really
12:24:26 <elliott> why is everything shaders :(
12:24:36 <elliott> also "least unevil"
12:26:50 <oerjan> i never avoid no double negations
12:29:29 -!- BeholdMyGlory has joined.
12:38:07 <elliott> sdls method of doing centred windows:.
12:38:07 <elliott> ..
12:38:08 <elliott> ...
12:38:08 <elliott> ...
12:38:12 <elliott> an environemtn variable
12:40:05 <Deewiant> elliott: Most unevil*
12:40:49 <oerjan> least unevil is much less uninteresting
12:40:54 <elliott> i still have no idea how to draw a cube :)
12:41:13 <elliott> Vertex3 and primitivemodes = Quads?
12:42:00 <Deewiant> Triangle strip is probably better
12:42:15 <Deewiant> But 3d is hard
12:42:34 <Deewiant> I can barely do some 2d
12:42:37 <elliott> Deewiant: that is what i am afraid of :(
12:43:00 <elliott> why is everything triangles :(
12:43:30 <Deewiant> Then again I'm not too clever when it comes to this stuff, YMMV
12:44:21 <elliott> Deewiant: this is like one of my GREATEST FEARS
12:44:22 <elliott> threedee
12:44:39 <Deewiant> Ditto
12:45:03 <Deewiant> Slash OpenGL in general
12:45:26 <Deewiant> But you know, software rendering sucks etc
12:48:33 <elliott> Deewiant: wouldnt it be hilarious
12:48:36 <elliott> if software rendering ended up being like
12:48:39 <elliott> as fast as opengl
12:48:40 <elliott> for this
12:48:43 <elliott> by hilarious
12:48:46 <elliott> i mean id want to kill myself
12:51:02 <CakeProphet> elliott: because triangles are awesome.
12:51:10 <elliott> fuck triangles
12:51:31 <CakeProphet> YEAH SO YOU KNOW THOSE RECTANGLES AND STUFF?
12:51:36 <CakeProphet> YOU HATE THOSE TOO
12:51:55 <CakeProphet> twice as much.
12:52:24 <oerjan> twice the hate, twice the area
12:54:41 <elliott> Deewiant: oerjan: http://i.imgur.com/oo9oH.png
12:54:43 <elliott> fuck yes its a triangle
12:55:18 <CakeProphet> nice.
12:55:30 <CakeProphet> I am already immersed in this world.
12:55:59 <CakeProphet> and its length ratios.
13:01:37 <oerjan> looks more like the complement of a triangle to me
13:03:13 <CakeProphet> it's a triangle and a complement. Well, it could also be a complement of a triangle and its complement.
13:04:40 <elliott> oerjan: shut up
13:07:14 <Gregor> elliott: ... dude.
13:07:25 <elliott> Gregor: what
13:07:26 <Gregor> elliott: You want to make a game with CUBES and you make a TRIANGLE.
13:07:28 <Gregor> (Fail)
13:07:32 <elliott> Gregor: this is a joke right
13:07:43 <elliott> im pretty sure the cubes in minecraft are made out of a bunch of triangles
13:07:50 <Gregor> *duh* :P
13:07:53 <elliott> :P
13:08:03 <elliott> Gregor: maybe ill make them spheres
13:08:13 <elliott> in some weird-ass fuck geometry where spheres can have spheres next to them
13:08:16 <elliott> uncountably infinite spheres
13:08:17 <elliott> fuck yes
13:08:20 <elliott> best system
13:08:53 <elliott> im actually kind of weirded out by opengls coordinate system
13:08:59 <elliott> the size of my window is distorting all shapes...
13:09:05 <elliott> i guess i do some camera magic to fix that though
13:09:05 <Sgeo> I should learn OpenGL perhaps
13:09:28 <Sgeo> Or just WebGL
13:09:30 <Gregor> Sgeo: You should learn to stop saying "I should learn <thing> maybe" and then never learning it.
13:10:12 <elliott> HOW DO YOU EVEN PLACE THESE TRIANGLES OMG
13:10:14 <elliott> I DONT UNDERSTAND GEOMTRY
13:10:26 <elliott> FUCK ITS TURNED INTO A SQUARE
13:10:33 <CakeProphet> with a coordinates probably?
13:10:35 <Gregor> Perfect!
13:11:05 <Gregor> Play the violin, elliott!
13:11:08 <Gregor> Play it forever!
13:13:19 <elliott> http://i.imgur.com/ZMCbo.png
13:13:21 <CakeProphet> I know in XNA the coordinate system runs has the top-left corner as the origin, which is somewhat weird.
13:13:21 <elliott> wHAT, nO,
13:14:55 <elliott> GL.vertex $ GL.Vertex3 (0::GL.GLdouble) 0 0
13:14:55 <elliott> GL.vertex $ GL.Vertex3 (0::GL.GLdouble) 0.5 0
13:14:55 <elliott> GL.color (GL.Color3 (0::GL.GLbyte) maxBound maxBound)
13:14:55 <elliott> GL.vertex $ GL.Vertex3 (0.5::GL.GLdouble) 0.5 0
13:14:57 <elliott> how does that even do that
13:15:01 <CakeProphet> ...which troll is it that types like that?
13:15:52 <elliott> ?hoogle OpenGL rotate
13:15:52 <lambdabot> No results found
13:16:05 <CakeProphet> elliott: that would be too easy.
13:16:11 <elliott> ?hoogle ?fuck ?you
13:16:11 <lambdabot> Parse error:
13:16:11 <lambdabot> --count=20 "?fuck ?you"
13:16:11 <lambdabot> ^
13:16:14 <Sgeo> CakeProphet, Tavros
13:16:16 <elliott> ?hoogle --count=bitch
13:16:16 <lambdabot> Unrecognised or malformed flags:
13:16:16 <lambdabot> Bad argument to flag count, expected argument of type POS, got "bitch"
13:16:16 <lambdabot> For details on correct flags pass --help
13:16:18 <elliott> ?hoogle --count=bitch FUCK YOU
13:16:18 <lambdabot> Parse error:
13:16:19 <lambdabot> --count=20 "--count=bitch FUCK YOU"
13:16:19 <lambdabot> ^
13:16:20 <elliott> ?hoogle --count=bitch FUCK YOU DIE
13:16:21 <elliott> ?hoogle --count=bitch FUCK YOU DIE ASS
13:16:21 <lambdabot> Parse error:
13:16:22 <elliott> ?hoogle --count=bitch FUCK YOU DIE ASS CRAP
13:16:22 <elliott> ?hoogle --count=bitch FUCK YOU DIE ASS CRAP SHIT
13:16:23 <lambdabot> --count=20 "--count=bitch FUCK YOU DIE"
13:16:25 <elliott> i hate lambdabot
13:16:25 <lambdabot> ^
13:16:27 <lambdabot> Parse error:
13:16:29 <lambdabot> --count=20 "--count=bitch FUCK YOU DIE ASS"
13:16:31 <lambdabot> ^
13:16:33 <lambdabot> Parse error:
13:16:35 <lambdabot> --count=20 "--count=bitch FUCK YOU DIE ASS CRAP"
13:16:37 <lambdabot> ^
13:16:39 <lambdabot> Plugin `hoogle' failed with: thread killed
13:16:43 <elliott> :(
13:18:00 <oerjan> <elliott> in some weird-ass fuck geometry where spheres can have spheres next to them <-- ye olde L^\infty metric
13:18:18 <elliott> oerjan: is it actually possible say its true
13:19:13 <CakeProphet> ...can
13:19:28 <CakeProphet> 't you have spheres next to sphere in good ol' euclidean geometry?
13:19:37 <elliott> not without gaps
13:19:40 <elliott> (equal-sized spheres)
13:19:46 <elliott> god thatd be so amazing
13:19:59 <CakeProphet> hmmm, what, no. This goes against my intuition.
13:20:32 <elliott> wow you mean itd be non-euclidean NO SHIT
13:21:00 <CakeProphet> though I guess I've never interacted with two perfect Euclidean spheres before.
13:21:26 <elliott> oerjan: is it possible
13:22:10 <CakeProphet> but I'm pretty sure balls can touch. (So much ennuendo I don't know how I keep it up)
13:22:26 <oerjan> elliott: the joke is that L^\infty spheres look like what you usually call cubes >:)
13:22:56 <elliott> oerjan: GRRRRRRRR
13:23:08 <elliott> oerjan: invent me a geometry where a sphere can be totally packed on every side with infinite other spheres
13:23:11 <elliott> so i can have spherecraft
13:25:46 <oerjan> packed soap bubbles
13:26:02 <oerjan> i suspect those would look like cubes too
13:27:31 <elliott> oerjan: um cubes cant be packed with infinite other cubes on their sides
13:27:37 <elliott> (of the same size)
13:28:07 <oerjan> hm you want something fractal
13:28:33 <elliott> in minecraft, you can put a cube on every side of another cube
13:28:35 <quintopia> elliott: they can in four dimensions!
13:28:39 <elliott> in spherecraft, you need to be able to put a sphere on every side of another sphere
13:28:43 <elliott> thus infinite spheres on a sphere
13:28:47 <elliott> leaving no gaps
13:28:49 <elliott> but of the same size
13:29:29 <CakeProphet> perhaps with extra dimensions?
13:29:34 <quintopia> elliott: do you play the circle in a band?
13:29:47 <elliott> yes im a professional circlist
13:30:03 <quintopia> seemed your style
13:30:09 -!- oerjan has quit (Quit: Later).
13:30:23 <elliott> nice way to escape >:(
13:30:49 <Sgeo> http://www.reddit.com/r/homestuck/comments/ia2nm/so_theres_this_rumor_going_around_about_eoa5/
13:30:59 <quintopia> wonder if there's a 3D version of a mudflake...
13:31:21 <elliott> mudcube
13:31:42 <quintopia> do octahedrons tesselate space?
13:32:05 <elliott> hmm
13:32:29 <elliott> http://www.davidjayjordan.com/SexualTesselation.html what
13:33:01 <elliott> http://www.davidjayjordan.com/MathematicalProofDesign1.html
13:33:30 <quintopia> it looks like that guy is trying to tesselate space with TIMECUBE
13:34:33 <elliott> sexual timecube
13:35:16 <Vorpal> ouch
13:38:17 <CakeProphet> needs moar 4d minecraft.
13:39:03 <Sgeo> Not sleeping last night was a bad idea
13:39:14 <CakeProphet> not sleeping is usually a bad idea unless it's required/.
13:39:30 <CakeProphet> as sleep is pretty vital to your overall well-being
13:39:43 <CakeProphet> speaking of which, I'm going to go to sleep.
13:39:49 <Vorpal> cya
13:39:54 <CakeProphet> but anyways, q and e should move you along the 4th axis.
13:40:01 <CakeProphet> good night.
13:40:18 <Sgeo> I could have gone to sleep earlier but I can't now
13:40:45 <CakeProphet> food for thought on the crafting. Or maybe... thought for food? or just thought for thought? fuck it. sleep time.
13:41:08 <quintopia> which 2D slices should we see?
13:42:50 <Sgeo> This is one hot plain agel
13:42:52 <Sgeo> abgle
13:42:54 <Sgeo> bagle
13:42:54 <Sgeo> bagel
13:47:36 <Sgeo> I'm going to figure out how to reverse Life, although surely it's been done before given the existence of search programs
13:51:01 <elliott> eh/
13:51:03 <elliott> ?
13:51:08 <elliott> life is not reversible
13:52:30 <Sgeo> elliott, if I make it nondeterministic or sort of store all possibilities...
14:00:27 -!- augur has quit (Remote host closed the connection).
14:00:29 <elliott> Sgeo: you realise the searchers just look for random patterns
14:00:29 <elliott> right?
14:00:41 <Sgeo> Oh
14:01:06 -!- Vorpal_ has joined.
14:01:09 <elliott> Vorpal
14:01:12 <elliott> how do i shot opengl
14:03:00 -!- Vorpal has quit (Ping timeout: 260 seconds).
14:03:46 -!- Vorpal_ has changed nick to Vorpal.
14:04:00 <Vorpal> elliott, through the foot
14:04:03 <elliott> ok
14:04:07 <elliott> how do i draw cube with opengl
14:04:16 <elliott> from triangles...
14:04:16 <Vorpal> elliott, buggered if I remember
14:04:22 <Vorpal> elliott, well that is easy
14:04:23 <elliott> GL.renderPrimitive GL.TriangleStrip $ do
14:04:23 <elliott> GL.vertex $ GL.Vertex3 (0::GL.GLdouble) 0 0
14:04:23 <elliott> GL.vertex $ GL.Vertex3 (0::GL.GLdouble) 0.5 0
14:04:23 <elliott> GL.vertex $ GL.Vertex3 (0.5::GL.GLdouble) 0.5 0
14:04:23 <elliott> GL.color (GL.Color3 (0::GL.GLbyte) maxBound maxBound)
14:04:24 <elliott> GL.vertex $ GL.Vertex3 (0.5::GL.GLdouble) 0.5 0.5
14:04:28 <elliott> he;lp
14:04:33 <Vorpal> each face could be two triangles
14:04:48 <elliott> yes but it turns out i do not understand coordinates
14:04:53 <Vorpal> elliott, don't look at me, this doesn't look like opengl in C
14:04:57 <elliott> Vorpal: its the same
14:05:00 <elliott> renderprimitive = GL_BEGIN
14:05:07 <Vorpal> what are the coordinates then
14:05:09 <elliott> the binding is pretty light its not hard to see
14:05:12 <elliott> Vorpal: um in the vertexes
14:05:20 <elliott> GL.GLdouble is just to get the types right
14:05:22 <Vorpal> oh you have ::GL.GLdouble, right
14:05:42 <Vorpal> elliott, well they are x,y,z or something like that, I don't remember the order
14:05:52 <elliott> i know that
14:05:55 <elliott> >_<
14:05:58 <Vorpal> I haven't been doing opengl for over 2 years
14:07:07 <Vorpal> elliott, so what is it you don't understand?
14:07:40 <elliott> meh, nothing
14:07:51 <Vorpal> elliott, so you understand it all?
14:08:02 <elliott> no, but this is going nowhere
14:08:12 <Vorpal> elliott, well I'm not sure what you are asking
14:08:17 <Vorpal> try a more specific question
14:08:30 <elliott> i can't get the vertices right to give me a cube because i'm retarded :D
14:08:50 <Vorpal> elliott, oh I know that issue, I had issues with working out the coordinates too I remember.
14:09:11 <Vorpal> elliott, it is easiest if you consider it from the point of view of linear algebra
14:09:14 <elliott> i keep getting triangles stretching off into nowhere... no... make a cube...
14:09:28 <Vorpal> that is, the vectors as column matrices
14:09:51 * elliott tries to get the drawing rotated so that hell be able to see the cube isometrically
14:10:27 <elliott> http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-Rectangles.html
14:10:30 <elliott> heh efficient rectanlges
14:10:34 <elliott> wonder if its faster than triangles
14:10:35 <Vorpal> elliott, for that you need to change the matrix defining the viewing frustum iirc
14:10:59 <Vorpal> elliott, likely if you need to do a cube
14:11:45 <Vorpal> elliott, wait they are all in the z=0 plane
14:11:54 <Vorpal> elliott, I guess this is for 2D usage
14:12:33 <elliott> oh youre right
14:12:33 <elliott> dammit
14:12:59 <Vorpal> of course I am. I'm me after all :P
14:13:01 <elliott> i still dont know why they removed begin/end :(
14:13:23 <Vorpal> elliott, they did? That is new
14:14:02 <Vorpal> elliott, or is that about the haskell interface?
14:14:30 <elliott> Vorpal: in opengl four yeah
14:14:32 <elliott> deprecated in three
14:14:41 <elliott> you're meant to use shaders or those buffer object things
14:14:51 <elliott> http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-BufferObjects.html cry
14:14:52 <Vorpal> oh I see
14:14:54 <elliott> cryy
14:14:55 <elliott> what is it even
14:15:03 <elliott> http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-VertexArrays.html wh;at ttt
14:15:27 <Vorpal> elliott, I have no clue
14:16:11 <Vorpal> elliott, do opengl 2 then
14:16:21 <elliott> yeah
14:16:21 <elliott> i am
14:16:22 <elliott> but
14:16:25 <elliott> its still horrible :(
14:18:59 <Vorpal> elliott, it is meant to be fast, not nice
14:19:38 <elliott> Vorpal: yeah well
14:19:47 <elliott> cant appreciate a fast program i cant write
14:20:15 <Vorpal> elliott, I heard directx is easier to write :P
14:21:42 <elliott> Vorpal: har har har
14:34:30 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:34:35 <Vorpal> elliott, this makes perfect sense to me: http://en.wikipedia.org/wiki/Vertex_Buffer_Object
14:35:42 <elliott> but its
14:35:44 <elliott> so
14:35:48 <elliott> boring
14:35:49 <elliott> and boilerplate
14:36:00 <Gregor> elliott: Where's spherecraft?
14:36:01 <Vorpal> elliott, *shrug*
14:36:02 <Gregor> I wanna see it NOW
14:36:07 <elliott> Gregor: oerjan ran away before he invented the jommetry.
14:36:23 <elliott> BTW, Elliottcraft still needs a decent (code)name >_>
14:37:24 <Vorpal> elliottcraft
14:37:25 <Gregor> Can you imagine the sheer horsepower that spherecraft would take? X-D
14:37:38 <Vorpal> Gregor, what is that in oxpower?
14:37:55 <Gregor> With spheres that behave exactly like normal spheres, and are super-high-friction so you can actually stack them and such.
14:38:03 <Gregor> Vorpal: 2x
14:38:05 <Vorpal> ouch
14:38:20 <elliott> Gregor: It would be kind of impossible what with the uncountably infinite thing :P
14:38:27 -!- augur has joined.
14:38:32 <elliott> It'd have to be a ten thousand sided object instead.
14:38:43 <Vorpal> elliott, make it out of atoms
14:38:59 <elliott> i know ill just make a new universe
14:38:59 <elliott> /run
14:39:00 <elliott> oh its this one
14:39:04 <elliott> im gonna kill Vorpal in it
14:39:11 <elliott> fuc;k problem of evil stops me doing nanything
14:39:42 <Vorpal> XD
14:44:13 <elliott> theology is basically based on god maknig the universe and discovering all sorts of semantic restrictions
14:44:22 <elliott> until he finally says fuck it and stops trying to let his presence be known
14:44:26 <elliott> i call this type system deism
14:47:14 <Vorpal> elliott, XD
14:57:00 <Gregor> Daaaaaaaaaaaamn it's expensive to fly to the UK.
14:57:55 <elliott> you might be a spic we have to be careful
14:58:47 <Gregor> In retrospect, it's cheaper than it was to fly to Paris, I'm just already $3,000 in the hole from this trip so diving in further isn't fun X-D
15:00:44 <elliott> money.jpg
15:06:58 <Gregor> Total Airfare $789.00
15:06:58 <Gregor> Airfare taxes and fees $558.80
15:07:04 <Gregor> Taxes and fees: Nearly equal to the airfare
15:08:30 -!- copumpkin has joined.
15:08:30 -!- copumpkin has quit (Changing host).
15:08:30 -!- copumpkin has joined.
15:11:41 -!- Wamanuz2 has quit (Ping timeout: 240 seconds).
15:11:44 -!- Wamanuz3 has joined.
15:27:40 <elliott> Gregor
15:27:42 <elliott> how triangle
15:27:57 <Gregor> Same way babby formed.
15:29:32 <elliott> how
15:29:33 <elliott> cube
15:32:09 <elliott> http://i.imgur.com/nXI2y.png
15:32:10 <elliott> no
15:32:10 <elliott> how
15:32:11 <elliott> Gregor: how
15:32:16 <elliott> Wamanuz3: how
15:37:36 <elliott> oh god i dont triangles
15:46:39 -!- elliott has quit (Remote host closed the connection).
15:47:06 -!- elliott has joined.
16:05:07 -!- MigoMipo has joined.
16:24:39 <Vorpal> elliott, looks like a nice flag
16:26:45 <Vorpal> elliott, kind of like http://en.wikipedia.org/wiki/File:Naval_Ensign_of_Denmark.svg
16:40:10 -!- Phantom_Hoover has joined.
16:50:20 -!- Wamanuz4 has joined.
16:51:04 -!- Wamanuz3 has quit (Ping timeout: 276 seconds).
17:06:15 -!- comex has joined.
17:07:12 <elliott> back
17:18:30 -!- zzo38 has joined.
17:28:46 <elliott> http://esoteric.voxelperfect.net/w/index.php?title=Brainbrain&curid=3659&diff=23442&oldid=22103
17:28:46 <elliott> No.
17:31:40 -!- jcp|1 has joined.
17:33:22 -!- jcp|other has quit (Ping timeout: 255 seconds).
17:33:55 -!- jcp has quit (Ping timeout: 258 seconds).
17:34:03 -!- elliott has quit (Read error: Connection reset by peer).
17:34:25 -!- elliott has joined.
17:39:56 -!- jcp has joined.
17:48:13 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
17:50:01 -!- Phantom_Hoover has joined.
18:03:04 -!- Sgeo has quit (Ping timeout: 255 seconds).
18:03:50 <zzo38> You can make this http://golf.shinh.org/p.rb?google in dc without any loops.
18:05:28 <zzo38> (at least in GNU dc)
18:07:00 -!- monqy has joined.
18:44:00 -!- augur_ has joined.
18:44:04 -!- augur has quit (Read error: Connection reset by peer).
18:55:05 -!- mtve has quit (Ping timeout: 260 seconds).
19:20:12 -!- augur_ has quit (Remote host closed the connection).
19:31:27 <elliott> spere
19:31:29 <elliott> packing
19:34:06 <Phantom_Hoover> elliott, wait, why are you going on about sphere packing.
19:34:06 <lambdabot> Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them.
19:34:42 <elliott> sperrrré
19:34:44 <elliott> paque
19:41:19 -!- oerjan has joined.
19:42:48 <oerjan> <quintopia> do octahedrons tesselate space?
19:43:09 <oerjan> an interesting question, as those are the spheres of the L^1 metric...
19:43:33 <oerjan> being dual to cubes, one would think it likely
19:43:58 <elliott> oerjan: http://i.imgur.com/KH1z9.png im good cube draw
19:44:22 <oerjan> (L^1 and L^\infty also have a sort of dual relationship, although not as strong as for L^p spaces strictly between 1 and \infty)
19:44:30 <elliott> L^-1
19:45:02 <oerjan> elliott: i don't think that is a metric. hm that would be harmonic sum...
19:45:11 <elliott> L^0
19:45:12 * oerjan is not sure
19:45:15 <elliott> L^urface
19:45:34 <Phantom_Hoover> <oerjan> <quintopia> do octahedrons tesselate space?
19:45:34 <oerjan> elliott: L^0 would be somewhat degenerate
19:45:34 <Phantom_Hoover> No.
19:45:40 <oerjan> Phantom_Hoover: darn
19:45:41 <Phantom_Hoover> Octahedra and tetrahedra do.
19:45:43 <elliott> ur a degneiggerate
19:46:49 <oerjan> elliott: in case you don't know, the L^p norm for most p has the form (x_1^p + x_2^p + ... + x_n^p)^(1/p)
19:46:58 <elliott> ur con formist
19:47:04 <elliott> <-- productive irc contributor
19:47:06 <oerjan> you may recognize L^2 as ordinary euclidean metric
19:47:15 <elliott> so waht if i do
19:47:18 <oerjan> um
19:47:24 <Phantom_Hoover> oerjan, so what's L^\infty?
19:47:36 <elliott> sum p+q/n(0)
19:47:37 <Phantom_Hoover> Limit as p → \infty?
19:47:37 <elliott> hth
19:47:48 <elliott> (pronounce:;``hutthuh'')
19:47:50 <oerjan> * (|x_1|^p + |x_2|^p + ... + |x_n|^p)^(1/p)
19:48:12 <oerjan> you don't need to absolute values or p an even natural number, naturally
19:48:15 <oerjan> *to take
19:48:20 <oerjan> Phantom_Hoover: yeah iirc
19:48:53 <oerjan> alternatively, ||(x_1,...,x_n)||_\infty = max(|x_1|,...,|x_n|)
19:49:35 <elliott> i think ive heard of linfty
19:49:35 <Phantom_Hoover> Oh, of course.
19:49:59 <Phantom_Hoover> ...wait, that's not as 'of course' as it seemed.
19:50:04 <elliott> did you know that im a robot
19:50:11 <elliott> gripping talse....
19:50:19 <oerjan> and for p<1 i think some things break down, although i'm not sure if everything does
19:50:31 <elliott> L caret negative two
19:50:35 <elliott> what NowowoWOw, science
19:50:39 <Phantom_Hoover> Hmm, m < n → m^p << m^p for large p, so yeah, it's obvious.
19:51:00 <Phantom_Hoover> elliott, makes sense.
19:51:02 <oerjan> *n somewhere in there
19:51:55 <Phantom_Hoover> Yesyesyesyes
19:52:12 <Phantom_Hoover> <newsham> i want a shirt made of spider silk
19:52:17 <Phantom_Hoover> I wanted one before it was cool.
19:53:40 <oerjan> elliott: however p=-1 is still _interesting_ since it's related to harmonic mean
19:54:29 <elliott> ~~ livin in harmony w/ mean you ~~
19:54:46 <elliott> pronunciation what is it
19:55:37 <Phantom_Hoover> oerjan, L_2/3 is a well-defined metric, apparently.
19:56:09 <Phantom_Hoover> I wish there was a simple way of plotting the unit circle in L_n metrics in Mathematica.
19:57:29 <elliott> all mathematica can do is play games and have children
19:58:51 <oerjan> Phantom_Hoover: http://en.wikipedia.org/wiki/Lp_space implies that for 0<p<1 you don't get a metric from the same formula, but you do if you drop the final p'th root
20:08:18 <oerjan> Phantom_Hoover: http://mathworld.wolfram.com/Superellipse.html might help
20:08:33 -!- Lymia has quit (Ping timeout: 240 seconds).
20:08:55 <oerjan> there's a mathematica notebook link
20:09:17 <Phantom_Hoover> No, the parametric forms are enough.
20:10:34 <Phantom_Hoover> Although it's a bit annoying, doing it by reductio ad Wolfram.
20:12:26 <oerjan> "In 1968, when negotiators in Paris for the Vietnam War could not agree on the shape of the negotiating table, Balinski, Kieron Underwood and Holt suggested a superelliptical table in a letter to the New York Times."
20:13:03 <elliott> YOUR MOM is superelliptical
20:13:07 <elliott> that was
20:13:09 <elliott> directed at Phantom_Hoover
20:13:09 <elliott> btw
20:13:28 <Phantom_Hoover> Some negotiators.
20:13:41 <elliott> they should have made sphere table
20:14:51 <oerjan> they could have the chairs bolted to the inside of a half-spher bowl. and occasionally the bolts could break.
20:14:56 <Phantom_Hoover> Ah, Piet Hien.
20:14:58 <oerjan> *e
20:15:01 <Phantom_Hoover> Inventor of the grook.
20:15:09 <Phantom_Hoover> Which Vorpal confused for 'grok'.
20:15:27 <Phantom_Hoover> Oh, for the days when he would speak of how he grooked this and that.
20:15:33 <oerjan> piet hein grokked a lot, we may assume
20:15:59 <elliott> ill grok my fist into ur face (@ all u punk ass nerds)
20:16:19 <elliott> wouldn't it be awesome if someone came in here while i was like this and didn't realise i was being sarcastic all the time
20:16:32 <elliott> and wondered why i wasn't banned yet, maybe you too are wondering this same thing now????????
20:17:47 <Phantom_Hoover> oerjan, one might even say he grake.
20:18:03 <elliott> grutenberg
20:18:11 <elliott> =gay ass loser bookreader club....
20:18:29 <oerjan> gruten tag, mein herr
20:18:33 <Phantom_Hoover> Says the guy who can't even render a cube.
20:20:53 <elliott> Phantom_Hoover: gay va
20:20:54 <elliott> mpire
20:21:02 -!- azaq23 has quit (Quit: Leaving.).
20:22:06 -!- Lymia has joined.
20:38:24 <oerjan> :t Prelude.intersperse
20:38:24 <lambdabot> Not in scope: `Prelude.intersperse'
20:38:31 <oerjan> @hoogle intersperse
20:38:32 <lambdabot> Data.ByteString intersperse :: Word8 -> ByteString -> ByteString
20:38:32 <lambdabot> Data.List intersperse :: a -> [a] -> [a]
20:38:32 <lambdabot> Data.ByteString.Char8 intersperse :: Char -> ByteString -> ByteString
20:40:54 <elliott> http://esolangs.org/w/index.php?title=Deadfish&curid=2038&diff=23453&oldid=22913
20:40:56 <elliott> unforgivable
20:41:08 <elliott> oerjan: HAPPEN TO BE WORKING ON A PROGRAM DO WE
20:41:51 <quintopia> i'm not surprised to hear they dont tesselate. i couldnt visualize a way to do it.
20:43:09 <oerjan> elliott: um ">> " is pretty much standard if anything is
20:43:53 <elliott> oerjan: ... ?
20:44:15 <oerjan> elliott: cpressey's correction looks reasonable to me...
20:44:25 <zzo38> I made the copy of the GNU GPL v3 with Plain TeX. Will FSF accept it?
20:44:47 <zzo38> http://sprunge.us/HJOh
20:45:04 <elliott> oerjan: it is
20:45:08 <elliott> the original mistake is what is unforgivable
20:45:11 <elliott> zzo38: no
20:45:11 <oerjan> aha
20:46:05 <Phantom_Hoover> I was parsing that code with the >>> outside the quotes and I was getting confused.
20:46:12 <Phantom_Hoover> :t (>>>)
20:46:13 <lambdabot> forall (cat :: * -> * -> *) a b c. (Control.Category.Category cat) => cat a b -> cat b c -> cat a c
20:46:53 <elliott> :T (W.r[paad,aspdwqprmqrpowmepwoqje
20:46:55 <elliott> :T (life
20:46:58 <elliott> :type (life
20:47:02 <elliott> ?...type (life
20:47:03 <lambdabot> Unknown command, try @list
20:47:05 <elliott> ?.type (life
20:47:06 <lambdabot> parse error (possibly incorrect indentation)
20:47:07 <oerjan> <elliott> oerjan: HAPPEN TO BE WORKING ON A PROGRAM DO WE <-- just looking briefly at the "google" golf zzo38 mentioned
20:47:08 <elliott> ?. . . type (life
20:47:08 <lambdabot> Plugin `compose' failed with: Unknown command: "(life"
20:47:10 <elliott> ?. . . type (life)
20:47:10 <lambdabot> Plugin `compose' failed with: Unknown command: "(life)"
20:47:13 <elliott> ?. . . type type (life)
20:47:14 <lambdabot> Plugin `compose' failed with: Unknown command: "parse"
20:47:16 <elliott> ?. . . type type type (life)
20:47:17 <lambdabot> Plugin `compose' failed with: Unknown command: "parse"
20:47:19 <elliott> ?. . . type type type type (life)
20:47:20 <lambdabot> Plugin `compose' failed with: Unknown command: "parse"
20:47:22 <elliott> ?. . . type type type type type type type type a (life)
20:47:23 <lambdabot> Plugin `compose' failed with: Unknown command: "parse"
20:47:24 <elliott> sdgh
20:47:41 <monqy> who what
20:47:47 <elliott> oinoinion
20:47:47 <oerjan> my first try was 52 chars while several others have shorter ones, and it occured to me that intersperse might help if it were in the Prelude
20:47:57 <elliott> oerjan: maybe something monadic
20:48:13 <elliott> >"go">>"ogle"
20:48:18 <elliott> > "go">>"ogle"
20:48:18 <lambdabot> "ogleogle"
20:48:18 <oerjan> elliott: well my first try used interact
20:48:32 <elliott> > "go">>="ogle"
20:48:32 <lambdabot> Couldn't match expected type `GHC.Types.Char -> [b]'
20:48:33 <lambdabot> against inferr...
20:48:39 <elliott> > "go">>=(++"ogle")
20:48:39 <lambdabot> Couldn't match expected type `GHC.Types.Char'
20:48:39 <lambdabot> against inferred type...
20:48:41 <oerjan> and plain replicate
20:48:44 <elliott> oji
20:49:23 <oerjan> :t Prelude.sequence
20:49:24 <lambdabot> forall (m :: * -> *) a. (Monad m) => [m a] -> m [a]
20:49:28 <oerjan> hm
20:50:00 -!- SimonRC has quit (Ping timeout: 260 seconds).
20:51:50 <elliott> go==og backwards..le
20:52:31 <elliott> 00:40:40: <crystal-cola> there's something funny going on with the 17s (well maybe it's just because that's the smallest prime other than 2)
20:53:25 <oerjan> elliott: i remember enough of that discussion to note that is entirely reasonable in context
20:53:34 <olsner> I also forget 3,5,7,11 and 13 now and then :)
20:53:45 <elliott> oerjan: shhhh :D
20:54:26 <oerjan> elliott: it's not like crystal-cola needs that kind of assistance
20:56:06 <oerjan> oh hm wait
20:56:32 -!- SimonRC has joined.
20:57:35 -!- Lymia has changed nick to Lymee.
20:59:22 <oerjan> elliott: ok monadic was a good idea, [1..n]>>"o" is shorter than n`replicate`'o'
20:59:38 <elliott> > let n = 9 in "go"++[1..n]>>"o"++"ogle"
20:59:39 <lambdabot> No instance for (GHC.Num.Num GHC.Types.Char)
20:59:39 <lambdabot> arising from a use of `n' a...
20:59:43 <oerjan> now i'm just one char longer than the winners
20:59:44 <elliott> wha
20:59:49 <elliott> > let n = 9 in "go"++([1..n]>>"o")++"ogle"
20:59:50 <lambdabot> "gooooooooooogle"
21:00:00 <elliott> oerjan: hm what's your current solution?
21:00:09 <oerjan> main=interact$(\n->'g':([1..n]>>"o")++"gle").read
21:00:16 <oerjan> hm
21:00:19 <Lymee> Are you golfing?
21:00:22 <oerjan> :t interact$(\n->'g':([1..n]>>"o")++"gle").read
21:00:23 <lambdabot> IO ()
21:00:44 <elliott> ?pl interact$(\n->'g':([1..n]>>"o")++"gle").read
21:00:44 <lambdabot> interact (('g' :) . (++ "gle") . (>> "o") . enumFromTo 1 . read)
21:00:46 <oerjan> Lymee: yeah, mainly just checking if i can tie with the top
21:01:00 <oerjan> with 7 others tied it seems unlikely to beat :P
21:01:28 <Lymee> Link?
21:01:42 <oerjan> http://golf.shinh.org/p.rb?google
21:01:49 <oerjan> it's a very old one btw
21:02:16 <Lymee> print"g%sgle"%"o"*input()
21:02:19 <Lymee> First thing that comes to mind.
21:02:35 <oerjan> Lymee: oh i'm sure the python ones are tiny
21:02:40 -!- mtve has joined.
21:03:05 <oerjan> Lymee: in fact you just tied with those
21:03:20 <Lymee> Order of operation stuff to sort out.
21:03:59 <elliott> fizzie
21:04:08 <elliott> link me to that graphical version of tswett's chinese remainder theorem clcok you made
21:04:17 <oerjan> Lymee: i'd say you're also unlikely to beat them, with 19 tied at the top for a years old golfing
21:04:24 <elliott> or anyone
21:04:28 <Lymee> So, 2 over max.
21:04:29 <Lymee> :c
21:05:03 <oerjan> Lymee: hm? yours is 25 as are the winners
21:05:04 <tswett> elliott: well, I have a textual version of that.
21:05:07 <Lymee> oerjan, no.
21:05:09 <zzo38> oerjan: Send what you have anyways, you can send a better solution later if you figure it out.
21:05:10 <Lymee> I had order of operations issues.
21:05:13 <oerjan> oh
21:05:14 <elliott> tswett: yes but i want fizzie's :D
21:05:15 <Lymee> print"g%sgle"%("o"*input())
21:05:17 <Lymee> Had to do that.
21:05:36 <oerjan> aha
21:07:05 <elliott> hmm related to http://zem.fi/~fis/crcsq.html
21:07:28 <elliott> http://zem.fi/~fis/crcbar.html
21:07:29 <elliott> here we go
21:07:54 <fizzie> I *just* located those.
21:08:24 <elliott> fizzie: :D
21:08:30 <elliott> the crcsq one is the bestest
21:08:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
21:08:41 -!- elliott has left ("Leaving").
21:08:45 -!- elliott has joined.
21:11:59 <oerjan> zzo38: i don't see the point in sending a worse one to a contest which is 4 years old and has 7 tied at the top
21:12:38 <elliott> oerjan: hey oerjan implement my ghcwishlist... :(
21:12:47 <oerjan> not a chance :P
21:12:52 <elliott> - IdiomBrackets, MultipleOperatorSections, MLModules
21:12:53 <elliott> thx
21:12:58 <elliott> lemme know when they're done
21:13:13 <oerjan> hm MultipleOperatorSections sounds like something i've wanted
21:13:27 <oerjan> is it like (+x*) ?
21:13:32 <elliott> as in (2*9+)
21:13:36 <elliott> or more pedestrianly
21:13:37 <elliott> (9+9+)
21:13:43 <zzo38> oerjan: It is OK if you do not want to send.
21:13:48 <elliott> or (*9*9)
21:13:49 <elliott> etc.
21:13:55 <elliott> oerjan: it'd also make repeated compositions nicer
21:13:56 <oerjan> elliott: um those are already legal if you don't clash with precedence
21:14:03 <elliott> (a . b . c .) rather than ((a . b . c) .)
21:14:09 <elliott> oerjan: um I mean as in
21:14:13 <elliott> ((*9).(*9))
21:14:16 <elliott> you know what i mean
21:14:25 <elliott> basically generalising sections to be able to have a whole chain
21:14:25 <oerjan> that's _also_ legal :P
21:14:29 <elliott> of course it is
21:14:32 <oerjan> oh
21:14:33 <elliott> but its not a section
21:14:34 <elliott> <elliott> (a . b . c .) rather than ((a . b . c) .)
21:14:35 <elliott> thats the mean thing
21:14:41 <elliott> main
21:14:54 <oerjan> elliott: yeah that one has annoyed me before
21:15:10 <elliott> IdiomBrackets and MLModules should be obvious I hope
21:15:11 <elliott> oh
21:15:12 <elliott> I also want
21:15:15 <elliott> those typekinds that are being worked on
21:15:30 <elliott> that unifies data and datakinds so that you can do type-level programming freely
21:15:33 <elliott> squee
21:15:36 <elliott> but
21:15:36 <elliott> yeah
21:15:37 <elliott> i dont have to
21:15:42 <elliott> enslave anyone to do that since it is already happening
21:16:14 <oerjan> > (0$0 <$>)
21:16:15 <lambdabot> The operator `Data.Functor.<$>' [infixl 4] of a section
21:16:15 <lambdabot> must have lowe...
21:16:42 <oerjan> > (sin<$>cos<$>tan<$>) 1
21:16:43 <lambdabot> No instance for (GHC.Num.Num (f a))
21:16:43 <lambdabot> arising from a use of `e_11' at <int...
21:16:47 <oerjan> wtf
21:16:58 <oerjan> oh
21:17:06 <oerjan> > (sin<$>cos<$>tan<$>) exp 1
21:17:07 <lambdabot> 0.7834561490393223
21:17:46 <elliott> hm that works?
21:18:01 <oerjan> yes, because <$> is infixl rather than infixr
21:18:13 <Lymee> >(sin$cos$tan$exp)1
21:18:17 <Lymee> > (sin$cos$tan$exp)1
21:18:18 <lambdabot> 0.7834561490393223
21:18:27 <Lymee> > (sin$cos$tan$)exp 1
21:18:28 <lambdabot> The operator `GHC.Base.$' [infixr 0] of a section
21:18:28 <lambdabot> must have lower prec...
21:18:33 <Lymee> Ah.
21:18:34 <Phantom_Hoover> Lymee, what on earth made you think that would have interesting behaviour.
21:18:43 <Lymee> Phantom_Hoover, I was seeing what oerjan was testing.
21:19:13 <oerjan> Lymee: your first one only works because of lambdabot's Floating instances for functions, i think
21:19:30 <elliott> oerjan: also ghc wishlist: record system that uses fclabels or lenses instead of the crap we have now
21:19:39 <elliott> and uhhhh
21:19:41 <elliott> thath
21:19:45 <elliott> that would make me pretty happy
21:19:53 <elliott> also maybe the replacement of String with Text would be nice...
21:20:02 <elliott> and the generalisation of ++ etc. to some kind of container class
21:20:09 <elliott> (yeah yeah, i am aware of monoid :))
21:20:19 <oerjan> :t (++)
21:20:19 <lambdabot> forall m. (Monoid m) => m -> m -> m
21:22:26 <elliott> CAAAAAAAAAAAALE
21:22:58 <olsner> elliott: you should go in #haskell and blame cale for caleskell, ISTR he likes that
21:23:45 <elliott> olsner: i do that on a daily basis or so
21:23:50 <elliott> i think cale may dislike me dunno why
21:24:36 <oerjan> funny that
21:26:06 <oerjan> :t readIO
21:26:07 <lambdabot> forall a. (Read a) => String -> IO a
21:26:16 <oerjan> :t readLn
21:26:16 <lambdabot> forall a. (Read a) => IO a
21:26:55 <oerjan> !haskell readIO "what does this button do?"
21:27:20 <oerjan> !haskell main = readIO "what does this button do?"
21:27:46 <oerjan> !haskell main = readIO "what does this button do?" :: IO Int
21:27:51 <EgoBot> input.21959.hs: user error (Prelude.readIO: no parse)
21:28:13 * oerjan wonders what that string is for
21:28:22 <monqy> "The readIO function is similar to read except that it signals parse failure to the IO monad instead of terminating the program."
21:28:36 <oerjan> oh right
21:28:47 <oerjan> so useless for this
21:29:08 -!- copumpkin has joined.
21:29:08 -!- copumpkin has quit (Changing host).
21:29:08 -!- copumpkin has joined.
21:29:18 <olsner> hmm, but IO can catch errors just as well as it can catch exceptions, can't it?
21:29:37 -!- Vorpal has quit (Ping timeout: 255 seconds).
21:29:44 <oerjan> olsner: in ghc yes, not the standard
21:31:24 <olsner> oh, ok
21:33:15 <oerjan> > (0$0>>)
21:33:16 <lambdabot> The operator `GHC.Base.>>' [infixl 1] of a section
21:33:16 <lambdabot> must have lower pre...
21:38:32 <oerjan> oh, putting read outside the lambda was a mistake, now i'm tying with the top
21:39:00 <oerjan> :t interact$ \n->'g':([1..read n]>>"o")++"gle"
21:39:00 <lambdabot> IO ()
21:50:27 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:16:14 * Phantom_Hoover → sleep
22:16:18 -!- Phantom_Hoover has left ("Leaving").
22:16:47 -!- augur has joined.
22:23:57 -!- Ycros has quit (Remote host closed the connection).
22:24:17 -!- Ycros has joined.
22:33:24 -!- augur has quit (Remote host closed the connection).
22:40:23 -!- augur has joined.
23:05:31 <zzo38> I decided to use a different set of units than TeX some are different, I have: pt bp in cm mm P0 p0 q em ex
23:06:27 <CakeProphet> are any of those Planck lengths?
23:06:39 <zzo38> No.
23:06:49 <zzo38> Can you make ink that small?
23:07:49 <CakeProphet> I guess not. But it could still be used as a unit with ridiculously fine-grained precision.
23:08:51 <zzo38> The precision is already 1/4736286.72 inch (you can use numbers after the decimal point too), and I don't know of any printing equipment that has that much resolution.
23:09:32 <zzo38> But I suppose in programs for designing physics stuff you might have Planck lengths as one of the units for really precision.
23:09:49 <zzo38> What is the most resolution of any printer you have seen or know of?
23:10:42 <zzo38> Four million dots per inch? I don't think so.
23:12:46 -!- CakeProphet has quit (Ping timeout: 240 seconds).
23:15:14 -!- elliott has quit (Quit: Leaving).
23:16:29 -!- CakeProphet has joined.
23:18:18 <oerjan> > 'a'<'b'
23:18:18 <lambdabot> True
23:23:15 <oerjan> :t compare
23:23:16 <lambdabot> forall a. (Ord a) => a -> a -> Ordering
23:23:23 <oerjan> @src Ordering
23:23:23 <lambdabot> data Ordering = LT | EQ | GT
23:28:38 <oerjan> > (0$0`compare`)
23:28:39 <lambdabot> The operator `GHC.Classes.compare' [infixl 9] of a section
23:28:39 <lambdabot> must have l...
23:32:04 -!- augur has quit (Remote host closed the connection).
23:44:46 -!- augur has joined.
23:44:58 -!- augur has quit (Remote host closed the connection).
←2011-06-26 2011-06-27 2011-06-28→ ↑2011 ↑all