←2011-07-23 2011-07-24 2011-07-25→ ↑2011 ↑all
00:00:10 <zzo38> The "Pickle" card can be played as a minor or as a major, depending on circumstances.
00:03:35 <zzo38> The player with the Title card must lead that card on the first turn at the beginning of the game (unless nobody has that card in case it is a face-down hidden card in the center of the table).
00:08:42 <coppro> can you write up the full rules?
00:09:21 <bsmntbombdood> why is lambdabot in #esoteric?
00:09:26 <zzo38> Unfortunately I never have. I have never actually thought of the full rules, but I have thought of many ideas, a few of which I forget.
00:10:16 <zzo38> Although I did remember a few things of my ideas, and possibly even have new ideas I can write here. Other people can also make up ideas, since it is incomplete.
00:11:28 <zzo38> You score by the first trick, the last trick, sequences, and by taking tricks containing "rulers".
00:12:07 <zzo38> You must follow suit if possible, and sometimes follow ranks.
00:12:47 <zzo38> Majors beat minors (and miscellaneous suited cards), metas beat everything. However, some majors and metas have special powers.
00:13:04 -!- elliott_ has quit (Ping timeout: 260 seconds).
00:13:51 <zzo38> (The card with instructions for divinations is used too in this game, although after playing this game you cannot use the deck for divination since the divination rules require that the deck is never shuffled.)
00:14:23 <bsmntbombdood> @pl \x -> (x,x)
00:14:23 <lambdabot> join (,)
00:15:20 <bsmntbombdood> @t join
00:15:20 <lambdabot> Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v
00:15:27 <bsmntbombdood> @type join
00:15:28 <lambdabot> forall (m :: * -> *) a. (Monad m) => m (m a) -> m a
00:15:43 -!- augur has quit (Remote host closed the connection).
00:15:55 -!- augur has joined.
00:20:35 <bsmntbombdood> i forgot how the function monad instance works
00:30:51 <Lymee> @pl (\x -> map (\y -> (tick*x, tick*y)) [-half..half])
00:30:52 <lambdabot> (line 1, column 37):
00:30:52 <lambdabot> unexpected "["
00:30:52 <lambdabot> expecting variable, "(", operator or ")"
00:31:13 <Lymee> @pl \x -> map (\y -> (tick*x, tick*y)) [-half..half]
00:31:14 <lambdabot> (line 1, column 36):
00:31:14 <lambdabot> unexpected "["
00:31:14 <lambdabot> expecting variable, "(", operator or end of input
00:31:16 <Lymee> :(
00:31:32 <Lymee> @pl \x -> map (\y -> (tick*x, tick*y))
00:31:33 <lambdabot> map . (. (tick *)) . (,) . (tick *)
00:31:39 <Lymee> ok yeah not replacing that
00:31:55 <Deewiant> @pl \x -> map (\y -> (tick*x, tick*y)) [negate half .. half]
00:31:56 <lambdabot> flip map [negate half..half] . (. (tick *)) . (,) . (tick *)
00:32:01 * Lymee reaches for a barf bag
00:32:13 <Deewiant> @pl \x -> map (\y -> (tick*x, tick*y)) (enumFromTo (-half) half)
00:32:14 <lambdabot> flip map [negate half..half] . (. (tick *)) . (,) . (tick *)
00:33:51 <Deewiant> \x -> map (\y -> (tick*x, tick*y)) = map . (join (***) (tick *) .) . (,)
00:35:33 <Lymee> barf barf barf
00:36:30 <Deewiant> I'd write that as \x -> map (join (***) (tick*) . (,) x), or (x,) with -XTupleSections, or with both = join (***) defined somewhere
00:37:40 <Deewiant> Or \x -> let tx = tick*x in map ((tx,) . (tick*))
00:40:13 -!- FireFly has quit (Quit: swatted to death).
00:44:22 -!- esowiki has joined.
00:44:43 -!- esowiki has joined.
00:45:04 -!- esowiki has joined.
00:45:41 -!- esowiki has joined.
00:46:31 -!- esowiki has joined.
00:47:29 -!- esowiki has joined.
00:48:13 -!- esowiki has joined.
00:48:57 -!- esowiki has joined.
00:49:41 -!- esowiki has joined.
00:50:21 -!- esowiki has joined.
00:51:01 -!- esowiki has joined.
00:51:46 -!- esowiki has joined.
00:52:24 -!- esowiki has joined.
00:52:24 -!- glogbot has joined.
00:53:47 <oerjan> <bsmntbombdood> why is lambdabot in #esoteric? <-- because we asked nicely (well i assume it was nicely)
01:00:06 <oerjan> :t (*) `on` recip
01:00:07 <lambdabot> forall a. (Fractional a) => a -> a -> a
01:00:31 <Lymee> @hoogle Fractional -> Integral
01:00:31 <lambdabot> Warning: Unknown type Fractional
01:00:31 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
01:00:31 <lambdabot> Prelude ($) :: (a -> b) -> a -> b
01:00:46 <Lymee> @src Double
01:00:46 <lambdabot> data Double = D# Double#
01:00:49 <oerjan> Lymee: floor, ceiling, round
01:00:54 <Lymee> I see.
01:01:07 <oerjan> :t floor
01:01:07 <lambdabot> forall a b. (RealFrac a, Integral b) => a -> b
01:01:15 <Sgeo> Hmm
01:01:20 <oerjan> fractional can be e.g. complex
01:01:20 <Sgeo> I wanna be a Devil's Advocate
01:02:23 <oerjan> @pl \x -> map (\y -> (tick*x, tick*y)) [ -half..half]
01:02:23 <lambdabot> (line 1, column 36):
01:02:23 <lambdabot> unexpected "["
01:02:23 <lambdabot> expecting variable, "(", operator or end of input
01:02:28 <oerjan> huh
01:03:06 <oerjan> weird broken parser
01:03:15 <oerjan> (given that it accepts it without -
01:03:17 <oerjan> )
01:17:56 <zzo38> Sgeo: Why do you want to be Devil's Advocate?
01:18:18 <Sgeo> I've boredly given some thought to what I consider an inane position
01:18:38 <Sgeo> I think I can make it "work" fsvo "work"
01:41:33 <Lymee> Bleh.
01:41:41 <Lymee> I'm doing the Mandelbrot set with this: length $ takeWhile ((<2) . magnitude) $ take maxIters $ iterate step $ 0.0 :+ 0.0
01:41:45 <Lymee> Can't figure out any optimizations.
01:41:58 <Lymee> Anybody have any ideas? =w=
01:41:58 <Lymee> Oh!
01:42:19 <Lymee> Um, no wait, can't do that.
01:42:29 <oerjan> Lymee: magnitude is somewhat expensive as it requires a square root
01:43:08 <oerjan> @hoogle Complex a -> a
01:43:08 <lambdabot> Data.Complex imagPart :: RealFloat a => Complex a -> a
01:43:08 <lambdabot> Data.Complex magnitude :: RealFloat a => Complex a -> a
01:43:08 <lambdabot> Data.Complex phase :: RealFloat a => Complex a -> a
01:44:55 <oerjan> :t \(a :+ b) -> a*a + b*b < 4)
01:44:56 <lambdabot> parse error on input `)'
01:44:57 <oerjan> er
01:45:00 <oerjan> :t \(a :+ b) -> a*a + b*b < 4
01:45:01 <lambdabot> forall t. (RealFloat t) => Complex t -> Bool
01:45:08 <oerjan> that might be better
01:46:12 <oerjan> also perhaps findIndex is more efficient than length $ takeWhile ...
01:46:22 <oerjan> :t findIndex
01:46:22 <lambdabot> forall a. (a -> Bool) -> [a] -> Maybe Int
01:46:53 <oerjan> (then again, maybe not)
01:47:52 <oerjan> and it all depends on ghc's list fusion being able to optimize away the intermediate lists
01:52:12 <Lymee> @pl \x -> ((double $ imagPart x) + (double $ realPart x)) < 4
01:52:12 <lambdabot> (< 4) . ap ((+) . double . imagPart) (double . realPart)
01:52:50 <Lymee> :t ap
01:52:51 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
01:52:56 <Lymee> @hoogle forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
01:52:56 <lambdabot> Parse error:
01:52:56 <lambdabot> --count=20 "forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b"
01:52:56 <lambdabot> ^
01:53:04 <Lymee> @hoogle (Monad m) => m (a -> b) -> m a -> m b
01:53:04 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
01:53:04 <lambdabot> Control.Monad liftM :: Monad m => (a1 -> r) -> m a1 -> m r
01:53:05 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
02:00:20 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:09:20 <Lymee> @pl \x -> xCenter+tick*x
02:09:20 <lambdabot> (xCenter +) . (tick *)
02:13:25 -!- cheater_ has joined.
02:16:18 <Lymee> :t findIndex
02:16:18 <lambdabot> forall a. (a -> Bool) -> [a] -> Maybe Int
02:16:26 <Lymee> :t (a->a)->a->Int
02:16:27 <lambdabot> parse error on input `->'
02:16:33 <Lymee> :t (a -> a) -> a -> Int
02:16:33 <lambdabot> parse error on input `->'
02:16:58 <Lymee> ??
02:17:10 <Lymee> @hoogle (a -> a) -> a -> Int
02:17:10 <lambdabot> Data.Generics.Schemes everywhere :: (a -> a) -> a -> a
02:17:10 <lambdabot> Data.Generics.Schemes everywhere' :: (a -> a) -> a -> a
02:17:11 <lambdabot> Prelude until :: (a -> Bool) -> (a -> a) -> a -> a
02:17:44 <oerjan> until doesn't count number of steps, alas
02:21:24 -!- MDude has joined.
02:21:24 -!- MDude has changed nick to MSleep.
02:28:59 <Lymee> A, doh.
02:29:12 <Lymee> I changed z^^2 into z*z
02:29:22 <Lymee> Suddenly, almost halved time!
02:29:39 <oerjan> Lymee: there was a reason i wrote it with that yeah :P
02:30:27 <oerjan> istr someone wondering why ghc doesn't optimize x^2 to x*x before
02:30:49 <oerjan> > x^2
02:30:50 <lambdabot> x * x
02:31:21 <CakeProphet> ha.
02:31:21 <oerjan> they are absolutely identical
02:31:32 <monqy> > x * 3
02:31:33 <lambdabot> x * 3
02:31:44 <Sgeo> :t x
02:31:45 <lambdabot> Expr
02:31:49 <Sgeo> Ooh
02:31:56 <Sgeo> > x :: Num
02:31:57 <lambdabot> Class `GHC.Num.Num' used as a type
02:31:59 <oerjan> (in final result)
02:32:03 <Sgeo> > show x
02:32:04 <lambdabot> "x"
02:32:10 <Sgeo> Ooh
02:32:14 <Sgeo> This is a good idea
02:32:20 <CakeProphet> ...I thought everyone already knew about Expr.
02:32:21 <Sgeo> > y
02:32:22 <lambdabot> y
02:32:25 <CakeProphet> > fix f
02:32:25 <lambdabot> Ambiguous type variable `a' in the constraints:
02:32:25 <lambdabot> `GHC.Show.Show a'
02:32:25 <lambdabot> a...
02:32:29 <Sgeo> > a
02:32:30 <lambdabot> a
02:32:31 <CakeProphet> > fix f :: Expr
02:32:32 <lambdabot> f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (...
02:33:36 <CakeProphet> > scanl1 (*) [a,b,c,d,e]
02:33:37 <lambdabot> [a,a * b,a * b * c,a * b * c * d,a * b * c * d * e]
02:35:28 <Lymee> > a+b
02:35:29 <lambdabot> a + b
02:35:32 <Lymee> Heh.
02:35:34 <Lymee> Didn't know that existed.
02:35:41 <Lymee> Any way to evaluate that?
02:35:47 <Lymee> > a+g
02:35:48 <lambdabot> a + g
02:35:51 <Lymee> > (a+g) 1 1
02:35:52 <lambdabot> Couldn't match expected type `t1 -> t2 -> t'
02:35:52 <lambdabot> against inferred type ...
02:35:55 <oerjan> not to my knowledge
02:36:07 <Lymee> :t a
02:36:07 <lambdabot> Expr
02:36:12 <Lymee> @src Expr
02:36:12 <lambdabot> Source not found.
02:36:27 <oerjan> Lymee: it's in a package named simplereflect
02:36:31 <oerjan> iirc
02:37:14 <oerjan> http://hackage.haskell.org/package/simple-reflect
02:38:17 <oerjan> oh there's a reduction function
02:38:34 <oerjan> reduction (a+b+c+d)
02:38:37 <oerjan> er
02:38:39 <oerjan> > reduction (a+b+c+d)
02:38:40 <lambdabot> Not in scope: `reduction'
02:38:42 <oerjan> oops
02:39:15 <oerjan> maybe lambdabot doesn't have the latest version
02:39:28 <oerjan> > reduce (1+2+3+4)
02:39:29 <lambdabot> 3 + 3 + 4
02:39:34 <oerjan> > reduction (1+2+3+4)
02:39:34 <lambdabot> Not in scope: `reduction'
02:39:42 <Lymee> >reduce (a+b+c+d)
02:39:46 <Lymee> > reduce (a+b+c+d)
02:39:46 <lambdabot> a + b + c + d
02:39:52 <Lymee> > reduce (a*b+a*c)
02:39:53 <lambdabot> a * b + a * c
02:39:57 <oerjan> i guess it cannot reduce pure symbols
02:40:02 <Lymee> > reduce (a*(b+c))
02:40:03 <lambdabot> a * (b + c)
02:40:08 <Lymee> Bleh.
02:40:16 <oerjan> > iterate reduce (1+2+3+4)
02:40:16 <lambdabot> [1 + 2 + 3 + 4,3 + 3 + 4,6 + 4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10...
02:40:51 <oerjan> > iterate reduce (1*2+3*4)
02:40:52 <lambdabot> [1 * 2 + 3 * 4,2 + 3 * 4,2 + 12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,1...
02:41:58 <Lymee> > (\x -> fst $ head $ dropUntil (\x -> (fst x) == (snd x)) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4)
02:41:58 <lambdabot> Not in scope: `dropUntil'
02:42:10 * Lymee runs
02:42:18 <oerjan> :t var
02:42:19 <lambdabot> forall a. String -> Sym a
02:42:27 <Lymee> > (\x -> fst $ head $ dropWhile (\x -> (fst x) != (snd x)) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4)
02:42:28 <lambdabot> Not in scope: `!='
02:42:38 <Lymee> > (\x -> fst $ head $ dropWhile (\x -> !((fst x) == (snd x))) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4)
02:42:39 <lambdabot> <no location info>: parse error on input `!'
02:42:43 <Lymee> > (\x -> fst $ head $ dropWhile (\x -> not ((fst x) == (snd x))) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4)
02:42:43 <lambdabot> 1 * 2 + 3 * 4
02:42:47 <Lymee> Aww.
02:46:04 <oerjan> > dropWhile (uncurry (/=)) . ap zip tail $ iterate reduce (1*2+3*4)
02:46:05 <lambdabot> [(1 * 2 + 3 * 4,2 + 3 * 4),(2 + 3 * 4,2 + 12),(2 + 12,14),(14,14),(14,14),(...
02:46:12 <oerjan> hm...
02:46:30 <oerjan> > ap zip tail $ iterate reduce (1*2+3*4)
02:46:31 <lambdabot> [(1 * 2 + 3 * 4,2 + 3 * 4),(2 + 3 * 4,2 + 12),(2 + 12,14),(14,14),(14,14),(...
02:47:12 <oerjan> > 14 == (14 :: Expr)
02:47:13 <lambdabot> True
02:47:25 <oerjan> > reduce (2+12) == (14 :: Expr)
02:47:26 <lambdabot> True
02:47:54 <oerjan> > reduce (2+12) /= (14 :: Expr)
02:47:55 <lambdabot> False
02:48:10 <oerjan> > 2+12 /= (14 :: Expr)
02:48:10 <lambdabot> False
02:48:16 <oerjan> ooh
02:48:19 <oerjan> darn
02:48:38 <oerjan> it actually reduces when comparing
02:50:37 <Lymee> http://pastebin.com/PXcS0k5G < is my code horrible?
02:51:06 <Lymee> > reduce (2+12+4+5) /= (14 :: Expr)
02:51:07 <lambdabot> True
02:51:16 <Lymee> > reduce (2+12+4+5) /= (25 :: Expr)
02:51:17 <lambdabot> True
02:51:23 <Lymee> > (2+12+4+5) /= (25 :: Expr)
02:51:24 <lambdabot> True
02:51:31 <Lymee> > iterate reduce (2+12+4+5)
02:51:32 <lambdabot> [2 + 12 + 4 + 5,14 + 4 + 5,18 + 5,23,23,23,23,23,23,23,23,23,23,23,23,23,23...
02:51:35 <Lymee> opps
02:51:36 <Lymee> my math fail
02:51:39 <oerjan> :P
02:51:40 <Lymee> > (2+12+4+5) /= (23 :: Expr)
02:51:41 <lambdabot> False
02:53:48 <Lymee> > reduce (i*i)
02:53:48 <lambdabot> i * i
02:53:54 <Lymee> > reduce (i+i)
02:53:54 <lambdabot> i + i
02:54:03 <Lymee> > reduce (i^3)
02:54:04 <lambdabot> i * i * i
02:54:10 <Lymee> > reduce (i^(100^100))
02:54:11 <lambdabot> i * i * (i * i) * (i * i * (i * i)) * (i * i * (i * i) * (i * i * (i * i)))...
02:54:13 * Lymee runs
02:54:30 <Lymee> > map (\x -> take 10 $ show x) $ iterate reduce (i^(100^100))
02:54:31 <lambdabot> ["i * i * (i","i * i * (i","i * i * (i","i * i * (i","i * i * (i","i * i * ...
02:54:42 <Lymee> > drop 100 $ iterate reduce (i^(100^100))
02:54:43 <lambdabot> [i * i * (i * i) * (i * i * (i * i)) * (i * i * (i * i) * (i * i * (i * i))...
02:54:49 <Lymee> > drop 1000 $ iterate reduce (i^(100^100))
02:54:49 <lambdabot> [i * i * (i * i) * (i * i * (i * i)) * (i * i * (i * i) * (i * i * (i * i))...
02:54:52 <Lymee> Aww.
02:54:59 <oerjan> @redo map (\y -> map (\x -> fracf $ (xCenter+x) :+ (yCenter+y)) range) range
02:54:59 <lambdabot> Maybe you meant: do read todo undo
02:55:03 <oerjan> argh
02:55:09 <oerjan> @list undo
02:55:09 <lambdabot> undo provides: undo do
02:55:15 <oerjan> @do map (\y -> map (\x -> fracf $ (xCenter+x) :+ (yCenter+y)) range) range
02:55:15 <lambdabot> map (\ y -> map (\ x -> fracf $ (xCenter + x) :+ (yCenter + y)) range) range
02:55:21 <oerjan> darn
02:55:28 <Lymee> What did you want to do?
02:55:31 <oerjan> @do x >>= f
02:55:31 <lambdabot> do { a <- x; f a}
02:55:40 <oerjan> turn it into a list comprehension
02:55:48 <Lymee> Ah.
02:57:19 <oerjan> [ [ fracf $ (xCenter+x) :+ (yCenter+y)) | x <- range ] | y <- range ]
02:58:04 <Lymee> Already did it.
02:58:06 <Lymee> :)
02:59:08 <oerjan> you have some more parentheses than necessary, but fair enough
03:00:35 <oerjan> also double is usually called square
03:02:00 <Lymee> uh
03:02:01 <Lymee> wait why did i do that
03:02:15 <Lymee> ><
03:02:18 <oerjan> beats me :P
03:03:42 <Lymee> -cpp Run the C pre-processor on Haskell source files
03:03:42 <Lymee> [dynamic]
03:03:46 <Lymee> Is there any reason to ever do that?
03:04:17 <oerjan> haskell doesn't have much in the way of conditional compilation without it
03:04:27 <oerjan> well didn't use to, anyway
03:04:39 <oerjan> i guess you can use template haskell these days
03:05:21 <zzo38> From what I read about Haskell, C pre-processor doesn't seem like the best kind of preprocessor for Haskell (because of the meanings of # and ' in Haskell, as well as other things)
03:05:40 <oerjan> i think it's actually a slightly modified preprocessor
03:05:48 <zzo38> What might be improved is something like how the macro preprocessor stuff in WEB but changed for Haskell stuff.
03:06:46 <oerjan> when hugs was still alive, it shared a number of library source files with ghc, which sometimes used cpp
03:07:28 <zzo38> For various reasons, I doubt a C preprocessor would work well with Haskell.
03:08:18 <oerjan> as i said, it is a modified one.
03:08:20 <Lymee> [snip]:~/hs$ time ./mandelbrot 1000 0 0 1 300 output.png
03:08:20 <Lymee> real0m24.731s
03:08:21 <Lymee> user0m24.650s
03:08:21 <Lymee> sys0m0.036s
03:08:21 <Lymee> [snip]:~/hs$ time ./mandelbrot 1000 0 0 1 300 output.png
03:08:21 <Lymee> real0m7.606s
03:08:23 <Lymee> ......
03:08:25 <Lymee> o.o
03:08:36 <Lymee> Is -O9 really that effective?
03:09:45 <oerjan> well -O2 is effective, iirc -O3 sometimes gets worse, and i don't think there's a difference beyond that
03:09:54 * Lymee boggles
03:09:56 <zzo38> oerjan: Yes, a modified one might work.
03:10:31 <oerjan> iirc -O3 uses some experimental optimizations that are not guaranteed to actually make things better.
03:10:46 <Lymee> The executable -O2 and -O3 generate are identical, so..
03:11:42 <oerjan> oh wait it's actually -O1 and -O2
03:11:58 <oerjan> http://www.haskell.org/ghc/docs/latest/html/users_guide/options-optimise.html
03:12:21 <oerjan> "At the moment, -O2 is unlikely to produce better code than -O.
03:12:23 <oerjan> "
03:14:41 <oerjan> or wait, there's not actually a number for using those that make things worse.
03:18:24 -!- azaq23 has quit (Ping timeout: 260 seconds).
03:24:57 <cheater_> http://www.malevole.com/mv/misc/killerquiz/
03:25:52 <Lymee> Not funny.
03:25:52 <Lymee> =p
03:29:49 <Sgeo> Is IUP generally well-regarded?
03:34:34 -!- NihilistDandy has joined.
03:39:47 -!- azaq23 has joined.
03:39:48 -!- azaq23 has quit (Changing host).
03:39:48 -!- azaq23 has joined.
03:41:48 <NihilistDandy> Ohai
03:47:25 <coppro> hrm... crap
03:47:36 <NihilistDandy> Wut
03:47:47 <coppro> writing that script I wanted will be harder than I thought
03:48:08 <coppro> since I have to account for translational symmetry too
03:48:49 <coppro> not too hard, just annoying
03:49:18 * NihilistDandy nods
04:03:45 -!- pikhq_ has joined.
04:03:54 -!- pikhq has quit (Ping timeout: 260 seconds).
04:07:26 -!- BeholdMyGlory has quit (Remote host closed the connection).
04:33:50 <CakeProphet> coppro: sounds like you want some kind of ABSTRACTION
04:34:25 * NihilistDandy trumpets
04:34:56 <CakeProphet> honestly are there programmers out there who think abstraction is in general bad?
04:35:56 <coppro> better not be
04:36:05 <NihilistDandy> College C programmers
04:36:37 <NihilistDandy> Oracle admins
04:46:46 <Sgeo> What about COBOL programmers?
04:47:30 <NihilistDandy> I AM FORTRAN AND I DISLIKE CHANGE
04:56:05 <zzo38> Whether you need abstraction as well as what kind of abstraction depends on a lot of stuff!
05:05:25 <quintopi1> like the socioeconomic status of your target demographic, for instance
05:05:37 <quintopi1> or...the price of oil in canada
05:06:02 <quintopi1> and the age of the current pope of course
05:07:12 <NihilistDandy> Also your favorite ice cream
05:07:25 <NihilistDandy> The lactose intolerant have no need for abstraction
05:08:04 <NihilistDandy> This is an obvious truth, whose proof is left as an exercise to the reader.
05:43:08 <zzo38> Once I wrote something as a joke for rules of a card game, the value of the Queen card is current age of the queen, and to figure out the value of a Joker card you tell a joke to your opponent, and the value of this card is however many times your opponent laughs.
05:44:26 <pikhq_> How did a couple hours of magic turn into 8?
05:44:31 <pikhq_> s/magic/Magic/
05:45:07 <pikhq_> Meh, whatever, I regret it not.
05:45:12 <zzo38> Do you have more information?
05:45:18 <NihilistDandy> pikhq_: magic, of course
05:45:29 <zzo38> (Maybe question can be answered, then?)
05:46:40 <zzo38> I found the texts I wrote some jokes of rules for card game and stuff. Here is some of it:
05:46:55 <zzo38> This game can be played by any number of people, as long as the number of people is even and prime. First, shuffle the cards. The players can now make a deal, either an addition deal or a multiplication deal. And then you figure out the values of the cards, and then finally you deal the cards.
05:47:01 <zzo38> If the deck has 40 cards, then you get 3 cards. If the deck has 52 cards, then you get 4 cards. If you are a funny guy, then you get 5 cards. If your name is Aaron, then you get 6 cards.
05:48:24 <zzo38> This document also jokes about measuring the resistance of pokemon cards in ohms.
05:48:28 <coppro> haha
05:48:35 <coppro> link?
05:49:50 <zzo38> http://zzo38computer.cjb.net/GamesMadeStupid/cardgame.htm
05:50:35 <zzo38> I didn't write it completely by myself (I forget exactly which parts) although I did write much of it and I did put everything together.
05:52:03 <pikhq_> Also, I'm not entirely sure why I *started* this, other than that someone said "lol if freebsd used git, they'd have to have a gigantic repo in /usr/src", but cvs2git of FreeBSD's repo has taken two days thus far.
05:53:22 <coppro> I like the win condition for solitair
05:53:24 <coppro> *solitaire
05:54:02 <pikhq_> (FWIW, FreeBSD typically has a CVS checkout of the source used to build the system in /usr/src)
05:54:15 <NihilistDandy> Ah
05:54:49 <pikhq_> Personally, I'm going to be surprised if the git repo of all changes from '93 is larger than a CVS checkout.
05:56:26 <coppro> Doesn't CVS put metadata in the file though?
05:57:15 <pikhq_> Yes.
05:57:28 <pikhq_> Well, actually, it's optional metadata in the file.
05:57:39 <coppro> Does cvs2git strip it?
05:57:58 <pikhq_> I *think* it just fills in the metadata.
05:58:21 <pikhq_> Or maybe it leaves it alone?
05:58:25 <pikhq_> I dunno, I'll look.
06:03:08 <Sgeo> Crud, my eyes are going weird
06:03:22 <Sgeo> I'm reading a Homestuck update, and some of the text looks like it's popping out
06:03:26 <Sgeo> Depending on the color
06:04:44 <NihilistDandy> Link?
06:06:48 <Sgeo> NihilistDandy, have you read all of Homestuck?
06:06:58 <NihilistDandy> No.
06:19:52 <CakeProphet> technically no one has.
06:21:33 <monqy> andrew husey in the future
06:22:05 <monqy> adnrew, sorry
06:24:02 <NihilistDandy> I didn't find the character Evinrude's (in The Rescuers) name meaningful until I got older
06:24:07 <NihilistDandy> Then it was funny for a second
06:24:22 <coppro> I should finish PS
06:24:45 <NihilistDandy> He's a dragonfly, you see, and he propels mouse sized boats around a bayou
06:29:53 <quintopi1> i got the joke the first time i saw it
06:29:58 <quintopi1> when i was like 7
06:30:08 <zzo38> How good are you at optimization algorithms and that stuff? I was trying to make some kind of optimization. However, I cannot quite figure it out. That is why, I would like some help too. And then I can learn.
06:30:26 <NihilistDandy> quintopi1: I lived in a landlocked state
06:30:34 <NihilistDandy> With no boating friends
06:30:39 <quintopi1> aha
06:30:41 <NihilistDandy> I'm sorry I didn't have a yacht like some people
06:30:44 <NihilistDandy> :P
06:31:15 <quintopi1> i'm sorry i was taken fishing from very young in tiny johnboats
06:31:39 <NihilistDandy> I did all my fishing from land :D
06:32:13 -!- quintopi1 has changed nick to quintopia.
06:32:27 -!- quintopia has quit (Changing host).
06:32:27 -!- quintopia has joined.
06:35:57 -!- hagb4rd has joined.
06:41:16 -!- hagb4rd has quit (Read error: Connection reset by peer).
06:46:12 <itidus20> i wanna thank whoever linked me to: http://everything2.com/title/Using+Asteroids+to+explain+the+topological+classification+of+2-manifolds
06:46:31 <itidus20> just reading it now and the idea is making sense
06:47:20 <NihilistDandy> :D
06:47:57 <itidus20> so now what we need is a torus shaped monitor
06:48:58 <itidus20> with uh.. touchscreen
06:49:34 <itidus20> and it would be incredibly boring and a stupid idea and i'll just let it go
06:49:35 -!- oerjan has quit (Quit: Good night).
06:51:04 <zzo38> I have seen a diagram in a book where they described a TV screen being shaped like torus. I think the reason is similar, too.
06:51:14 <NihilistDandy> Being stupid?
06:51:53 <zzo38> (But it didn't have touchscreen)
06:52:08 <zzo38> (Nor would touchscreen help in the context it was given in)
06:52:41 <zzo38> NihilistDandy: Is that a question to me? Or to itidus20?
06:53:13 <NihilistDandy> I meant was the reason for the toroidal TV screen "being stupid"?
06:53:51 <zzo38> No! The reason was to indicate having no edges and you can move one direction to end up in the same place, and so on things like that.
06:54:24 <zzo38> Of course you would not have such a TV screen, I don't think it would work very well for any circumstances I can understand.
06:54:50 <NihilistDandy> Mostly a joke
06:55:36 -!- hagb4rd has joined.
06:59:00 <NihilistDandy> I wish my last name were more palindrome friendly.
06:59:28 <CakeProphet> this panel setup for the scratch is making everything extremely difficult to follow
06:59:43 <CakeProphet> it also doesn't help that I've forgetting details of what happened....
06:59:46 <CakeProphet> +been
07:01:37 -!- NihilistDandy has quit (Quit: sleep).
07:03:10 <Sgeo> :( The Science of Discworld isn't available as an ebook
07:03:25 <Sgeo> Or at least, not from B&N
07:04:33 <Sgeo> Oh, eBooks.com has it
07:18:04 <itidus20> ok i was following it until the spehrical universes bit
07:18:36 <itidus20> is the idea that a sphere doesn't really need an edge?
07:21:20 <itidus20> nevermind.. im pretty sure i know what a sphere is :-s
07:21:21 -!- augur has quit (Remote host closed the connection).
07:22:30 <zzo38> I hope someone can understand my register optimization algorithm problem that I have had. And if there is other channel that they know this kinds of things better.
07:22:41 -!- zzo38 has quit (Quit: But for now I sleep).
07:44:16 -!- augur has joined.
08:07:33 -!- hagb4rd has quit (Ping timeout: 255 seconds).
08:19:05 <CakeProphet> :t Expr
08:19:06 <lambdabot> Not in scope: data constructor `Expr'
08:19:21 <CakeProphet> @hoogle a -> Expr
08:19:21 <lambdabot> Warning: Unknown type Expr
08:19:21 <lambdabot> Prelude id :: a -> a
08:19:21 <lambdabot> Data.Function id :: a -> a
08:19:26 <CakeProphet> :t x
08:19:27 <lambdabot> Expr
08:20:13 <CakeProphet> > a > b
08:20:13 <lambdabot> False
08:20:36 <CakeProphet> > a < b
08:20:37 <lambdabot> True
08:20:42 <CakeProphet> > a + 1 < b
08:20:43 <lambdabot> True
08:21:24 <CakeProphet> > succ a
08:21:25 <lambdabot> succ a
08:22:05 <CakeProphet> > EnumFromTo a z
08:22:05 <lambdabot> Not in scope: data constructor `EnumFromTo'
08:22:09 <CakeProphet> > enumFromTo a z
08:22:09 <lambdabot> *Exception: not a number
08:22:53 <CakeProphet> > pred . succ $ a
08:22:54 <lambdabot> pred (succ a)
08:23:50 <Sgeo> http://www.jazzscheme.org/images/screenshots/text_jazz.htm I am a bit unnerved by how similar to Java that looks
08:24:26 <CakeProphet> that pretty much is Java.
08:24:55 <CakeProphet> at least in program structure.
08:31:04 <Gregor> Greetings from Lancaster
08:31:24 -!- Taneb has joined.
08:31:42 -!- augur has quit (Remote host closed the connection).
08:31:45 <Taneb> That's the second time I've had non-latin characters in a captcha
08:32:35 <Sgeo> <penryu> haha. "Jazz borrows ideas from ... Java for its simple object system ..."
08:34:51 <pikhq_> Well, Java's *object system* isn't too complex.
08:35:30 <pikhq_> What's complex is that it has an overly verbose syntax and utterly retarded APIs.
08:35:39 <pikhq_> Along with pointless edge cases.
08:36:56 <pikhq_> Also, it suffers from the whole "let's do static typing but not have a good type system" thing.
08:41:53 <CakeProphet> What's wrong with the type system?
08:41:59 <CakeProphet> aside from requiring verbose syntax.
08:42:34 <Taneb> I've had an idea for an esolang!
08:42:40 <Taneb> All about ducks!
08:43:22 <pikhq_> CakeProphet: It's static and not good enough to handle type inference.
08:43:32 <pikhq_> i.e. it sucks.
08:43:34 <Taneb> It'll have duck typing, and the batman must be dismissed with a score of zero!
08:44:10 <pikhq_> This, in my estimation, is *worse* than being loosely or un-typed.
08:58:26 <Taneb> Well, in about an hour, I leave
08:58:40 <Taneb> Far to the South
08:58:59 <Taneb> Durham
08:59:54 <Sgeo> elliott, don't click this until you read new Homestuck update, but I just want to say I'm lolling at http://bit.ly/nJn669
09:02:30 <Taneb> Hahaha
09:05:01 -!- monqy has quit (Quit: hello).
09:11:08 -!- augur has joined.
09:33:38 <Taneb> Just discovered my first cavern in Dwarf Fortress
09:34:13 -!- Taneb has quit (Quit: Page closed).
09:58:56 -!- Phantom_Hoover has joined.
09:59:35 <Phantom_Hoover> Hmm, I wonder if this connection will last for more than ten seconds.
09:59:35 <lambdabot> Phantom_Hoover: You have 12 new messages. '/msg lambdabot @messages' to read them.
10:09:38 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
10:23:25 -!- MigoMipo has joined.
10:25:51 -!- Sgeo has quit (Read error: Connection reset by peer).
10:26:33 -!- Sgeo has joined.
10:29:12 -!- hagb4rd has joined.
10:38:58 <MigoMipo> Has anyone implemented Brainfuck in the SQLite virtual machine?
10:45:51 -!- ais523 has joined.
10:59:47 <coppro> > pl (foo a) == (foo b)
10:59:48 <lambdabot> Not in scope: `pl'Not in scope: `foo'Not in scope: `foo'
10:59:56 <coppro> > pl (len a) == (len b)
10:59:56 <lambdabot> Not in scope: `pl'Not in scope: `len'Not in scope: `len'
11:00:20 <coppro> @pl
11:00:21 <lambdabot> (line 1, column 1):
11:00:21 <lambdabot> unexpected end of input
11:00:21 <lambdabot> expecting white space, "()", natural, identifier, lambda abstraction or expression
11:00:31 <coppro> @pl \x y = (len x) == (len y)
11:00:32 <lambdabot> (line 1, column 6):
11:00:32 <lambdabot> unexpected "="
11:00:32 <lambdabot> expecting pattern or "->"
11:00:36 <coppro> @pl \x y -> (len x) == (len y)
11:00:36 <lambdabot> (. len) . (==) . len
11:00:42 <coppro> quiet you
11:02:33 <coppro> ahah
11:07:04 <azaq23> :t (==) `on` length
11:07:05 <lambdabot> forall a. [a] -> [a] -> Bool
11:07:17 <coppro> yeah I know
11:07:20 <coppro> I just caught myself
11:17:40 -!- Phantom_Hoover has joined.
11:21:50 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
11:36:51 <twice11> :t (. len) . (==) . len
11:36:52 <lambdabot> Not in scope: `len'
11:36:52 <lambdabot> Not in scope: `len'
11:37:01 <twice11> :t (. length) . (==) . length
11:37:02 <lambdabot> forall a a1. [a1] -> [a] -> Bool
11:37:13 <twice11> It's more generic than (==) `on` length
11:38:59 <olsner> omg no, the doctor is in one of the harry potter movies (and plays a baddie)
11:43:16 -!- sebbu2 has quit (Ping timeout: 240 seconds).
11:46:08 <twice11> @pl \l1 l2 a b -> (l1 a) == (l2 b)
11:46:08 <lambdabot> flip . (((.) . (==)) .)
11:46:33 <twice11> @pl \l1 l2 a b -> (l2 a) == (l1 b)
11:46:33 <lambdabot> flip (flip . (((.) . (==)) .))
11:46:45 <twice11> @pl \l1 l2 a b -> (l1 b) == (l2 a)
11:46:45 <lambdabot> (.) . flip . ((==) .)
11:46:54 <twice11> @pl \l1 l2 a b -> (l2 b) == (l1 a)
11:46:54 <lambdabot> flip ((.) . flip . ((==) .))
11:47:06 <twice11> Hmm, I was trying to get rid of the flips.
11:47:21 <twice11> Seems to be impossible is you want to have both l1 and l2 before a and b.
11:48:16 <twice11> Ultimate goal was makeing "(. length) . (==) . length)" make look more symmetric in the two length calls.
12:07:53 -!- sebbu has joined.
12:10:04 <Sgeo> "You can use the software in any way you like, make money and do as you will, and even change the source code and distribute it and charge for it provided that your changed version still works."
12:10:13 <Sgeo> http://www.lambdassociates.org/Shen/newappeal.htm
12:10:27 <Sgeo> Um, that... is there a legal definition of "works"?
12:11:33 <ais523> as a noun, yes
12:11:35 <ais523> I don't think so as an adjective
12:11:58 <ais523> anyway, there's a legal definition of everything, occasionally the courts have to decide what it is, though
12:20:31 * Sgeo for some reason tries Allegro CL Express
12:46:34 -!- BeholdMyGlory has joined.
12:49:40 -!- azaq23 has quit (Quit: Leaving.).
12:50:56 <Sgeo> http://www.reddit.com/r/programming/comments/ixkql/how_to_make_a_compiler_1000_times_faster/c27guh6 I... uh...
12:51:09 <Sgeo> Seriously?
12:51:27 <Sgeo> Even _____I_____'m not that stupid to do that, and I barely know what I'm doing
12:52:22 <Sgeo> Then again, I'll probably make mistakes that this person doesn't
12:53:18 <Sgeo> And trying to skim what the person wrote just ... dizzies me, so I'm the last person who should be commenting
13:05:56 <Sgeo> http://sds.podval.org/ocaml-sucks.html is it just me or does this article have a mix of stupidity and insight?
13:06:29 <Sgeo> hmm, n/m
13:08:06 -!- FireFly has joined.
13:17:30 <itidus20> "Make no mistake: Java/C/C++/C#/Perl are much worse than OCaml! "
13:17:49 <ais523> I actually use OCaml in my day job
13:17:55 <ais523> it made me want to invent Anarchy
13:18:05 <ais523> because it's decently good at what it does, but has a few annoyances
13:18:33 <itidus20> My view of the world is always getting me down but it's not all that bad.
13:19:09 <itidus20> it's like i think people would be less happy overall if i let my own private piece of the world turn to shit
13:19:52 <itidus20> So, I think that people get used to what they are doing... and sometimes I get the urge to make breakthroughs and independant rediscoveries
13:21:07 <itidus20> and, at the worst of it... the analyzers start believing their own crap
13:21:23 <itidus20> and that surely drains the life out of them
13:21:24 <Sgeo> "Now (Dec 1999)" http://sds.podval.org/tool.html
13:22:32 <itidus20> they speak of what is possible and what is not possible as if they had lived billions of years
13:23:11 <itidus20> and still, 1000s of years ago people alerady knew that billions of years can be insignifigant depending on what you are looking for
13:23:53 <itidus20> and they have the audacity to make claims on the computational power of the known universe
13:24:36 <itidus20> oh god i am ranting again... when did this happen
13:24:58 <itidus20> its one of these monologues which someone earlier today told me isn't fitting in a _chatroom_
13:30:36 -!- MSleep has changed nick to MDude.
13:52:03 <CakeProphet> itidus20: it happens.
13:52:45 <itidus20> cake: i have so much dissatisfaction with so many things that a rant can erupt at any time.
13:53:15 <CakeProphet> > foldl1 (flip par) $ scanl1 (*) [1..]
13:53:23 <lambdabot> mueval-core: Time limit exceeded
13:53:23 <lambdabot> mueval: ExitFailure 1
13:53:40 <CakeProphet> ah, right, because par would impose strict semantics.
13:54:04 <CakeProphet> > foldl1 (flip par) . take 100 . scanl1 (*) $ [1..]
13:54:08 <lambdabot> mueval-core: Time limit exceeded
13:54:13 <CakeProphet> > foldl1 (flip par) . take 50 . scanl1 (*) $ [1..]
13:54:16 <lambdabot> 1
13:54:22 <CakeProphet> lol
13:54:58 <CakeProphet> Yeah, sometimes I feel like executing the first 50 factorials in parallel for absolutely no gain.
13:56:27 <CakeProphet> except that's not really what happened.
13:56:46 <CakeProphet> > foldl1 par . take 50 . scanl1 (*) $ [1..]
13:56:47 <lambdabot> 30414093201713378043612608166064768844377641568960512000000000000
13:57:21 <CakeProphet> I think even then it's still sequential.
14:01:11 <tswett> Light, service, state, box, cross, paper, door, teddy bear, fish, dog, apple, stroller, fish trap, slim, high, parent, free, country, swamp, fillet, rosé, parfait, brick, sleep, office, small, hand, clove, child, knife, two, sister, switch, unhappy, warm, inntermost, left, woman, reply, expense, guest, man, fine, spring, eighth, thousand, dead, skirt, step, grandmother, young couple.
14:01:18 <tswett> Aye?
14:04:58 <CakeProphet> it woould be nice to have latex support in an IRC client.
14:05:46 <CakeProphet> I had a dream about an annoying douchebag who logged into this channel and spoke almost entirely in fancy latex
14:06:01 <CakeProphet> and his name changed every post.
14:06:16 <CakeProphet> and was also full of latex crap.
14:06:43 <Lymee> tswett, wat.
14:07:06 <CakeProphet> > deleteAllFiles `par` 'wat'
14:07:07 <lambdabot> <no location info>:
14:07:07 <lambdabot> lexical error in string/character literal at chara...
14:07:12 <tswett> Lymee: oh, it's a list of nouns and adjectives.
14:07:36 <tswett> There are 51 types. This is one from each type.
14:07:40 <tswett> Or, it's supposed to be.
14:12:57 <tswett> Ihan vitun kamalan sekavat.
14:13:54 <Lymee> @src seq
14:13:55 <lambdabot> Source not found. Take a stress pill and think things over.
14:18:39 <Lymee> @pl (\y -> [fracf $ (xCenter+x) :+ (yCenter+y) | x <- range])
14:18:39 <lambdabot> return . fracf . (<- range) . (| x) . ((xCenter + x) :+) . (yCenter +)
14:18:44 <Lymee> ....
14:18:45 <Lymee> wat
14:18:56 <Deewiant> @pl doesn't understand list comprehensions
14:19:04 <Lymee> I see...
14:19:08 <Deewiant> @. pl undo (\y -> [fracf $ (xCenter+x) :+ (yCenter+y) | x <- range])
14:19:08 <lambdabot> (range >>=) . flip flip [] . (((:) . fracf) .) . flip ((:+) . (xCenter +)) . (yCenter +)
14:33:19 <tswett> Aww, how cute.
14:33:37 <tswett> $pl \x -> [y + 1 | y <- x]
14:33:40 <tswett> @pl \x -> [y + 1 | y <- x]
14:33:40 <lambdabot> return . (y +) . ((1 | y) <-)
14:33:56 <tswett> Hee hee.
14:35:33 <CakeProphet> heh.
14:36:46 <olsner> nice
14:45:27 <Vorpal> what the?
14:45:30 <Vorpal> <tswett> @pl \x -> [y + 1 | y <- x]
14:45:31 <Vorpal> <lambdabot> return . (y +) . ((1 | y) <-)
14:45:34 <Vorpal> I don't get it
14:45:43 <Vorpal> :t (<-)
14:45:45 <lambdabot> parse error on input `<-'
14:45:49 <Vorpal> so...
14:45:53 <Vorpal> what the hell
14:45:55 <Deewiant> Vorpal: 2011-07-24 17:18:47 ( Deewiant) @pl doesn't understand list comprehensions
14:46:02 <Vorpal> Deewiant, *oh* hah
14:46:14 <Deewiant> @. pl undo \x -> [y + 1 | y <- x]
14:46:14 <lambdabot> ((1 +) `fmap`)
14:46:24 <Vorpal> :t undo
14:46:24 <lambdabot> Not in scope: `undo'
14:46:30 <Vorpal> Deewiant, where is undo from?
14:46:35 <Deewiant> @help undo
14:46:35 <lambdabot> undo <expr>
14:46:35 <lambdabot> Translate do notation to Monad operators.
14:46:41 <Vorpal> ah
14:52:56 -!- pikhq has joined.
14:53:12 -!- pikhq_ has quit (Ping timeout: 276 seconds).
15:06:52 <atehwa_> tswett: I wonder if you were talking about the inflection classes of nominals, how cute
15:27:48 <tswett> atehwa_: you can determine that with figuratively absolute certainty.
15:32:15 <CakeProphet> > foldll1 (`f`) [a,b,c]
15:32:15 <lambdabot> <no location info>: parse error on input `)'
15:32:30 <CakeProphet> blasphemy!
15:32:57 <Deewiant> (`f`) would be equivalent to (f)
15:34:08 <CakeProphet> yes I was seeing if it worked.
15:41:23 <tswett> Android headset:nä
15:53:29 <fizzie> CakeProphet: For a fixed arity, I suppose you can always work around the lack of (`f`) with (\x y -> (x`f`y)). Especially if you choose suitably easily overlookable Unicode characters for x and y. (\ו י -> (ו`f`י)) maybe?
15:54:26 <fizzie> Wow, that renders real bad in XChat. Must be the right-to-leftness of the Hebrew letters.
15:54:46 <Deewiant> You can make it \x -> (x`f`) and it'll work for any arity
15:54:58 <fizzie> Oh, good.
15:55:24 <Deewiant> (\x y -> (x`f`y) would work for any arity >= 2)
15:55:34 <fizzie> Roight.
15:57:34 <fizzie> And since it no longer needs whitespace to separete x and y, (\י->(י`f`)) then. Which XChat renders so that it looks, approximating the Hebrew "yod" with ', as (\')<-'`f`)) -- it seems to do the text in-between those things as right-to-left.
16:00:16 <CakeProphet> fizzie: what do you mean work around the lack of (`f`)?
16:00:37 <CakeProphet> like... I don't see a need really. I just wondered if it was possible. It doesn't need a work around because f is the work around.
16:00:38 <fizzie> Since it's "f", I supposed you must have some reason to complicate it.
16:00:57 <CakeProphet> yep, I love needless complication. :)
16:01:20 <fizzie> Right. And "f" is not a proper workaround for complicating "f". (Unless you're being very gracious.)
16:01:52 <CakeProphet> > fix id
16:01:55 <lambdabot> mueval-core: Time limit exceeded
16:01:57 <CakeProphet> :t fix id
16:01:58 <lambdabot> forall a. a
16:20:48 <ais523> haha, in order to put a Palm phone into developer mode, you enter the Konami code
16:26:29 -!- atehwa_ has changed nick to atehwa.
16:30:39 -!- hagb4rd has quit (Ping timeout: 255 seconds).
16:49:52 -!- monqy has joined.
16:53:12 <CakeProphet> ais523: all of the trendy tech scenesters would be like "everybody trendy already knows about that."
16:53:19 <CakeProphet> techsters?
16:53:30 <ais523> perhaps
16:53:35 <CakeProphet> can you put -ster on the end of anything to make it sound condescending?
16:54:18 <ais523> I don't know
16:55:44 <atehwa> numberster
16:55:55 <atehwa> graph rewritester
16:56:29 <atehwa> fixed pointster
16:56:55 <CakeProphet> > map (++ "ster") $ (`replicateM` ['a'..'z']) >>= [1..]
16:56:56 <lambdabot> The section ``Control.Monad.replicateM`
16:56:56 <lambdabot> ['a' .. 'z']' takes o...
16:57:13 <CakeProphet> > map (++ "ster") $ (`replicateM` ['a'..'z']) =<< [1..]
16:57:15 <lambdabot> ["aster","bster","cster","dster","ester","fster","gster","hster","ister","j...
16:57:23 <CakeProphet> ...okay so maybe not everything...
16:57:23 <atehwa> tadaa
16:57:47 <atehwa> ester = "lousy e"
16:58:08 <CakeProphet> a g-ster actually sounds like a somewhat cool person.
16:58:11 <atehwa> "not-to-be-taken-for-serious e"
16:58:58 <monqy> gster sounds like something people would call a somewhat cool person but is actually in reality ridiculous
17:43:06 -!- derrik has joined.
17:58:02 -!- Nisstyre has quit (Quit: Leaving).
18:06:21 -!- CakeProphet has quit (Ping timeout: 240 seconds).
18:21:48 -!- zzo38 has joined.
18:23:53 <cheater_> IBM PC (Model 5150) Guide to Operations, Part 1 of 2 http://www.retroarchive.org/dos/docs/pc_op_guide1.pdf
18:55:06 -!- cheater_ has quit (Ping timeout: 255 seconds).
18:58:39 -!- zzo38 has quit (Quit: zzo38).
19:04:33 -!- Nisstyre has joined.
19:09:00 -!- cheater_ has joined.
19:23:26 -!- oerjan has joined.
19:31:28 <oerjan> once again, everyone who has said anything interesting in the logs is gone now :(
19:32:32 <fizzie> Fortunately there is lambdabot and messages.
19:36:30 -!- cheater_ has quit (Ping timeout: 255 seconds).
19:40:56 -!- NihilistDandy has joined.
19:43:26 -!- cheater_ has joined.
19:46:56 <NihilistDandy> I was discussing with a coworker about number theory and programming, and the subject of whether loops or number theoretic algorithms are faster, in terms of processor instructions. For a toy example, consider summing the first 1 million digits.
19:47:30 <NihilistDandy> [asterisk]that sentence was horribly structured
19:48:42 <NihilistDandy> I was discussing number theory and programming with a coworker, and the subject of whether loops or number theoretic algorithms were faster (in terms of processor instructions) came up. For a toy example, consider summing the first 1 million digits.
19:48:46 <NihilistDandy> Better
19:51:34 <NihilistDandy> Any thoughts on the matter?
19:55:33 <oerjan> fizzie: but that is not as fun :(
19:57:05 <oerjan> NihilistDandy: well i would be really surprised if a loop for that were faster than calculating 1000000*1000001/2 on any realistic hardware
19:57:41 <oerjan> er wait you said digits not numbers. what do you mean by that...
19:57:54 <NihilistDandy> [asterisk]numbers
19:57:58 <oerjan> ok
19:57:59 <NihilistDandy> My bad
19:58:49 <oerjan> of course there must be less skewed examples...
19:59:30 <oerjan> like how bubble sort is faster than quicksort if the list/array is small enough
20:00:26 <oerjan> hm you were one of those who said something interesting
20:00:27 <oerjan> <NihilistDandy> I meant was the reason for the toroidal TV screen "being stupid"?
20:00:28 <NihilistDandy> I've been trying to find some definitive source on how multiplication is done at the processor level, but no one seems to agree (or everyone who does is several decades out of date)
20:00:46 <oerjan> it's not that unreasonable when you think of how scan lines work
20:01:03 <oerjan> it _is_ very close to a toroidal setup
20:01:11 <NihilistDandy> But it's unreasonable when you consider how watching TV works :D
20:01:42 <oerjan> NihilistDandy: i understand that modern processors use a huge circuit to do multiplication _very_ fast
20:02:15 <oerjan> while e.g. the old 6502/10's had no multiplication instruction and you needed to use shift/addition to write it
20:02:25 <NihilistDandy> That's my understanding, too, but they do it with (essentially) a huge number of partial products and additions
20:02:44 <NihilistDandy> Which still boils down to shift/add
20:03:15 <oerjan> no... it is much faster
20:03:27 <oerjan> because it's parallelized, not a loop
20:04:05 <NihilistDandy> Right, faster in terms of actually getting done
20:04:09 <oerjan> but i think ais523 is the right person to ask about this
20:04:12 <NihilistDandy> I mean in the sense of number of instructions
20:04:17 <ais523> about what?
20:04:32 <oerjan> about how multiplication is done in modern processors
20:04:48 <ais523> oerjan: I'm not sure what sort of multiplier they use, there are several plausible sorts
20:05:16 <oerjan> yes but i assume you can explain how it's better than a shift/add loop
20:05:30 <ais523> actually, sometimes it is a shift-add loop
20:05:35 <ais523> but implementing it in hardware makes it much faster
20:05:51 <oerjan> heh
20:06:38 <oerjan> anyway even a shift/add loop should be faster than directly adding 1..1000000 in a loop
20:07:52 <NihilistDandy> So, ais523, does an addition loop use more instructions than a multiplication? I suppose that's the basic question
20:08:17 -!- CakeProphet has joined.
20:08:17 -!- CakeProphet has quit (Changing host).
20:08:17 -!- CakeProphet has joined.
20:08:26 <ais523> NihilistDandy: the number of instructions is pretty much irrelevant when it comes to speed
20:08:29 <ais523> not all instructions are equal
20:08:32 <NihilistDandy> It's not about speed
20:08:51 <ais523> if it's about program length, you'd just use the processor's multiply instruction
20:08:58 <ais523> as it's nice and short compared to a loop
20:09:00 <NihilistDandy> It's not about length
20:09:05 <ais523> what is it about, then?
20:09:06 <NihilistDandy> It's about what the computer's doing
20:09:16 <ais523> when you write a*b in a program, or whatever?
20:09:28 <ais523> it compiles it into the processor's multiply, which puts it into a dedicated multiply circuit
20:09:49 <ais523> DSPs normally have very fast multiply circuits that take up a lot of silicon space, because doing lots of multiplications quickly is their main purpose for existence
20:09:56 <oerjan> CakeProphet: are you actually present?
20:09:57 <NihilistDandy> So I've read
20:10:02 <ais523> regular processors, even if it takes 10 times as long as any other instruction, it's still going to be gine
20:10:05 <ais523> *fine
20:10:06 <oerjan> (i mean hi)
20:10:51 <oerjan> seems not.
20:11:27 <NihilistDandy> ais523: I'm not really concerned about how long it takes. My only real question is "Are there fewer processor instructions in an additive loop or a multiplicative algorithm?"
20:11:46 <ais523> oh, you're concerned about instruction /count/?
20:11:49 <NihilistDandy> Right
20:11:59 <NihilistDandy> Totally irrelevant to anything meaningful
20:12:03 <NihilistDandy> Just a curiosity
20:12:04 <ais523> a multiplication and addition are both one instruction (imul and add, respectively)
20:12:10 <ais523> add takes fewer bytes to represent in x86, at least
20:13:38 <pikhq> Instruction count is a very weird thing to ask about, though.
20:13:42 <NihilistDandy> So, if I'm following you correctly, adding the numbers 1..1000 in an additive loop uses at least 1000 instructions (though likely more), and (1000*1001)/2 uses approximately 3?
20:13:49 <ais523> yep
20:13:56 <NihilistDandy> pikhq: I know. It's just what the discussion turned to.
20:14:08 <pikhq> Instruction count means absolutely, positively *nothing* on modern CPUs, after all.
20:14:16 <oerjan> oh it's actually performed instructions, not source size...
20:14:32 <NihilistDandy> ais523: Awesome, then number theory and I won that discussion after all :D
20:14:40 <ais523> I didn't believe the question either, that's why it took so long for me to work out what NihilistDandy meant
20:14:41 <pikhq> NihilistDandy: Still bloody weird. But at least you realise it's pointless. :)
20:14:55 <NihilistDandy> lol
20:14:56 <ais523> the great thing about the channel, though, is that you get an answer even if people don't understand why the question
20:15:09 <NihilistDandy> I'm too #esoteric for #esoteric :D
20:15:10 <oerjan> whence bathyspheres?
20:15:19 <ais523> whereas in most channels, you get told off for asking questions like that
20:15:43 <monqy> oerjan: that way
20:15:50 <ais523> hmm, does anyone know if Debian keep old versions of things around in repositories?
20:15:56 <pikhq> Yeah, very few channels have the mindset of "Yeah, that person may just like asking stupid questions."
20:15:58 <oerjan> ok, thanks
20:16:04 <ais523> e.g. if a security bug is fixed, can you grab the version pre-fix from anywhere?
20:16:05 <pikhq> ais523: They don't really do that *much*.
20:16:10 <ais523> bleh
20:16:16 <ais523> what about md5/sha1 hashes?
20:16:30 <pikhq> I dunno.
20:16:38 <fizzie> ais523: At least not in the same places, because if you try to install things without updating your copy of the indices, you tend to get 404 errors relatively soon.
20:16:43 <ais523> so that if someone gives you a library and says "this is version 3.4.foo of bar from Debian", you can verify that they're telling the truth and haven't given you a malicious executable
20:16:46 <pikhq> Oh, snapshot.debian.org
20:17:15 <pikhq> They store all old package versions.
20:17:22 <ais523> thanks, that's exactly what I wanted
20:17:23 <pikhq> Well, from 2005 to present.
20:18:03 <NihilistDandy> (╯°□°)╯︵ ┻━┻
20:19:48 <fizzie> ais523: The hashes of binary packages are also mentioned in the "accepted X" emails sent on the foo-changes@ mailing lists, which are archived. Not sure if there's an easy way to navigate those, though, since packages.qa.debian.org just links to the newest twenty or so.
20:20:31 <oerjan> <Sgeo> elliott, don't click this until you read new Homestuck update, but I just want to say I'm lolling at http://bit.ly/nJn669
20:20:43 <oerjan> i wonder who actually gets paid for .ly domains now...
20:21:42 <pikhq> Libya Telecom & Technology.
20:21:59 <pikhq> Though they *probably* aren't running too well.
20:22:26 <oerjan> if they even have standing offices anymore
20:22:56 <pikhq> How fucked is Tripoli, anyways?
20:23:30 <pikhq> Like, 15 or 20 on a scale from 1 to 10?
20:23:57 <NihilistDandy> Like B---------------O----------------D this fucked
20:24:08 <NihilistDandy> So, quite
20:24:16 <oerjan> i was going to say 9 as a wild guess. although presumably that mostly applies to government buildings...
20:24:20 <NihilistDandy> But only halfway there
20:26:47 <pikhq> oerjan: LT&T is pretty much a government thing.
20:27:29 <oerjan> at least their website is up
20:27:36 <pikhq> oerjan: It's ran by the son of al-Gaddafi, so...
20:27:59 <oerjan> _the_? he has at least a handful and some are dead.
20:28:11 <pikhq> s/the/a/
20:28:16 <NihilistDandy> FROM BEYOND THE GRAVE
20:28:49 <oerjan> actually it may be just one dead so far, i haven't paid attention
20:33:02 <fizzie> Google's traffic report seems to suggest there's actually a bit more interweb traffic out of Libya after about mid-July; the curve's been pretty flat since beginning of March: http://www.google.com/transparencyreport/traffic/?r=LY&l=EVERYTHING&csd=1296645717109&ced=1311539850000
20:33:13 <oerjan> <twice11> @pl \l1 l2 a b -> (l1 a) == (l2 b)
20:33:16 <oerjan> hm...
20:34:05 -!- derrik has quit (Quit: over and out).
20:34:47 <oerjan> :t uncurry (==) . (?l1 *** ?l2)
20:34:48 <lambdabot> forall a (a1 :: * -> * -> *) b b'. (Eq a, ?l1::a1 b a, ?l2::a1 b' a, Arrow a1, Functor (a1 (b, b'))) => a1 (b, b') Bool
20:34:58 <oerjan> god have mercy
20:35:17 <NihilistDandy> God is dead
20:36:18 <oerjan> :t uncurry (uncurry (==) . uncurry (***))
20:36:19 <lambdabot> Couldn't match expected type `b -> c' against inferred type `Bool'
20:36:19 <lambdabot> In the first argument of `(.)', namely `uncurry (==)'
20:36:19 <lambdabot> In the first argument of `uncurry', namely
20:36:21 <oerjan> bah
20:37:05 <oerjan> :t uncurry ((uncurry (==) .) . uncurry (***))
20:37:06 <lambdabot> forall b b' c'. (Eq c') => ((b -> c', b' -> c'), (b, b')) -> Bool
20:37:26 <oerjan> hm right
20:37:31 <oerjan> :t curry ((uncurry (==) .) . uncurry (***))
20:37:31 <lambdabot> forall (a :: * -> * -> *) b b' c'. (Eq c', Functor (a (b, b')), Arrow a) => a b c' -> a b' c' -> a (b, b') Bool
20:37:56 <oerjan> :t curry ((uncurry (==) Prelude..) . uncurry (***))
20:37:56 <lambdabot> forall b b' c'. (Eq c') => (b -> c') -> (b' -> c') -> (b, b') -> Bool
20:38:18 <oerjan> oh hm
20:39:15 <oerjan> :t curry (curry . (uncurry (==) Prelude..) . uncurry (***))
20:39:15 <lambdabot> forall b b' c'. (Eq c') => (b -> c') -> (b' -> c') -> b -> b' -> Bool
20:39:19 <oerjan> yay
20:39:25 <oerjan> twice11: ^
20:39:49 -!- Phantom_Hoover has joined.
20:39:50 -!- Phantom_Hoover has quit (Changing host).
20:39:50 -!- Phantom_Hoover has joined.
20:39:59 <oerjan> i guess it may not be an improvement over the flips
20:45:24 <NihilistDandy> http://wondermark.com/740/
20:46:41 <ais523> @pl liftM
20:46:41 <lambdabot> fmap
20:46:46 <ais523> bleh
20:47:01 <ais523> :t (return.) . (flip (>>=))
20:47:02 <lambdabot> forall (m :: * -> *) (m1 :: * -> *) a b. (Monad m, Monad m1) => (a -> m1 b) -> m1 a -> m (m1 b)
20:47:06 <ais523> umm, that's backwards
20:47:08 <bsmntbombdood> @t liftM
20:47:08 <lambdabot> Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v
20:47:11 <bsmntbombdood> @type liftM
20:47:12 <lambdabot> forall a1 r (m :: * -> *). (Monad m) => (a1 -> r) -> m a1 -> m r
20:47:16 <bsmntbombdood> @type fmap
20:47:16 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
20:47:20 <ais523> :t (flip (>>=)) . (return.)
20:47:20 <lambdabot> forall (m :: * -> *) a b. (Monad m) => (a -> b) -> m a -> m b
20:47:23 <ais523> there we go
20:47:33 <oerjan> <Lymee> @src seq
20:47:37 <ais523> I worked that out last night, and it increased my understanding of monads somewhat
20:47:43 <ais523> @src fmap
20:47:43 <lambdabot> Source not found. Your mind just hasn't been the same since the electro-shock, has it?
20:47:54 <ais523> @src liftM
20:47:54 <lambdabot> liftM f m1 = do { x1 <- m1; return (f x1) }
20:48:01 <ais523> I prefer my definition
20:48:11 <oerjan> seq cannot be defined in haskell, except for specific datatypes, and not at all e.g. for functions.
20:48:57 <oerjan> @undo do { x1 <- m1; return (f x1) }
20:48:57 <lambdabot> m1 >>= \ x1 -> return (f x1)
20:49:06 <oerjan> @pl m1 >>= \ x1 -> return (f x1)
20:49:06 <lambdabot> f `fmap` m1
20:49:12 <oerjan> heh
20:49:19 <pikhq> The power of Caleskell.
20:49:35 <oerjan> i don't think @pl is the same as caleskell
20:50:07 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
20:50:08 <pikhq> I thought the `fmap` there was, though.
20:50:18 <pikhq> In normal Haskell, that'd have a different type.
20:50:39 <oerjan> not really, @pl just doesn't distinguish liftM from fmap
20:50:49 <oerjan> any reasonably Monad should have them equal
20:50:55 <oerjan> *le
20:51:01 <bsmntbombdood> @pl (\a b c -> a c (b c))
20:51:01 <lambdabot> ap
20:51:28 <bsmntbombdood> @src ap
20:51:29 <lambdabot> ap = liftM2 id
20:54:11 -!- ais523 has quit (Remote host closed the connection).
20:56:23 <oerjan> <fizzie> CakeProphet: For a fixed arity, I suppose you can always work around the lack of (`f`) with (\x y -> (x`f`y)). Especially if you choose suitably easily overlookable Unicode characters for x and y. (\ו י -> (ו`f`י)) maybe?
20:56:45 <oerjan> um (`f`) _would_ be equivalent to (f) if it worked
20:57:02 <fizzie> Well, yes, but it doesn't.
20:57:18 <oerjan> i mean you can work around it by simply saying (f) :P
20:57:42 <fizzie> The "point" (I use the word very loosely) was to say "f" in a more complicated way.
20:57:47 <oerjan> O KAY
20:58:23 <oerjan> however (\x y -> (x`f`y)) is _not_ quite the same as f, if f is not a two-argument functino
20:58:28 <oerjan> *ion
20:58:40 <fizzie> Right, that's why it's just a workaround.
20:59:05 <olsner> functinos, the elementary particles of functional programming
20:59:08 <fizzie> An imperfect one, that is.
21:00:00 <fizzie> Deewiant gave a slightly better one a bit later.
21:02:13 <twice11> oerjan: Quite impressive, but really no improvement over the flips.
21:03:25 <oerjan> sadly so
21:04:08 <oerjan> :t uncurry(***)
21:04:08 <lambdabot> forall (a :: * -> * -> *) b c b' c'. (Arrow a) => (a b c, a b' c') -> a (b, b') (c, c')
21:18:56 -!- CakeProphet has quit (Ping timeout: 260 seconds).
21:27:48 -!- zzo38 has joined.
21:47:37 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:04:48 -!- TeruFSX has joined.
22:12:33 -!- TeruFSX has quit (Read error: Connection reset by peer).
22:14:55 -!- TeruFSX has joined.
22:17:04 <Sgeo> From Doctor Who WMG:
22:17:05 <Sgeo> "One of the Characters is a Time... oh, wait.
22:17:06 <Sgeo> "
22:20:12 <Sgeo> http://tvtropes.org/pmwiki/pmwiki.php/WMG/DoctorWho I'm loving this
22:20:25 <olsner> what is WMG?
22:20:34 <Sgeo> Wild Mass Guessing
22:20:45 <Sgeo> One theme in WMG pages is that one of the characters is a Time Lord
22:20:56 <Sgeo> So, in Doctor Who, well...
22:21:07 <NihilistDandy> SGEO IS A TIME LORD
22:21:27 <NihilistDandy> My favorite WMG was "The Doctor is *not* a Time Lord"
22:27:40 <olsner> "The Doctor is a fruit fly" this one rings true to me
22:29:17 <zzo38> I looked at ZPAQ and it seems to contain many redundant opcodes.
22:30:36 -!- TeruFSX has quit (Ping timeout: 276 seconds).
22:30:56 <zzo38> Opcodes 4, 136, and 196 are all equivalent.
22:31:04 <zzo38> Opcode 64 is useless.
22:31:30 <zzo38> Opcodes 224 and 232 are equivalent.
22:43:34 -!- NihilistDandy has quit (Quit: cookin').
22:45:16 -!- MDude has quit (Ping timeout: 240 seconds).
22:52:56 -!- elliott_ has joined.
22:56:34 <elliott_> 01:41:41: <Lymee> I'm doing the Mandelbrot set with this: length $ takeWhile ((<2) . magnitude) $ take maxIters $ iterate step $ 0.0 :+ 0.0
22:56:38 <elliott_> use . instead of chained dollars
22:56:39 <elliott_> hth
22:56:46 <elliott_> hi oerjan :P
22:56:50 <quintopia> i ate some mandelbrot today
22:57:04 <oerjan> g'day
23:07:55 <zzo38> Actually I think opcode 208 seems also equivalent to opcode 4
23:08:25 <zzo38> As well as opcode 160
23:09:11 <zzo38> No, wait... opcode 208 isn't.
23:10:46 <zzo38> But opcode 168 is the same as opcode 64, and opcode 176 is the same as opcode 4.
23:14:17 <zzo38> Actually I think opcode 160 might result in undefined behavior in some implementations if A is zero
23:19:33 <elliott_> 02:50:37: <Lymee> http://pastebin.com/PXcS0k5G < is my code horrible?
23:19:41 <elliott_> Lymee: don't use exception handling to handle your failed pattern match.
23:19:44 <elliott_> that's super gross
23:20:14 <elliott_> Lymee: also, add top-level type signatures, and ditch parseInt/parseDouble, they're just kludges for not declaring your types.
23:21:05 <elliott_> 03:09:45: <oerjan> well -O2 is effective, iirc -O3 sometimes gets worse, and i don't think there's a difference beyond that
23:21:14 <elliott_> oerjan: cabal does -O by default because -O[two] is usually wasteful
23:21:17 <elliott_> (nowadays)
23:22:40 <oerjan> well i corrected myself after actually looking at the manual
23:22:50 <elliott_> 03:24:57: <cheater_> http://www.malevole.com/mv/misc/killerquiz/
23:22:50 <elliott_> 03:25:52: <Lymee> Not funny.
23:22:50 <elliott_> 03:25:52: <Lymee> =p
23:22:50 <elliott_> it's ancient but mostly way too easy
23:23:14 <elliott_> 04:34:56: <CakeProphet> honestly are there programmers out there who think abstraction is in general bad?
23:23:14 <elliott_> yes, or more generally manual abstraction
23:23:34 <elliott_> there's some work on basically making copy-and-paste "safe", by the logic that we all do it anyway
23:23:39 <elliott_> and abstract automatically like that
23:23:45 <elliott_> subtext is IIRC based around that in part
23:24:16 <monqy> how does that work
23:25:11 <elliott_> monqy: by making changes of copied stuff turn into parameters, presumably
23:25:14 <elliott_> i mean, essentially
23:26:28 -!- azaq23 has joined.
23:26:59 <oerjan> elliott_: if he's not to use exception handling he'd have to use reads, which is rather more awkward there.
23:27:20 <elliott_> oerjan: so define a helper
23:27:26 <elliott_> ?hoogle (Read a) => String -> Maybe a
23:27:26 <lambdabot> Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a
23:27:26 <lambdabot> Network.CGI readCookie :: (Read a, MonadCGI m) => String -> m (Maybe a)
23:27:26 <lambdabot> Network.CGI readInput :: (Read a, MonadCGI m) => String -> m (Maybe a)
23:27:31 <elliott_> <lambdabot> Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a
23:27:32 <elliott_> oh come on
23:27:54 <oerjan> i suspect maybeRead is what you mean
23:27:55 <elliott_> 12:50:56: <Sgeo> http://www.reddit.com/r/programming/comments/ixkql/how_to_make_a_compiler_1000_times_faster/c27guh6 I... uh...
23:27:55 <elliott_> see response
23:28:04 <elliott_> oerjan: yeah but the module :P
23:28:45 <elliott_> 13:05:56: <Sgeo> http://sds.podval.org/ocaml-sucks.html is it just me or does this article have a mix of stupidity and insight?
23:28:46 <elliott_> i looked at this guy's homepage when i saw this and started ignoring him after seeing "support Israel's right to self-defense!" and a link to esr's Anti-Idiotarian Manifesto
23:29:00 <elliott_> but... that article on ocaml is pretty reasonable.
23:29:04 <Sgeo> elliott_, did you see my earlier log ping of you?
23:29:10 <elliott_> no
23:29:24 <elliott_> 08:59:54: <Sgeo> elliott, don't click this until you read new Homestuck update, but I just want to say I'm lolling at http://bit.ly/nJn669
23:29:35 <elliott_> i raged when i saw the first line with multiple commas about half-way through
23:29:39 <elliott_> but then i was laughing too hard to rage
23:31:00 <elliott_> Sgeo: it wasn't earlier.
23:31:19 <elliott_> 13:23:53: <itidus20> and they have the audacity to make claims on the computational power of the known universe
23:31:28 <elliott_> itidus20: it is not audacity to make predictions based on available evidence.
23:31:55 <itidus20> as long as they realize their own axioms are all fragile
23:32:12 <Sgeo> What does "fragile axiom" even mean?
23:32:23 <itidus20> it means that it will eventually break
23:32:37 <elliott_> ok, you've stopped making sense so i can't respond to that.
23:32:40 <Sgeo> I mean, sure, you could question whether some math equations actually do apply to the real world, but axioms are just...
23:33:04 <oerjan> well they _do_ know that, with the whole quantum mechanics vs. general relativity inconsistency
23:33:22 <Sgeo> Although I guess it is possible to eventually discover that commonly used axioms lead to a contradiction
23:33:50 <itidus20> there is no end to it.. every last axiom will probably get contradicted given sufficient "time"
23:34:04 <oerjan> @hoogle Read a => String -> a
23:34:04 <lambdabot> Prelude read :: Read a => String -> a
23:34:04 <lambdabot> Text.Read read :: Read a => String -> a
23:34:04 <lambdabot> Prelude readIO :: Read a => String -> IO a
23:34:14 <oerjan> er wait
23:34:21 <oerjan> @hoogle Read a => String -> m a
23:34:21 <lambdabot> Prelude readIO :: Read a => String -> IO a
23:34:21 <lambdabot> System.IO readIO :: Read a => String -> IO a
23:34:21 <lambdabot> Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a
23:34:33 <elliott_> itidus20: And you have the audacity to make claims about the strength of every axiom?
23:34:48 <elliott_> "as long as they realize their hypocrisy is fragile"
23:34:53 <oerjan> oh hm readIO could actually be used but it would be almost using exception handling :P
23:35:05 <elliott_> At least _they_ are experts in their field...
23:35:18 <elliott_> oerjan: it would involve using exception handling
23:35:26 <elliott_> ?hoogle IO a -> IO (Maybe a)
23:35:26 <lambdabot> System.Timeout timeout :: Int -> IO a -> IO (Maybe a)
23:35:26 <lambdabot> Control.Applicative optional :: Alternative f => f a -> f (Maybe a)
23:35:26 <lambdabot> Prelude Just :: a -> Maybe a
23:35:32 <itidus20> i guess i'm not actually helping anyone with my comments
23:35:44 <itidus20> more like a heckler
23:36:16 <elliott_> my point was not a personal one
23:37:24 <Sgeo> Every atheist would pretty much say that theologians are .. incorrect (well, every atheist who thinks about it.
23:37:26 <itidus20> we tend to claim that the one sure thing is death.. but we don't even know what that consists in.. death remains undefined
23:37:38 <Sgeo> And I still have reservations about saying "every atheist", but I think it makes sense here
23:37:50 <elliott_> Sgeo: for some specific definition of theology.
23:37:59 <elliott_> it is not impossible to make valid claims about beliefs and belief systems
23:38:19 <elliott_> if you think theology is just people saying "christianity is true" all day... well, lol @ you?
23:38:39 <elliott_> itidus20: "we"
23:38:45 <elliott_> The only time I ever hear that is coupled jokingly with "taxes"
23:39:00 <itidus20> ok i think whats happening is that i have left a chatroom full of people always trying to ram a belief down my throat of a spiritual nature, to a room full of computer scientists who can actually relax
23:39:08 <elliott_> And we know what death consists of, i.e. we know generally what the process of death involves
23:39:19 <Sgeo> elliott_, oh, I was considering theology to be more of an assumption that the underlying belief is true. Or at least contain such an assumption. Rather than things of the form "Christianity says this, Judaism says this" etc
23:39:25 <elliott_> Some people attach additional spiritual elements to that moment, but that's separate from what "death" actually involves as far as our universe is concerned
23:39:27 <itidus20> i'm still defensive.
23:39:46 <elliott_> Sgeo: Well, sure, it could take that form? But then it just has an implicit "If [belief] is true, then...".
23:40:06 <Sgeo> Hmm, ok
23:40:37 <elliott_> I don't know much about theology, but it seems that the only way it could consist entirely of false statements was if it was literally a party game involving saying that your religion is true
23:40:45 <elliott_> oblig.: And that's called church
23:41:15 <oerjan> elliott_: i suspect optional may actual do the right thing, assuming IO has the Alternative instance i expect
23:41:23 <itidus20> i was in a chatroom with a bunch of people who hated everyone
23:41:40 <elliott_> > optional (read ")" :: Int)
23:41:41 <lambdabot> Couldn't match expected type `f a'
23:41:41 <lambdabot> against inferred type `GHC.Types...
23:41:49 <elliott_> > optional (read ")" :: Int) :: IO (Maybe Int)
23:41:49 <lambdabot> Couldn't match expected type `GHC.Types.IO GHC.Types.Int'
23:41:49 <lambdabot> against i...
23:41:51 * elliott_ grumble
23:42:03 <elliott_> itidus20: no, we just hate Vorpal and cheater_ here ;-)
23:42:06 <elliott_> ?ty optional (read ")" :: Int) :: IO (Maybe Int)
23:42:07 <lambdabot> Couldn't match expected type `IO Int' against inferred type `Int'
23:42:07 <lambdabot> In the first argument of `optional', namely `(read ")" :: Int)'
23:42:07 <lambdabot> In the expression: optional (read ")" :: Int) :: IO (Maybe Int)
23:42:13 <itidus20> hehe
23:42:23 <elliott_> ?hoogle optional
23:42:23 <lambdabot> Control.Applicative optional :: Alternative f => f a -> f (Maybe a)
23:42:23 <lambdabot> Text.Parsec.Combinator optional :: Stream s m t => ParsecT s u m a -> ParsecT s u m ()
23:42:23 <lambdabot> Text.ParserCombinators.ReadP optional :: ReadP a -> ReadP ()
23:42:32 <elliott_> oerjan: I don't know if it has one
23:42:55 <elliott_> oh wait
23:42:57 <elliott_> I need a return
23:43:03 <elliott_> oerjan: IIRC that catching errors in IO doesn't catch pure errors
23:43:15 <elliott_> Prelude Control.Applicative Control.Exception> optional (evaluate (read ")") :: IO Int)
23:43:15 <elliott_> <interactive>:1:1:
23:43:15 <elliott_> No instance for (Alternative IO)
23:44:05 <elliott_> http://esolangs.org/w/index.php?title=User:Alexanderdna&curid=4076&diff=24010&oldid=24004
23:44:09 <elliott_> grmbl
23:44:17 <elliott_> oerjan: can i say grml is that o.k.
23:44:31 <itidus20> but among those hateful people i did find one guy who started to teach me actual things
23:46:13 <itidus20> I am confused about the truth of axioms.
23:46:34 <itidus20> Clearly they work.
23:47:04 <itidus20> The numbers 0,1,2,3,4,5 can be expected to hold firm for millions of years
23:47:12 <elliott_> > mzero :: IO ()
23:47:13 <lambdabot> Overlapping instances for Control.Monad.MonadPlus GHC.Types.IO
23:47:13 <lambdabot> arising f...
23:47:14 <itidus20> billions etc
23:47:17 <elliott_> oerjan: argh
23:47:23 <elliott_> oerjan: (there is:
23:47:26 <elliott_> MonadPlus m => Alternative (WrappedMonad m)
23:47:26 <elliott_> (ArrowZero a, ArrowPlus a) => Alternative (WrappedArrow a b))
23:48:16 <itidus20> but the question then is can the countability of things dissapear ever? or rather... can the potential of someone to exist who can count ever dissapear?
23:48:30 <itidus20> can any potential ever dissapear?
23:49:01 <itidus20> and what is the substance of which potentials are made :-?
23:49:30 <elliott_> does there have to be a substance
23:49:36 <itidus20> nope
23:50:50 <itidus20> so, then the question probably becomes, what are the dependant factors of potential
23:51:22 <itidus20> i mean, what is potential dependant upon
23:51:38 <itidus20> and i'd rather make a coffee than worry about that right now
23:53:03 <elliott_> oerjan: hm try :: Exception e => IO a -> IO (Either e a)
23:53:23 <elliott_> ?hoogle \a b -> catch a (const b)
23:53:23 <lambdabot> Parse error:
23:53:23 <lambdabot> --count=20 "\a b -> catch a (const b)"
23:53:23 <lambdabot> ^
23:53:27 <elliott_> ?pl \a b -> catch a (const b)
23:53:27 <lambdabot> (. const) . catch
23:53:29 <elliott_> oh duh
23:53:32 <elliott_> ?pl \b -> catch a (const b)
23:53:32 <lambdabot> catch a . const
23:53:42 <elliott_> instance Alternative IO where
23:53:42 <elliott_> empty = ioError (userError "empty")
23:53:42 <elliott_> (a <|> b = try a (const b)
23:53:43 <elliott_> anyway
23:53:46 <elliott_> erm without paren
23:54:15 <oerjan> <itidus20> [...] to a room full of computer scientists who can actually relax <-- you _do_ realize there are a considerable number of sometimes a bit insistent atheists in here, right?
23:56:17 <itidus20> atheism means an army without a leader :D
23:56:26 <itidus20> means peace? maybe :P
23:56:47 <itidus20> Richard Dawkins perhaps.
23:56:55 <elliott_> richard dawkins is an asshole
23:57:10 <itidus20> Someone noticed he looks like Emma Watson
23:57:14 <elliott_> does christianity have a leader? buddhism?
23:57:15 <elliott_> what
23:57:39 <itidus20> http://images.icanhascheezburger.com/completestore/2008/10/6/128677918460759115.jpg
23:57:49 <itidus20> a percieved god is a leader
23:57:50 <elliott_> oh right that
23:58:07 <elliott_> itidus20: plenty of buddhist sects are atheistic (in the technical sense)
23:58:27 <itidus20> ya.. the room i was in was full of buddhists.. but that doesn't make me a buddhist. i was more a spectator
23:58:38 <monqy> sgeo goes to #jesus
23:58:41 <monqy> or at least he used to
23:58:46 <oerjan> <elliott_> > optional (read ")" :: Int) <-- sheesh i meant with readIO duh
23:58:52 <monqy> hes totaly a christan
23:58:57 <itidus20> i'm more level headed than most of them
23:59:00 <elliott_> oerjan: o irte
23:59:13 <itidus20> ok not most of them
23:59:22 <itidus20> but teres a few ya see who are just completely nuts
←2011-07-23 2011-07-24 2011-07-25→ ↑2011 ↑all