00:01:02 <shachaf> toListOf (both.traverse) :: Traversable t => (t a, t a) -> [a]
00:02:30 <shachaf> Applicative f => (a -> f b) -> (a,a) -> f (b,b)
00:02:56 <shachaf> I charge 14 pence per ghci query from now on.
00:03:12 <shachaf> Do they still have pence in wherever-you-are?
00:05:00 <shachaf> elliott: Does a Lens (Either a a) a make sense?
00:06:19 <elliott> shachaf: Traversal (a, a) a also makes sense
00:06:27 <shachaf> Hmm, choosing :: Functor f => LensLike f a b c c -> LensLike f a' b' c c -> LensLike f (Either a a') (Either b b') c c
00:07:08 <shachaf> Except I wrote it out for some reason.
00:11:29 <shachaf> elliott: Did you see my GHC bug report?
00:14:41 -!- copumpkin has joined.
00:16:55 <shachaf> http://hackage.haskell.org/trac/ghc/ticket/7364
00:17:48 <elliott> shachaf: more reasons _|_ is bad
00:17:58 <shachaf> _|_ is terrible. That's why I use ⊥.
00:18:08 <shachaf> elliott: Anyway remember how I kept getting confused about semantics of that sort of thing?
00:19:01 <elliott> shachaf: isn't cutting off compiler optimisations for bad semantic reasons great!
00:19:04 <elliott> especially when nobody likes _|_s anyway!
00:33:42 -!- Nisstyre has joined.
00:40:37 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:46:18 -!- Nisstyre has quit (Ping timeout: 260 seconds).
00:50:31 <shachaf> 17:48 <gianp> λx.x is equivalent to λy.y up to alpha-conversion, in the same way that your startup is equivalent to a startup with a good name, up to alpha-conversion.
00:52:09 <monqy> is this about how all startups are the same and badly named
00:52:16 <monqy> I'm not in the know!!
01:27:13 <kmc> http://amoffat.github.com/sh/ is so cool
01:31:18 -!- elliott has quit (Ping timeout: 264 seconds).
01:35:12 <Sgeo> monqy, arpderp
01:35:20 <Sgeo> tswett, you too
01:39:34 <kmc> i'm hoping this is the magic library that makes python actually pleasant for shell scripty things
01:42:06 -!- Nisstyre has joined.
01:59:36 -!- Nisstyre has quit (Ping timeout: 240 seconds).
02:04:31 <pikhq> kmc: Looks like it.
02:04:53 <kmc> already hit a few snags
02:05:06 <kmc> like apparently i can run foo-bar as sh.foo_bar(), but not git ls-files as git.ls_files()
02:05:19 <kmc> even though subcommands like git.show() are supported generally
02:05:27 <kmc> still, pretty nice
02:10:45 <pikhq> It's a freaking shell FFI.
02:14:17 -!- Nisstyre has joined.
02:16:23 <kmc> it's like ctypes for shell
02:16:48 <kmc> but more useful because "everything is a string" is a better universal type lie than "everything is a machine word"
02:18:26 <kmc> but ctypes is useful too
02:18:46 <kmc> sometimes i want to make nearly raw system calls, but do so from a language with real data types and abstractions
02:18:54 <kmc> *cough* kernel exploits *cough*
02:57:27 -!- Canaimero-f560 has joined.
02:59:06 -!- Canaimero-f560 has left.
03:16:11 -!- Nisstyre has quit (Read error: Operation timed out).
03:24:41 -!- Nisstyre has joined.
04:32:31 <kmc> oh jesus, nested heredocs
04:45:30 * pikhq did not realize those "see no evil, hear no evil, speak no evil" monkeys were the result of a Japanese *pun*.
04:47:02 <pikhq> "See no, hear no, speak no" in moderately archaic Japanese is "mizaru, kikazaru, iwazaru". And "seeing monkey, hearing monkey, speaking monkey" can be "mizaru, kikazaru, iwazaru".
04:48:40 <Bike> I thought most everything in Japanese was a pun.
04:49:15 <pikhq> Though wordplay isn't exactly unusual in Japanese.
05:11:27 -!- hagb4rd|afk has joined.
05:12:30 -!- hagb4rd|afk has changed nick to hagb4rd.
05:34:20 <hagb4rd> an astronaut on nasa tv: "th most important thing we have the discovered on the moon is the earth"
05:58:51 -!- FreeFull has quit.
06:23:53 <Sgeo> Maybe the Common Lisp quine will help me understand quines
06:24:15 -!- oklopol has quit (Ping timeout: 256 seconds).
06:24:26 <Bike> what's to understand?
06:25:23 <Bike> backslashes. ruined
06:26:19 <Sgeo> That one's actually more understandable
06:26:21 <shachaf> > text$ap(++)show"text$ap(++)show"
06:26:29 <shachaf> Sgeo: Pretty much all quines work that way.
06:26:39 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
06:26:56 <Bike> «(#1=(lambda (x) `(,x ',x)) '#1#)» i hope this has been enlightening
07:01:11 -!- epicmonkey has joined.
07:20:29 -!- Bike has quit (Quit: there is no).
07:26:42 -!- epicmonkey has quit (Ping timeout: 260 seconds).
07:29:24 -!- Frooxius has joined.
07:37:01 -!- ais523 has quit.
07:45:10 -!- Phantom_Hoover has joined.
08:07:58 -!- carado has joined.
08:27:29 -!- carado has quit (Ping timeout: 244 seconds).
08:40:57 -!- carado has joined.
08:48:30 -!- epicmonkey has joined.
08:51:12 -!- ais523 has joined.
09:12:19 -!- sivoais has quit (Quit: Lost terminal).
09:53:27 -!- ais523 has quit (Read error: Connection reset by peer).
09:53:40 -!- ais523 has joined.
10:01:34 -!- ais523 has quit (Read error: Connection reset by peer).
10:01:38 -!- ais523_ has joined.
10:13:47 -!- monqy has quit (Quit: hello).
10:29:01 -!- epicmonkey has quit (Remote host closed the connection).
10:29:20 -!- epicmonkey has joined.
11:01:58 -!- ais523_ has quit (Ping timeout: 244 seconds).
11:16:40 -!- Arc_Koen has quit (Quit: that's dr. turing to you, punk).
11:45:36 -!- sivoais has joined.
12:53:30 -!- Arc_Koen has joined.
12:59:46 -!- boily has joined.
13:02:51 <Arc_Koen> what's the opposite of verbose?
13:03:18 <Arc_Koen> for instance how 'd you call a language where there are only symbols and no text at all
13:03:29 <fizzie> "Quiet" is quite often used in terms of command line arguments.
13:03:36 <fizzie> But a "quiet language" sounds a bit silly.
13:03:59 <fizzie> ion: TERSE is a trademark of JimNeiL, you can't use it.
13:04:18 <fizzie> (Though possibly only when spelled uppercase like that.)
13:04:20 <Arc_Koen> "terse" seems to imply you're using words, but no more than the right amount
13:04:43 <fizzie> (And I have to admit I couldn't actually find these trademark registrations in any databases.)
13:13:45 -!- carado has quit (Ping timeout: 268 seconds).
13:24:54 <fizzie> Perhaps "APLy", to coin an adjective.
13:26:00 <ion> Better not use APL, Apple will sue you.
13:41:51 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:42:08 -!- elliott has joined.
13:58:34 -!- Phantom__Hoover has joined.
13:58:59 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
14:01:16 -!- copumpkin has joined.
14:20:30 -!- copumpkin has quit (Ping timeout: 264 seconds).
14:25:51 -!- copumpkin has joined.
14:29:01 -!- pumpkin has joined.
14:30:26 -!- copumpkin has quit (Ping timeout: 255 seconds).
14:30:26 -!- pumpkin has changed nick to copumpkin.
14:45:23 <tswett> I just took a psychological survey. The question it asked was kind of amusing.
14:45:33 -!- epicmonkey has quit (Remote host closed the connection).
14:45:39 <tswett> You see, there's this runaway trolley.
14:45:44 -!- epicmonkey has joined.
14:45:59 <tswett> On the track in front of a trolley, there are five oak branches. If the trolley hits the oak branches, the branches will be destroyed.
14:46:38 <tswett> However, there is a footbridge above the track that has one large oak branch on it. You can push the branch off the bridge and onto the track.
14:47:29 <tswett> If you do, the one large oak branch will be destroyed, but it will stop the trolley, causing the other five oak branches to remain intact.
14:47:34 <tswett> Is it morally acceptable to do this?
14:49:07 <elliott> is the joke that the oak branches are people
14:51:26 -!- augur has quit (Remote host closed the connection).
15:01:06 <mroman> Why the fuck does burlesque have no binary shifts!
15:01:53 <mroman> *2 should do the trick.
15:02:22 <Arc_Koen> tswett: well that depends, aren't you concerned that stopping the trolley might be too big a side-effect?
15:02:46 <tswett> I guess it may be, yeah. I didn't think about that.
15:04:23 <Arc_Koen> well I'll let you think about it, see you later
15:04:37 -!- Arc_Koen has quit (Quit: that's dr. turing to you, punk).
15:10:13 -!- atriq has joined.
15:12:34 <atriq> I need to say more stupid things in #haskell
15:12:56 <atriq> Or be less of an attention seeker
15:16:46 <atriq> I've had one quote on the Haskell Weekly Blog, ever
15:17:41 <elliott> clearly i am a better person than you
15:18:20 <atriq> I'm gonna find that list of stupid things I've said
15:22:45 <HackEgo> 2012-08-18.txt:16:48:55: <atriq> The one in New York'd be my guess
15:25:46 <Phantom__Hoover> (That thing actually has an onboard microprocessor to calibrate and alternate the engine voltage because that's very slightly lighter than mechanical alternatives.)
15:27:14 -!- augur has joined.
15:27:36 <atriq> Having ice cream for lunch was either a very good or a very bad idea
15:28:38 <lambdabot> The operator `GHC.Base.$' [infixr 0] of a section
15:31:32 <kmc> ice cream for lunch, bonghits for dinner
15:43:22 -!- oerjan has joined.
15:52:55 <oerjan> it's been on a long hiatus
15:53:11 <oerjan> also, http://www.drivecomic.com/
15:54:06 <atriq> TVTropes just used "whom" incorrectly
15:54:31 <atriq> It's the case of the subjunctive clause, not the main cause, that decides whether it's "who" or "whom"
15:54:43 <atriq> ...says the person who never ends a sentence with a full stop
15:55:39 -!- Phantom__Hoover has quit (Ping timeout: 260 seconds).
15:55:56 <pikhq> atriq: And in many idiolects, it's just "who".
15:56:23 <atriq> pikhq, the fact that they're using the word "whom" implies they are not using one of those idolects
15:58:15 <oerjan> we should not tolerate whomsoever would do such a horrible thing
15:58:47 <elliott> oerjan: did you ever see my awful haskell horror
15:59:21 <elliott> oerjan: http://hpaste.org/76553
16:01:54 <oerjan> i still think we should not tolerate whomsoever would do such a horrible thing
16:02:14 <atriq> I've edited the article in question
16:02:39 <atriq> (Must Have Caffeine, in the entry for the Big Bang Theory)
16:08:45 -!- mindlessDrone has joined.
16:09:18 <oerjan> ah i've been having an opportunity to watch tv recently, which has finally brought me in contact with that series.
16:09:42 <oerjan> i have far too many similarities to Sheldon. not the lack of empathy, but otherwise...
16:10:51 <oerjan> does "all" refer to just this channel, or most people...
16:11:04 <kmc> that show is so bad
16:12:44 <kmc> Big Bang Theory is really bad
16:14:09 <kmc> hey let's make an unfunny laugh track multicamera sitcom except we base it around nerd stereotypes instead of racial stereotypes and gay people stereotypes and NOW NERDS LOVE US
16:14:30 <kmc> nerds don't act that way
16:14:32 <kmc> people don't act that way
16:14:53 <kmc> that type of sitcom is really just a vehicle for delivering one liner jokes
16:15:05 <kmc> i could just watch standup comedy instead and be infinitely less annoyed
16:15:24 <oerjan> but are your reasons for hating it themselves nerdy? *ducks*
16:15:38 <elliott> kmc: it wouldn't even be so objectionable if it was, you know, actually funny
16:15:39 <kmc> who gives a shit
16:16:26 <kmc> i have watched a fair amount of BBT and also a fair amount of two and a half men (same creater)
16:16:34 <kmc> and then one day i was just like "why?????"
16:16:36 <oerjan> next you'll tell me you also hate phineas & ferb, the other show i've just started watching
16:16:50 <kmc> i've never seen phineas & ferb, and i have no opinion on it
16:17:00 <kmc> i mean if you enjoy BBT, then go ahead and watch it, don't let me tell you not to like something
16:17:23 <kmc> it's not like i didn't ever laugh while i was watching it
16:18:24 <oerjan> i did get a glimpse of two and a half men too, and i didn't like that
16:20:27 <atriq> Trivia: Big Bang Theory doesn't actually have a laugh track
16:21:12 <elliott> clearly we have differing definitions of laugh track.
16:21:29 <atriq> It's filmed in front of a live audience
16:21:43 <kmc> these things are technically different, but you take my meaning
16:21:47 <elliott> that's still a laugh track
16:21:59 <elliott> it exists for the purpose of putting laughs in because that makes people laugh more
16:22:10 <kmc> either way it completely changes the pacing of the show
16:22:14 <elliott> and i suspect most "live audiences" are directed when to laugh, or at least mixed misleadingly
16:22:32 <kmc> the characters will say something and then just stand there for 1-2 seconds while people laugh
16:22:36 <elliott> there are good sitcoms with laugh tracks
16:22:54 <elliott> it probably wouldn't lose much if it didn't have the laugh track though
16:23:01 <kmc> That Mitchell and Webb Look has a laugh track and is very good, but it's sketch comedy
16:23:27 <kmc> i think Peep Show doesn't
16:23:31 <kmc> can't recall
16:25:26 <Robdgreat> though it's amazing how little attention I pay to things like that
16:32:19 -!- FreeFull has joined.
16:37:44 <oerjan> ^ul (((1)S:^)(!(0)S:^)):^(^!^!^^!^^^!^)^
16:38:30 <oerjan> ^ul (S:):((x)~^(y)~^(z)~^)^
16:38:51 <oerjan> ^ul ((:a~*(x)):a~*(x))(~^S~:^):^
16:38:51 <fungot> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...too much output!
16:39:12 <oerjan> ^ul (((x))(!(y))(!!(z)))^!^S
16:39:29 <oerjan> ^ul (((9)S)(!(8)S)(!!(7)S)(!!!(6)S)(!!!!(5)S)(!!!!!(4)S)(!!!!!!(3)S)(!!!!!!!(2)S)(!!!!!!!!(1)S)(!!!!!!!!!(0)S))^(!)(::*:**)^^^
16:42:28 <oerjan> Excellent, the examples all work
16:43:29 -!- Vorpal has joined.
16:43:48 -!- oerjan has quit (Quit: Supper).
16:45:14 -!- atriq has quit (Quit: Leaving).
16:49:19 <lambdabot> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
16:51:13 <fizzie> Which examples were those?
16:51:24 <fizzie> Oh, there isn't an oerjan any more.
16:58:19 -!- barts__ has joined.
17:01:38 -!- barts_ has quit (Ping timeout: 260 seconds).
17:10:11 -!- Phantom__Hoover has joined.
17:16:54 -!- epicmonkey has quit (Ping timeout: 264 seconds).
17:35:35 <Gregor> pikhq: How does Go implement interface method dispatch when interfaces are entirely implicit? PICs.
17:36:03 <Gregor> Straight from Rob Pike.
17:36:42 <kmc> meaning what?
17:37:00 -!- lowtax has left ("Leaving").
17:37:24 <Gregor> Polymorphic inline cache. It inlines particular addresses to dispatch to based on particular types.
17:40:34 <elliott> Gregor: what's the context here
18:28:22 <tswett> > let xs = 0 : zipWith (\x y -> 1 + x + 3*y) xs (concatMap (\x -> [x,x]) xs)
18:28:23 <lambdabot> not an expression: `let xs = 0 : zipWith (\x y -> 1 + x + 3*y) xs (concatMa...
18:28:26 <tswett> > let xs = 0 : zipWith (\x y -> 1 + x + 3*y) xs (concatMap (\x -> [x,x]) xs) in xs
18:28:27 <lambdabot> [0,1,2,6,10,17,24,43,62,93,124,176,228,301,374,504,634,821,1008,1288,1568,1...
18:29:47 -!- epicmonkey has joined.
18:31:15 -!- Gregor has quit (Excess Flood).
18:31:23 -!- Gregor has joined.
18:37:10 -!- Nisstyre has quit (Read error: Operation timed out).
18:37:30 <tswett> I'm pondering a notion of "bigness" of numbers. Let's define the number 3 has having a bigness of 1, 3 -> 3 as having a bigness of 2, 3 -> 3 -> 3 as having a bigness of 3, 3 -> 3 -> 3 -> 3 as having a bigness of 4, and so on.
18:38:00 <tswett> Graham's number must then have a bigness between 3 and 4. So what should its bigness be, exactly?
18:39:15 <tswett> Well, that's the same as... 2 -> 6 -> 4, I think? So it looks like its bigness is around 3.
18:40:37 <tswett> It's 2 ^^^^ 6, or 2 ^^^ 2 ^^^ 2 ^^^ 2 ^^^ 2 ^^^ 2. I'm reasonably sure its bigness is greater than 3, then, since 3 -> 3 -> 3 is only 3 ^^^ 3.
18:42:23 -!- mindlessDrone has left.
18:51:23 <elliott> @tell ais523 tavern isn't run by the devs
18:51:28 <tswett> TREE(3) could very well have a very large bigness.
18:53:17 <olsner> what happened to oerjan?
18:54:35 <fizzie> A very long supper, based on the quit message.
18:54:53 <fizzie> Actually I suppose it's been only two hours so far, that's not so long.
19:16:22 * tswett ponders what's between 3 -> 3 -> 3 -> 2 and 3 -> 3 -> 3 -> 3.
19:16:54 <tswett> What's a simple number that's subjectively midway between them?
19:17:02 * copumpkin wonders what the first decimal digit of TREE(3) is
19:17:12 <tswett> The way that 3 -> 3 -> 3 -> 2 is subjectively midway between 3 -> 3 -> 3 -> 3 and 3 -> 3 -> 3 -> 1.
19:19:00 <copumpkin> or even the first digit of graham's number
19:19:50 <coppro> tsethat's a silly definition
19:19:59 <coppro> *tswett: that's a silly definition
19:20:16 <tswett> It's not a definition at all; it's an example.
19:20:21 <coppro> 4 has bigness 2 and 1 by your def
19:21:21 <tswett> You're overgeneralizing. This definition of bigness is only for numbers of the form 3 -> 3 -> ... -> 3 -> 3.
19:22:27 <coppro> then Graham's number has no bigness
19:22:34 <tswett> FreeFull: Wikipedia says that's (2 -> 103 -> 98) - 3.
19:22:39 <tswett> Well, its bigness is, so far, undefined.
19:25:49 -!- augur has quit (Remote host closed the connection).
19:26:10 <tswett> Lessee. If you define E(n) as 3 -> 3 -> (n) -> 2, then 3 -> 3 -> 3 -> 2 is E(3) whereas 3 -> 3 -> 3 -> 3 is... E(E(27)), I guess. And 27 = E(1).
19:26:29 <tswett> What's subjectively midway between E(3) and E(E(E(1)))? I dunno. E(E(2))?
19:27:44 -!- augur has joined.
19:28:23 -!- Bike has joined.
19:31:26 <tswett> If I could just think of a function that takes 3 to 3 -> 3, 3 -> 3 to 3 -> 3 -> 3, 3 -> 3 -> 3 to 3 -> 3 -> 3 -> 3, and so on...
19:31:45 -!- Nisstyre has joined.
19:37:09 <FreeFull> Unless you mean 3 -> 3 becomes 3 -> 3 -> 3 -> 3 -> 3
19:52:26 <fizzie> FreeFull: That's not how -> works.
19:53:24 <fizzie> See http://en.wikipedia.org/wiki/Conway_chained_arrow_notation#Interpretation
19:56:46 <fizzie> 2 -> 3 -> 2 is not 2 -> (3 -> 2), nor is it (2 -> 3) -> 2.
19:59:08 <Bike> fast growing function, then.
20:09:33 -!- augur has quit (Read error: Connection reset by peer).
20:09:59 -!- augur has joined.
20:21:10 -!- copumpkin has changed nick to john_smith.
20:23:17 -!- john_smith has changed nick to copumpkin.
20:29:38 -!- epicmonkey_ has joined.
20:29:47 -!- epicmonkey has quit (Ping timeout: 244 seconds).
21:17:49 -!- carado has joined.
21:24:07 -!- monqy has joined.
21:25:01 <shachaf> hi monqy, elliott, monqy, shachaf
21:25:35 -!- carado has quit (Ping timeout: 244 seconds).
21:29:09 -!- boily has quit (Quit: Poulet!).
21:41:38 -!- epicmonkey_ has quit (Ping timeout: 260 seconds).
21:52:25 -!- Arc_Koen has joined.
21:53:33 -!- Vorpal has quit (Ping timeout: 276 seconds).
22:02:07 -!- FreeFull has quit (Quit: Sleeep? Sleep! ???).
22:02:22 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:19:18 -!- augur has quit (Remote host closed the connection).
22:23:35 -!- copumpkin has joined.
22:41:10 <tswett> Hm. Conway's chained arrow notation makes sense for ordinal numbers.
22:42:28 <tswett> Let w = omega. Then w -> w is simply w^w. w -> w -> w is... I guess we have to say it's the limit of w -> w -> n for natural numbers n.
22:42:47 <coppro> tswett: any extension of arithmetic does, pretty much
22:43:34 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).
22:44:50 <tswett> Which... let's assume that it still corresponds to up-arrow notation; that means w -> w -> w is the limit of w ^(n) w for natural numbers n, where ^(n) is n up-arrows.
22:46:53 <tswett> w ^(2) w is epsilon_0, isn't it? Then I have no idea what w ^(3) w is, and w ^(w) w must be really, really big.
22:47:27 -!- augur has joined.
22:49:22 -!- Phantom_Hoover has joined.
22:51:04 <tswett> Yeah. http://en.wikipedia.org/wiki/Epsilon_nought
23:49:51 <kmc> http://phpmanualmasterpieces.tumblr.com/
23:54:01 <kmc> Tex Wasabi Rock-N-Roll Sushi BBQ