00:00:36 -!- BeholdMyGlory has joined. 00:02:45 -!- elliott has joined. 00:02:48 a 00:03:07 Does programming include art? Someone asked that question when programming NES game 00:03:21 http://i.imgur.com/UBm5K.png 00:05:00 -!- Patashu has joined. 00:07:22 oklopol: ping 00:07:48 pong 00:07:56 zzo38: http://benfry.com/distellamap/ 00:13:31 15:13:08: the idea is directed towards game development.. but let me explain in the context of say, visual basic 00:13:32 i see 00:13:57 oh dear what happened 00:14:31 iti dispensed some genius 00:14:42 15:31:27: THE MOUSE JUST MOVED TO (620, 39), WOULD YOU LIKE TO ADD AN EVENT FOR THIS 00:14:57 oklopol: the mouse just clicked the "edit mouse-click event" button, would you like to add an event for this 00:15:06 [edit mouse-click event] 00:15:07 [no] 00:21:28 16:19:44: theres always someone who would either... love to be your boss and control your genius.. or who would like to have you serving them at mcdonalds 00:21:28 16:20:48: uh.. which is good cos it balances things 00:21:28 buddha irl 00:23:13 wisdom 00:23:47 `addquote So it's like... Rummy mixed with... breakout? 00:23:50 554) So it's like... Rummy mixed with... breakout? 00:24:18 im imagining a person seeing another person and thinking 'i would really like this person serving me at mcdonalds' 00:24:37 im sure this happens all the time 00:24:48 i wonder if anyone has ever thought this about me... 00:49:18 ive never had that thought 00:50:02 monqy 00:50:05 ur bestmc odonalds 00:50:11 ;_; 00:50:19 :( 00:51:37 * pikhq has been working on some scripts to scrape the Gatherer database. 00:51:53 This is made worse by it apparently being at least somewhat freeform. 00:53:53 Hmm 00:54:06 How did the Magic app I used to have on my phone have all the cards? 00:54:29 Is there a pre-existing computer-easily-accessible database somewhere maybe? 00:54:49 That you can get to, I mean 00:55:30 No idea, but WotC seems to make that *hard*. 01:04:14 Hmm. Magic Workshop's knowledge of the cards has to come from somewhere 01:04:30 Erm, Magic Workstation 01:05:15 http://www.slightlymagic.net/software/mws/5-mtg-masterbase ? 01:05:56 pikhq, poke 01:07:25 I did once write a script to select random records from the Magic: the Gathering cards database, selected as a booster pack and then prints out copies of fifteen random cards. 01:07:43 But it doesn't work now. 01:10:40 But I have the idea eventually I should have TeXnicard include the feature to create such databases. 01:11:56 -!- zzo38 has quit (Remote host closed the connection). 01:31:32 http://www.emailintervention.com/ using things other than gmail: an unacceptable situation 01:37:37 -!- CakeProphet has quit (Read error: Connection reset by peer). 01:54:07 I AM A SOCIAL ENGINEER 01:54:17 pikhq: yawgatog has done this already 01:57:23 I AM A SOCIAL ENGINEER 01:57:23 wat 01:58:38 elliott: see blognomic 01:58:45 elliott: I'm totally manipulating people 01:58:52 (although it's not obvious) 02:06:20 coppro: Insufficiently well. 02:06:33 coppro: I want the entire database. 02:06:53 Flavor text, card images, set legalities, whole 9 yards. 02:07:14 s/set/format/ 02:07:40 pikhq: Datatog has all but the images 02:07:56 oh and written text I think 02:08:03 coppro: blognomic is boring 02:08:17 oh right you're not in ##nomic 02:08:29 I want to make a better ruleset for Gamma because the previous one isn't happening 02:08:37 gamma? 02:08:42 oh 02:08:53 i dislike that name so WHO CARES 02:09:25 elliott: we will have demands for adjudications, or DFAs 02:09:30 with many computer science puns 02:09:36 and players shall OBEY the rules and ADJUDICATE questions 02:09:36 crap name 02:10:15 coppro: The end goal is to get a much nicer Magic search engine than Gatherer. 02:10:38 pikhq: magiccards.info? 02:11:07 Bah. 02:11:20 pikhq: make it a @ database 02:11:27 -!- evincar has joined. 02:11:36 elliott: Make @ 02:11:44 pikhq: oh, I have to do /all/ the work, do I? 02:11:57 elliott: You have to do it now. pikhq told you to. 02:12:03 Damn. 02:12:10 And he's some kind of authority or something. 02:15:50 newtype MyMonad a = MyMonad (StateT MyState (ReaderT Options (ErrorT MyException (WriterT [String] IO))) a) 02:15:50 deriving (Functor, Monad, MonadReader Options, MonadState MyState, MonadError MyException, MonadWriter [String]) 02:15:54 haskell: how not to do it 02:16:15 Eh? 02:16:23 D: 02:16:28 ... StateReaderErrorWriterIO? *What*. 02:18:46 i like how all those are completely redundant 02:18:56 because 02:19:00 IO encompasses all of them 02:19:07 newtype MyMonad a = MyMonad (IO a) 02:19:10 completely equivalent 02:19:23 eah. 02:20:44 eah 02:22:07 * elliott wonders where this package would go would go 02:42:04 Sigh. Typesetting is wrong. 02:42:29 I want my digital typesetting to behave more like lead. 02:54:19 -!- invariable has quit (Read error: Connection reset by peer). 02:55:03 -!- invariable has joined. 02:55:05 -!- invariable has quit (Changing host). 02:55:05 -!- invariable has joined. 02:59:11 evincar, TeX? 03:02:57 Vorpal: EVEN MORE LIKE LEAD 03:03:25 Without, y'know, actually being lead. Getting solder burns is bad enough. 03:03:32 XD 03:03:35 why 03:03:57 Oh, I'm just frustrated with the poor state of web typography, as usual. 03:04:05 It's gotten better lately. 03:04:30 ah 03:04:37 elliott, so nothing wrong with TeX then? 03:04:49 . 03:05:19 And that's all he has to say about that. Fullstop. 03:05:56 The only thing that I really miss in (La)TeX is namespaces. 03:08:00 ah yes 03:12:42 You don't run into it all that often, but occasionally you want to use a couple of conflicting packages and you're just plain out of luck. 03:18:59 -!- MDude has changed nick to MSleep. 03:25:13 Esolang: antiduck typing. When it sees a bird that walks like a duck and swims like a duck and quacks like a duck, it assumes that the bird is a terrorist. 03:25:46 isterrorist(x) :- return true 03:26:08 actually if you want to do it in prolog 03:26:27 isa(X, terrorist). 03:27:37 GreaseMonkey: I guess it would actually assume that all things behave rather like NaN. 03:27:51 isa(_, _). 03:39:38 Sadly, Knuth is an old man. 03:40:48 You don't know he's an old man sadly. He could be an old man happily. 03:41:16 I doubt most would, though. 03:41:28 I know I don't plan on getting old. 03:41:34 More specifically, I plan on not getting old. 03:42:48 I retain low confidence about TAOCP being finished 03:44:04 evincar: Ah, so you're planning based on the assumption that immortality will be invented in your lifetime? 03:44:05 I'm skeptical but optimistic, I guess. 03:44:23 pikhq: That, or necromancy. 03:44:45 coppro: Perhaps if we give Knuth a pointer to fork(). 03:45:04 I don't suppose undying would be any more unpleasant than being born. 03:46:27 Also, the invention of necromancy might bring about a zombie apocalypse, which would be a thoroughly entertaining period of history to live through. 03:47:06 He estimates Vol 5 to be published in 2020 03:48:18 and has Vol 6 and Vol 7 plans too... right 03:49:56 Meh. Plan as though you'll live forever, live as though you'll die today. 03:49:58 Or something. 03:52:18 -!- copumpkin has joined. 03:55:29 I also wish that he would publish the newer editions of Vols. 1, 2, and 3 before finishing 5 03:55:45 Esolang: one without object permanence, so it's consistently surprised when objects that were hidden from view become visible again. 03:56:29 Implementing "surprise" naturally being the interesting bit. 04:14:01 haha 04:14:20 The only thing that I really miss in (La)TeX is namespaces. 04:14:25 latex makes me sad (a little) :( 04:19:22 Is the only reason we can't make strong AI that we can't define intelligence? 04:19:56 Because I feel like a working definition would be fine provided the thing could incrementally improve it. 04:20:45 evincar: Actually, it's more probable that the only reason we can't make strong AI is that we're a handful of orders of magnitude off. 04:20:59 No worries though, that's just a handful of years. 04:21:08 no, the reason we can't make strong ai is that we're not any good at ai. 04:21:10 next question. 04:21:20 elliott: Or I. 04:22:31 Well, it is always most difficult to define in precise terms those things which are intuitively obvious. 04:22:52 isn't it just difficult to define things in precise terms full stop 04:23:06 Perhaps because language isn't precise. 04:23:11 Well, except for Lojban. 04:23:18 Lojban isn't precise either. 04:23:23 I know. :( 04:23:28 Wishful thinking. 04:23:52 I remember reading someone talking about Lojban say that a perfectly precise language would have some cases where sentences blow up 04:23:58 Anyone know what that's talking about? 04:24:17 propositional logic statements are pretty verbose I guess? 04:24:49 Sgeo: I would assume it means that meaning is dependent on context, and context is unbounded, so a sentence can grow unbounded. 04:25:23 It's like a fractal. It has a finite amount of meaning, but an infinite perimeter of potential precision. 04:30:42 "While you do that he’s going to go get his horse. It rained last night, so he suspects he will have to redraw the horse’s angry eyebrows." 04:31:29 -!- derrik has joined. 04:35:18 The unforgivable crime of being mudcrabs. 04:36:07 Reference humour: thought by experts to be the only kind. 04:37:15 (Now I'm wondering whether evincar has brought the total of Prequel readers in here to at least three, or whether he just has a computer with access to Go Ogle dot Com Internet Search.) 04:37:21 (One day I will access Go Ogle. One day.) 04:37:24 (When I am rich.) 04:37:45 rich on fame and donations 04:37:47 from making @ 04:38:23 Fame is the best currency (bitcoins are the second best (wood is the third)). 04:38:42 elliott: I went and ogled but I was aware of Something Awful and MS Paint Adventures and read Homestuck, so it wasn't a far shot. 04:39:09 Besides, I've played some of the Elder Scrolls series as well. 04:39:14 whats something awful 04:39:21 So it's relevant to my...well, not my interests, but y'know. 04:39:23 monqy: something awful (<-- LOOK HOW HILARIOUS I AM) 04:39:33 evincar: OK this channel's number of Homestuck readers is officially statistically unlikely. 04:39:50 There's... at least eight. 04:39:50 monqy: Blue waffle. 04:40:06 evincar: am I supposed to do an image search for that or something 04:40:19 monqy: Whatever floats your boat, sicko. 04:40:44 I like how the first results are all waffles photoshopped to be blue. 04:40:47 SO SHOCKING. 04:41:14 elliott: Those are posted on imgur and such for a reason. 04:41:34 To protect the innocent minds of children? 04:42:21 ...sure. 04:42:37 get bored of looking at blue waffles, narrowly avoid looking at blue waffles 04:42:38 elliott, at least 1 is a Homestuck reader because of other Homestuck readers in this channel 04:43:03 cakeprophet? 04:43:18 Sgeo: OK fine, six. Oh, wait, CakeProphet too. 04:43:21 So either nine or six. 04:43:25 Depending on whether you suck or not. 04:48:07 So, I heard you like mudcrabs. 04:48:32 Only the profitable intelligent merchant ones. 04:48:45 *one 04:48:48 :P 04:48:58 * Sgeo still has no idea what Prequel is 04:49:28 Sgeo: http://prequeladventure.com/2011/03/prequel-begin/ 04:49:31 On the other end of a document from the Postquel, of course. 04:49:46 Prequal/Prefix .. I see.. the Pre- is where the sense of past comes from 04:50:16 now Sequal Suffix both begin with 's'. Time to put on the overcoat and go investigating. 04:51:04 Sgeo: Also I order you to read it, since that seems to generally be how reading things gets initiated in Sgeoland. 04:51:17 ^sequel 04:51:40 I started reading D.M. Brook's The Necessity of Atheism 04:51:43 Now regretting it 04:51:56 Stop reading things I didn't tell you to, then. 04:52:09 Sgeo: Oh? 04:52:16 itidus20: Sequel is from sequelus, from sequi (follow). Suffix is from sub + figere (to fix). 04:52:26 Among the things stated is a bit talking about how in the time of Columbus, people thought the world was flat, or something 04:52:32 Sequel: early 15th century., "train of followers," from Old French sequelle, from Late Latin sequela "that which follows, result, consequence," from sequi "to follow" 04:52:41 *groan* 04:53:00 Oh fine. s/sequelus/sequela/. 04:53:05 evincar: our etymological sources may appear to conflict but im sure they don't 04:53:10 i just cut and paste 04:53:17 "When Christianity sprang into existence Eusebius, St. John Chrysostom, and Cosmos evolved a complete description of the earth. They considered the earth as a parallelogram, flat, and surrounded by four seas, as a kind of house, with heaven as its upper story and the earth as its ground floor. To the north of the earth was a great mountain; at night the sun was pushed into a pit and pulled out again in the morning, with heaven as a loft and h 04:53:17 ell as a cellar. In the Atlantic Ocean, at some unknown distance from Europe, was one of the openings into hell, into which a ship sailing to this point, would tumble. The terror of this conception was one of the chief obstacles of the great voyage of Columbus." 04:53:31 great voyage of columbus lol 04:53:37 but well.. you were twice as fast as me :o i forgot about suffix 04:53:53 Could've sworn that a round Earth was well-estabilished by the Greeks. 04:54:09 evincar: i see that sequel is clearly related to sequence then.. 04:54:13 Was this myth believed in the 1930s? That Columbus's contemporaries thought the Earth was flat? 04:54:17 pikhq: It was well-established long before then, independently by various groups, including the Celts during the Bronze Age. :P 04:54:30 everything is the fault of religion and all explorers are white men 04:54:31 Or actually before. 04:54:33 join me next time for more atheism facts 04:54:36 pikhq, well, part of what this book is saying is that Christianity regressed science 04:54:50 "The difficulties that beset Columbus are well known. How he was hounded both in Portugal and in Spain by the clergy; and even after his discovery of America, the Papacy still maintained its theory of the flatness of the earth and the nonsense of the antipodes" 04:54:51 -!- pikhq_ has joined. 04:55:00 pikhq_, read logs 04:55:12 why are you reading this book, you should stop because terrible 04:55:18 elliott, I did stop 04:55:22 good 04:55:23 Exactly because of this 04:55:32 But it was quite a way in 04:55:35 22:53 < pikhq> Could've sworn that a round Earth was well-estabilished by the Greeks. 04:55:37 22:53 < pikhq> Before the claimed time of Jesus. 04:55:40 22:53 < pikhq> And not exactly *forgotten*. 04:55:47 pikhq_, oh 04:56:11 I think this book already permiated my brain excessively 04:56:18 IIRC, Columbus' whole deal was that he thought the Earth was smaller, and that he could easily get to Asia. 04:56:22 do you just believe everything you read 04:56:24 And he was wrong, but got damned lucky. 04:56:29 because i've got a book called the bible for you 04:56:31 Sgeo: then what you need to do is counter-permeate it with more things 04:57:10 I'm not even sure what the big deal is with Columbus. He didn't even make it to the mainland, right? 04:57:11 Sgeo: generalizations about history are always wrong. 04:57:16 :) 04:57:26 hehehehe 04:57:52 evincar: His findings encouraged further exploration by Spain. 04:57:59 evincar: No, but he was white, male, and Catholic, so who cares? 04:58:13 But of course! :D 04:58:39 He'd be a hero if he just paddled around a bit off the shore and killed a few savages. 04:58:40 -!- pikhq has quit (Ping timeout: 264 seconds). 04:59:12 elliott: so i tried gimp.. at this stage i may as well just uninstall artweaver 04:59:23 theres no comparison 04:59:33 (i won't) 04:59:37 the gimp's interface can be a bit awkward but it's great 04:59:47 the pen tablet interface is perfect 04:59:56 and i'm on xp 05:00:04 i knew gimp had support for it 05:00:04 I love it for batch image processing. 05:00:08 but yeah its really awesome 05:00:27 Because Scheme. 05:00:35 Also, Columbus *did* find the mainland. Right around Panama. 05:00:40 the gimp's animated stuff is also a bit awkward, im not sure who decided frame <-> layer was a good idea, but oh well, it works 05:01:08 evincar: I bet that's going to get replaced what with the GEGL stuff 05:01:08 elliott: Yeah, that's always bothered me a little bit. Also no layer groups. :( 05:01:32 Maybe, or just adapted. 05:01:54 Well, GEGL has bindings to several languages, but none of them is a Schemeoid. 05:02:03 Also, I have an irrational hate of the GIMP's Scheme stuff because I couldn't get the same Scheme library it uses to do my bidding in mcmap. 05:02:19 (I think Tiny-Fu is the one used nowadays and it uses TinyScheme, who's API is lacklustre.) 05:02:23 [asterisk]whose 05:02:36 I'm never going to be able to stop doing this [asterisk] thing 05:02:41 Wiccan Sarah in Durban 05:02:41 stop suffering now Sarah the witch is here to help +2773 400 6132 05:02:41 wwwladysarah.co.za 05:02:45 best google ad ever 05:04:46 pikhq_, was it generally believed, in the 1930s or so, etc. about Columbus? 05:04:55 In that case, it's almost understandable 05:05:07 Understandable does not acceptable make. 05:05:08 Sgeo: It's been a running myth for centuries. 05:05:29 If you're basing an argument on something, and it's patently untrue, it doesn't matter whether it's a common misconception or not. 05:05:35 Especially if you're arguing on the basis of being oh-so-rational. 05:06:21 I did say almost 05:06:49 Ah. Seems it wasn't that Columbus underestimated the size of the world, he overestimated the size of Eurasia. 05:07:22 And I meant "generally believed" as in, believed by educated people 05:07:34 Like an age of the Earth that's a bit too young 05:07:45 (Which is also in there, but completely understandable, imo) 05:08:18 *That* would actually be entirely excusable. Science marches on. 05:08:50 but never as much 05:08:50 as 05:08:52 PIEence 05:09:00 pie-ence bitchez 05:09:31 elliott: Proto-Indo-Europeance? 05:09:56 pikhq_, but a diligent researcher in the 1920s or so would discover that the Columbus thing is a myth? 05:09:58 (Typesetting irk: first hyphen should probably be an en-dash. Probably.) 05:10:14 Sgeo: Oh, *surely*. 05:10:29 evincar: I can't reply because I'm too busy pointing at your next line and yelling hysterically "look at this fucking hipster". 05:11:32 pikhq_, well, that pretty much throws the rest of the book in question, I think 05:11:35 I might even start cackling. 05:12:19 elliott: Typography isn't one of those things that's traditionally seen as a hipster thing. 05:12:36 That sentence had so many "thing"s that I almost used a "da kine". 05:13:30 evincar: Please tell me you're actually offended. 05:13:37 I FEED ON PAIN 05:14:10 elliott: I don't usually get offended. You'll have to do better than that. 05:14:26 evincar: You... are... a... BEDWETTER. 05:14:29 WHAT NOW 05:14:39 Example of something that offends and sickens me: abstinence from sex on religious grounds. 05:14:56 Srsly? 05:15:03 That's pretty hypocritical, isn't it? 05:15:26 (I will have sex on religious grounds all I please! Churchyard! Graveyard! None shall be spared!) 05:15:36 http://www.goodreads.com/topic/show/619195-columbus 05:15:39 Hypocritical how? 05:15:50 I find it disturbing that a human wouldn't mate. 05:15:58 Unless they're asexual or something. 05:16:03 evincar: 05:16:11 evincar: So people aren't allowed to make their own decisions? 05:16:17 Sounds pretty fuckin' moralising to me. 05:16:31 Oh, sure, they're allowed to make their own decisions, and if it works in their lives, good for them. 05:16:35 I'm allowed to find it disturbing. 05:17:02 How on earth is it disturbing to choose not to have sex? Big deal, I'm sure plenty of people also choose not to eat fast food, or not to wear socks, or... 05:17:07 Largely because it probably isn't their decision. 05:17:16 In cases where it is, I find it far less objectionable. 05:17:37 Oppose abstinence-only education or whatever, don't oppose people doing things because of their religious beliefs 05:17:46 I don't oppose them. 05:17:57 I just don't understand or endorse them. 05:18:05 You said it offends you. 05:18:38 I'm afraid of the idea of being indoctrinated to such a degree that I would make what I believe to be a conscious decision to refrain from a natural process in which I would otherwise have engaged, without being aware that it is actually not my decision. 05:19:11 How do you distinguish a situation where you do something, thinking it's your decision, but it isn't actually; and a situation where you do something and it is your actual decision? 05:19:21 elliott: You don't. 05:19:29 You just tried to. 05:19:37 Not at all. 05:19:40 I said "probably". 05:19:59 I'm afraid of the idea of being indoctrinated to such a degree that I would make what I believe to be a conscious decision to refrain from a natural process in which I would otherwise have engaged, without being aware that it is actually not my decision. 05:20:04 You didn't there. 05:20:17 > Largely because it probably isn't their decision. 05:20:18 : parse error (possibly incorrect indentation) 05:20:18 I think it's a sad choice, and the belief itself is sad, but still their choice 05:20:27 elliott: One can be offended by something without thinking it should be stopped. 05:20:34 What he said. 05:21:08 The converse is that I'm not really offended by some things I think ought to be stopped, such as racism. 05:21:13 Well, sad reason to make the choice 05:21:21 Sgeo: For god's sake, it's not a sad choice to do what you want. And sex is like the least important thing because it affects nobody else and usually isn't even reproductive nowadays. 05:22:05 I'm only offended by shoving the religious abstinence on others, myself. 05:22:10 when sex doesn't affect anyone else it's called something else 05:22:14 Well, if someone desires to have sex, yet forces themself not to, not because they don't want to, but because they think it's "wrong", I think that's sad 05:22:21 lament: Har har har 05:22:30 Sgeo: That's the specific situation that bothers me most. 05:22:38 pikhq_: Sure, of course I object to that, but that's an entirely different thing. 05:22:44 elliott: Well, yes. 05:24:59 Anyway, this isn't a productive topic. 05:25:10 Let us discuss productivity tools. 05:25:34 That will lead us to programming languages, methinks. 05:25:55 No, no, no, not Enterprise enough. 05:26:25 Ugh, not this annoying kind of headache. 05:29:56 Looks like it didn't take. 05:30:11 To be honest, my favourite productivity tools are whiteboards, tea, long walks, and showers. 05:30:16 Oh, and sex. 05:30:26 My favorites are nothing. 05:30:56 Then you should get better favourites, if they're so worthless. 05:32:31 Maybe Brooks isn't saying Columbus's contemporaries believed in a flat Earth. Ok, I think I'm turining into the equivalent of one of those people who make excuses for the Bible 05:32:48 "the Papacy still maintained its theory of the flatness of the earth and the nonsense of the antipodes." 05:33:01 How does one both believe that the Earth is flat and the.. oh n/m 05:33:14 * Sgeo glares angrily at Brooks 05:33:55 Sgeo: I thought you stopped reading that. 05:34:03 I did 05:34:07 Sgeo: This was never Catholic doctrine. 05:34:24 They've got enough stupid doctrine without putting words in their mouths. 05:34:45 I was just thinking to myself "Wait, antipodes and flat earth sound antithetical, and I distinctly remember 'antipodes', so maybe Brooks didn't say flat Earth" 05:34:53 Then I looked at it again 05:35:40 maybe it was just the theory of THE FLATNESS 05:35:42 not flat earth 05:35:43 just 05:35:44 THE FLATNESS 05:36:29 If Jesus could see the Catholic church...with a name like that, you'd think it might actually be, you know, catholic. For the people. Not bathed in obscene wealth. 05:36:45 He'd be ashamed. 05:36:59 I might just start waving Jefferson Bibles around. 05:37:16 -!- TeruFSX2 has joined. 05:37:35 It's more Christian to preach than what most Christians do. 05:38:04 source for catholic meaning "for the people" kthx 05:38:14 I thought Catholic meant universal? 05:38:28 -!- TeruFSX has quit (Ping timeout: 276 seconds). 05:38:32 it does, or well, "whole", "all-encompassing", etc. 05:38:41 I didn't equate them. I was elaborating. 05:38:49 fun fact: the orthodox church's full name is orthodox catholic church 05:39:00 evincar: so in what manner is the Catholic Church not catholic 05:39:44 lament: that fact wasn't fun at all :( 05:40:02 lament: Fun fact: there's not a "the Orthodox church". 05:40:07 a the 05:40:20 The Orthodox Church, also officially called the Orthodox Catholic Church [note 1] and commonly referred to as the Eastern Orthodox Church 05:40:21 --wikipedia 05:40:24 "The Orthodox Church," 05:40:37 pikhq_: fun fact: you're stupid and wrong 05:40:41 God damn upstarts claiming primacy. 05:41:46 elliott: Catholicism isn't very universalist, that's all. 05:41:53 Hardly love-thy-neighbour. 05:42:00 all-encompassing doesn't really mean Universalist :-P 05:42:16 it could easily just mean that "encompassing all the true beliefs", which I am sure is Catholic doctrine 05:42:47 evincar: Meh, the whole fire and brimstone thing isn't, either. And that's a basic premise of Christianity. 05:42:55 "It was first used to describe the Christian Church in the early 2nd century to emphasize its universal scope." --Wikipedia, "Catholic". 05:43:07 right, so it is the church to which everyone should be a member 05:43:09 universal scope 05:43:23 pikhq_: Well, Old Testament. But Jesus specifically invalidated a lot of that. 05:43:47 evincar: It's still a basic premise that you either believe in Jesus or suffer eternal torment. 05:43:50 evincar, Hell is NT. Psychotic earthly punishments are OT 05:43:56 elliott: Universal links to "Universalism" though. 05:43:57 Sgeo++ 05:44:12 evincar: Citation :-P 05:44:17 (Yeah yeah I rebutted pikhq_ with Wikipedia shaddup.) 05:44:49 Sgeo: lets consider 'self 05:44:57 Yeah, it feels a little dirty citing Wikipedia as a source... 05:45:02 does punishment imply a self being punished? 05:45:12 Maybe I'm just trained to feel that way by writing papers. 05:45:26 Wikipedia is a good resource, but one word being linked without any citation hardly means much 05:45:38 Anyway, there is no hell so bad that a human wouldn't fetishise it, and no heaven so great that a human wouldn't grow bored of it. 05:45:54 evincar, are you quoting SMBC? 05:45:56 so then.. the question is.. what is the nature of the self .. how does it visit heavens and hells... and.. is the question simply too much for a man 05:46:04 Sgeo: Paraphrasing, if anything. 05:46:15 evincar: Christianity disagrees. 05:46:22 the "heaven has to suck" thing seems kinda stupid 05:46:31 * Sgeo agrees with elliott 05:46:40 Obviously the naive view of heaven sucks 05:46:44 Unfortunately, Christianity specifically invalidates my argument by saying you're no longer human after death. 05:46:48 I can imagine a Heaven that I'd love 05:46:51 And maybe it's very hard to define a non-sucky heaven 05:46:55 elliott, there' a naive view of heaven? 05:47:02 evincar: i believe buddha is supposed to have said something like that 05:47:03 You change in such a way that you delight in God's presence or suffer in fire and brimstone, fullstop. 05:47:10 Sgeo: "Everything is perfect bliss forever" 05:47:16 elliott, I think PI's world is _almost_ heaven, with some flaws, like being unable to die 05:47:20 No. 05:47:21 It really isn't. 05:47:31 evincar: And this psychotic level of mind-alteration is considered "good". 05:47:46 Sgeo: Uh, did you *read* that book? 05:47:46 pikhq_: Naturally. 05:47:47 Or, well, feel free to go off into PI's world if you want, but it isn't even close to heavenly. 05:47:48 ok i have to stop--. 05:47:56 See, here's the thing. 05:48:12 As someone who doesn't believe in an afterlife, I'm much more afraid of losing loved ones than of dying myself. 05:48:27 don't love anybody 05:48:29 problem solved 05:48:31 And yet isn't an afterlife supposed to be a salve for the thought of personal death? 05:48:34 evincar: you've already lost loved ones.. it can't get any worse :> 05:48:42 surely death of loved ones too 05:48:49 Well, yes, that's quite sensible. You were dead for billions of years and didn't suffer the slightest inconvenience. 05:48:52 itidus20: how do you know he has 05:49:03 itidus20: No one I've loved has yet died. 05:49:15 You'll be dead once more, and no doubt not be inconvenienced then. 05:49:27 So far, no one I've loved has died out of the blue 05:49:34 pikhq_: Unborn ≠ dead, just like alive ≠ undead. 05:49:47 As in, alive and well one day, dead the next 05:49:59 I don't see why unborn =/= dead, but obviously it's perfectly fine to be scared of death. 05:50:28 evincar: Don't tell my zombie minions that, they'll never listen to me again if they don't have fear of death. 05:50:31 :P 05:50:31 And god this headache is horrible. 05:50:55 Hey does anyone know a decent extension language library. 05:50:55 elliott: Have you considered drinking away your problems? 05:50:58 I don't really like Lua. 05:51:01 pikhq_: I don't know enough about necromancy to inform you on the nature of redeath. :P 05:51:28 elliott: Drinking away your problems with caffeine would probably help, actually. 05:51:41 Alternatively, sleep. 05:51:57 Oh, I'm working on a language for that. 05:52:00 Hard to sleep with a headache. 05:52:13 s/with a headache/ 05:52:17 *s/with a headache// 05:52:20 Hey does anyone know a decent extension language library. 05:52:40 Hey does anyone know a decent extension language library. 05:52:41 elliott: Not one that exists yet, I guess would be my answer then. 05:52:52 Hey does anyone know a decent extension language library. 05:52:54 elliott: *shrug* 05:53:05 Hey 05:53:27 evincar: in daily experience we first hear about death secondhand. in conversation or on tv. rather, we learn the word death before we experience it, in general. 05:53:51 sooner or later someone we know dies.. but generally it's someone elses loved one. that much is true. 05:54:07 05:54:16 and gradually we piece together the logic that all die 05:54:55 05:55:02 and that life can end at any time.. that death doesn't "wait" for people to finish their business 05:55:04 05:55:06 I dunno, I still might try to pull a Voldemort. 05:55:13 < 05:55:34 so.. this anthropomorphic death doesn't wait 05:55:45 but of course an anthropomorphic death doesn't exist 05:56:05 it doesn't? 05:56:16 but we have this nagging expectation that there should be a force in place to let people finish their business before they die 05:56:27 we do? 05:56:33 there should? 05:57:09 but of course an anthropomorphic death doesn't exist 05:57:14 You're referring to ghosts. 05:57:15 of course He does, and He talks in small capitals. 05:57:22 I see.... 05:57:32 i don't deny the possibility of ghosts/ 05:57:38 i just didnt know what i was referring to 05:58:01 I don't deny the possibility of anything. I just point to the probability of it. 05:58:17 Death has to be the best personification of Death ever. 05:58:25 Agreed. 06:00:26 But yeah, I've known plenty of people who've died, mostly relatives and friends' relatives, and didn't bat an eyelash nor shed a tear. 06:00:48 they won't shed any tears when you die, either 06:01:07 But, say, the girl I love. If she were to die, I would probably die soon after. 06:01:22 fsvo probably 06:01:32 Not because I can't live without her. Just acute-stress cardiomyopathy at work. 06:02:06 sounds like you're remarkably unfit for life 06:02:29 I'm talking about when I'm in my eighties or something. 06:03:00 Of course it'd be cool to live past 110 to be able to call myself eleventy, eleventy-one, etc. 06:03:01 you're planning to be working in your eighties? 06:03:19 Who said anything about working? 06:03:22 I mean, yes, I am. 06:03:41 But it wasn't mentioned. 06:03:58 i guess it wasn't 06:04:16 i guess i just imagined it. 06:06:40 This girl suggested we get married, not because she wants to be married, but because I'll have a doctorate and could teach CS at a school where she could get her MD for free. :P 06:06:58 -!- TeruFSX has joined. 06:07:10 This conversation ended with a high-five. 06:07:54 -!- TeruFSX2 has quit (Ping timeout: 260 seconds). 06:09:53 I don't think I'd want to get so attached to someone such that if they die, I die. But then, when I was a kid, I had this weird notion that I'd avoid becoming friends with HIV+ kids. Not because I was scared of getting HIV, but because I didn't want to lose a friend 06:10:29 " think I'd want to get so attached to someone such that if they die, I die. " 06:10:32 you realise he said because of age right 06:10:35 lol 06:10:45 IM SO ATTACHED TO YOU....THAT THIS HEARTBREAK..........HASLITERALLY......BROKEN MY HEART............. 06:10:46 [DIES] 06:10:50 [ROLL CREDITS] 06:10:55 It happens quite often. 06:11:33 elliott, you realize that, if all goes according to plan, I will age, right? 06:11:42 so the thing about ghosts suggests that death doesn't actually ignore the events of life as much as my formalized opinion suggests it does 06:11:49 Sgeo: how does your first sentence actually makes sense 06:11:55 you don't want to become attached to someone the same age as you? 06:12:08 This girl and I are absurdly mad for one another. It was a real problem when we both had boyfriends. 06:12:33 The "But then" was me wondering if I really would mind being so attached, and comparing my current thoughts about that level of attachment with past thoughts about hypothetical HiV+ friends 06:13:39 Sgeo: Yeah, you can't reasonably say "I won't get attached to this person because I don't want to get hurt later on". 06:13:51 You can not want to become attached, sure. 06:13:59 "Sorry dude, I can't be friends with you 'cuz yer gonna die." 06:14:02 And you can set your situation up so that you have difficulty becoming attached. 06:14:21 I don't think I would mind being attached, just not potentially fatally 06:14:36 FATAL ATTACHMENT 06:14:36 But if you're compatible with a person, the main predictors of attachment are going to be proximity and time. 06:14:54 It sounds like a Tom Cruise or Nick Cage movie. 06:15:20 tom cruise AND nic cage 06:15:24 instantly best film 06:15:28 -!- lament has quit (Ping timeout: 264 seconds). 06:15:30 I didn't say xor, I guess. 06:15:31 they become glued to each other 06:15:31 and 06:15:32 it's FATAL 06:15:48 So, the Human Centipede, but with only two victims. 06:16:03 I've heard of that movie! 06:16:15 Don't know anything about it, but I've heard of it 06:16:27 Oh, and regardless of what you may have heard about it, A Serbian Film is worth watching once. 06:16:36 You may want to have vodka on hand, though. 06:17:21 Human Centipede = three people are sewn together, anus-to-mouth times two. 06:17:27 oh, librep is still maintained! 06:17:34 evincar: wait it's only three people in a centipede? 06:17:35 lame 06:18:06 elliott: And a dude who is implied to be jacking off to it. 06:18:13 yeah but only three people 06:18:14 laaaame 06:18:21 That's for the sequel. 06:18:24 (honest) 06:18:26 how many legs do centipedes have???? 06:18:28 A Serbian Film = former porn star commissioned by crazy studio to make shock porn, wakes up covered in blood with no memory of events, pieces together events from videos. 06:18:30 it needs to have that many arms+legs 06:18:44 elliott: In the tens. 06:18:55 but millipedes have millionsr ight :| dont ruin me 06:19:01 20 to 300. 06:19:54 while we're talking about films, is the rest of Enter the Void as good as its credit sequence (http://www.youtube.com/watch?v=dL0lNGXoP8E (don't watch if you're epileptic probably)), because if so i'm totally going to watch it 06:20:08 i'd buy a dvd with just those credits 06:20:29 You could make one 06:20:44 Does anyone still use long numbers (milliard, increments of 1e6) rather than short (billion, increments of 1e3)? 06:20:58 yes 06:21:16 evincar: in English? 06:21:20 Seems inconvenient. Then again, most number systems are. 06:21:22 only people who want to confuse others 06:21:28 in other languages? of course 06:21:35 Sgeo: make what 06:21:53 DVD-whatever with those credits 06:22:33 i don't think that'd be worth the effort :P 06:22:46 although admittedly it's the only credit sequence i've seen with an actual climax, maybe it needs scene selection 06:23:03 i wonder if anyone's made a credit sequence that's just the credits for the credit sequence 06:23:18 like a book of reviews of itself 06:23:24 elliott: Like a quine? 06:24:03 Except the shortest possible credit sequence is that made by one (wo)man with no name. 06:24:34 Lasting 1/24 s for formality. 06:24:53 Spending effort > spending money 06:24:54 i like to ponder the fundamental question of what are numbers... 06:24:55 Usually 06:25:14 For me 06:25:35 things like -2,-1,0,1,2 doesn't quite explain it 06:25:37 Sgeo: uh, context 06:25:41 itidus20: lol 06:25:45 i don't think that'd be worth the effort :P 06:25:45 itidus20: do you know any set theory 06:25:57 itidus20: A number is a function taking an object and yielding a description of a quantity of that object? 06:25:58 Sgeo: you realise i wouldnt actually buy a dvd of just those credits 06:26:09 It's sort of an irreducible concept. 06:26:09 evincar: well that's certainly a vague nonstandard definition 06:26:13 no it isn't 06:26:21 0 = {}, Sn = n union {n}, come on 06:26:43 well if you want more than the naturals it's more complicated ofc :P 06:26:52 God of the Math-Gap? 06:27:39 elliott: That's not a reduction, that's more of an implementation or restatement. 06:27:49 The question is what numbers are. 06:27:50 how is a definition not a reduction 06:28:02 number means nothing, natural, integer, rational, ... do 06:28:02 -!- NihilistDandy has joined. 06:28:08 evincar, wouldn't it make more sense at this point to ask what a set is? 06:28:13 and those are all perfectly reducible to the axioms of ZF set theory 06:28:19 or Martin-Löf type theory or whatever 06:28:20 Numbers are just a special sort of set 06:28:22 whatever floats your boat 06:28:42 hmm 06:29:09 In the practical sense, say a linguistic sense, what function does a number serve? 06:29:23 what 06:29:29 Ohai 06:29:35 Depends on the context. In the real world, usually to quantify. 06:29:43 That's the meaning I got from the question, and the question I tried to answer. :P 06:30:00 Sgeo: But unfortunately then we run up against a definition of quantity. :( 06:30:14 evincar: How much muchness is there? 06:30:20 perhaps numbers are merely an aspect of human interpretation of events 06:30:22 evincar, this turning into a question about language, not a question about numbers. 06:30:24 And numbers aren't even universal. There are languages without numbers. 06:30:37 evincar: Irrelevant 06:30:58 Hey does anyone know a decent extension language library. 06:31:01 Not at all. Numbers aren't the universal human descriptor of quantity. 06:31:18 Just because I don't have a word for 6 doesn't mean there aren't 6 eggs in a half dozen 06:31:21 They are *a* descriptor of quantity. 06:31:26 I just can't describe that idea 06:31:47 evincar, the most precise, perhaps overly precise, descriptor 06:32:39 evincar: it seems that quantity is the key word 06:33:56 Yes, but it's still absurdly difficult to come up with a definition for "two" that doesn't use any "two"-ness. 06:34:19 are there limits of definability? :P 06:34:25 One more than one of something 06:34:38 Presumably those things which can only be defined in terms of themselves are axiomatic. 06:34:48 So yes, the limits of definability are axioms. 06:34:57 Depending on your set of axioms~ 06:35:00 a computer program for example has axioms of instruction set.... it can't really be reduced beyond the instruction set 06:35:22 uh i mean, once it does it ceases to be a computer program 06:35:25 itidus20: Microcode. 06:35:28 elliott, what's the liklihood of this conversation melting my brain via means of blah 06:35:43 So the response is actually "oh yes it can". 06:35:58 And further still. 06:36:05 01100010 01101100 01100001 01101000 00100000 01100010 01101100 01100001 01101000 00100000 01100010 01101100 01100001 01101000 06:36:19 No encoding specified. 06:36:29 guys, if there was a limit on any of this i am quite certain that we would not be discussing it at all. we know its possible.. and deep down we know all useful knowledge comes at the cost of lots of hard work 06:36:30 elliott, what's the liklihood of this conversation melting my brain via means of blah 06:36:30 what 06:36:33 Assuming default encoding which is EBCDIC for some reason. 06:39:12 001100 010010 011110 100001 101101 110011 111111 06:39:51 Oops, ignore the 111111 06:40:15 my conception of numbers is like: so you start with a finite ruler of some kind. such as a slice of cheese or a cake.. and you say.. this finite ruler is 1 unit. then you divide it up as much as reasonably possible. 06:40:35 and then you say, each division of the unit, itself, is a unit, and could theoretically be divided up 06:40:55 Define finite 06:41:53 an object which can be manipulated in it's entirety by a human 06:42:06 How do you define a set, then? 06:42:13 And what consitutes manipulation? 06:42:15 Define "object" 06:42:18 And what's a human? 06:42:25 And what's entirety? 06:42:28 Do mathematical constructs count as objects? 06:42:31 this is dumb 06:42:39 evincar started it :d 06:42:41 a set definition is finite... even though its meaning is infinite 06:42:46 What's finite? 06:42:47 itidus20, wrong 06:42:50 Did not. 06:43:33 this is dumb 06:43:34 yes 06:43:36 evincar started it :d 06:43:38 no, iti did 06:43:39 :P 06:43:45 Given a finite vocabulary, there are sets that you can't describe with a finite squence of symbols in that vocabulary 06:43:45 i mean, like, if you write down a set ... that writing is finite.. it is a subset of the piece of paper 06:43:49 I have a more interesting problem: 06:43:52 What is the largest number? 06:43:55 itidus20, you can't get all sets like that 06:44:04 Patashu: One second. 06:44:11 but each actual set definition is a finite thing existing in a finite computer or on a finite piece of paper 06:44:20 Patashu: 45,000,000,000. 06:44:21 Patashu: The largest number you can think of + 1 06:44:22 itidus20, all that we can manipulate, yes 06:44:25 I looked this up in a reliable source. 06:44:26 But there's more sets than that 06:44:59 ok *wipes brow* 06:45:23 You can't describe all real numbers with a finite sequence of symbols, and it's pretty easy to imagine a set that is dependent on a sepcific number 06:45:57 the word infinity is 8 characters long and thus finite... and yet defines something infinite 06:46:06 It defines nothing 06:46:11 The definition defines it 06:46:18 The word is just a representative 06:46:19 The symbol refers to it. 06:46:28 perhaps i should say, symbols are finite 06:46:39 In what sense? 06:46:53 i mean..i know there can be infinite symbols.. but each specific symbol is a finite thing 06:47:00 Is it? 06:47:11 Is a line not a symbol? 06:47:18 Is a point really finite? 06:47:24 does it have to be percieved to be a symbol? 06:47:28 oh my god 06:47:47 elliott created a monster 06:47:54 This is horrifying. 06:47:55 elliott, baby steps on the way to thinking 06:48:01 And the monster will forevermore be remembered by his name 06:48:04 Well, not baby steps 06:48:07 There is thinking 06:48:13 aren't symbols ultimately the handles on reality 06:48:15 Just baby-like thinking 06:48:22 Worse than being in the café at my college. 06:48:23 itidus20: Justify 06:48:44 evincar: Godwin's Corollary :D 06:48:57 three seconds away from rage/parting if we don't stop sounding like the other kind of #esoteric 06:49:34 elliott, nothing wrong with philosomath 06:49:41 written characters are always small enough relative to our anticipated distance from them to be percieved in full 06:49:42 I only came on because I had a question for #haskell, but they're busy gassing on about ByteStrings 06:49:42 Sgeo: you're not doing philosomath 06:49:48 itidus20: Actually, no, they're not. The Sapir-Whorf Hypothesis and linguistic relativity are largely discredited. 06:49:52 NihilistDandy: ask me instead im genius 06:50:18 evincar: Almost completely discredited. You give them too much credit :D 06:50:27 elliott: Okay, hpaste inbound 06:50:42 http://hpaste.org/49703 06:50:54 Tell me if you know what I'm going for, then I'll explain if it's not clear 06:51:12 im more out of my depth than i am aware of :D 06:51:14 I know it's ugly and awful, by the way 06:51:21 I'm trying to fix that 06:52:31 g :: Integral a => [a] -> [a] 06:52:31 g = map g' 06:52:35 Why would that compile? 06:52:41 Why wouldn't it? 06:52:43 Oh, derp 06:52:45 :P 06:52:47 what's g' here? 06:52:50 NihilistDandy: What are you trying to do 06:52:59 Like, that code looks like it should compile to me 06:53:07 I dunno, ask an actual question 06:53:10 It's not a compilation issue, it's a thought process issue 06:53:22 Unfortunately I'm not a mind reader 06:53:23 I'm trying to make a fairly simple implentation of permutation groups 06:53:37 This is a short experiment that I scribbled down at work 06:53:49 evincar: thanks. good to know :D 06:53:51 But it's disappointingly specific. 06:53:52 it occurs to me that asking someone with this headache might not be your best hope :) 06:54:03 elliott: No worries :D 06:54:26 I'd like to be able to generalize it to arbitrary permutations, but reasoning about the type system has put me in a bit of a spot 06:54:36 NihilistDandy: dude, !! 06:55:01 coppro: In what way, exactly, should I use it? 06:58:09 I'M AN IDIO- wait, what... 06:58:22 OHHH 06:58:44 mconcat = map . (!!) 06:58:58 um... 06:58:59 where a permutation is a list of integers from 0 to n-1 06:59:04 :t map . (!!) 06:59:04 forall b. [b] -> [Int] -> [b] 06:59:06 :t mconcat 06:59:07 forall a. (Monoid a) => [a] -> a 06:59:10 how about no 06:59:18 hrm wait 06:59:26 pro 06:59:33 wrong function 06:59:41 Also 06:59:42 http://mathbin.net/64558 06:59:43 proest 06:59:46 prost 06:59:52 The texified version 06:59:55 I MEANT mappend! 07:00:08 :t mappend 07:00:08 APPEND AND CONCATENATE THERE IS NO DISTINCTION 07:00:08 forall a. (Monoid a) => a -> a -> a 07:00:12 :t map . (!!) 07:00:13 forall b. [b] -> [Int] -> [b] 07:00:19 well ok for b=Int. 07:00:25 well yeah 07:00:39 I'm talking about with [Int] as the monoid 07:00:45 or some newtype thereof 07:01:09 (obviously it would actually have to be a newtype) 07:01:28 (because haskell sucks) 07:01:33 The TeX version is just in case permutation notation is a more familiar area 07:01:56 6 days without a Homestuck update 07:02:11 Sgeo: How will you LIIIIIVE? 07:02:15 > let perm = map . (!!) in [0,3,2,1] `perm` [2,3,1,0] 07:02:16 [2,1,3,0] 07:03:07 (because haskell sucks) 07:03:14 --mr "mappend and mconcat what is the difference" 07:03:36 elliott: I was referring to the lack of elegant handling of multiple possible instances of a typeclass for a type 07:03:41 > let perm = map . (!!) in [1,2,3,4,5] `perm` [2,4,5] 07:03:42 [3,5,*Exception: Prelude.(!!): index too large 07:03:47 And there's the problem 07:04:32 The size of a cycle is not equal to the size of the set, necessarily 07:04:48 that's not a permutation group... 07:05:16 Sorry, meant permutations of a finite set 07:05:22 Permutation groups come later 07:05:27 I'm working up 07:05:34 you're still missing the point 07:05:38 a permutation contains all elements 07:05:51 if you want permutations of the elements of the powerset, that's very different 07:05:59 A cycle doesn't contain all elements 07:06:11 And I'd like to be able to work with the permutation decomposed into its sycles 07:06:14 *cycles 07:06:33 this headache is unberable 07:06:36 unberaable 07:06:36 As illustrated in the TeX example 07:06:38 also i can't type 07:06:44 elliott: That looked like Dutch 07:07:15 what TeX example? 07:07:21 http://mathbin.net/64558 07:07:43 That one 07:08:04 NihilistDandy: unberaabel would look more Dutch. 07:08:11 evincar: Truth 07:09:44 NihilistDandy: you need to fill out your lists first then 07:09:48 this is not expressible in the type system 07:10:01 Exactly my thoughts. 07:10:11 I was just curious if I might just be wrong 07:12:57 Totally unrelated: does anyone know of a programming language that's not totally isolating? That is, say, an agglutinative or synthetic one. 07:13:20 Rewrite C stdlib in Hungarian? 07:13:31 It seems like programming languages don't have inflections in any real sense. 07:13:39 -!- TeruFSX has quit (Ping timeout: 260 seconds). 07:14:15 Because even those assemblies where inflection is possible, it's not productive. I can't arbitrarily add inflections to root morphemes to make new instructions. 07:14:59 -!- pitufoide has joined. 07:15:52 NihilistDandy: You would need to create a representation of the naturals in the type system for it to be useful 07:16:06 They have type-level naturals in HEAD 07:16:50 (Actually, programming languages seem to be all purely analytic, not just isolating.) 07:17:59 coppro: that's trivial 07:18:06 data Z 07:18:09 data S n 07:18:11 class Nat n 07:18:12 instance Nat Z 07:18:14 elliott: well yes 07:18:15 instance (Nat n) => Nat (S n) 07:18:18 blah blah blah infrastructure 07:18:21 you can even do it in binary 07:18:27 Guess it's time to make an esolang inspired by a Balto-Slavic language with many cases. 07:18:28 it is a common technique. 07:18:36 elliott: I know how to construct the naturals thank you 07:18:53 elliott: I can even define addition!!1!one 07:19:07 But can you define addition without type families? 07:19:16 With a binary representation? 07:20:17 define type families 07:20:29 lol. 07:21:40 elliott: do you mean the GHC extension? 07:22:27 the extension is in very common use, and there is nothing else that type families refers to, so yes. 07:22:49 k 07:23:29 I believe the answer is yes 07:23:31 let me double-check 07:23:37 to what 07:24:01 [03:18:49] But can you define addition without type families? 07:24:01 [03:18:57] With a binary representation? 07:25:43 I feel unwell 07:25:57 i feel like a well 07:26:03 weird feelin 07:26:42 i wonder if this classes as a migraine 07:26:50 probably not 07:28:58 elliott: If you don't want to end electromagnetic radiation permanently, it's probably not a migraine. 07:29:11 Electromagnetic radiation sucks shit, man. 07:29:32 Nice chatting, folks. I'm off to eat a loaf of bed. 07:29:34 Yes, but does it cause agony? 07:29:38 -!- evincar has quit (Quit: leaving). 07:31:37 elliott: k i changed my mind 07:32:15 I do not know how to implement it at the type level without type families 07:33:25 oh, what i have here is actually subtraction 07:33:28 but whatever, same thing :) 07:33:34 no type families, and binary 07:33:44 I can show you if you'd like 07:38:29 would be interested 07:39:19 Please do 07:40:42 k one second 07:41:49 sent in /msg, the world is too innocent to know my genius 07:42:00 oh i forgot newtype Tagged t a = Tag { untag :: a } 07:42:20 and it needs a whole bunch of ghc extensions but w/e 07:42:45 it's a lot simpler if you just do it for unary instead of binary, but unfortunately that was much too slow. 07:44:58 oh that explains it 07:45:05 I was trying to avoid extensions generally 07:45:11 that's impossible 07:45:44 You can hardly do anything fun without extensions 07:47:02 elliott: what extensions are those? 07:47:26 coppro: I only have a list for the much larger program it's contained within; I suggest just adding them as GHC complains about not having them 07:48:37 elliott: to be fair the only one that stands out is the | in classes 07:49:08 Not quite: There's also multi-parameter type classes, flexible instances, I think probably undecidable instances... 07:49:10 Flexible contexts too 07:49:15 The |s are functional dependencies. 08:18:31 ?pl \n pairs -> fromMaybe n (lookup n pairs) 08:18:31 liftM2 (.) fromMaybe lookup 08:18:34 ?pl \pairs n -> fromMaybe n (lookup n pairs) 08:18:34 ap fromMaybe . flip lookup 08:18:47 ?pl \ess@(e:es) -> zip ess (es ++ [e]) 08:18:47 (line 1, column 5): 08:18:47 unexpected "@" 08:18:47 expecting letter or digit, operator, pattern or "->" 08:18:55 ?pl \(e:es) -> zip (e:es) (es ++ [e]) 08:18:55 ap (ap (ap . (zip .) . (:)) (flip (++) . return) . head) tail 08:19:01 ?pl \(ess@(e:es)) -> zip ess (es ++ [e]) 08:19:01 (line 1, column 6): 08:19:01 unexpected "@" 08:19:01 expecting letter or digit, operator or ")" 08:19:05 D'awww 08:19:15 ?pl \xs -> zip xs (tail xs ++ [head xs]) 08:19:15 ap zip (liftM2 (++) tail (return . head)) 08:26:53 -!- Sgeo has quit (Ping timeout: 250 seconds). 08:39:15 -!- MigoMipo has joined. 08:44:32 -!- Taneb has joined. 08:44:35 Hello 08:46:15 Hi 08:47:06 What is happening in the WORLD OF ESOTERIC PROGRAMMING 08:47:20 ? 08:48:41 EVERYTHING 08:49:16 Mein. Deu. 08:58:18 why does Haskell not have a Semigroup typclass 08:58:20 *typeclass 09:00:57 Because that would make everything too easy 09:01:44 it should be class Semigroup s where { (<.>) :: s -> s -> s } and then class (Semigroup m) -> Monoid m where { identity :: m } 09:01:47 coppro: http://hackage.haskell.org/package/semigroups 09:01:50 or iden for short 09:01:51 and your syntax is bad 09:02:01 err => 09:02:04 YOU KNOW WHAT I MEANT 09:02:36 The world's in a mess 09:02:58 also why does Semigroup have to stuff Monoid in a newtype 09:03:01 any postulate which makes everything too easy would be a divergence from reality, since reality is self-evidently not easy 09:03:01 Syria's in protest 09:03:13 US is having a crisis 09:03:16 also why does Semigroup have to stuff Monoid in a newtype 09:03:19 re: Because that would make everything too easy 09:03:24 technical reasons 09:03:32 (overlapping instances) 09:03:45 and no, there is _not_ a real solution to that, beyond fixing Monoid to have the proper superclass 09:03:54 it's not a flaw in Haskell, just a flaw in library structure. 09:04:21 @src (<>) :: Option a -> Option a -> Option a 09:04:21 Source not found. You speak an infinite deal of nothing 09:04:50 Option? 09:04:56 Is there a 'fixed' version of Hasell 09:05:03 Patashu: define fixed 09:05:12 it has fewer flaws than almost every other language :) 09:05:23 as if to postulate: "each family has enough water" .. but all the while knowing "the city doesn't have enough water".. therefore one of the statements is wrong. 09:05:36 the monad/applicative stuff seems to be a flaw 09:05:51 -!- Taneb has quit (Quit: switching computer). 09:05:53 Patashu: I didn't say it was without flaws 09:06:12 but they should be fixed incrementally by the usual process, not by making some "fixed" version of Haskell. In fact you can "fix" Haskell today by writing your own Prelude. 09:06:26 But the problem is that nobody will use it and it won't be compatible with anyone else's code. 09:06:28 So that helps nobody. 09:06:43 elliott: Option is a version of Semigroup for Maybe. Probably needs to be a newtype to avoid overlapping or some shit like that 09:07:09 Well, semigroups isn't in Hoogle. 09:07:18 explains it 09:07:20 coppro: "a version of Semigroup"? 09:07:22 "Option is effectively Maybe with a better instance of Monoid, built off of an underlying Semigroup instead of an underlying Monoid. Ideally, this type would not exist at all and we would just fix the Monoid intance of Maybe" 09:07:35 that 09:07:42 -!- NihilistDandy has quit (Read error: Connection reset by peer). 09:07:47 -!- Taneb has joined. 09:07:55 And before you whine again, the problem is a flawed Prelude, not Haskell's inability to do the impossible. :p 09:08:31 -!- NihilistDandy has joined. 09:08:36 DISAGREE 09:09:12 Monoid is not in Prelude 09:09:21 but yes, the issue is not with Haskell itself 09:09:27 You know what I mean. 09:09:29 The base package. 09:09:42 Anyway, these issues come up a lot in discussion, but are really very minor in practice. 09:09:51 this all came up because Applicative ((,) e) requires a Monoid where it could use a Semigrouop 09:09:55 *Semigroup 09:10:21 oh wait, pure requires a Monoid 09:10:22 NEVERMIND 09:10:26 herp derp 09:10:34 I R SMRT 09:11:36 although really, <*> doesn't require the existence of 'pure' conceptually 09:11:48 no function requires the existence of any function 09:11:55 but applicatives are constructed the way they are for a reason 09:11:58 without pure, you cannot give them laws. 09:12:06 and without laws, every abstraction is useless. 09:12:12 -!- oerjan has joined. 09:12:19 hi oerjan 09:12:24 hi elliott 09:12:30 hi NihilistDandy 09:12:34 Oh, wait 09:12:50 NihilistDandy: you're a nihilist, not a solipsist, duh 09:13:05 Well, you've got me there 09:14:08 Anyway, I have to sleep 09:14:19 Adios 09:17:41 elliott: minor nit: why does the haskell community call them laws and not axioms? 09:18:01 coppro: because they're not axioms 09:18:19 they are propositions that an instance must satisfy, not things that are just true 09:18:31 I mean, you could use axiom equivalently, I suppose 09:18:34 And it wouldn't be very confusing 09:18:37 But how's it a "nit" 09:18:42 I don't see how "law" is wrong in any way 09:19:19 how dare the haskellers use a less mathematically obscure term for once! 09:31:40 ^ 09:31:50 hell, C++ was considering axioms 09:33:06 how would C++ use axioms? 09:33:42 -!- Taneb has quit (Quit: He's a big quitter he is.). 09:33:57 Patashu: for basically the same thing 09:34:16 they were working on a compile-time polymorphism feature 09:34:24 with constrained types 09:34:32 and 'axioms' which could be used as optimizer hints 09:34:40 as well as in-source documentation of code 09:35:03 :( 09:35:04 I want that 09:35:13 also the ((->) r) monad is bitchin' 09:35:28 Patashu: if you really want it, help them resolve the issues! 09:35:39 it was rejected. 09:35:43 No 09:35:57 It was removed from C++11 due to the fact that they couldn't finish it 09:36:20 and they decided "we've wasted enough time, let's ship something without it and fix it for next time" 09:36:22 -!- NihilistDandy has quit (Read error: Operation timed out). 09:37:12 head >>= all . (==) 09:37:45 that function is pure epic win 09:38:31 :t head >>= all . (==) 09:38:32 forall a. (Eq a) => [a] -> Bool 09:39:08 > (head>>=all.(==)) [0,0,0] 09:39:09 True 09:39:10 > (head>>=all.(==)) [0,0,0,9] 09:39:11 False 09:39:13 > (head>>=all.(==)) [0,9,0] 09:39:14 False 09:39:19 > (null . nub) [0,9,0] 09:39:20 False 09:39:22 coppro: shortened that for you 09:39:23 > (null . nub) [0,0,0] 09:39:24 False 09:39:28 guh what 09:39:30 > nub [0,0,0] 09:39:31 [0] 09:39:33 oh 09:39:35 > nub [] 09:39:35 [] 09:39:41 ?hoogle safeTail 09:39:42 Data.ByteString.Unsafe unsafeTail :: ByteString -> ByteString 09:39:44 ?hoogle something 09:39:44 Data.Generics.Schemes something :: GenericQ (Maybe u) -> GenericQ (Maybe u) 09:39:58 coppro: (null . tail' . nub), anyway, where tail' [] = []; tail (_:xs) = xs 09:40:56 elliott: drop 1 09:41:12 elliott: but nub is inefficient 09:41:23 Oh right, drop 1. 09:41:24 ?src nub 09:41:24 nub = nubBy (==) 09:41:27 ?src nubBy 09:41:27 nubBy eq [] = [] 09:41:27 nubBy eq (x:xs) = x : nubBy eq (filter (\ y -> not (eq x y)) xs) 09:41:34 coppro: I don't see why it'd be inefficient at this. 09:41:46 Well, OK. 09:41:50 But it's prettier. 09:42:10 I'm using a custom comparer 09:42:39 so I'd say "head >>= all . comp" is better than "null . drop 1 . nubBy comp" 09:45:07 it's all in the head 09:45:26 ?hoogle (c -> c -> c) -> (a -> c) -> (b -> c) -> a -> b -> c 09:45:26 No results found 09:46:02 ?djinn (c -> c -> c) -> (a -> c) -> (b -> c) -> a -> b -> c 09:46:02 f a b c d e = a (b d) (c e) 09:46:08 ?pl \a b c d e -> a (b d) (c e) 09:46:08 ((flip . ((.) .)) .) . (.) 09:46:09 didn't we discuss something like that the other day 09:46:10 coppro: yw 09:46:19 elliott: h8 u 09:46:27 ?pl \b c d e -> a (b d) (c e) 09:46:27 flip . (((.) . a) .) 09:46:34 ?pl \d e -> a (b d) (c e) 09:46:34 (. c) . a . b 09:46:36 i think i made a version with arrow style 09:47:19 arrows :( 09:47:22 :t on 09:47:22 forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c 09:48:15 uncurry (uncurry a . (b *** c)) or something 09:49:36 :t uncurry (uncurry ?a . (?b *** ?c)) 09:49:37 forall a b b1 c b2 b'. (?a::a -> b -> b1 -> c, ?b::b2 -> a, ?c::b' -> b) => ((b2, b'), b1) -> c 09:49:42 oops 09:49:50 :t curry (uncurry ?a . (?b *** ?c)) 09:49:50 forall a b c a1 b1. (?a::a -> b -> c, ?b::a1 -> a, ?c::b1 -> b) => a1 -> b1 -> c 09:50:23 @pl \a b c -> curry (uncurry a . (b *** c)) 09:50:23 ((curry .) .) . (. (***)) . (.) . (.) . uncurry 09:50:45 (argh) 09:51:12 oh hm 09:51:14 btw oerjan 09:51:15 newtype MyMonad a = MyMonad (StateT MyState (ReaderT Options (ErrorT MyException (WriterT [String] IO))) a) 09:51:15 deriving (Functor, Monad, MonadReader Options, MonadState MyState, MonadError MyException, MonadWriter [String]) 09:51:23 seen in actual haskell code 09:51:27 i weep for humanity 09:51:39 who would do that 09:51:50 you'd think they could fit an RSWT in there somewhere 09:52:31 monqy: the same guy who thinks that everybody just uses the io monad with exceptions and state 09:52:33 remember them?? 09:52:39 http://www.reddit.com/r/haskell/comments/j2n5w/why_doesnt_haskell_have_something_like_this_how/c294l8g?context=3 btw 09:52:45 for me yelling at them for it 09:52:57 :t (&&) <$> ((<*>) `on` ((==) .)) height width 09:52:58 Not in scope: `height' 09:52:58 Not in scope: `width' 09:53:05 ?unpl (&&) <$> ((<*>) `on` ((==) .)) height width 09:53:05 ((&&) <$> (on (<*>) (\ a d -> (==) (a d)) height width)) 09:53:15 coppro: now /that's/ unreadable 09:53:19 add some where bindings, dude 09:53:45 :t (&&) <$> ((<*>) `on` ((==) .)) length first 09:53:46 Occurs check: cannot construct the infinite type: a = a -> b 09:53:46 Expected type: f (a -> b) 09:53:46 Inferred type: f a 09:53:58 :t (&&) <$> ((<*>) `on` ((==) .)) length head 09:53:59 Occurs check: cannot construct the infinite type: a = a -> b 09:53:59 Expected type: f (a -> b) 09:53:59 Inferred type: f a 09:54:06 damn 09:54:24 :t curry (curry . (uncurry ?a .) . uncurry (***)) 09:54:24 forall c b c1 b' c'. (?a::c1 -> c' -> c) => (b -> c1) -> (b' -> c') -> b -> b' -> c 09:54:30 :t (<*> `on` ((==) .)) 09:54:30 parse error on input ``' 09:54:44 :t ((<*>) `on` ((==) .)) 09:54:45 Occurs check: cannot construct the infinite type: a = a -> b 09:54:45 Expected type: f (a -> b) 09:54:45 Inferred type: f a 09:54:59 there's me problem 09:55:13 ?pl \a -> curry (curry . (uncurry a .) . uncurry (***)) 09:55:13 curry . (curry .) . (. uncurry (***)) . (.) . uncurry 09:55:26 :t ((==) .) 09:55:27 forall a (f :: * -> *). (Eq a, Functor f) => f a -> f (a -> Bool) 09:55:35 coppro: btw: you were talking about wanting semigroups for an Applicative without pure 09:55:39 :t curry . (curry .) . (. uncurry (***)) . (.) . uncurry 09:55:39 forall a b c a1 b1. (a1 -> b1 -> c) -> (a -> a1) -> (b -> b1) -> a -> b -> c 09:55:48 elliott: I was joking really 09:56:07 coppro: see Apply in http://hackage.haskell.org/packages/archive/semigroupoids/1.2.2.1/doc/html/Data-Functor-Apply.html, by the same author as the semigroups paclage 09:56:26 package 09:56:44 don 09:56:50 don 09:56:55 thanks 09:57:09 someone should write an agdabot 09:57:10 excuse me while I try to sort this mess out 09:57:18 what mess :) 09:57:34 coppro: (btw, these packages are basically the split-up sequel to category-extras, which is deprecated, if you've heard of it) 09:57:36 by the same guy 09:57:38 oh damn that's left-associative no wonder 09:58:08 http://www.reddit.com/r/haskell/comments/fvabx/greenfield_haskell/c1j0kju has a link to all the category-extras sequels :P 09:58:12 :t (&&) <$> ((==) . length) <$> ((==) . first) 09:58:12 Couldn't match expected type `Bool' 09:58:12 against inferred type `a -> Bool' 09:58:12 In the first argument of `(.)', namely `(==)' 09:58:23 http://hackage.haskell.org/package/void this is the most useful one 09:58:23 ;D 09:58:36 gotta love them instances 09:58:48 haha 09:58:58 :t (&&) <$> ((==) . length) <*> ((==) . first) 09:58:58 Couldn't match expected type `Bool' 09:58:58 against inferred type `a -> Bool' 09:58:58 In the first argument of `(.)', namely `(==)' 09:59:15 bah 09:59:28 -!- TeruFSX has joined. 09:59:49 elliott: Is that suppose to be an inconstructible type? 10:00:00 coppro: s/suppose to be/is/ 10:00:13 it is actually quite useful 10:00:15 example? 10:00:23 what do you mean? 10:00:25 example of its use? 10:00:28 yeah 10:00:43 :t length 10:00:43 forall a. [a] -> Int 10:00:52 :t ((==) . length) 10:00:52 forall a. [a] -> Int -> Bool 10:01:02 coppro: well, for instance, if a certain branch is impossible, and you can make the types work out so that the impossible branch gives you a Void... 10:01:05 umm, I forget precisely 10:01:09 but I know that Epigram uses it, IIRC 10:01:10 or was it Agda 10:01:13 something McBride worked on, anyway ;-) 10:01:19 ah 10:01:25 makes more sense with dependent types 10:01:29 but yes, mostly useful in compiler output than by hand, I would think 10:01:49 oh fuck that's what I'm doing wrong 10:02:05 coppro: McBride wanted vacuous added (see http://hackage.haskell.org/packages/archive/void/0.5.4.1/doc/html/src/Data-Void.html) 10:02:09 so I presume that ended up useful for something 10:02:13 because of its efficient unsafeCoerce implementation 10:02:46 yeah I looked at the source 10:04:47 doing the impossible, and efficiently! 10:09:54 :t (***) `on` ((==) .) 10:09:54 forall (a :: * -> * -> *) b a1. (Arrow a, Eq a1, Functor (a b)) => a b a1 -> a b a1 -> a (b, b) (a1 -> Bool, a1 -> Bool) 10:10:07 :t (***) `on` ((==) .) first length 10:10:08 Couldn't match expected type `a b c' against inferred type `Bool' 10:10:08 In the first argument of `(.)', namely `(==)' 10:10:08 In the second argument of `on', namely `((==) .) first length' 10:10:14 -!- monqy has quit (Quit: hello). 10:10:19 :t (***) `on` ((==) .) $ first length 10:10:19 Precedence parsing error 10:10:19 cannot mix `on' [infixl 0] and `$' [infixr 0] in the same infix expression 10:10:23 :t (***) `on` ((==) .) $ first # length 10:10:24 Precedence parsing error 10:10:24 cannot mix `on' [infixl 0] and `$' [infixr 0] in the same infix expression 10:10:24 Not in scope: `#' 10:10:30 :t (***) `on` ((==) .) $ first $ length 10:10:31 Precedence parsing error 10:10:31 cannot mix `on' [infixl 0] and `$' [infixr 0] in the same infix expression 10:10:34 damn you 10:10:46 :t ((***) `on` ((==) .)) first length 10:10:47 Couldn't match expected type `a b c' against inferred type `[a1]' 10:10:47 Expected type: a b c -> a (b, d) (c, d) 10:10:47 Inferred type: [a1] -> Int 10:11:17 :t ((***) `on` ((==) .)) first 10:11:18 forall (a :: * -> * -> *) b c d. (Eq (a (b, d) (c, d)), Arrow a) => (a b c -> a (b, d) (c, d)) -> (a b c, a b c) -> (a (b, d) (c, d) -> Bool, a (b, d) (c, d) -> Bool) 10:11:25 :t first 10:11:25 forall (a :: * -> * -> *) b c d. (Arrow a) => a b c -> a (b, d) (c, d) 10:11:29 oh no wonder 10:11:32 :t ((***) `on` ((==) .)) head 10:11:32 forall a. (Eq a) => ([a] -> a) -> ([a], [a]) -> (a -> Bool, a -> Bool) 10:11:34 derpderpderp 10:11:51 :t (&&) <$> ((==) . length) <$> ((==) . head) 10:11:52 Couldn't match expected type `Bool' 10:11:52 against inferred type `a -> Bool' 10:11:52 In the first argument of `(.)', namely `(==)' 10:11:57 yup didn't expect that to work 10:12:18 :t curry $ uncurry (&&) $ ((***) `on` ((==) .)) first length 10:12:19 Couldn't match expected type `Bool' against inferred type `(b, b)' 10:12:19 Expected type: (Bool, Bool) 10:12:19 Inferred type: ((b, b), (a -> Bool, a -> Bool)) 10:12:38 :t uncurry (&&) . ((***) `on` ((==) .)) first length 10:12:39 Couldn't match expected type `Bool' 10:12:39 against inferred type `a -> Bool' 10:12:39 Expected type: a1 (b, b) (Bool, Bool) 10:13:08 :t curry $ uncurry (&&) $ ((***) `on` ((==) .)) head length 10:13:09 Couldn't match expected type `Bool' against inferred type `(b, b)' 10:13:09 Expected type: (Bool, Bool) 10:13:09 Inferred type: ((b, b), (a -> Bool, a -> Bool)) 10:13:17 :t curry . uncurry (&&) . ((***) `on` ((==) .)) head length 10:13:18 Couldn't match expected type `(a, b) -> c' 10:13:18 against inferred type `Bool' 10:13:18 In the first argument of `(.)', namely `uncurry (&&)' 10:13:35 :t ((***) `on` ((==) .)) head length 10:13:35 ([Int], [Int]) -> (Int -> Bool, Int -> Bool) 10:13:57 oh of course I run into the same damn problem again 10:14:04 FUCK MULTIPLE ARGUMENTS 10:14:48 or just me being up at 3 am 10:14:49 coppro: Dude, just write it out explicitly. 10:15:12 :t (&&) <$> (== `on` head) <*> (== `on` length) 10:15:13 parse error on input ``' 10:15:21 :t (&&) <$> ((==) `on` head) <*> ((==) `on` length) 10:15:22 Couldn't match expected type `Bool' 10:15:22 against inferred type `[a] -> Bool' 10:15:22 Probable cause: `on' is applied to too few arguments 10:15:24 Or not. 10:15:28 elliott: no 10:15:32 I will not give in 10:15:43 coppro: You're making your code less readable. 10:15:48 elliott: I know 10:15:55 I dun care 10:16:04 k 10:16:11 FREE ALL THE POINTS 10:16:23 it's 3 am 10:16:29 I am allowed to free every point I want 10:16:46 :t (==) `on` head 10:16:47 forall a. (Eq a) => [a] -> [a] -> Bool 10:16:50 3 am is nothing. 10:17:07 elliott: I was up till at least 6 yesterday 10:17:35 coppro: dude, don't talk to me about sleep. 10:17:44 ?hoogle (a -> a -> a) -> (b -> b -> a) -> (b -> b -> a) -> b -> b -> a 10:17:44 No results found 10:17:44 coppro: Literally everything you say will be met by scornful laughter. 10:17:49 elliott: k 10:17:50 I have experienced every schedule. 10:17:52 EVERY SCHEDULE. 10:17:56 elliott: even uberman 10:18:08 Oh, no schedules sane enough to have names. 10:18:10 btw I have arrived for work at 4pm before 10:18:12 on a regular basis 10:18:26 I also haven't technically been awake more than forty hours at a time before, but that just means my works of art are short-form. 10:18:30 it's actually to the point where I get made fun of when I show up 10:18:36 because either I'm showing up really late 10:18:40 or I'm showing up earlier than normal 10:18:53 also fuck this sunburn 10:19:14 So nobody actually does anything at Google, right? You just arrive there, have your free GOOGLE GORMET LUNCH, play with a bunch of large coloured plastic spheres, have some twenty percent time, and then go home? 10:19:36 Theory: Google is actually day care. 10:19:39 elliott: dude you think I show up for lunch 10:19:57 coppro: Sheesh, just go all ruining my joke by responding too quickly. 10:20:20 also we have beach parties 10:21:22 :t foldM 10:21:22 forall a b (m :: * -> *). (Monad m) => (a -> b -> m a) -> a -> [b] -> m a 10:21:53 :t \mp fld zr -> mapM mp >>= foldM fld z 10:21:53 forall t a b. (a -> [b]) -> (Expr -> [b] -> [a] -> Expr) -> t -> [a] -> Expr 10:21:58 X-D 10:21:58 :t \mp fld zr -> mapM mp >>= foldM fld zr 10:21:59 forall a b b1. (a -> [b]) -> (b1 -> [b] -> [a] -> b1) -> b1 -> [a] -> b1 10:22:14 :t \mp fld zr lst -> mapM mp lst >>= foldM fld zr 10:22:15 forall a (m :: * -> *) b b1. (Monad m) => (a -> m b) -> (b1 -> b -> m b1) -> b1 -> [a] -> m b1 10:22:17 ?pl \mp fld zr lst -> mapM mp lst >>= foldM fld zr 10:22:17 (. foldM) . (.) . flip . ((>>=) .) . mapM 10:22:23 ?pl \fld zr mp lst -> mapM mp lst >>= foldM fld zr 10:22:23 (flip (flip . ((>>=) .) . mapM) .) . foldM 10:22:25 Pah. 10:22:42 oerjan: Hey, you write the boilerplate to do the map as part of the fold, thx :P 10:22:54 coppro: Dude, just write it out explicitly. <-- if for nothing else, so the rest of us can guess what you're trying to do! :P 10:23:27 I'm way too cool to care about that. 10:23:32 But 10:23:33 oerjan: Hey, you write the boilerplate to do the map as part of the fold, thx :P 10:25:32 SHEESH 10:25:42 X-D <-- you know you're among geeks when they laugh at :t results 10:27:18 oerjan: Hey, you write the boilerplate to do the map as part of the fold, thx :P 10:27:20 >:||||||||\\\\\\\ 10:28:12 i cannot, the neighbors are making the kind of noise that makes it impossible to concentrate again 10:30:54 oerjan: thats when headphones are good to create your own noise 10:31:31 partially because you get the sense of control over music... unlike neighbors noise which cannot be controlled 10:31:53 but i like actual silence. 10:32:09 couldn't you theoretically use a noise cancelling headphone for that 10:32:27 map [] = []; map (x:xs) = f x:xs 10:32:35 foldr (\x xs -> f x : xs) [] 10:32:36 ?pl foldr (\x xs -> f x : xs) [] 10:32:36 foldr ((:) . f) [] 10:32:40 elliott: FAIL 10:32:44 oerjan: wat 10:32:46 in my case it's usually intra-house noise 10:32:48 i know i omitted the f 10:32:50 but same idea 10:32:51 shaddap 10:33:13 yes, it's intra-house. 10:33:17 inter-house. 10:33:20 curry . uncurry (&&) <$> (<*> `on` uncurry (on (==))) head length 10:33:20 presumably. 10:33:22 :t curry . uncurry (&&) <$> (<*> `on` uncurry (on (==))) head length 10:33:23 parse error on input ``' 10:33:24 unless your neighbours live in your house 10:33:27 ?pl foldr (\x r -> ff (mf x) r) fz 10:33:27 foldr (ff . mf) fz 10:33:30 :t curry . uncurry (&&) <$> ((<*>) `on` uncurry (on (==))) head length 10:33:30 Couldn't match expected type `(a, b) -> c' 10:33:30 against inferred type `Bool' 10:33:31 In the second argument of `(.)', namely `uncurry (&&)' 10:33:31 ?pl foldM (\x r -> ff (mf x) r) fz 10:33:31 foldM (ff . mf) fz 10:33:35 ?. ty pl foldM (\x r -> ff (mf x) r) fz 10:33:35 Plugin `compose' failed with: Unknown command: "ty" 10:33:39 oh come on 10:33:40 ?. type pl foldM (\x r -> ff (mf x) r) fz 10:33:41 Not in scope: `ff' 10:33:41 Not in scope: `mf' 10:33:41 Not in scope: `fz' 10:33:41 :t curry . (uncurry (&&) <$> ((<*>) `on` uncurry (on (==))) head length) 10:33:42 Couldn't match expected type `(a, b) -> c' 10:33:42 against inferred type `Bool' 10:33:43 In the first argument of `(<$>)', namely `uncurry (&&)' 10:33:46 elliott: ok i should technically call them housemates, then 10:33:51 or something 10:34:01 :t ((<*>) `on` uncurry (on (==))) 10:34:02 Occurs check: cannot construct the infinite type: a = a -> b 10:34:02 Expected type: f (a -> b) 10:34:02 Inferred type: f a 10:34:03 oerjan: you're not a hermit? :/ 10:34:08 i guess hermits generally don't have neighbours 10:34:18 :t ((<*>) `on` (uncurry . on (==))) 10:34:19 Occurs check: cannot construct the infinite type: a = a -> b 10:34:19 Expected type: f (a -> b) 10:34:19 Inferred type: f a 10:34:19 ?pl foldM (\x r -> mf x >>= \x' -> ff x' r) fz 10:34:19 foldM ((. flip ff) . (>>=) . mf) fz 10:34:22 ?pl foldM (\x r -> mf x >>= \x' -> ff x' r) fz 10:34:22 foldM ((. flip ff) . (>>=) . mf) fz 10:34:23 dammit 10:34:25 ?undo foldM (\x r -> mf x >>= \x' -> ff x' r) fz 10:34:25 foldM (\ x r -> mf x >>= \ x' -> ff x' r) fz 10:34:26 i try to be a hermit but it's hard with all these housemates. 10:34:29 :t on (==) 10:34:30 forall b a. (Eq b) => (a -> b) -> a -> a -> Bool 10:34:30 ?pl foldM (\x r -> mf x >>= \x' -> ff x' r) fz 10:34:30 foldM ((. flip ff) . (>>=) . mf) fz 10:34:35 `addquote i try to be a hermit but it's hard with all these housemates. 10:34:39 555) i try to be a hermit but it's hard with all these housemates. 10:34:41 :t uncurry (on (==)) 10:34:41 forall b b1. (Eq b) => (b1 -> b, b1) -> b1 -> Bool 10:34:42 ?ty foldM ((. flip ff) . (>>=) . mf) fz 10:34:42 Not in scope: `ff' 10:34:42 Not in scope: `mf' 10:34:42 Not in scope: `fz' 10:34:46 oerjan: neighbors is fine enough :). but it is commonly used in the inter-house sense 10:34:46 oh eww 10:34:51 :t on $ uncurry (==) 10:34:52 coppro: FOR FUCK'S SAKE 10:34:52 Couldn't match expected type `(a, a) -> c' 10:34:52 against inferred type `Bool' 10:34:52 In the second argument of `($)', namely `uncurry (==)' 10:34:52 WRITE 10:34:53 THE 10:34:53 FUCKING 10:34:54 FUNCTION 10:34:55 OUT 10:34:55 IN 10:34:56 A 10:34:58 WHERE 10:35:00 CLAUSE 10:35:10 SOME OF US ARE TRYING TO DO _REAL_ WORK ;D 10:35:11 :t ((<*>) `on` (on $ uncurry (==))) 10:35:12 Occurs check: cannot construct the infinite type: a = a -> b 10:35:12 Expected type: f (a -> b) 10:35:12 Inferred type: f a 10:35:16 hate you 10:35:22 elliott: I know 10:35:23 coppro: you realise lambdabot works in /query :-P 10:35:28 elliott: I know that too 10:35:31 ?ty \mf ff -> foldM ((. flip ff) . (>>=) . mf) 10:35:32 forall (m :: * -> *) a b a1. (Monad m) => (a -> m a1) -> (a1 -> b -> m a) -> a -> [b] -> m a 10:35:41 agh what 10:35:44 oh 10:35:56 that's annoying :/ 10:36:48 oh god I see what I must do here 10:37:03 (note: I also refuse to resort to pling the thing) 10:37:17 I will find a point-free form myself first 10:42:30 -!- esowiki has joined. 10:42:31 -!- glogbot has joined. 10:42:45 that was a quick backup 10:42:46 head and length are arbitrary 10:42:46 any [a] -> a will do 10:42:46 coppro: gimme pointful form of it so i can play with it locally 10:42:46 or really, any p -> a 10:42:49 k so I have a point-free form 10:42:49 now Gregor can avoid work 10:42:51 I don't like it though 10:42:52 coppro: show 10:43:03 plz 10:43:07 ?pl \a b -> f a == f b && g a == g b 10:43:07 ap (ap . ((&&) .) . (. f) . (==) . f) ((. g) . (==) . g) 10:43:14 eww, that's not what I go 10:43:15 *got 10:43:24 ?pl \f a b -> f a == f b 10:43:24 flip =<< (((.) . (==)) .) 10:43:35 hmm 10:43:38 ?pl \a b -> f a == f b 10:43:38 (. f) . (==) . f 10:43:39 lol 10:43:40 right 10:43:42 :t (==) `on` f 10:43:42 learn to `on` 10:43:43 Ambiguous type variable `b' in the constraints: 10:43:43 `Eq b' arising from a use of `==' at :1:0-3 10:43:43 `SimpleReflect.FromExpr b' 10:43:48 :t (==) `on` ?f 10:43:49 coppro: stfu 10:43:49 forall b a. (Eq b, ?f::a -> b) => a -> a -> Bool 10:43:52 or you mean pl 10:43:57 I mean pl 10:44:19 :t liftA2 (&&) ((==) `on` ?f) ((==) `on` ?g) 10:44:20 Couldn't match expected type `Bool' 10:44:21 against inferred type `a -> Bool' 10:44:21 Probable cause: `on' is applied to too few arguments 10:44:30 :t (,) ((==) `on` ?f) ((==) `on` ?g) 10:44:31 forall b a b1 a1. (Eq b, ?f::a -> b, Eq b1, ?g::a1 -> b1) => (a -> a -> Bool, a1 -> a1 -> Bool) 10:44:49 ?hoogle (b -> b -> c) (a -> a -> b) -> (a -> a -> b) -> ... this is what coppro wanted earlier 10:44:49 Parse error: 10:44:49 --count=20 "(b -> b -> c) (a -> a -> b) -> (a -> a -> b) -> ... this is what coppro wanted earlier" 10:44:49 ^ 10:45:10 ?pl \a b -> (((==) `on` ?f) a b) && (((==) `on` ?g) a b) 10:45:11 (line 1, column 21): 10:45:11 unexpected "?" 10:45:11 expecting space or simple term 10:45:14 yeah I was looking for a combinator to apply to (&&) 10:45:16 ?pl \a b -> (((==) `on` f) a b) && (((==) `on` g) a b) 10:45:16 ap (ap . ((&&) .) . ((==) `on` f)) ((==) `on` g) 10:45:18 :t liftA2 10:45:18 forall a b c (f :: * -> *). (Applicative f) => (a -> b -> c) -> f a -> f b -> f c 10:45:19 oh come on 10:45:20 :t ap 10:45:21 forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b 10:45:28 (c -> a -> b) -> (c -> a) -> (c -> b) 10:45:29 hmm 10:45:36 :t ap (&&) 10:45:37 (Bool -> Bool) -> Bool -> Bool 10:45:43 :t ap . (&&) 10:45:43 Couldn't match expected type `a -> b' against inferred type `Bool' 10:45:44 Probable cause: `&&' is applied to too many arguments 10:45:44 In the second argument of `(.)', namely `(&&)' 10:45:45 ap == fmap 10:45:50 coppro: n...no 10:46:04 ap == (<*>) 10:46:08 u fail u lose 10:46:09 -!- GreaseMonkey has quit (Quit: The Other Game). 10:46:11 elliott: no you see the fm band is useless 10:46:14 s/ [dollar sign]// 10:46:15 you remove that and ap == ap 10:46:23 :t ap (&&) 10:46:23 (Bool -> Bool) -> Bool -> Bool 10:46:25 > ap (&&) f 10:46:26 No instance for (SimpleReflect.FromExpr GHC.Bool.Bool) 10:46:26 arising from a us... 10:46:27 > ap (&&) f True 10:46:28 No instance for (SimpleReflect.FromExpr GHC.Bool.Bool) 10:46:28 arising from a us... 10:46:31 ffffff 10:46:38 > ap g f True 10:46:39 Ambiguous type variable `a' in the constraints: 10:46:39 `GHC.Show.Show a' 10:46:39 a... 10:46:42 > ap g f True :: Expr 10:46:42 Ambiguous type variable `a' in the constraints: 10:46:43 `SimpleReflect.FromExpr ... 10:46:45 OH CMON 10:46:55 > ap (&&) not True 10:46:55 oh 10:46:56 False 10:46:56 right 10:47:17 coppro: anyway, it sounds like a useful combinator 10:47:24 :t curry (uncurry (&&) . (uncurry (on (==) ?f) &&& uncurry (on (==) ?g))) 10:47:25 forall b a b1. (Eq b, ?f::a -> b, Eq b1, ?g::a -> b1) => a -> a -> Bool 10:47:33 (a -> b -> c) -> (d -> a) -> (e -> b) -> d -> e -> c 10:47:54 hmm, can that become functorial somehow 10:47:55 thar we go; oerjan got it 10:47:56 * oerjan whistles innocently 10:48:01 (a -> b -> c) -> (d -> a) -> f b -> d -> f c 10:48:11 is that possible? 10:48:14 dunno 10:48:24 wait no 10:48:25 that makes no sense :) 10:52:31 -!- esowiki has joined. 10:52:44 -!- glogbot has joined. 10:52:45 <-- im a bit udm 10:53:03 Oh, hey there oerjan 10:53:11 long time no swat 10:53:26 Indeed 10:54:19 IOJOIJ IOJOI 10:55:12 :t (liftM2 ap .) . (.) . (.) 10:55:13 forall (m :: * -> *) a b (m1 :: * -> *) a1. (Monad m, Monad m1, Functor m1, Functor m) => (a1 -> a -> b) -> m1 (m a1) -> m1 (m a) -> m1 (m b) 10:55:28 a household type 10:55:34 definitely 10:55:46 oh dear, i just invented an esolang 10:55:50 ?pl \a b -> f (g a b) (h a b) 10:55:50 ap (ap . (f .) . g) h 10:55:52 coppro: grr at M 10:55:53 make that M an A 10:56:01 :t (liftA2 ap .) . (.) . (.) 10:56:02 forall (m :: * -> *) a b (f :: * -> *) a1. (Monad m, Applicative f, Functor m) => (a1 -> a -> b) -> f (m a1) -> f (m a) -> f (m b) 10:56:05 :t (.) 10:56:05 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 10:56:09 good 10:56:17 elliott: I agree with you 10:56:17 :t (liftA2 (<*>) .) . (.) . (.) 10:56:18 forall (f :: * -> *) a b (f1 :: * -> *) a1. (Applicative f, Applicative f1) => (a1 -> a -> b) -> f1 (f a1) -> f1 (f a) -> f1 (f b) 10:56:24 literally the most beautiful type 10:56:30 -!- EgoBot has joined. 10:56:31 now to replace those (->)s with something nicer... 10:56:35 something more abstract, say 10:56:55 :t (<*> (?f .)) . ?g <*> ?h 10:56:56 forall b a b1 (f :: * -> *) (f1 :: * -> *). (?f::a -> b1, Functor f, ?g::f1 (f a -> f b1 -> b), Applicative f1, ?h::f1 (f a)) => f1 b 10:57:17 ?ty let (.) = flip (>>>) in (liftA2 (<*>) .) . (.) . (.) 10:57:18 forall a b a1 (cat :: * -> * -> *) b1 a2. (Control.Category.Category cat, Applicative (cat a2)) => cat b1 (a -> b) -> (a1 -> cat a2 b1) -> (a1 -> cat a2 a) -> a1 -> cat a2 b 10:57:35 Deewiant: it is... so beautiful... 10:57:41 :t (<*> ((&&) .)) . null <*> null 10:57:42 Couldn't match expected type `f Bool -> f (Bool -> Bool) -> b' 10:57:42 against inferred type `Bool' 10:57:42 Probable cause: `null' is applied to too many arguments 10:57:50 Deewiant: um looks like a layor of functionalness got stripped out? 10:57:54 there's more function arrows now 10:57:59 :t (.) 10:58:00 forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b 10:58:04 :t (<$> ((&&) .)) . null <*> null 10:58:04 :t flip (>>>) 10:58:04 Couldn't match expected type `f (Bool -> Bool) -> b' 10:58:04 against inferred type `Bool' 10:58:04 Probable cause: `null' is applied to too many arguments 10:58:05 forall (cat :: * -> * -> *) a b c. (Control.Category.Category cat) => cat b c -> cat a b -> cat a c 10:58:13 Deewiant: btw you realise (<<<) exists? 10:58:16 :t (<$> ((&&) .)) . null <$> null 10:58:17 Couldn't match expected type `f (Bool -> Bool) -> b' 10:58:17 against inferred type `Bool' 10:58:17 In the second argument of `(.)', namely `null' 10:58:27 elliott: Nope 10:58:33 :t ap . (f .) . g 10:58:34 forall (m :: * -> *) a b a1 (f :: * -> *). (Monad m, Show a1, Show a, SimpleReflect.FromExpr b, Functor m, SimpleReflect.FromExpr (f (m a1)), Functor f) => f (m a -> m b) 10:58:51 :t (<*>) . (f .) . g 10:58:51 forall (f :: * -> *) a b a1 (f1 :: * -> *). (Applicative f, Show a1, Show a, SimpleReflect.FromExpr b, SimpleReflect.FromExpr (f1 (f a1)), Functor f1) => f1 (f a -> f b) 10:59:04 :t (<*> (f .)) . g 10:59:04 forall b a b1 (f :: * -> *) (f1 :: * -> *). (Show a, SimpleReflect.FromExpr b1, Functor f, SimpleReflect.FromExpr (f1 (f a -> f b1 -> b)), Functor f1) => f1 (f a -> b) 10:59:13 Deewiant: now you do 10:59:15 :t (<*> (f .) . g) 10:59:15 :t (<<<) 10:59:15 forall (f :: * -> *) b a b1 (f1 :: * -> *). (Show a, SimpleReflect.FromExpr b1, Functor f1, SimpleReflect.FromExpr (f (f1 a)), Applicative f) => f (f1 b1 -> b) -> f b 10:59:16 forall (cat :: * -> * -> *) b c a. (Control.Category.Category cat) => cat b c -> cat a b -> cat a c 10:59:30 wtf 10:59:46 oh 11:00:02 :t (<$>) . ((&&) .) . null <$> null 11:00:03 Couldn't match expected type `a -> Bool' 11:00:03 against inferred type `Bool' 11:00:03 In the second argument of `(.)', namely `null' 11:00:22 :t (<$>) . ((&&) .) . null <*> null 11:00:23 Couldn't match expected type `a -> Bool' 11:00:23 against inferred type `Bool' 11:00:23 Probable cause: `null' is applied to too many arguments 11:00:30 :t (<$>) . ((&&) .) . null 11:00:32 Couldn't match expected type `a -> Bool' 11:00:32 against inferred type `Bool' 11:00:32 Probable cause: `null' is applied to too many arguments 11:00:49 :t (<*>) . ((&&) .) . null <*> null 11:00:50 Couldn't match expected type `f Bool' against inferred type `Bool' 11:00:50 Expected type: [a] -> f Bool 11:00:50 Inferred type: [a] -> Bool 11:01:20 k I'm too tired 11:01:29 so I shall do the logical thing 11:01:30 and proceed 11:01:35 ap (ap . (f .) . g) h 11:01:50 :t (<*>) ((<*>) . (f .) . g) h 11:01:51 forall (f :: * -> *) a b a1 (f1 :: * -> *). (Applicative f, Show a1, Show a, SimpleReflect.FromExpr b, SimpleReflect.FromExpr (f1 (f a1)), Applicative f1, SimpleReflect.FromExpr (f1 (f a))) => f1 (f 11:01:51 b) 11:02:01 :t (<*>) ((<*>) . ((&&) .) . null) null 11:02:01 Couldn't match expected type `f Bool' against inferred type `Bool' 11:02:01 Expected type: [a] -> f Bool 11:02:01 Inferred type: [a] -> Bool 11:02:17 :t (<*>) ((<*>) . (f .) . null) null 11:02:17 Couldn't match expected type `f a' against inferred type `Bool' 11:02:17 Expected type: [a1] -> f a 11:02:17 Inferred type: [a1] -> Bool 11:02:36 :t ap (ap . (f .) . g) h 11:02:37 forall (m :: * -> *) a b a1 (m1 :: * -> *). (Monad m, Show a1, Show a, SimpleReflect.FromExpr b, Functor m, SimpleReflect.FromExpr (m1 (m a1)), Functor m1, SimpleReflect.FromExpr (m1 (m a)), Monad 11:02:37 m1) => m1 (m b) 11:02:37 oerjan: is there a nicer representation of bijections than (a->b, b->a), i'm sure there is, and i'm sure i should be asking edward kmett instead 11:02:54 well f you too 11:03:17 elliott: on a countable set you can just define it as sequence 11:03:37 given an ordering 11:04:00 coppro: no shit sherlock 11:04:13 *ordering with a least element 11:04:36 :t (&&) . 11:04:36 parse error (possibly incorrect indentation) 11:04:41 :t ((&&) .) 11:04:41 forall (f :: * -> *). (Functor f) => f Bool -> f (Bool -> Bool) 11:05:10 :t ((&&) .) . null 11:05:10 Couldn't match expected type `f Bool' against inferred type `Bool' 11:05:10 Expected type: [a] -> f Bool 11:05:10 Inferred type: [a] -> Bool 11:05:41 :t ((&&) .) . g 11:05:41 forall (f :: * -> *) (f1 :: * -> *). (Functor f, SimpleReflect.FromExpr (f1 (f Bool)), Functor f1) => f1 (f (Bool -> Bool)) 11:05:52 lern to ? 11:05:55 :t ((&&) .) . ?g 11:05:55 forall (f :: * -> *) (f1 :: * -> *). (Functor f, ?g::f1 (f Bool), Functor f1) => f1 (f (Bool -> Bool)) 11:06:13 herp 11:06:19 i am le tired 11:06:46 *ordering with a least element <-- *omega ordering 11:06:51 oerjan: what's the name of Functor where you let the mapping be any category...... 11:06:53 :t (<*>) ((<*>) . (f .) . ((==) `on` null)) ((==) `on` null) 11:06:54 forall b a. (SimpleReflect.FromExpr b) => [a] -> [a] -> b 11:07:02 class Functor cat f where fmap :: cat a b -> f a -> f b 11:07:04 :t (<*>) ((<*>) . ((&&) .) . ((==) `on` null)) ((==) `on` null) 11:07:05 forall a. [a] -> [a] -> Bool 11:07:09 I AM VICTORIUS 11:07:20 can't spell "victorious" though 11:07:22 elliott: mathematically, also functor 11:07:25 oerjan: indeed :D 11:07:33 oerjan: never heard of an omega ordering 11:07:37 oerjan: it should be the real Functor, shouldn't it :( 11:07:49 or maybe evenc 11:07:51 even 11:08:05 class Functor cat f a b where fmap :: cat a b -> f a -> f b 11:08:05 :P 11:08:12 (for things like Set/Map) 11:08:14 coppro: it's an ordering that is isomorphic to the natural numbers. also the natural order of the ordinals < omega. 11:08:41 elliott: the _real_ functor should have a different cat at each end duh 11:08:51 k 11:09:05 oerjan: um there's only one space for cat... or are you saying haskell can't do it 11:09:06 oerjan: is there music? 11:09:16 k ima bed now 11:09:24 and definitely not include that point-free function 11:09:34 elliott: fmap :: cat1 a b -> cat2 (f a) (f b) ? 11:09:38 the head >>= all . (pred) one is totally staying in though 11:09:43 oerjan: oh cool 11:10:04 oerjan: class Functor bat cat f a b | bat cat f -> a b where fmap :: bat a b -> cat (f a) (f b) 11:10:10 oerjan: THE CLEAR CHOICE 11:12:16 that FD looks screwy 11:12:28 oerjan: yeah it is >_> 11:12:35 but when you get to that many......... 11:12:38 params i mean 11:12:38 in fact a and b shouldn't be class parameters at all 11:12:44 oerjan: yes, they should (Set and Map) 11:12:47 elliott: you need more manbatrat 11:12:57 wut 11:13:01 oerjan: http://www.randomhacks.net/articles/2007/03/15/data-set-monad-haskell-macros 11:13:07 manbatrat is ancient evil in a bowler hat 11:13:16 elliott: absolutely not, i'd say 11:13:17 oerjan: Set, Map, etc. have constraints on their type argument 11:13:26 but they're perfectly valid monads given those constraints 11:13:44 it's ugly, but if we're extending things... 11:14:01 elliott: but your class definition gives each functor only _one_ pair of objects to map between D: 11:14:11 oerjan: um no 11:14:15 no, Set is retarded 11:14:19 instance Functor (->) (->) Maybe a b where ... 11:14:27 you can have singleton sets of things without orderings 11:14:34 because HEY THAT'S USEFUL RIGHT 11:14:46 coppro: that is like the stupidest fucking reason for calling something retarded ever 11:14:49 so someone forgot one constraint 11:14:52 probably because of type inference 11:14:53 so what 11:15:03 elliott: you cannot even get the _ordinary_ Functor as a special case of this 11:15:10 oerjan: um why not 11:15:13 -!- Sgeo has joined. 11:15:15 instance Functor (->) (->) Maybe a b where ... 11:15:32 because a and b are not free parameters 11:15:52 oh hum 11:16:01 it's called FlexibleInstances 11:16:02 :P 11:16:02 good grief 11:16:05 what :D 11:16:12 ok maybe it does work 11:16:27 oerjan: it's undeniably ugly though, for instance Monad has to get split in two 11:16:32 but WHILE WE'RE GENERALISING... 11:16:34 elliott: but the FD is still wrong 11:16:38 indeed 11:16:39 Haskell needs first-class types 11:16:41 i'm not sure what the right fd is 11:16:53 coppro: you mean dependent types? 11:16:58 elliott: yes 11:16:59 f -> bat cat would be reasonable, at least 11:17:02 flip Monad ftw 11:17:05 coppro: see agda 11:17:10 oerjan: bat cat :D 11:17:20 elliott: no I will not settl for anythnig less than hasklle with these features 11:17:30 laos fuck typing 11:17:40 it is no longer worth the efforts 11:18:09 and tyes I typed that last sentece without errors but not this one though because aparently I suck expecially when typing blidnfold at 5 am 11:18:37 (typing is kinkier that way) 11:19:39 you are literally the lightest weight 11:19:51 gender role the fuck up 11:21:58 * itidus20 gives coppro a wild boar, a club and animal skin robe complete with rope belt woven by the women of the forest. 11:22:07 ^roasted wild boar 11:23:27 and a pint of guinness 11:25:00 itidus20: FAIL, he should have to kill and roast the boar himself 11:25:23 including making his own fire? 11:25:34 nah the women can do that. 11:25:48 * Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person 11:25:51 you don't wanna spend too much time with those women 11:25:58 O_O 11:26:08 Sgeo: no wonder your mind is confused 11:26:22 praise jesus 11:26:36 C.S.Lewis was friends with Tolkien 11:26:39 Sgeo: lmao 11:26:47 im laughing irl 11:26:49 actually 11:26:51 i really am 11:26:59 Sgeo: so, which one was on that famous expedition with clark? 11:27:14 Jerry Lewis 11:27:23 itidus20: I want a conch 11:27:24 Jerry-Lee Lewis? 11:27:55 ok ok i don't know 11:29:19 elliott: imagine if alice in wonderland was written like the narnia books 11:29:29 oerjan: or vice versa 11:29:55 ASLAN: Jesus, or something Lewis thought up on an acid trip? Or both???? EXPERTS ARE DIVIDED 11:30:12 the best film of alice in wonderland is the jan svankmeyer version 11:31:02 i haven't seen tim burton's one but.. nothing can beat the one i mentioned 11:31:32 ... and the inter-house neighbors start mowing lawn ... 11:32:14 you should record it (the lawn mowing)... then play it back with stereo up loud 11:37:34 -!- oerjan has quit (Quit: leaving). 11:39:12 -!- oklopol has quit. 11:45:20 by the end of the 19th century Sir Walter Besant wrote Alice in Wonderland "was a book of that extremely rare kind which will belong to all the generations to come until the language becomes obsolete". 11:48:41 I wish scp wasn't so limited 11:56:45 i don't know what the signifigance of him being a freemason is in this regard 11:57:00 you're assuming there is one 11:59:06 -!- MigoMipo has quit (Read error: Connection reset by peer). 12:03:07 well alice in wonderland is tied into countless conspiracy theories apparently 12:05:13 but do you wanna know how i feel about conspiracy theories? i think that... ultimately everyone dies... so it's like... the people who undertake all these conspiracies and wars and abuses and every concievable graph of interpersonal profit, ultimately they die and it all comes to naught 12:06:02 i die, they die.. all becomes equalized 12:06:39 worse still is the possibility of not dying... as death is freedom and immortality is a cage 12:07:34 Don't worry; we still have the Doom of Man 12:08:08 so with the charisma of the greatest marketing genius they lay out why they are so special, the extent to which some occasion is infinitely tragic, why my emotions should be invoked 12:08:15 but it all comes to nothing 12:08:26 individual mortality supercedes all else 12:09:09 btw 12:09:16 listening to the entire music to lotr 12:09:18 is awesome 12:11:11 yes, they invoke the imagination.. they invoke the emotions.. they invoke the associations.. they invoke all manner of cortices 12:11:31 for it is all that one can really do in the space of interpersonal economics 12:11:54 but what shall they invoke in someone who has passed on 12:14:48 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .). 12:19:27 sorry guys im off topic 12:31:45 what is the topic 12:31:54 oh wait 12:31:58 it's apparently about turbo pascal 12:32:02 let's change that 12:32:21 -!- coppro has set topic: 07:25:29 * Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person. 12:32:37 argh 12:33:07 -!- coppro has set topic: Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 12:33:14 -!- coppro has set topic: \* Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 12:33:21 -!- coppro has set topic: :* Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 12:33:39 -!- coppro has set topic: Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 12:33:44 -!- coppro has set topic: * Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 12:33:47 there we go 13:07:51 -!- jimtendo has joined. 13:34:34 -!- TeruFSX has quit (Read error: Operation timed out). 13:41:04 -!- TeruFSX has joined. 13:44:19 -!- quintopia has set topic: Sgeo finally realizes that C.S. Lewis and Lewis Carol[sic] are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 13:50:03 -!- lament has joined. 13:53:38 What books on programming should I buy? 13:53:49 Is Pragmatic Programmer good, or just... job-y stuff/ 13:55:50 CLRS 13:56:02 i like it, you should too 13:56:41 Introduction to Algorithms? 13:56:53 yes 13:57:25 Oh come on, not available in B&N? :( 13:57:40 has pseudocode for like half the algorithms you sometimes find you need but cant remember how to do 13:58:14 * Sgeo wants ebooks 13:58:31 for instance, i think it has fibonacci heap, which i always forget... 14:08:59 * itidus20 drops into the room with a random topic. Do all imperative languages essentially feel the same? Are all their abstract machines similar? 14:11:36 procedures/methods/functions are not really represented in instruction sets that i can see 14:11:45 i think theres RET instruction 14:12:15 but otherwise... isn't it strange that so many languages follow this pattern 14:13:54 or perhaps a procedure/method/function is simply a string of reusable instructions 14:14:37 I don't know what kind of machine you mean exactly, but I'd say most "abstract machines" for imperative languages have function calls as a special operation 14:15:02 olsner: well i see them occasionally mention the C abstract machine in the C room 14:16:21 perhaps it is just that stringing together instructions inevitably results in functions 14:16:23 Java is a bit special because the abstract machine is not abstract but concrete - and it does have a few low-level things like jumps in it ... but it still has function calls as a primitive and you can't access the call stack (it's just invisible magic that makes return continue running at the right place) 14:17:31 well, the C "abstract machine" doesn't really have anything like instructions, it's just a model of what the code does (that is, it's *abstract*) 14:17:51 ahh.. well i threw together 2 topics in one sentence foolishly 14:18:05 good point though 14:18:25 men on a beach with piles of stones could conform to a C abstract machine :D 14:20:22 olsner: invisible magic seems unfair 14:20:29 well... using humans and piles of stones you can make anything, including a simulation of an x86 processor 14:20:30 i mean, everything has something invisible 14:20:40 even real cpus 14:22:07 i once discussed with someone how assembly is an arbitrary system of representing machine code at a higher level. that it could have gone another way 14:23:02 didnt actually think of alternatives. 14:23:53 Sgeo: ur on mc 14:24:25 `addquote i'm essentially playing mc as a text adventure game 14:24:30 `addquote good night oh you leaving? no but i will take a shit 14:24:32 oh 14:24:34 hackego is not here......... 14:24:50 in the same line of thought, structured programming constructs (for, while, do-while, switch, if) are arbitrary constraints upon the organization of asm statements 14:25:35 designed only [as far as i know] for human readability 14:26:07 elliott: hmm, dunno, most things a real cpu does has to e.g. end up putting the right values in RAM or produce the right I/O writes - and it's only allowed to fudge with that in specific limited ways... 14:26:31 human comprehension probably comes at the price of computational efficiency in most cases 14:27:02 olsner: you can't inspect the electrons :) 14:27:06 that is to say.. spaghetti code isn't "slow" 14:27:29 -!- TeruFSX has quit (Ping timeout: 264 seconds). 14:27:35 it's simply difficult to read and maintain 14:28:04 if its slow it's only slow due to the human being confused by it 14:30:03 I imagine some hypothetical omnipotent programmer who has solved chess by having his brain encoded with a garden of eden solution to chess :P 14:31:11 hmm... I guess the CPU can still do any amount of magic outside the things you're allowed to observe (just like other invisible magics), just that you can observe more stuff and on a lower level there 14:31:12 and this hypothetical programmer can arrange instructions with 100% computational efficiency 14:31:40 olsner: hey do you like that one? the solution to chess is a neural garden of eden 14:32:01 itidus20: I don't understand 14:32:04 given that the universe does not contain the computational complexity to arrive at it 14:32:27 or maybe i dont know what a garden of eden is 14:34:12 suppose I was to say.. this two-state switch on the table represents whether the game of chess has a first player advantage or whether the game is a draw 14:34:33 now... in order to put that switch into the correct position... wouldn't the state of that switch be a garden of eden? 14:35:19 (according to our current theories about the solvability of chess) 14:35:39 of course a breakthrough could prove it wrong later 14:39:47 chess does not necessarily have more states than quantum states in the universe does it... 14:40:55 quintopia: well i secretly know that chess is solvable.. lets just say it's a hunch 14:41:15 heh 14:41:43 but the idea is not so bad right? 14:42:18 a piece of information which was beyond the (quantum) computational power of the universe would be a kind of real-life garden of eden 14:42:57 also, the garden of eden 14:44:15 (and by extension the big bang state) 14:45:14 so chess being unsolvable is kind of tongue in cheek to awe the average johnny hopscotch 14:46:49 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 14:48:06 clearly theres degrees of unsolvability 14:48:54 like, a chessboard with a board of the size, 1 trillion x 1 trillion, covered in trillions of pieces 14:49:13 is even more unsolvable than an 8x8 chessboard 15:00:58 -!- invariable has quit (Quit: Daemon escaped from pentagram). 15:15:12 elliott, what about me being on mc? 15:18:02 Mutta. 15:18:33 ? 15:19:08 Että jotta koska kun, jos vaikka kuin. 15:19:29 Koska, jos, vaikka. 15:20:09 Because/when, but, although. 15:20:41 The above was a part of an (incomplete) list of subordinating conjunctions. There were all kinds of lists like that. 15:20:59 I see. 15:21:14 Kahtoin mulla toska. 15:21:50 Aamupala on minun vaikean ruoka. 15:23:24 Also another often-memorized list (of co-ordinating conjunctions) ends with "sillä, näet, nimittäin"; and there's a lot of related puns. Like: "osta kiikari, sillä näet nimittäin", vaguely translated as "buy a pair of binoculars, for you can see with them", since you can interpret "näet" as both as the conjunction (meaning "you see, you know, indeed" etc.) or as the second-person singular present indicative form of "to see". 15:30:54 Loma näyttää kaukana kirjo. 15:31:37 -!- copumpkin has joined. 15:32:16 -!- TeruFSX has joined. 15:33:25 -!- MigoMipo has joined. 15:45:20 -!- MSleep has changed nick to MDude. 15:45:50 -!- itidus21 has joined. 15:47:36 -!- itidus20 has quit (Ping timeout: 250 seconds). 15:47:44 -!- itidus21 has changed nick to itidus20. 15:50:37 -!- pumpkin has joined. 15:53:38 -!- copumpkin has quit (Ping timeout: 252 seconds). 15:55:34 -!- Taneb has joined. 15:55:46 -!- TeruFSX has quit (Ping timeout: 276 seconds). 15:57:07 hello 15:57:14 I'm researching my family tree 15:57:48 i'm your father 15:58:54 I'm lament's son. 15:59:08 However, I am only your half brother. 15:59:25 Ever since that nasty incedent with a chainsaw 15:59:54 time to write "black sheep" and trip balls 16:04:34 -!- Nisstyre has quit (Ping timeout: 258 seconds). 16:15:37 -!- mtve has quit (Ping timeout: 252 seconds). 16:20:29 wiki on dijkstra "When lecturing, he would write proofs in chalk on a blackboard rather than using overhead foils, let alone Powerpoint slides." 16:22:43 Understandable. If you're using Powerpoint right it's only marginally better than a blackboard most of the time. 16:22:56 (say, unless you happen to need a detailed graphic) 16:24:50 I don't think he was a luddite because he worked in programming.. No... it was something else.. something wonderful I guess 16:26:00 About the only real fault I can see with using a blackboard instead of Powerpoint is that it depends heavily on handwriting. 16:26:12 Which is a skill that I, at least, am horribly out of practice with. 16:26:28 Presumably, Dijkstra wasn't. 16:27:42 hmm 16:27:49 -!- TeruFSX has joined. 16:28:10 he did a lot of handwritten papers too apparently 16:29:18 he probably didn't even use *windows* 16:29:47 I'm only going to allow leeway there because, frankly, for quite some time doing math on computers *or* typewriters was an experience in pain, agony, sorrow, etc. 16:30:06 And the man was born in 1930. 16:30:08 According to Jim Nelson, who served as a civilian translator with the Russian and American peacekeepers in Bosnia in 1996, one of the Russians said, "If we ever had a war, while you are working on your PowerPoint, we would be killing you." 16:30:45 (still is somewhat inconvenient, but at least it's not *insane* with TeX) 16:31:32 i have a deep respect for using pens and paper 16:31:49 its one of the motifs in my thought 16:41:28 to drive the point home i created this fancy screenshot with a few nicer drawings in my collection of early game art: http://oi55.tinypic.com/1zgcj2u.jpg 16:43:25 so fancy 16:43:33 i don't think such a pic exists anywhere on the internet.. its a particular fascination of mine 16:43:54 i mean.. sure i obtained each individual pic online.. but collected together like that? no 16:44:17 do you recognize the games? 16:44:39 -!- oklopol has joined. 16:45:10 theres more pics but i tried to choose the ones which express what im trying to express 16:56:57 I've traced my ancestory back to the 1730's. 16:57:07 Nobody famous SO FAR 16:58:32 -!- sebbu has quit (Ping timeout: 252 seconds). 17:17:40 -!- sebbu has joined. 17:17:40 -!- sebbu has quit (Changing host). 17:17:40 -!- sebbu has joined. 17:23:40 þÿÿÿRsw…sw 17:25:34 jodas 17:28:42 -!- copumpkin has joined. 17:32:04 -!- derrik has joined. 17:32:10 -!- pumpkin has quit (Ping timeout: 260 seconds). 17:56:30 I think my great-great-great-great-great-great grandfather was christened in Hexham 17:59:28 Taneb, how comes you even know that 17:59:39 Doing family tree 17:59:42 ah 17:59:54 Got it back to 1690 17:59:57 Trying to get further 17:59:59 nice 18:04:23 My cousin's got it back to 1611 18:04:46 But he did my dad's side, I'm doing my mum's side 18:08:54 Huh, that's interesting 18:09:26 One of my ancestors may have emigrated to the US 18:12:46 -!- Behold has joined. 18:15:46 -!- pumpkin has joined. 18:16:49 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds). 18:17:39 -!- copumpkin has quit (Ping timeout: 240 seconds). 18:21:37 -!- mtve has joined. 18:31:09 -!- CakeProphet has joined. 18:32:38 -!- Taneb has quit (Quit: He's a big quitter he is.). 18:37:32 -!- TeruFSX has quit (Ping timeout: 252 seconds). 18:41:44 -!- NihilistDandy has joined. 18:42:20 -!- Nisstyre has joined. 19:04:06 -!- CakeProphet has quit (Ping timeout: 240 seconds). 19:15:14 -!- Taneb has joined. 19:18:48 -!- oerjan has joined. 19:19:18 Hello! 19:19:20 and a happy australian mailman reminder's day to all! 19:20:17 -!- derrik has quit (Quit: ramadan). 19:22:33 04:37:16 i don't know what the signifigance of him being a freemason is in this regard 19:22:57 hey i dont know anything about freemasons 19:22:58 istr that the norwegian mass murderer was one (or claimed to be), too 19:23:07 04:49:46 listening to the entire music to lotr 19:23:07 04:49:48 is awesome 19:23:21 :-s 19:23:23 istr that the norwegian mass murderer liked to listen to lotr music too 19:23:38 enough conspiracy for you yet? 19:23:49 oerjan: Also ISTR that the Norwegian mass murderer was NORWEGIAN. Guess who else is! It might be you! 19:24:05 well lewis caroll was a suspect of being jack the ripper 19:24:24 Fun story I've got about that guy 19:24:43 his sexual interest in alice liddell has also been analyzed in various lights over the years 19:24:55 the story is back in his favor lately 19:25:06 Queen Victoria read Alice and Wonderland and loved it so much, she ordered a copy of the next publication by the author to be brought to her as soon as it was written 19:25:33 She didn't realise that Lewis Carrol's day job was a maths proffessor called Charles Lutwidge Dodgson 19:25:52 fizzie: to that i shall (mis-(?)) quote the major of oslo speaking in a mosque shortly after the event: "The terrorist was blond, white, called himself a Christian, and lived in my neighborhood. Yet you are not accusing me of being a terrorist; thank you for that." 19:26:11 She got a bit of surprise when a maths paper turned up a couple of months later 19:28:02 *mayor 19:31:43 06:49:25 * itidus20 drops into the room with a random topic. Do all imperative languages essentially feel the same? Are all their abstract machines similar? 19:32:39 i'm reminded of Icon, which uses the stack a bit differently than most (sometimes it returns to a frame temporarily _without_ unwinding the stack above) 19:33:50 although those which allocate frames on the heap are of course even more flexible. like scheme, although i don't know if you'd call that imperative (it's not _purely_ functional) 19:34:09 oerjan: it was 2 independant questions. which accidently merged 19:34:19 that's essential for having continuations, i think 19:34:45 so maybe you could say that the _basics_ are similar, but things might change when you add extra features. 19:35:05 well... lets face it 19:35:14 when a fellow starts a new imperative language 19:35:34 he's likely to make it similar to what he already knows 19:35:35 oerjan: But, philosophically speaking, can you call it a "stack frame" if it's allocated from a heap? 19:35:37 and this fellow.. adds his own take on all the regular suspects 19:35:59 he adds a variant of: if, while, dowhile, for 19:36:05 etc 19:36:21 fizzie: i'm not sure if scheme calls it a stack frame. they're environments for continuations and closures, i guess. 19:36:24 but... he is doing this very automatically 19:36:48 he is not truely going back to the roots and thinking "how can i do this" 19:36:50 -!- copumpkin has joined. 19:37:17 he is trapped by being surrounded by mountains of conventions 19:37:19 itidus20: yep. it's just a slightly more glorified version of our own wiki's brainfuck derivatives... slap on a different syntax but use essentially the same semantics. 19:37:25 afk 19:37:34 oh don't get me wrong.. i've done it mysefl 19:38:28 and.. yeah the structured programming paradigm is so resistant to attacks 19:39:00 oerjan: Oh, I'm sure R5RS does not mention the word "stack" anywhere, it was just a generic sort of a question. Though I guess you can always use the highbrow term "activation record" instead. 19:39:22 -!- pumpkin has quit (Ping timeout: 255 seconds). 19:41:16 at school some teacher casually told us that these control structures are basically all you need 19:41:31 they didn't however mention that there are potential alternatives 19:42:36 Edsger Dijkstra VS the unstructured Jump... 19:42:55 In this long epic battle, Edsger recovered the three pieces of the triforce. 19:43:03 nice, vim's syntax highlighting for sed supports EBCDIC 19:43:10 The sequence, the selection, and the other thing #-o 19:43:15 repetition 19:45:37 i can understand brainfucks popularity though 19:46:28 even the name sounds like what a heavy metal band might name a programming language 19:46:49 (.. just barelu ..) 19:48:22 and this programing language goes out to our fans... Melancholy of the insect infested lemon tree.. 19:48:36 -!- monqy has joined. 19:49:40 -!- Taneb has quit (Ping timeout: 260 seconds). 19:49:48 * oerjan waits for elliott to snatch that name 19:50:30 lots of bass 19:50:50 oh.. i know what it is 19:51:02 ive been listening to this band called dillinger escape plan 19:51:03 also some trout, halibut and great white 19:52:09 (for the latter, let's just say that this language has _very_ eager GC) 19:52:34 i once did a toy language 19:52:47 pretty shitty 19:52:56 it was an experiment in implementation skills 19:55:22 but it still means well 19:55:46 * oerjan waits for elliott to snatch that name 19:55:47 yes 19:57:06 im really an awful coder.. like not a joke.. 19:57:39 "Haskell already has a grip on a large share of the top-1% programmers who are abstract-math geniuses. Monoids and category theory probably can never be understood by average programmers. I say this using myself as an example. I am a top-1% programmer with some background in simple abstract math and I am having a very lengthy mental absorption process for this stuff." 19:57:51 "Scathing Omniphallic Hammerheart of the Dead", suggests the Metal Song Title Generator. Alternatively, "Paranoid Norsk Sarcomancy of the Juggernaut". I suppose that thing works just as well for languages. 19:57:59 I wonder if the idea that e might not be a top-1% programmer has ever crossed this person's mind. 19:58:13 At least 20% of programmers are top-1% programmers. 19:58:20 :) 19:58:27 07:22:44 a piece of information which was beyond the (quantum) computational power of the universe would be a kind of real-life garden of eden 19:58:44 i like how they said monoid 19:58:45 ?src Monoid 19:58:45 class Monoid a where 19:58:45 mempty :: a 19:58:45 mappend :: a -> a -> a 19:58:45 mconcat :: [a] -> a 19:58:48 INCOMPREHENSIBLE 19:59:39 from the godel's lost letter blog i've come to understand that there is a slight possibility that there might exist a polynomial-size circuit to solve an NP-complete problem of any size, even if there exists no polynomial algorithm which works for all sizes. 19:59:44 associative binary operation with identity element? im so confused 20:00:04 a piece of information which was beyond the (quantum) computational power of the universe would be a kind of real-life garden of eden 20:00:08 this reminds me of fax's bit box. 20:00:25 fax's big tits? 20:00:27 oh 20:01:14 my thoughts have simple goals 20:02:57 did we ever figure out the answer to that one btw oerjan 20:03:01 1) how to make games 2) how to bring happiness into daily existence 3) the effortless erotica of women 20:03:04 to what 20:03:38 4) the correctness of pain and suffering and sacrifice and tragedy 20:03:46 oerjan: given a black-box machine which outputs an uncomputable stream of bits (you can choose which stream), can you use it as an energy generator 20:04:03 at least that's my recollection. 20:04:04 -!- shachaf has quit (Ping timeout: 252 seconds). 20:04:06 make games to effortless erotica of women and bring happiness into daily existence and the correctness of pain and suffering and sacrifice and tragedy 20:04:12 5) The first duty of every starship officer is to the truth, whether it's scientific truth or historical truth or personal truth! It is the guiding principle on which Starfleet is based. 20:04:17 or make games about those things 20:04:23 or make games about some of them to bring about others 20:04:31 you can do it 20:04:44 well i like to ask "why games?" 20:04:47 elliott: well if it were an oracle for particle positions, you might be able to use it to build maxwell's demon? 20:04:55 why... games.. is it just for the money, or the potential fame? 20:04:59 oerjan: that's not a mathematical stream of bits :P 20:05:02 well ok it si but. 20:05:04 it feels like cheating 20:05:12 you're meant to pick Chaitin's constant or something like that :P 20:05:30 itidus20: it's for the effortless erotica of women 20:05:43 so, at least entropy reversal. although i'm not sure how it fits with the theory that the entropy increases when maxwell's demon forgets previous particle positions 20:06:17 I really can't see a way to do it without "cheating" like that, which is infuriating, because my intuition about entropy blah blah blah says it must be possibl 20:06:17 e 20:06:20 to me, gaming is not found in it's entirety in the domain of money and fame... nor in the domain of analysis and game theory and mathematics 20:06:26 [asterisk]possible 20:06:34 -!- shachaf has joined. 20:06:46 elliott: well an uncomputable stream of bits would be likely indistinguishable from random 20:06:48 it is not found as a cathartic response to aggression and tension.. it is not entirely a means of developing hunting skills 20:06:53 oerjan: well that's the point 20:07:01 oerjan: it's true randomness, and the box outputs no heat or anything 20:07:41 itidus20: (6) learning to stop your lists of simple goals while they're still simple :P 20:07:41 you just give it enough power to be able to drive the output mechanism (a LED, say, or maybe it just passes on the power if the bit is one), and it outputs the bitstream forever with no heat output 20:07:48 it is not simply a means of developing military skills and strategies 20:08:05 oerjan: so... 20:08:11 no, the meaning of gaming is NP hard to locate 20:08:27 meaning of gaming can't be fun is it 20:08:29 naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah 20:08:39 or 20:08:41 fun-equivalents 20:09:24 oerjan: SO BASICALLY HELP WHY CAN'T I GENERATE POWER IT MUST BE POSSSIBLE 20:09:48 i think the problem these days with gaming is trying to have fun knowing that the world is in such peril 20:10:44 itidus20: some games are PSPACE hard, even worse (e.g. sokoban) 20:10:59 and sooebegins ignoring me 20:11:47 elliott is a firm believer in my omniscience, to the point of thinking any non-sign of it must be me ignoring him 20:12:03 oerjan: YOU CAN AT LEAST SAY "HM" :D 20:12:08 -!- Taneb has joined. 20:12:26 I started reading tom saywer before 20:13:18 and i thought.. this book... with its down to earth values and warmth.. is what is missing from the world 20:13:30 ^ul ((h)(m)):!S(~:^:S*a~^~*a*~:^):^ 20:13:30 (h)(m) ...out of stack! 20:13:32 But it's there! 20:13:37 In your hands! 20:13:41 apparently not. oh. 20:13:43 That world hasn't gone! 20:13:46 ^ul ((h)(m)):^!S(~:^:S*a~^~*a*~:^):^ 20:13:46 hmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmh ...too much output! 20:13:47 It's just moved on! 20:14:09 itidus20: in other words, it's poverty 20:14:14 poverty is what's missing from your world 20:14:25 just move to a really poor country, like Burma 20:14:50 oerjan: BUT WH;Y CANT 20:15:08 hey norway is supposedly all warm and fuzzy this week. also, filthy rich. 20:15:20 Oh, Norway 20:15:29 The land of the Norwegians 20:15:38 lament: the way i see it is.. if i am the world.. burma is a toothache... and my legs and arms don't want to work to earn the money to fix the toothache 20:15:50 itidus20: it's not a toothache 20:15:53 Stupid Italy. 20:15:57 Taneb: the psychologists are saying we're in a "love psychosis" 20:15:59 itidus20: all the down to earth values and warmth are there, in burma 20:16:07 also, afk 20:16:09 oerjan: What, you and me> 20:16:13 itidus20: if you make them rich, the values and the warmth will go away 20:16:17 :o 20:16:25 `addquote Oh, Norway The land of the Norwegians 20:16:30 that's how it happened in america and europe 20:16:37 god dammit hackego 20:16:48 people don't need values and warmth when they got money 20:16:50 so you may wonder.. whats my trick to caring 20:17:14 i am living in a simple way.... augmented admittedly by the internet 20:17:21 etc 20:17:27 lament: living in poverty in an authoritarian state: the true road to happiness? 20:17:44 elliott: according to some. 20:18:07 if you want family values, then yes, certainly 20:18:19 if you want support from others, then yes 20:18:23 according to what you said. 20:18:39 such things are necessary in poor places because people can't survive without them at all. so they exist 20:18:59 lament: so how long have you spent living like that in burma? 20:19:03 when are you moving there permanently? 20:19:08 that's why "cultural conservatism" goes away as countries become rich. people don't need it anymore 20:19:11 will you have an irc link? 20:19:21 lament: i literally have no income... my brother supplies internet, and hand me down PC parts... my mom provides electricity, groceries, bedroom.. my relatives and brother occasionally gave me food 20:19:36 it is a nice way to exist 20:19:57 it won't last forever.. etc 20:20:34 anyway heres mark twains pic, gotta love it: http://en.wikipedia.org/wiki/File:Mark_Twain_by_AF_Bradley.jpg 20:20:51 elliott: you're boring 20:21:21 lament: is that another way of saying the answers are exactly what i expected 20:21:27 no 20:21:41 it's not related 20:21:44 you're just boring 20:21:54 so you _are_ moving to Burma? 20:22:19 talking to you is not interesting because you never have anything intelligent to say 20:22:29 likewise 20:22:32 you're probably the main reason why i'm not in this channel often 20:22:41 cool 20:22:45 would you like to talk about your feelings 20:22:48 Is Bearpark near Stockton? 20:26:18 -!- cheater has joined. 20:27:19 Taneb: about twenty-three miles away, it looks like 20:27:32 Not too far 20:27:38 They could be the same person 20:30:38 oerjan: What, you and me> <-- um no, a large fraction of the norwegian population. 20:35:31 -!- Patashu has joined. 20:36:29 -!- TeruFSX has joined. 20:43:16 -!- cheater has quit (Ping timeout: 255 seconds). 20:43:55 -!- Taneb has quit (Ping timeout: 260 seconds). 20:56:54 -!- pumpkin has joined. 20:58:41 -!- copumpkin has quit (Ping timeout: 264 seconds). 21:02:53 @hoogle IO a -> a 21:02:53 Foreign unsafePerformIO :: IO a -> a 21:02:53 Data.ByteString.Internal inlinePerformIO :: IO a -> a 21:02:53 System.IO.Unsafe unsafePerformIO :: IO a -> a 21:03:36 you are treading dangerous paths, grasshopper... 21:03:59 Yep! ^_^ 21:04:47 Lymee: STOP RIGHT THE;RE 21:15:37 -!- cheater has joined. 21:16:13 -!- pumpkin has quit (Quit: Computer has gone to sleep.). 21:18:04 -!- FireFly has quit (Quit: swatted to death). 21:18:18 -!- OxA5EA has joined. 21:18:26 oh no, an ox 21:18:35 oh no 21:20:31 howdy 21:21:06 > OxA5EA 21:21:07 Not in scope: data constructor `OxA5EA' 21:21:12 > 0xA5EA 21:21:13 42474 21:21:47 now that is _much_ more obvious. 21:21:47 -!- GreaseMonkey has joined. 21:21:52 -!- OxA5EA has left. 21:22:09 his secret revealed, he left 21:23:51 @hoogle a -> b 21:23:51 Unsafe.Coerce unsafeCoerce :: a -> b 21:23:51 Prelude ($) :: (a -> b) -> a -> b 21:23:51 Prelude ($!) :: (a -> b) -> a -> b 21:24:30 That looks safe enough; it even has the word "safe" in it. 21:25:00 anyway, my next two languages: Piece of valuable specifics that should encourage yourself to order live chat software and Melancholy of the insect infested lemon tree 21:25:03 mark your calenders 21:25:09 [asterisk]calendars 21:30:12 > printStrLn $ unsafeCoerce 0 21:30:13 Not in scope: `printStrLn'Not in scope: `unsafeCoerce' 21:30:20 So. 21:30:22 What would that do? 21:30:47 Lymee: Depends what printStrLn is. 21:30:52 put* 21:30:57 Depends on the GHC version. 21:31:05 And OS, architecture, ... 21:31:12 Yay! ^_^ 21:31:31 !haskell putStrLn $ Unsafe.Coerce.unsafeCoerce 0 21:31:41 Why is it that unsafeCoerce seems.... 21:31:47 oerjan: I imagine it prints out an empty string 21:31:50 because of pointer tags and [] 21:31:52 hm... 21:31:52 A lot more dangerous than unsafePerformIO? 21:31:55 Nothing coerces to [] too 21:31:57 oh wait 21:31:59 oerjan: egobot isn't here 21:32:02 !haskell print $ Unsafe.Coerce.unsafeCoerce 0 21:32:05 ​() 21:32:07 oops 21:32:47 !haskell print (Unsafe.Coerce.unsafeCoerce 0 :: String) 21:32:50 ​"" 21:32:56 :t \x -> ((\y -> y y) (\r -> r)) 21:32:57 Occurs check: cannot construct the infinite type: t = t -> t1 21:32:57 Probable cause: `y' is applied to too many arguments 21:32:57 In the expression: y y 21:32:59 :( 21:33:14 Lymee: needs more newtypes 21:33:16 oerjan: oh wait it is here 21:33:17 heh 21:33:19 Lymee: unsafeCoerce can easily segfault if you're unlucky 21:33:21 just not hackego 21:33:44 now, you can _write_ unsafeCoerce with unsafePerformIO, but it takes a bit of work. 21:33:50 :t \x -> (\f -> f f) (\r -> r r) 21:33:50 Occurs check: cannot construct the infinite type: t = t -> t1 21:33:50 Probable cause: `f' is applied to too many arguments 21:33:50 In the expression: f f 21:33:53 :( 21:34:30 Is it possible to write a function a->b that never returns? 21:34:37 As in, actually have that type inferred 21:35:40 using only lambda, i think not 21:36:06 :t \_ -> undefined 21:36:06 forall t a. t -> a 21:36:09 yes. 21:37:18 (by which i excluded undefined etc.) 21:39:20 what about a recursive function that never returns? 21:39:57 you cannot do general recursion with just lambdas 21:40:21 it'll always hit that infinite type problem 21:40:23 well those things are part of real haskell function writing, so i assume Lymee would include them 21:40:30 :t fix id :: a -> b 21:40:30 forall a b. a -> b 21:40:46 elliott: i wouldn't assume that after the :t \x -> (\f -> f f) (\r -> r r) thing 21:41:13 oerjan: it's Lymee, nonsensical messing with lambdabot is a given 21:41:15 anyway 21:41:18 the infinite type problem? not really 21:41:22 just newtype it 21:41:28 that doesn't involve any functions or anything 21:41:30 or explicit recursion 21:41:40 elliott: that's not "just lambdas" 21:41:56 oerjan: Lymee _never said_ just lambdas 21:42:01 you did 21:42:40 newtype X a = X { un :: X a -> a } 21:42:41 \x -> un (X (\f -> un f f)) (X (\r -> un r r)) 21:42:41 -!- MigoMipo has quit (Read error: Connection reset by peer). 21:42:42 elliott: your comment was in the context of my comment. 21:42:45 unfortunately lambdabot can't run that or anything 21:42:47 oerjan: well ok 21:42:52 i was trying to answer Lymee 21:43:04 EgoBot can. 21:43:15 (unsafeCoerce 42 :: ByteString) tends to segfault quite reliably. 21:43:47 -!- comex_ has changed nick to comex. 21:44:14 presumably ByteString has no nullary constructor 21:46:11 Prelude> Unsafe.Coerce.unsafeCoerce (Just ()) :: [()] 21:46:12 [(),Segmentation fault 21:46:12 also works 21:46:44 I love how the memory layout works out perfectly apart from the having one fewer field thing 21:46:55 You can also unportably get bits out of floats with it. 21:46:57 !haskell print (Unsafe.Coerce.unsafeCoerce 1.0 :: Int) 21:47:00 4607182418800017408 21:47:01 Wery Useful. 21:47:08 fizzie: Just... just stop 21:48:37 !haskell print (Unsafe.Coerce.unsafeCoerce 1.0 :: Bool) 21:48:41 False 21:48:44 :( 21:49:17 !haskell print (Unsafe.Coerce.unsafeCoerce 42 :: Float) 21:49:20 5.9e-44 21:49:21 (diff) (hist) . . N Fairly intriguing review of shopping cart software package prepared by renowned soccer player or a person named very same as that soccer player.‎; 21:41 . . (+8,490) . . MarshallNielsen (Talk | contribs) (New page: Let's encounter it; most businesses right now need to possess a presence online. The challenge is, that most small business enterprise entrepreneurs are rather actually 21:49:21 scared of the work ...) 21:49:22 (diff) (hist) . . N Incredibly fascinating evaluation of shopping cart software package prepared by well-known soccer professional or a person known as exact same as that soccer player.‎; 21:27 . . (+8,400) . . MarshallNielsen (Talk | contribs) (New page: Let's face it; most organizations today will need to have a presence on the web. The situation is, that most modest organization proprietors are qu 21:49:25 ite truthfully terrified on the work it w...) 21:49:29 oh my god 21:49:31 the titles are getting even better 21:49:47 !haskell print (Unsafe.Coerce.unsafeCoerce 0 :: Float) 21:49:50 0.0 21:49:53 !haskell print (Unsafe.Coerce.unsafeCoerce 1 :: Float) 21:49:57 1.0e-45 21:50:13 !haskell print $ map (Unsafe.Coerce.unsafeCoerce :: Float)) [1..] 21:50:24 !haskell print $ map (Unsafe.Coerce.unsafeCoerce :: Float) [1..] 21:50:54 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Float) [1..] 21:50:57 ​[1.0e-45,3.0e-45,4.0e-45,6.0e-45,7.0e-45,8.0e-45,1.0e-44,1.1e-44,1.3e-44,1.4e-44,1.5e-44,1.7e-44,1.8e-44,2.0e-44,2.1e-44,2.2e-44,2.4e-44,2.5e-44,2.7e-44,2.8e-44] 21:51:14 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Bool) [1..] 21:51:17 ​[False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False] 21:51:21 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Bool) [0..] 21:51:24 ​[False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False] 21:51:27 :< 21:51:37 -!- NihilistDandy has quit (Ping timeout: 246 seconds). 21:51:46 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Int) [True, False] 21:51:49 ​[8646911284555690264,1110514680] 21:52:04 > unsafeCoerce (99::Integer) :: Int 21:52:05 Not in scope: `unsafeCoerce' 21:52:08 hmm... 21:52:10 ugh 21:52:20 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce ((Unsafe.Coerce.unsafeCoerce x :: Int)+1) :: Bool) [True, False] 21:52:23 ​[False,False] 21:52:27 !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce ((Unsafe.Coerce.unsafeCoerce x :: Int)) :: Bool) [True, False] 21:52:30 ​[True,False] 21:52:33 nyan 21:58:45 -!- NihilistDandy has joined. 22:03:55 -!- NihilistDandy has quit (Ping timeout: 276 seconds). 22:04:58 oerjan: I wish there was some kind of higher-order DSL for describing the kind of compositions that turn into nested clusterfucks of (.) 22:04:58 I'm not sure what it'd look like, though... maybe it could assign a name to every argument, and... :D 22:08:06 -!- HackEgo has joined. 22:08:36 "Funnily because of the ordering of Bool it holds implies == (<=)." 22:08:37 oerjan: >:D 22:12:21 elliott: iirc nested clusterfucks of (.) correspond to lambdas where every argument is used exactly once, in order. except that a few exceptions become id instead. 22:12:43 oerjan: well, I mean, nested clusterfucks mixed in with other things 22:12:48 @pl \a b c d e -> a (b c d) e 22:12:48 (.) . (.) 22:13:54 elliott: also, you're familiar with (iirc) conal elliott's result etc. notation? 22:14:19 oerjan: indeed 22:14:28 -!- GreaseMonkey has quit (Quit: The Other Game). 22:14:30 well, maybe not familiar 22:14:33 but I know of it, and read a post once 22:16:40 -!- cheater_ has joined. 22:19:34 -!- cheater has quit (Ping timeout: 255 seconds). 22:24:17 -!- NihilistDandy has joined. 22:39:01 -!- TeruFSX has quit (Ping timeout: 258 seconds). 23:08:12 oerjan: Is nesting of loops required for brainfuck to be [[Turing-complete]]? (I'm asking because I'm trying to show reduction with another esolang where nested loops would be difficult.) —[[User:Maharba|Maharba]] 22:24, 31 July 2011 (UTC) 23:08:15 it is, right? 23:08:30 I know dbfi has seven deep loops, or something 23:08:31 or was it five 23:10:13 it's almost certianly required otherwise you can't have very interesting logic 23:10:17 well if you have only one level of loops, then what's inside a loop is only ><+- (ignoring .,) 23:11:17 oerjan: orly 23:11:29 yeah i know it's not tc without nested loops 23:11:31 i just dunno the proof 23:12:06 ah, didn't really notice that it was a quote. 23:12:35 If you have no nested loops you cna never 'regress' in state 23:12:49 is my rough idea of the proof 23:12:59 well it could be proved by solving the halting problem for each loop 23:13:07 http://esolangs.org/w/index.php?title=HQ9%2B&curid=1036&diff=24089&oldid=22953 23:13:10 wow it's ALL IN UPPERCASE 23:13:12 EVEN THE STRINGS IT PRINTS 23:14:34 if a loop is unbalanced, then you can only perform it so many times before going periodic, so halting for that can be determined. 23:15:15 fileupyours 23:15:16 (so many times after going off the original tape) 23:16:00 hq9+ was kind of okay, but hq9+ derivatives make me sad 23:16:25 if it's balanced, well how does that balanced loop optimization work in general... 23:16:59 oerjan: ok post that on the talk page 23:16:59 thx 23:17:27 oh hm you are merely adding a given vector to the touched cells each time. 23:17:58 and it's a question of whether the loop test cell will ever hit 0 or not 23:18:57 yup 23:21:13 -!- elliott has quit (Ping timeout: 246 seconds). 23:25:01 -!- NihilistDandy has quit (Ping timeout: 240 seconds). 23:27:15 -!- lament has quit (Ping timeout: 260 seconds). 23:27:38 -!- NihilistDandy has joined. 23:41:12 how do i get a new pet? i tried sacrificing anything i can come up with and all i could get is some demons when i sacrifice priests 23:42:57 -!- copumpkin has joined. 23:46:17 * oerjan calls the PETA 23:59:08 -!- lament has joined.