←2012-01-24 2012-01-25 2012-01-26→ ↑2012 ↑all
00:00:39 -!- ais523 has quit (Remote host closed the connection).
00:02:06 -!- SgeoN1 has joined.
00:02:29 <SgeoN1> The course I'm currently enrolled in seems to be sucking VMware's dick
00:03:32 <SgeoN1> It is apparently an authorized course towards a VMware Certified Professional thing
00:03:46 -!- SgeoN1 has quit (Read error: Connection reset by peer).
00:04:07 -!- SgeoN1 has joined.
00:13:04 <SgeoN1> The book has some obnoxious DRM
00:13:40 <SgeoN1> Requires certain software, grand total of two registrations, after that it's locked out. And I can only buy the book once.
00:24:32 <pikhq> Friendly reminder, you're in a course of study with as much use and merit as a degree in basket-weaving.
00:24:56 <oklofok> hey we all need baskets sometimes.
00:25:10 <oklofok> don't exaggerate its usefulness.
00:27:46 <oklofok> well i mean i don't
00:28:01 <oklofok> what the heck would i put in a a
00:28:07 <oklofok> and when i say a
00:28:09 <oklofok> i mean basket.
00:28:36 <SgeoN1> I can't get a BS easy job with this certification?
00:29:07 <oklofok> who knows, i only skimmed the backlog
00:29:38 <oklofok> but pikhq is a basket expert, he should know
00:33:51 -!- oerjan has quit (Quit: The handbasket to Hell).
00:34:05 <pikhq> I'm referring to your entire "IT" degree.
00:34:21 <pikhq> Which basically doesn't matter.
00:45:49 <SgeoN1> kallisti: update
00:46:52 <SgeoN1> @tell elliott Update
00:46:52 <lambdabot> Consider it noted.
00:46:56 -!- Klisz has changed nick to unelsone.
00:47:07 -!- unelsone has changed nick to Klisz.
00:49:56 -!- SgeoN1 has quit (Read error: Connection reset by peer).
00:50:14 -!- SgeoN1 has joined.
00:50:47 -!- Klisz has changed nick to Ienpw_IV.
00:52:13 -!- Ienpw_IV has changed nick to Klisz.
01:12:17 -!- SgeoN1 has quit (Read error: Connection reset by peer).
01:12:35 -!- SgeoN1 has joined.
01:24:59 -!- sebbu2 has changed nick to sebbu.
01:30:51 -!- SgeoN1 has quit (Ping timeout: 245 seconds).
01:30:55 -!- SgeoN2 has joined.
01:36:31 -!- SgeoN2 has quit (Quit: Bye).
01:59:50 <pir^2> Is Iota defined as being lazy?
02:01:41 <kallisti> not that I'm aware of.
02:02:34 <kallisti> I believe it has call-by-name semantics though
02:04:06 <pir^2> okay
02:04:39 <kallisti> well, call-by-name in some sense
02:04:44 <kallisti> it's essentially just term rewriting.
02:05:53 <kallisti> DateFuck is an esolang designed for use in creating text-based dating sims and text adventures. It is (probably) Turing complete, and consists entirely of printing, xor, and implied jumps. It contains no instructions, and has no data storage, save from the program counter itself.
02:05:58 <kallisti> i...
02:12:02 <pir^2> it's not clear to me how it works?
02:12:13 <pir^2> What does "Hello Sailor" mean?
02:12:31 <pir^2> oh, got it
02:40:44 <itidus20> sounds like the sort of language i came here to learn about :D
02:40:53 -!- itidus20 has changed nick to itidus21.
02:41:17 <itidus21> i really need a new nick
02:41:26 <kallisti> funkmasterflex
02:41:28 <kallisti> good nick.
02:41:34 <kallisti> ifunkmasterflex
02:41:59 <itidus21> its just that a) it's a copy of a video game characters name, and b) it has a meaningless number tacked on
02:42:21 <itidus21> otherwise i have no issues with it
02:42:55 <itidus21> kallisti: lets leave it up to your language bot
02:43:21 <itidus21> how does it work again?
02:43:53 <itidus21> i want to ask it for 50 english-like words
02:44:28 <itidus21> with a maximum length of 9 if possible but not a big deal
02:45:36 <itidus21> `log words 50
02:46:09 <HackEgo> 2012-01-04.txt:22:10:36: <kallisti> `words 50
02:46:14 <itidus21> aha
02:46:32 <itidus21> `words 50
02:46:39 <HackEgo> perre mei fingresem innoshiel mani integul hetkelectiv douth lupatalappr veratho matu phylatbe arally cabinder bepnveeet heim ishe kyn enfessle krangencilitu ved theadwhoorl femon stocya meek
02:46:54 <itidus21> i won't worry about the english or the 9
02:47:16 <itidus21> `words 50
02:47:22 <HackEgo> mar bal nontrem hoot liganderade orick nior whelm yer okton depio inflnergerwin penda ere fruisition fuz bergi volk cognie jollilite consobe colon cally aste firma
02:47:29 <itidus21> i know its just 25 but so what
02:50:50 <itidus21> kallisti: when i suggested the esolangs for the language bot i didn't think about how they sort of miss the point of the project. so it won't hurt my feelings if they are removed
02:54:03 <itidus21> if i was going to change my id i would certainly use one of those words but then noone would know who i was
03:01:58 -!- augur has quit (Remote host closed the connection).
03:33:56 -!- augur has joined.
03:36:02 -!- augur has quit (Remote host closed the connection).
03:36:11 -!- augur has joined.
03:37:03 -!- pikhq_ has joined.
03:39:52 -!- pikhq has quit (Ping timeout: 255 seconds).
03:42:06 -!- Frooxius_ has joined.
03:43:19 -!- Frooxius_ has quit (Client Quit).
03:44:00 -!- Frooxius has quit (Ping timeout: 252 seconds).
03:44:22 -!- Frooxius has joined.
03:45:05 -!- Frooxius has quit (Client Quit).
04:06:09 <kallisti> is perfect play still possible in a game with imperfect information?
04:06:31 <kallisti> if so, wouldn't it simply be a lucky guess?
04:09:23 -!- Frooxius has joined.
04:10:09 -!- Frooxius has quit (Client Quit).
04:10:25 -!- Frooxius has joined.
04:10:43 <Sgeo> Paper, rock, scissors, bomb. Paper beats rock, rock beats scissors, scissors beats paper, bomb beats paper, rock, scissors, and in event of a tie with two bombs, taller person wins. You are the taller person. Is there a perfect play?
04:11:38 <kallisti> ..yes
04:11:50 <kallisti> however
04:12:08 <kallisti> the lack of information really does not affect the outcome in any way.
04:12:14 <kallisti> I think that counts as a trivial case.
04:13:26 <kallisti> or rather, I should say
04:13:31 <kallisti> it affects the outcome, but not your chances of winning
04:14:01 <kallisti> because you /could/ choose rock paper or scissors
04:14:25 <kallisti> which would then mean that the imperfect information affects the outcome of the game
04:18:52 -!- pir^2 has quit (Quit: Bye!).
04:28:49 -!- zak007 has joined.
04:29:28 -!- Frooxius has quit (Ping timeout: 245 seconds).
04:44:28 -!- Frooxius has joined.
04:46:49 -!- zak007 has left.
04:48:19 -!- DCliche has joined.
04:51:28 -!- Klisz has quit (Ping timeout: 252 seconds).
04:53:58 -!- clog has quit (Ping timeout: 248 seconds).
04:56:38 -!- Nisstyre has quit (Quit: Leaving).
05:23:50 -!- Frooxius_ has joined.
05:25:37 -!- Frooxius has quit (Ping timeout: 255 seconds).
05:25:47 -!- Frooxius_ has changed nick to Frooxius.
05:31:30 -!- Frooxius has quit (Read error: Connection reset by peer).
05:34:33 <Sgeo> kallisti, update
05:37:49 -!- Frooxius has joined.
05:40:50 -!- clog has joined.
05:51:06 <kallisti> oh cool
05:51:12 <kallisti> I didn't realize the negation of a biconditional is an xor
05:51:20 <kallisti> but that's pretty easy to see now.
05:56:44 <ion> Hehe, just a few hours ago i had a facepalmy moment when wondering whether Haskell’s Data.Bool doesn’t have a xor/nxor and then immediately realizing nxor’s (==).
06:03:25 -!- pikhq has joined.
06:03:25 -!- pikhq_ has quit (Quit: Reconnecting).
06:11:21 -!- DCliche has quit (Ping timeout: 240 seconds).
06:17:36 <kallisti> wait what how do I write a truth table for a quantified statement
06:17:39 <kallisti> over the real numbers....
06:17:59 <kallisti> oh
06:18:05 <kallisti> I misread truth VALUE as truth TABLE
06:18:08 <kallisti> I was like "...whut?"
06:32:03 * kallisti invents an esolang that RUNS FASTER THAN ASSEMBLY.
06:32:48 <kallisti> this may seem like a nonsensical statement, but that's because you're stuck in your <insert negatively projected paradigm> and haven't considered that you could think of it in terms of <insert positively project paradigm>
06:33:30 <Sgeo> Don't know that I will but until I can find me. A girl who'll stay and won't play games behind me. This is a weird song. To be my happy song. The lyrics don't fit me. Or why I'm happy.
06:34:46 <kallisti> I...
06:35:41 <Sgeo> Although the lyrics aren't in opposition to why I'm happy.
06:35:46 <Sgeo> They're just irrelevant.
06:47:55 -!- augur_ has joined.
06:50:13 -!- augur has quit (Ping timeout: 240 seconds).
06:52:14 -!- myndzi\ has quit (Ping timeout: 252 seconds).
06:57:18 <fizzie> kallisti: I think the "perfect play" term generalizes to imperfect information games with outcome -> expected value of outcome, but it's of course a matter of definition. (Some might argue that it's not exactly "perfect" when you could've done better in some particular instance, though.)
07:01:40 <kallisti> fizzie: right.
07:01:49 <kallisti> I suppose "perfect play" is more like "most optimal play" in that sense
07:07:25 <itidus21> but, given 2 finite players, and sufficiently complex game, each player can specialize at a different strategy
07:08:09 <itidus21> this is probably seen in the case of something like jousting
07:08:23 <itidus21> where a players strategy is directly manifested as a program
07:10:16 <kallisti> that's not really important to the defintion in imperfect information games though.
07:10:50 <fizzie> I guess if you start haggling over the real-world meaning of the word "perfect", you might also complain that even in games of perfect information, you can do better than the "perfect play" against a non-optimally playing opponent.
07:11:13 <kallisti> ah yes
07:11:24 <kallisti> unless it's something like tic-tac-toe
07:11:29 <kallisti> where the perfect play is always "perfect"
07:12:03 <kallisti> but something more complex could lead to a faster or more generally "better" victory than the perfect play.
07:14:25 <Sgeo> I should start playing Go again
07:14:51 <fizzie> Even in tic-tac-toe you could have an opponent with a strategy which forces a tie always, except when you do something "suboptimal" in which case he lets you win.
07:24:07 <itidus21> the way i'm imagining this is, firstly equal perfect play [____ player 1____|____player 2____]
07:24:38 <itidus21> then if one is suboptimal the other one "gains ground" [_ player 1__|______player 2_______]
07:25:16 <itidus21> [_ p1__|__________player 2__________]
07:26:47 <itidus21> in an actual battle to the death, say, you couldn't really win much more efficiently than the opponent commiting suicide as soon as the battle begins
07:27:17 <itidus21> but my math skill is not enough to really grasp the abstract concepts
07:27:38 <kallisti> it's probably more that you haven't actually read anything about it.
07:27:42 <kallisti> than your skillz.
07:27:48 <itidus21> oh
07:27:53 <kallisti> at least, that's why I don't know anything about it. :P
07:32:19 * kallisti doesn't really understand the distinction between characterization and definition between two mathematical theorems.
07:37:00 <itidus21> in other words what i'm saying is that given an identical time and space it will never be possible to have a general solution as optimized as well as a specific solution
07:37:26 <itidus21> unless your time and space has good neighbours
07:38:43 <itidus21> so what i am really talking about here is the complexity of describing a perfect play :P
07:40:14 <itidus21> the Kolmogorov complexity of a perfect play
07:41:01 <itidus21> after all, you must all admit that it is easier to describe the worst-case play of a game than to describe the perfect play
07:42:04 <itidus21> the worst case play might be something like "select a move at random(or pseudo random) from available moves"
07:59:47 <fizzie> The Kolmogorov complexity of perfect play is not very high for many games, either. For something like chess, you get a bound from: "The value of a game state is: if game is finished, 1 if you won, 0 if it's a draw, -1 if you lost; if not, it's the maximum of the negated values of the states after all possible moves. Select the legal move which gives the state with the highest value."
08:17:58 <itidus21> fizzie: for one perfect play perhaps not, but for someone to have a description of all perfect plays
08:29:28 <itidus21> i am interested in time&space constrained strategies for games as they emphasise the value of specialized solutions over general solutions
08:34:13 <itidus21> i can imagine a brainfuck program could be devised which took inputs like e7-e5,f7-f5, and responded with output of the same kind
08:34:18 <itidus21> which could actually play chess
08:34:49 <itidus21> wouldn't want to code it though
08:45:05 -!- _Slereah has joined.
08:46:57 -!- Slereah has quit (Ping timeout: 276 seconds).
09:07:22 <kallisti> I can imagine a brainfuck program that solves the halting problem.
09:11:33 <fizzie> ^bf +++++++[>+++++++<-]>.! do you halt or not?
09:11:33 <fungot> 1
09:11:42 <fizzie> Okay, it's perhaps not a very general solution.
09:13:25 <kallisti> fizzie: unless you can prove that is the only possible program
09:13:38 <kallisti> that would be an interesting vector of research.
09:37:56 -!- jix has quit (Ping timeout: 245 seconds).
09:38:36 -!- jix has joined.
09:50:59 -!- ais523 has joined.
10:06:06 -!- GreaseMonkey has quit (Quit: The Other Game).
10:37:27 -!- aloril has quit (Ping timeout: 244 seconds).
10:49:44 -!- aloril has joined.
10:51:07 -!- ais523 has quit (Read error: Operation timed out).
10:57:26 -!- oerjan has joined.
11:07:36 <oerjan> <itidus21> if i was going to change my id i would certainly use one of those words but then noone would know who i was <-- except I *MWAHAHAHA*
11:07:59 <oerjan> and others capable of using /whois.
11:09:28 <oerjan> 04:06:09: <kallisti> is perfect play still possible in a game with imperfect information?
11:09:28 <oerjan> 04:06:31: <kallisti> if so, wouldn't it simply be a lucky guess?
11:09:30 <oerjan> see "mixed strategies"
11:10:00 <oerjan> (for rps it's simply choosing randomly, though)
11:12:44 <itidus21> depends
11:13:00 <itidus21> i looked it up once
11:13:26 <oerjan> rps = rock/paper/scissors
11:13:33 <itidus21> in real life professional rps games, the gestures aren't completely unique
11:13:58 <oerjan> well against fallible humans, you can do better than random.
11:14:14 <oerjan> but against someone else who chooses entirely randomly, you cannot.
11:14:22 <itidus21> i think the site i looked at was something like rpscoach.com
11:15:19 <oerjan> oh and in a tournament random play might lose overall because other strategies do better against humans
11:15:54 <itidus21> once i made a rps game stylized after street fighter
11:15:58 <oerjan> (more than 2 player tournament, that is)
11:16:32 <itidus21> on the micro level, it was just normal rps
11:16:48 <itidus21> but on the macro level, points were scored for specific sequences of r,p,s
11:17:06 <itidus21> and losing a round meant a sequence failed
11:18:54 <oerjan> reminds me of mediocrity
11:19:10 <oerjan> where winning at one level means losing at the next
11:19:46 <itidus21> the sequecnes i came up with were quite clever
11:19:54 <itidus21> dunno if i kept the slip of paper
11:20:31 <itidus21> that hard disk died.. i must say HDD reliability is up these days
11:21:01 <oerjan> winning at rrrrrrrr would probably take a while
11:21:38 <itidus21> it was obvious for me when doing it to say, rrr is a sequence, likewise for ppp and sss
11:28:03 <fizzie> oerjan: The game "Portal 2" has these "gestures" you can do in the co-op mode; one of them is a RPS sequence; it's completely automatic, you don't get to choose the object. There's an achievement for three consecutive wins. I was wondering whether the gesture itself is actually random, or whether it prefers streaks, since in our N=8 test it generated the sequence 01111222 (where 0 is draw, 1 is win for player 1, and 2 is win for player 2), earning us both
11:28:58 <oerjan> "earning us both"
11:29:52 <fizzie> that achievement.
11:33:37 -!- monqy has quit (Quit: hello).
11:35:01 <oerjan> "Most religions won't let me preach. Though that's because I'm female, not because I'm a genetically engineered talking wolf."
11:35:33 <_Slereah> lolwat
11:35:38 <fizzie> Sounds Freefally.
11:35:45 <oerjan> correct.
11:55:10 <oerjan> "I just hope this doesn't become another SRoMG mini-meme with multiple sci-fi and fantasy fandoms replacing the flag with their own favoured fictional factions."
11:55:23 <oerjan> reverse psychology, anyone?
12:02:29 -!- TeruFSX_ has quit (Quit: No Ping reply in 180 seconds.).
12:02:51 -!- TeruFSX has joined.
12:34:11 -!- cheater has quit (Ping timeout: 245 seconds).
12:54:29 -!- FireFly has quit (Excess Flood).
12:55:53 -!- ais523 has joined.
13:00:35 -!- augur_ has quit (Remote host closed the connection).
13:01:03 -!- augur has joined.
13:05:25 -!- augur has quit (Ping timeout: 252 seconds).
13:30:18 -!- augur has joined.
13:39:08 -!- Phantom_Hoover has joined.
13:50:41 -!- sebbu has quit (Ping timeout: 240 seconds).
13:57:03 -!- sebbu has joined.
13:57:04 -!- sebbu has quit (Changing host).
13:57:04 -!- sebbu has joined.
14:01:00 -!- oerjan has quit (Quit: leaving).
14:04:55 -!- FireFly has quit (Excess Flood).
15:06:02 -!- azaq23 has joined.
15:27:49 -!- TeruFSX_ has joined.
15:34:36 -!- oklofok has quit (*.net *.split).
15:34:37 -!- Gregor has quit (*.net *.split).
15:34:37 -!- lambdabot has quit (*.net *.split).
15:34:37 -!- SimonRC_ has quit (*.net *.split).
15:34:37 -!- FireFly has quit (*.net *.split).
15:34:38 -!- augur has quit (*.net *.split).
15:34:39 -!- clog has quit (*.net *.split).
15:34:41 -!- quintopia has quit (*.net *.split).
15:34:42 -!- TeruFSX has quit (*.net *.split).
15:34:42 -!- aloril has quit (*.net *.split).
15:34:43 -!- itidus21 has quit (*.net *.split).
15:34:44 -!- Systemzwang has quit (*.net *.split).
15:34:45 -!- mtve has quit (*.net *.split).
15:34:45 -!- azaq23 has quit (*.net *.split).
15:34:47 -!- olsner has quit (*.net *.split).
15:34:48 -!- lifthrasiir has quit (*.net *.split).
15:40:32 -!- Systemzwang has joined.
15:41:03 <kallisti> hi
15:41:22 <Phantom_Hoover> Of all the sides of the netsplit to be caught in...
15:44:37 -!- oklofok has joined.
15:49:15 -!- Gregor has joined.
15:53:26 -!- augur has joined.
15:55:13 -!- clog has joined.
15:55:13 -!- quintopia has joined.
15:56:00 -!- aloril has joined.
15:56:00 -!- azaq23 has joined.
15:56:00 -!- olsner has joined.
15:56:00 -!- lifthrasiir has joined.
16:06:35 -!- ?unknown? has set channel mode: +t.
16:06:35 -!- SimonRC has joined.
16:15:35 -!- kallisti has quit (Quit: Reconnecting).
16:15:49 -!- kallisti has joined.
16:15:50 -!- kallisti has quit (Changing host).
16:15:50 -!- kallisti has joined.
16:26:57 -!- augur has quit (Remote host closed the connection).
17:01:37 -!- azaq23 has quit (Quit: Leaving.).
17:09:17 -!- Ngevd has joined.
17:10:10 <Ngevd> Hello
17:10:14 <Ngevd> I enjoyed the most recent xkcd
17:10:30 <Ngevd> Of course, I enjoyed the most recent, eg., Girl Genius much more
17:10:54 <Ngevd> But an enjoyable xkcd is an exception and thus more notable
17:15:04 <Gregor> ... is there a single aspect to this comic that's even remotely amusing?
17:15:11 <Gregor> It's bad even by XKCD's standards.
17:15:30 <Gregor> (Dear future logreaders: It is to http://xkcd.com/1008/ that we refer)
17:15:50 <ais523> it's, err, about average for xkcd
17:15:53 <_Slereah> Fuck the logreaders
17:16:00 <kallisti> ...I feel like I should probably be getting how to prove this faster than I am...
17:16:04 <Ngevd> Clearly enjoyability is subjective; I enjoyed it for its subversion of a lame insult
17:16:09 <kallisti> since it's under the section "trivial and vacuous proofs"
17:16:16 <ais523> OK, 1007 made me laugh
17:16:21 <kallisti> let x be a real number. prove that if x^3 - 5x - 1 is greater than or equal to 0, then (x-1)(x-3) is greater than or equal to -2
17:16:33 <kallisti> ....is this like, obvious at first glance?
17:16:36 <kallisti> because I'm not seeing it. :P
17:17:03 <Ngevd> Try expanding (x-1)(x-3)+2?
17:17:14 <kallisti> ah yes
17:17:19 <kallisti> I was working on the implication side.
17:17:30 <kallisti> which seemed like the right way to go.
17:18:51 <kallisti> I don't know what that gets me though. :P
17:19:26 <kallisti> ah I see.
17:19:36 <kallisti> I can use x^2 >= 0
17:20:45 <kallisti> no wait...
17:20:47 <kallisti> uuuugh
17:21:30 <kallisti> oh hm
17:25:47 -!- augur has joined.
17:33:14 -!- kmc has quit (Quit: Leaving).
17:40:42 -!- Ngevd has quit (Read error: Connection reset by peer).
17:44:29 -!- mtve has joined.
17:51:26 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
17:54:56 -!- Madoka-Kaname has quit (Ping timeout: 245 seconds).
18:58:33 <kallisti> ...I had to relocate my lost knowlege of polynomial inequalities apparently
18:58:52 <kallisti> Observe that when (x-1)(x-3) = 0, x = 1 and x = 3. Given that (0-1)(0-3) = 3 >= 2, and (2-1)(2-3) = -1 >= -2, and (4-1)(4-3) = 3 >= 2; it follows that for all x in the set of real numbers, (x-1)(x-3) >= -1
18:59:00 <kallisti> I hope that's enough. :P
18:59:13 <kallisti> probably missing something really simple though. as the next section is much easier.
19:26:23 -!- kmc has joined.
19:49:39 -!- GreaseMonkey has joined.
19:49:39 -!- GreaseMonkey has quit (Changing host).
19:49:39 -!- GreaseMonkey has joined.
20:11:36 -!- Phantom_Hoover has joined.
20:22:27 <kallisti> a "monadic" case statement would be nice.
20:26:08 -!- oerjan has joined.
20:26:22 <Deewiant> Does C11 guarantee that '\n' > 0?
20:42:01 -!- monqy has joined.
20:46:50 <kmc> kallisti, how would it work?
20:47:16 <kallisti> I see it translating to essentially a bind to a lambda that contains the case statement
20:47:18 <kmc> mcase x of alts ≡ do { y <- x; case y of alts } --- like so?
20:47:24 <kallisti> yes
20:47:33 <kmc> yeah
20:47:34 <kmc> Habit has that
20:47:46 <kallisti> I would think you could probably integrate it into the do notation somehow.
20:47:53 <kallisti> instead of using some weird name like mcase
20:48:38 <kmc> maybe
20:48:56 <kallisti> it would be easier if it were x -> y
20:49:02 <kallisti> or something
20:49:19 <kallisti> x -> case blah of ...
20:49:23 <kallisti> that's kind of weird though
20:49:25 <oerjan> the frequenly suggested lambdacase extension would do it (one proposed syntax) like x >>= case of alts
20:49:51 <oerjan> *tly
20:50:48 <oerjan> i.e. case of with no expression makes a function
20:51:49 <kallisti> that's not too bad.
20:52:07 <oerjan> and has possible uses besides do blocks
20:52:13 <kallisti> however it kind of makes >>= not just an operator anymore
20:52:20 <kallisti> oh
20:52:21 <kallisti> wait
20:52:22 <kallisti> nevermind
20:52:26 <kallisti> I misread.
20:52:39 <kallisti> yes that would be good
20:52:39 <oerjan> yeah the x >>= part is not special
20:52:45 <kmc> http://hackage.haskell.org/trac/ghc/ticket/4359 has a ghc patch for lambda-case
20:52:54 <kmc> and also a long discussion of the syntactic ramifications
20:53:08 <kallisti> need moar record-syntax-currying
20:54:31 <oerjan> iirc lambda-case discussions tend to devolve into whether it should be merged with actual lambdas instead, and then syntax options become too damn many
20:55:06 <kmc> yeah, i haven't actually read the discussions, so i don't know if it's fruitful or just wadler's law wanking
20:55:18 <kallisti> what would be wrong with "actual lambda case"
20:56:22 <kallisti> I like how wadler's law provides a convenient precedent to ignore improvements to the language syntax.
20:56:33 <oerjan> well one thing is that pattern syntax works slightly different in situations where multiple arguments are allowed
20:57:03 <kallisti> I think you could just require an explicit \ between each case
20:57:07 <kmc> wadler's law doesn't say syntax is unimportant
20:57:17 <oerjan> which means case and \ don't actually match completely in how patterns are written
20:57:18 <kallisti> not explicitly no.
20:57:35 <kallisti> oerjan: um, so? :P
20:57:42 <kallisti> it matches function patterns
20:57:47 <kallisti> which makes sense since lambdas are functions.
20:57:50 <kmc> it says syntax is discussed disproportionately much for its importance
20:58:00 <kmc> really it just says syntax is discussed a lot
20:58:03 <kallisti> yes
20:59:21 <kallisti> I think this is probably because the semantics of Haskell are fairly solid
20:59:28 <kallisti> at this point.
21:00:00 <kallisti> most of the language is just syntax over very simple semantics in the first place.
21:00:13 <kallisti> so there's a lot to discuss.
21:01:14 <kmc> i disagree with every part of that
21:02:02 <kmc> the semantics of Haskell are not that simple, and since we're talking about language extensions, they get even less simple
21:03:16 <kmc> and Wadler came up with his law in 1996, when the semantics of Haskell were far from solid
21:03:23 <kmc> and I don't think the law is particular to Haskell
21:03:26 <kallisti> right
21:03:32 <kmc> it's an instance of http://en.wikipedia.org/wiki/Parkinson's_Law_of_Triviality
21:03:41 <kmc> it's easy to have an opinion about syntax
21:03:50 <kmc> it's something concrete that affects you in a clear way
21:04:14 <kmc> and there aren't many objective right answers
21:04:57 <kmc> in semantics and type theory there is tons of background and many non-trivial theorems, and the consequences of any choice are far from obvious
21:05:54 <kmc> recent GHC extensions seem to focus more on crazy type tricks than on concrete syntax
21:11:29 <kmc> const int main[] = { 14776, 3942977280, 247 };
21:15:43 -!- Ngevd has joined.
21:17:11 -!- Ngevd has changed nick to Taneb|Hovercraft.
21:17:16 <Taneb|Hovercraft> Poor connection
21:18:24 -!- Phantom_Hoover has quit (Quit: Leaving).
21:18:35 -!- Phantom_Hoover has joined.
21:19:17 <Taneb|Hovercraft> Also 2007 video game
21:21:02 -!- Nisstyre has joined.
21:23:55 <Phantom_Hoover> 2007 was a good video game.
21:34:24 <kmc> is that the sequel to 1942?
21:35:21 <kallisti> actually instead of having a function that catches errors and returns a Maybe it would be better to generalize to MonadPlus
21:35:52 <kallisti> so you can take absolutely any partial function and lift it into a pure result with mzero failure.
21:39:39 -!- Taneb|Hovercraft has quit (Read error: Connection reset by peer).
21:42:09 -!- augur has quit (Remote host closed the connection).
21:42:22 -!- Ngevd has joined.
21:42:54 <Ngevd> In other news, I've started yet another miserable start to a family tree program in Haskell
21:43:34 <Ngevd> Also, /nick Taneb|Hovercraft
21:43:38 <Ngevd> Wait
21:43:46 <Ngevd> That needs to be at the beginning of a line
21:43:53 <Ngevd> I'm not sure if I'm fit for IRC
21:44:00 -!- Ngevd has changed nick to Taneb|Hovercraft.
21:46:35 <oerjan> kallisti: btw do you know that Data.Map used to contain functions generalized to MonadPlus but they decided it was overkill and restricted it to Maybe
21:47:08 <Taneb|Hovercraft> Should addPerson be Tree -> Person -> Tree or Person -> Tree -> Tree?
21:47:17 <oerjan> @hoogle Maybe a -> m a
21:47:30 <oerjan> AAAAAAAAAAAAAAAAAA no lambdabot
21:48:03 <kallisti> oerjan: wat
21:48:06 <kallisti> I am sad. :(
21:49:56 <Taneb|Hovercraft> Google+ has just recommended I add Elliott Hird...
21:49:59 <kallisti> Taneb|Hovercraft: do you expect people to add multiple persons to one tree, or one person to many trees?
21:50:15 <kallisti> and by "people" I mean "you" probably.
21:50:16 <Taneb|Hovercraft> Hmm...
21:50:17 <Taneb|Hovercraft> The former
21:50:46 <kallisti> of course there can be a benefit to having a clear order of arguments instead of ordering for best curryage.
21:50:53 <oerjan> well there's also the question of whether you would add Persons with foldl' or foldr
21:51:19 <Taneb|Hovercraft> The Tree is an IntMap
21:51:27 <kallisti> intmap has folds.
21:51:37 <oerjan> i mean if you had a list of Persons to add
21:51:41 <Taneb|Hovercraft> Hmm
21:51:47 <kallisti> oh yes
21:51:53 <kallisti> your initial parameter would be the tree
21:51:56 <kallisti> and the list would be a list of people to add
21:51:58 <kallisti> in that case.
21:52:07 <Taneb|Hovercraft> I think the normal thing would be the individual person
21:52:11 <kallisti> chances are it's not a big deal.
21:52:31 <kallisti> I would go with Person -> Tree -> Tree
21:52:38 <kallisti> as that would match the fold type in that situation
21:52:43 <kallisti> also it would work well with map
21:52:48 <kallisti> also it reads pretty well
21:53:06 <kallisti> "addperson <person> to <tree>"
21:53:18 <oerjan> actually i think if you use foldl' it would be the other way around
21:53:24 <kallisti> :t foldl'
21:53:27 <kallisti> ...
21:54:00 <kallisti> foldl' doesn't exist according to ghci :P
21:54:03 <Taneb|Hovercraft> (a -> b -> a) -> a -> [b] -> a
21:54:06 <kallisti> yes
21:54:07 <Taneb|Hovercraft> It's in Data.List
21:54:08 <oerjan> kallisti: needs Data.List
21:54:52 <kallisti> I forgot foldl flips the arguments.
21:56:10 <Taneb|Hovercraft> At the moment my program has the line
21:56:11 <Taneb|Hovercraft> " where uf = uf' . uf'' . uf'''"
21:56:17 <kallisti> sounds good
21:56:26 <kallisti> s/uf/_/
21:56:29 <kallisti> much better.
21:57:11 <kallisti> oerjan: did I mention that I accidentally invented ReaderT
21:57:14 <oerjan> yes
21:57:15 <kallisti> with my portal chess code.
21:57:17 <kallisti> oh...
21:57:19 <kallisti> yes okay.,
21:57:21 <kallisti> all is well.
21:57:27 <oerjan> well i saw it in the logs, anyway
22:00:36 -!- Taneb|Hovercraft has quit (Read error: Connection reset by peer).
22:00:42 -!- Ngevd has joined.
22:01:41 <Ngevd> Goodnight
22:01:44 -!- Ngevd has quit (Client Quit).
22:10:10 -!- pir^2 has joined.
22:15:34 -!- Vorpal has quit (Ping timeout: 276 seconds).
22:19:44 -!- kmc has quit (Quit: Leaving).
22:39:09 -!- kmc has joined.
22:43:22 <ais523> hmm, someone on a quiz show just asked "what's the capital of Finland" and I instantly thought "oklopol"
22:43:26 <ais523> is something wrong with me?
22:44:16 <oerjan> yes.
22:46:17 <fizzie> He's the "capital of Finland" in the "capital -- (wealth in the form of money or property owned by a person or business and human resources of economic value)" sense of the word.
22:46:34 <oerjan> `? finland
22:46:47 <HackEgo> Finland is a European country. There are two people in Finland, and at least five of them are in this channel. Corun drives the bus.
23:07:03 -!- Madoka-Kaname has joined.
23:07:04 -!- Madoka-Kaname has quit (Changing host).
23:07:04 -!- Madoka-Kaname has joined.
23:07:35 <oerjan> when one entry is not enough
23:08:04 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
23:25:26 -!- Klisz has joined.
23:47:08 -!- mtve has quit (*.net *.split).
23:47:08 -!- SimonRC has quit (*.net *.split).
23:58:54 -!- SimonRC has joined.
←2012-01-24 2012-01-25 2012-01-26→ ↑2012 ↑all