00:00:03 ??? 00:00:10 -!- cpressey has quit (Quit: Leaving.). 00:01:02 Sgeo, the Private Eye is a satirical magazine in the UK. 00:01:35 -!- zzo38 has joined. 00:01:36 One of the columns is a poem by "E.J. Thribb (17½)" 00:05:39 They are always about the recently deceased. 00:10:06 As long as he doesn't write poems about me anytime soon, I'm omk 00:10:53 There are GPL for computer software codes, and GFDL for books, but what happens if your codes can compile a program and also books? 00:11:07 So, farewell then 00:11:09 Sgeo 00:11:13 You did not have 00:11:17 A catchphrase 00:11:27 And I cannot 00:11:31 Be bothered 00:11:34 To make one up. 00:11:47 —E.J. Thribb (17½) 00:12:02 -!- Gregor-W has joined. 00:12:08 Running a dc program to calculate primes in UNIX dc compiled for MIPS running in a JavaScript MIPS simulator JITting to JavaScript JITting to machine code is quite possibly the least efficient way that primes have ever been calculated. 00:12:12 zzo38, noöne sane uses the GFDL. 00:12:30 Phantom_Hoover, Wikipedia, iirc 00:12:37 Sgeo, no more. 00:12:47 How do you go about relicensing WIkipedia/ 00:12:53 You can't track everyone down 00:13:07 They actually made the FSF change the GFDL to allow them to switch to CC-BY-SA. 00:13:15 o.O 00:13:44 Yes, I saw the GFDL it contains something specifically meant for Wikipedia to relicense things 00:13:46 Sgeo, WP makes it clear that as soon as you hit "save", any content you contribute is under whatever licensing terms they have. 00:14:05 Or, at least that is what it looks like to me, once I read it, I thought that is the only use for that part of the license 00:14:13 zzo38, what part? 00:14:38 It was under the GFDL 1.something or later, then the FSF added a clause to it that allowed wikis to switch to CC-BY-SA before a certain date. 00:15:54 I thikn only some versions of the GFDL include that clause 00:16:19 zzo38, 1.3. 00:16:34 So anyway, still looking for an interesting terminating dc program. 00:17:01 Gregor-W, how have you implemented dc, then? 00:17:36 Phantom_Hoover, I think he's lazy and wants someone else to do it for hi..I may have misunderstood 00:17:57 I assumed he had an implementation and wanted something interesting to do. 00:18:06 Gregor-W, look up dc on 99 bottles. 00:18:11 Phantom_Hoover: BRILLIANT 00:18:24 By "dc program", presumably he doesn't mean dc, which is what I thought, but things to put into dc 00:18:25 Phantom_Hoover: It's just UNIX dc (for MIPS for JSMIPS for JavaScript) 00:18:37 Yes, a program written in the "language" dc. 00:19:07 * Sgeo wonders what a dc language without the ability to not halt would look like 00:19:34 Gregor-W, http://99-bottles-of-beer.net/language-dc-704.html 00:19:56 4 lines... 00:20:44 -!- sshc_ has joined. 00:23:32 -!- sshc has quit (Ping timeout: 246 seconds). 00:23:32 The GFDL attempts to prevent the documentation being written in something that requires proprietary software to read. Any other documentation licenses do similar, more successfully? 00:23:39 Sgeo, you want to be more fascist than the FSF? 00:24:49 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.). 00:28:18 -!- Wamanuz2 has quit (Remote host closed the connection). 00:29:34 We should all strive to be more fascist than the FSF. 00:30:03 First, proprietary software; then, the world! 00:30:46 Gregor-W, how do I enter EoF in JSMIPS? 00:31:01 Phantom_Hoover: ATM you can't :P 00:31:10 Ctrl+D is slurped by the browser. 00:32:11 Oh, this dc doesn't bother with that buffered terminal crap. 00:34:12 Well, 99 bottles kinda-sorta works 00:35:56 By which I mean it doesn't work, but it makes a nice effort. 00:36:12 Yeah, I saw that too. 00:36:17 I suspect it depends on GNU dcisms. 00:36:24 Since every other program I've found works perfectly. 00:36:29 And JSMIPS is incapable of being wrong. 00:36:59 Can you compile GNU dc? 00:37:27 -!- Flonk has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716]). 00:40:25 Phantom_Hoover: Probably, haven't tried. Can't from work. 00:40:42 Gregor-W, can't, or won't. 00:42:51 Within the limits of my ability, can. Within the restrictions of the rules of this company, cannot. 00:43:23 -!- sshc_ has changed nick to sshc. 00:43:43 Gregor-W, do they forbid it? 00:44:00 Not explicitly, but indirectly. 00:44:12 *forbit_it 00:44:34 * Sgeo has taken a Tylenol 00:44:45 Sgeo: Congratulations on your accomplishment. 00:44:54 I always say that on here, so that if I do it excessively by forgetfullness somehow, someone can warn me >.> 00:45:18 Sgeo, you are a world-famous mime artist. 00:45:18 Sgeo: Dude, you've already said that like ten times in the last hour. 00:46:03 You fell from glory due to a disastrous accident with an invisible shark tank, and are now bitter and vengeful. 00:46:10 Sgeo: very useful bunch, these guys 00:46:51 Now you must seek justice upon the one who wronged you: Donald Knuth! 00:47:46 For it is he who designed to topple your pedestal, to assist the Conspiracy! 00:52:44 "C) Have you ever been or are you now involved in espionage or sabotage; or in terrorist activities; or genocide; or between 1933 and 1945 were you involved, in any way, in persecutions associated with Nazi Germany or its allies? * " 00:53:01 —Some US visa thing. 00:53:17 So if you were a Nazi in 1938, that's fine? 00:53:56 Last I checked, 1938 is between 1933 and 1945. 00:54:11 Phantom_Hoover: If you were a Nazi but not involved in persecutions involving Germany, you're fine. 00:54:31 Gregor-W, oops. 00:54:34 So, the Pope is allowed in. 00:54:55 pikhq: Bahahah X-D 00:55:26 * Phantom_Hoover remembers a suggestion that House of Fun be pushed to the No. 1 spot in the UK for the Pope's visit. 00:55:45 House of Fun? 00:56:27 Sgeo, random song. Apparently about condoms. 00:56:53 I think it's trying to replicate the "Killing in the Name of" thing. 00:57:04 Thought it was a place of some sort. Stupid failure to understand context! 00:57:19 Killing in the Name of>? 00:57:34 A rap song which was Christmas No. 1 last year. 00:58:04 (It'd been whatever crap the X Factor did for years before) 00:59:15 * Phantom_Hoover needs to go. 00:59:20 Sgeo, use the mime! 00:59:41 -!- tombom has quit (Quit: Leaving). 01:04:04 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds). 01:13:15 Good lawd! 01:13:27 For the first time in my internship here, the term "time flies when you're having fun" has applied. 01:14:26 -!- FireFly|n900 has joined. 01:23:39 If you write a web program with GNU GPL and you sell a book of it, what is the license issues involved? 01:28:29 None? The GPL is the GPL regardless of the media format ... if you sell a book of a compiled binary of it, you have to include the source. 01:30:16 Aside from the GPL being poorly suited to not-code, no issues. 01:34:58 I understand the GPL is poorly suited to not-code, except, but it is a computer program code, but you print it out to make a book (including the table of contents, and index, and so on). 01:36:39 Is the index MERELY AGGREGATED with the source code, or LINKED with it? X-P 01:37:13 Gregor-W: The index is created from the source-code. The entire book is created from the source-code. 01:38:32 (Except that the index is generated automatically, the source-code does not include the index, instead it will find everything needed indexed and then put it in order in the index, with the section numbers) 01:38:49 (Section numbers are not included in the source code either, they are also automatically generated) 01:43:41 -!- Gregor-W has quit (Quit: Page closed). 01:49:50 zzo38: Arguably, the book is itself the compiled binary, and you need to also distribute the source. 01:50:12 Where "distribute" can just mean "You may download this at http://example.com/foo". 01:50:34 pikhq: Yes, it is, itself what I think. The actual executable program is also the other compiled binary. 01:50:57 pikhq: I don't think that "distribute" is good enough...... 01:51:12 It is. 01:51:23 "Believed to be" under GPL2, explicitly so under GPL3 01:53:38 That isn't good enough unless the URL specifies exactly to the program (so that accessing it using wget or netcat or curl will download the source file directly), but is better if, when you sell a DVD with this book that includes the source-codes, and a hardware device that uses this program 01:55:42 -!- augur has quit (Remote host closed the connection). 01:56:51 What was GPL1 like? 02:08:22 -!- zzo38 has quit (Quit: Akagi Shigeru). 02:24:01 I took the Tylenol over an hour ago, why isn't it helping? 02:26:57 Because over-the-counter pain medicine is basically a joke that people continue to use because the placebo effect is more powerful when you actually believe it'll work. 02:34:00 I once believed that a Tylenol I took would take effect in half-an-hour. My pain was relieved in an hour 02:34:15 Can placebo effect explain that? (I'm not being sarcastic, I'm really curious) 02:36:44 Will making the screen be red lessen the badness that using the computer would have on my headache? 02:45:03 Gregor: Actually, OTC pain medications are quite effective. Tylenol is not one of them for most afflictions. 02:46:34 * Sgeo wonders if the fact hat he only took half a dose might have anything to do with anything 02:46:54 I'm rather on the small and thin side, so I try to be cautious... 02:47:40 Sgeo: Don't take Tylenol for headaches. It doesn't work, and it might kill your liver. 02:47:56 Try naproxen sodium, or aspirin, or ibuprofen. 02:48:05 Never heard of naproxen sodium 02:48:59 s/?/> 02:49:00 Aleve = naproxen sodium 02:49:01 Also, mightn't Aspirin kill my stomach? I don't drink, but I don't eat properly, so stomach issues might be more of a concern? 02:49:02 win 28 02:50:10 Aspirin can cause ulcers, yes, but it's not generally a concern for short-term OTC use. 02:50:29 -!- Gregor-P has quit (Read error: Connection reset by peer). 02:50:43 (if you have stomach issues or diabetes, aspirin is a solid no, though) 02:50:49 -!- Gregor-P has joined. 02:51:58 I have "not eating enough and the proper things" issues 02:52:50 That can cause headaches in and of itself. 02:53:00 You may want to fix that instead of resorting to medication. 02:54:39 Called my dad 02:54:49 He suggested that I take another Tylenol 02:55:10 How much have you taken? 02:55:21 (in mg, preferably) 02:56:03 500mg 02:56:21 Okay, you may be safe going up to 1,000mg. 02:56:41 "may"? 02:57:02 Tylenol is scary stuff, and even normal doses have a chance of causing liver failure. 02:57:33 #1: solution to headaches in my experience: drink lots of water and lie down 02:57:42 coppro: Not a solution for migraines. 02:58:06 I don't _think_ I have migrains 02:58:14 Sgeo: You'd know if you did. 02:58:36 pikhq: I don't suffer from migraines, and apparently neither does Sgeo. 02:58:48 Among other things, you would not be fond of the lightbulb on which my words are being displayed. 02:58:49 I've had severe, severe headaches on occasion 03:00:34 Maybe I should turn away from the computer... 03:03:07 -!- cheater99 has quit (Read error: Operation timed out). 03:08:57 -!- Gregor-P has quit (Quit: Bye). 03:08:59 -!- Gregor-P has joined. 03:13:03 -!- CakeProphet has quit (Ping timeout: 264 seconds). 03:25:10 I hate walking into spider webs 03:25:14 Especially large ones 03:25:32 Also, my headache seems to be a bit better (without taking the extra Tylenol!) 03:26:11 * oerjan me toos 03:32:15 -!- Gregor-P has quit (Ping timeout: 264 seconds). 03:36:28 -!- CakeProphet has joined. 03:46:40 -!- sshc_ has joined. 03:49:33 -!- sshc has quit (Ping timeout: 240 seconds). 03:50:02 -!- sshc_ has changed nick to sshc. 03:53:59 -!- sshc_ has joined. 03:54:47 -!- sshc has quit (Ping timeout: 260 seconds). 03:55:43 -!- sshc_ has changed nick to sshc. 03:59:17 -!- sshc_ has joined. 04:02:16 -!- sshc has quit (Ping timeout: 240 seconds). 04:07:08 -!- sshc has joined. 04:09:33 -!- sshc_ has quit (Ping timeout: 240 seconds). 04:09:49 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.8/20100722155716]). 04:12:09 -!- sshc_ has joined. 04:14:13 -!- sshc has quit (Ping timeout: 276 seconds). 04:25:04 -!- sshc_ has changed nick to sshc. 04:27:47 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep). 04:33:06 -!- poiuy_qwert has joined. 05:05:44 -!- Sgeo has quit (Ping timeout: 265 seconds). 05:08:06 -!- poiuy_qwert has quit (Quit: Leaving). 05:08:12 * oerjan has no f idea what today's xkcd is about 05:08:49 oerjan: Porn 05:09:26 ah. 05:09:56 oerjan: A maid, a pizza delivery guy with a hot "sausage", and a "plumber" are stereotypical stock characters in American porn. 05:10:26 fine, fine 05:17:17 * oerjan suddenly wonders if there's cursing in american porn XD 05:17:30 Yes. 05:17:32 Of course they left out "construction worker", "prison inmate" and "schoolgirl/cheerleader/etc" 05:17:45 American porn is not aired on TV at all, and instead on DVD. 05:17:54 American porn also does not give a fuck about moral guardians. 05:18:01 Also the Internet :P 05:18:14 Well. Yes. 05:18:16 :P 05:18:29 Although the Web is a porn melting pot. 05:18:40 Indeed. 05:18:45 i just thought it would be hilarious if there wasn't 05:18:53 It would be. 05:19:11 Much use of "the 'F' word" :P 05:19:15 And lots of moaning. 05:19:31 And playing board games. 05:19:39 well yeah but is it really cursing if you use the words _literally_? :D 05:19:48 Arguably not. 05:30:07 o hey, this might be a good place to ask this 05:30:48 under scrutiny is the behavior of a bot being made to play tetris 05:31:04 there is a database of field shapes on which the pagerank algorithm is run 05:31:49 if we look 3 pieces ahead (we know what pieces they are), and get results like this (simplified): http://24.19.39.178/decision.png 05:31:57 the question is, is it better to follow the path for B or for C? 05:32:19 -!- oerjan has quit (Quit: Good night). 05:32:19 path B has a better field within it, but path C has a better field after 3 placements 05:32:45 of course, the values inherently describe how good a field is in terms of what sequences of pieces it can handle 06:06:08 -!- GreaseMonkey has joined. 06:10:50 -!- augur has joined. 06:32:38 -!- sshc_ has joined. 06:36:16 -!- sshc has quit (Ping timeout: 276 seconds). 07:16:33 -!- sshc_ has changed nick to sshc. 07:18:03 -!- kar8nga has joined. 07:21:29 -!- GreaseMonkey has quit (Remote host closed the connection). 07:23:58 -!- augur has quit (Remote host closed the connection). 07:24:08 -!- augur has joined. 07:56:51 -!- kar8nga has quit (Remote host closed the connection). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:44:49 -!- sebbu2 has joined. 08:44:51 -!- sebbu2 has quit (Excess Flood). 08:45:19 -!- sebbu2 has joined. 08:45:20 -!- sebbu2 has quit (Excess Flood). 08:45:49 -!- sebbu2 has joined. 08:45:50 -!- sebbu2 has quit (Excess Flood). 08:46:38 -!- sebbu2 has joined. 08:46:40 -!- sebbu2 has quit (Excess Flood). 08:47:24 -!- sebbu2 has joined. 08:47:25 -!- sebbu2 has quit (Excess Flood). 08:47:51 -!- sebbu has quit (Ping timeout: 260 seconds). 08:47:57 -!- sebbu has joined. 08:47:58 -!- sebbu has quit (Excess Flood). 08:48:27 -!- sebbu has joined. 08:48:29 -!- sebbu has quit (Excess Flood). 08:49:00 -!- sebbu has joined. 08:49:02 -!- sebbu has quit (Excess Flood). 08:49:35 -!- sebbu has joined. 08:49:37 -!- sebbu has quit (Excess Flood). 08:50:07 -!- sebbu has joined. 08:50:08 -!- sebbu has quit (Excess Flood). 08:50:38 -!- sebbu has joined. 08:50:39 -!- sebbu has quit (Excess Flood). 08:51:09 -!- sebbu has joined. 08:51:10 -!- sebbu has quit (Excess Flood). 08:51:57 -!- sebbu has joined. 08:51:59 -!- sebbu has quit (Excess Flood). 08:52:24 -!- sebbu has joined. 08:52:25 -!- sebbu has quit (Excess Flood). 08:52:52 -!- sebbu has joined. 08:52:53 -!- sebbu has quit (Excess Flood). 08:53:46 -!- sebbu has joined. 08:53:47 -!- sebbu has quit (Excess Flood). 08:54:16 -!- sebbu has joined. 08:54:18 -!- sebbu has quit (Excess Flood). 08:55:09 -!- sebbu has joined. 08:55:10 -!- sebbu has quit (Excess Flood). 08:56:04 -!- sebbu has joined. 08:56:06 -!- sebbu has quit (Excess Flood). 08:56:44 -!- sebbu has joined. 08:56:45 -!- sebbu has quit (Excess Flood). 08:57:37 -!- sebbu has joined. 08:57:38 -!- sebbu has quit (Excess Flood). 08:58:29 -!- sebbu has joined. 08:58:30 -!- sebbu has quit (Excess Flood). 08:59:01 -!- sebbu has joined. 08:59:03 -!- sebbu has quit (Excess Flood). 08:59:33 -!- sebbu has joined. 08:59:35 -!- sebbu has quit (Excess Flood). 09:00:04 -!- sebbu has joined. 09:00:05 -!- sebbu has quit (Excess Flood). 09:00:34 -!- sebbu has joined. 09:00:36 -!- sebbu has quit (Excess Flood). 09:01:08 -!- sebbu has joined. 09:01:10 -!- sebbu has quit (Excess Flood). 09:01:39 -!- sebbu has joined. 09:01:40 -!- sebbu has quit (Excess Flood). 09:02:13 -!- sebbu has joined. 09:02:15 -!- sebbu has quit (Excess Flood). 09:02:47 -!- sebbu has joined. 09:02:49 -!- sebbu has quit (Excess Flood). 09:03:24 -!- sebbu has joined. 09:03:25 -!- sebbu has quit (Excess Flood). 09:04:04 -!- sebbu has joined. 09:04:05 -!- sebbu has quit (Excess Flood). 09:04:28 -!- sebbu has joined. 09:04:30 -!- sebbu has quit (Excess Flood). 09:05:14 -!- sebbu has joined. 09:05:15 -!- sebbu has quit (Excess Flood). 09:05:41 -!- sebbu has joined. 09:05:43 -!- sebbu has quit (Excess Flood). 09:06:06 -!- sebbu has joined. 09:06:08 -!- sebbu has quit (Excess Flood). 09:06:33 -!- sebbu has joined. 09:06:35 -!- sebbu has quit (Excess Flood). 09:07:12 -!- sebbu has joined. 09:07:13 -!- sebbu has quit (Excess Flood). 09:07:46 -!- sebbu has joined. 09:09:02 That's some pretty excessive flooding. 09:14:05 -!- MigoMipo has joined. 09:26:55 -!- deschutron has joined. 09:29:34 -!- deschutron has left (?). 09:35:34 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 09:40:59 -!- SevenInchBread has joined. 09:43:16 -!- CakeProphet has quit (Ping timeout: 252 seconds). 09:43:46 http://i.imgur.com/Ulu6Z.png 09:44:38 -!- Phantom_Hoover has joined. 09:47:28 -!- fungot has quit (Ping timeout: 253 seconds). 10:57:17 -!- MigoMipo has quit (Read error: Connection reset by peer). 10:57:22 -!- augur has quit (Remote host closed the connection). 10:57:28 -!- augur has joined. 11:03:18 -!- FireFly|n900 has joined. 11:14:01 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 11:23:48 -!- Wamanuz has joined. 11:24:27 -!- tombom has joined. 11:31:38 -!- FireFly|n900 has joined. 11:42:37 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 11:43:24 -!- sebbu2 has joined. 11:43:39 -!- SevenInchBread has changed nick to CakeProphet. 11:43:43 :o 11:43:46 -!- ais523 has joined. 11:43:58 -!- FireFly|n900 has joined. 11:44:54 o: 11:46:49 -!- sebbu has quit (Ping timeout: 252 seconds). 11:46:50 -!- sebbu2 has changed nick to sebbu. 11:49:02 -!- CakeProphet has quit (Read error: Operation timed out). 11:49:02 -!- SevenInchBread has joined. 11:53:10 -!- ais523 has quit (Read error: Connection reset by peer). 11:54:04 * Phantom_Hoover is getting pretty fed up with Ubuntu holding his hand when downloading executables. 11:54:25 -!- ais523 has joined. 11:54:33 -!- ais523 has quit (Changing host). 11:54:33 -!- ais523 has joined. 12:00:46 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 12:01:35 -!- FireFly|n900 has joined. 12:02:53 -!- augur_ has joined. 12:04:47 -!- augur has quit (Ping timeout: 265 seconds). 12:04:57 -!- augur_ has changed nick to augur. 12:15:04 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 12:15:48 -!- FireFly|n900 has joined. 12:24:25 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 12:27:40 -!- Sgeo has joined. 12:32:48 -!- Sgeo_ has joined. 12:33:25 -!- Sgeo has quit (Ping timeout: 276 seconds). 12:36:43 -!- FireFly|n900 has joined. 12:42:34 -!- FireFly|n900 has quit (Ping timeout: 252 seconds). 13:05:13 -!- Sgeo__ has joined. 13:08:35 -!- Sgeo_ has quit (Ping timeout: 265 seconds). 13:20:17 Sgeo__, why the constant quits and rejoins? 13:21:04 A fickle person. 13:21:16 the varying numbers of underscores imply to me that it's a bad connection 13:21:28 fizzie, BRING FUNGOT BACK 13:21:48 -!- augur has quit (Remote host closed the connection). 13:21:58 -!- augur has joined. 13:22:42 -!- oerjan has joined. 13:24:45 I ... wait, why'd I disconnect at 8:04? 13:25:02 The earlier disconnect was as my computer hibernated in an effort to prevent me from staying on it 13:25:21 Sgeo__, evidently it failed. 13:25:33 No it didn't 13:25:44 I was unable to really use the computer until 7:30 13:25:56 It's what, half 8 EST? 13:26:36 And? 13:26:55 Wait, you stayed up the whole night? 13:26:56 At any rate, I didn't get any sleep last night. My dad wants me to stay up all day so I'll be able to go to sleep tonight 13:27:24 Yes, but you shouldn't have been able to derive that without me telling you. I'm confused now 13:28:00 Sgeo__, I am a master of deduction. 13:30:18 Like Sherlock Holmes, but without the charisma. 13:34:20 yeah where is fungot? 13:38:32 They killed him! 13:39:06 Hung up; I don't know what's up with that state it sometimes goes; it keeps sleeping in the network-read. You'd think TCP timeouts would kill it eventually, but they do not seem to. 13:39:24 FIX HIM 13:39:28 -!- fungot has joined. 13:39:32 fungot! 13:39:32 Phantom_Hoover: i don't know of that one game... jak daxter ( or maybe i'm mistaken, but the 13:51:21 -!- Phantom_Hoover has changed nick to `hello. 13:51:44 -!- `hello has changed nick to Phantom_Hoover. 13:51:49 Interesting... 13:51:59 -!- augur has changed nick to `heyphantom. 13:52:02 -!- `heyphantom has changed nick to augur. 14:48:19 -!- cpressey has joined. 14:56:59 ais523: You know, it's very easy to design a language whose programs form a monoid (because you don't need all that invertibility stuff)... then you could look at it as representing the category of monoids? Except, there is the slight snag that these aren't conventional algebras; they replace equality with computational equivalence (which is uncomputable!) in the axioms. 15:01:02 I think that's algebra's fault for assuming that = is such a trivial relation. ;) 15:01:38 algebraists generally just take the quotient by your equivalence relation and call it a day 15:02:25 cpressey: ouch 15:04:55 -!- BeholdMyGlory has joined. 15:06:26 also equality with monoids is already undecidable when you have conventional equations. it's called the word problem. 15:06:52 Errrr indeed! 15:07:38 -!- oerjan has quit (Quit: Later). 15:07:44 That all seems rather cavalier somehow, but actually I think it means I can feel a whole lot better -- Burro doesn't bend the rules nearly as much as I thought it might. 15:11:37 cpressey: if instead of "computational equivalence", you say "provable computational equivalence, according to inference rules X, Y, Z, etc.", it works I think 15:11:43 e.g. for Burro, you have the cancelling-out rules 15:12:41 (instead of interpreting it as a programing language that's a group, interpret it as a group that happens to be executable in a TC way) 15:14:09 Well... if you're suggesting to restrict the set to instances that we can prove are equivalent to other instances... I'm pretty sure that's not TC anymore (although it's a different way to put the question than I'm used to) 15:14:23 s/instances/programs if you like 15:15:12 no, I'm not 15:15:16 I'm suggesting weaking the equality relation 15:15:18 Or, not a group, because it's not closed: A x B = C where A and B are provably equiavlent to somerhing, but C isn't 15:15:20 *weakening 15:16:01 so that you can have two computationally equivalent programs that are not equal, because it can't be proved using a certain specific set of rules 15:16:11 OK, I think I see 15:16:17 they're both part of the group, just /different/ group elements 15:16:25 Yeeeeees 15:16:32 * cpressey grimaces 15:17:15 How on earth would you show that the "unprovable elements" obey any of the laws, though? 15:17:29 no individual element is unprovable 15:17:34 it's just the relationship between two of them 15:17:47 OK, right 15:17:48 and the laws are what you use to establish the equality relationship, so it's true by definition 15:18:03 as in, two programs are equal if you can prove them equal using the group laws 15:18:11 (which also implies they're computationally equivalent) 15:18:26 two programs might happen to be computationally equivalent for a different reason, in which case they aren't equal 15:25:01 That might be a good way to re-seat the idea. I'm just trying to figure out if you lose anything (of significance). Currently, if 2 programs are equivalent for any reason, then they go into the same equivalence class and are treated as "the same thing" by the axioms. With the weaker definition, they would have to be "equivalent by the group axioms" in order to do that. OK, I think that's OK... Burro for example works 15:26:19 -!- augur has quit (Remote host closed the connection). 15:28:04 * Phantom_Hoover wonders if learning Fortran would be good for a laugh. 15:33:03 Phantom_Hoover: Not just a laugh, if you wanted to break into the big bad world of high-performance numerical computing. 15:33:14 I don't want to do that. 15:35:42 Or you could learn: http://en.wikipedia.org/wiki/Fortress_%28programming_language%29 15:37:53 COBOL would be a heartier laugh. 15:38:34 Or are we to say "Cobol" now? Everyone says Lisp and Forth and Basic. Have shouted language names gone out of style? 15:38:55 Yes, ever since the ASCII became standard. 15:39:22 -_^ 15:39:31 Oh, the kids these days, always with the ASCII. 15:39:53 WELL ITS DECIDEDLY BETTER THAN THE ALTERNATIVE 15:40:17 NOTHING WRONG WITH UPPERCASE 15:40:26 -!- derdon has joined. 15:40:28 EASIER TO READ 15:40:31 Indeed, as Lisp demonstrates. 15:40:33 SEXIER 15:40:37 COOLER 15:40:38 !lisp (print 'hello) 15:40:48 oklopol, you think monospaced fonts are cool. 15:41:15 Your view of aesthetics in typography are of a similar value of a pigeon's. 15:41:27 s/view/views/ 15:41:48 pigeons are very smart. all the known ways to show a language is not regular are based on pigeons. 15:43:05 oklopol, maybe so, but they don't know the first thing about typography. 15:43:56 oklopol: is that statement vacuously true? 15:44:17 " s/view/views/" <<< clearly you know a lot about typography 15:44:18 hahaha 15:44:21 get it 15:44:25 typo-graphy 15:44:29 ais523: yes 15:44:32 err 15:44:37 no! 15:44:48 it's non-vacuously true 15:44:54 `addquote pigeons are very smart. all the known ways to show a language is not regular are based on pigeons. 15:45:06 as in, there is a known way to show a language is not regular, and it's pigeon-based? 15:45:08 oklopol, that is a typo. They are common, due to the fact that humans are not designed to type. 15:45:08 211| pigeons are very smart. all the known ways to show a language is not regular are based on pigeons. 15:45:10 ais523: yes 15:45:16 wow 15:45:26 oklopol, what is it/? 15:45:27 ais523: well, not very literally :D 15:45:39 it's a pun. 15:45:43 ah 15:45:54 A pun in Finnish? 15:46:00 yes. 15:46:04 also in english though. 15:46:25 Do explain. 15:46:36 well how do you show a lang is not regular? 15:46:44 sorry about the socratic method 15:47:51 well okay the point is the characterization (and often the definition) of regular languages as those recognized by a one-way fsa 15:48:15 you can develop a pumping lemma (often called "the" pumping lemma) for them, because of ... 15:48:25 (insert pigeons.) 15:49:04 :D 15:49:58 more precisely, we think of the states as pigeons 15:50:20 and i hope you get it already? 15:50:43 No, but forget it. 15:51:41 pigeonhole principle, the letters of the string are the holes 15:53:29 Ah. 15:54:21 i'm an elephant 15:55:14 Yes you are, oklo, yes you are. 15:57:26 -!- Mathnerd314 has joined. 16:08:12 -!- Gregor has quit (Ping timeout: 260 seconds). 16:10:00 -!- Gregor has joined. 16:21:11 -!- kar8nga has joined. 16:37:53 -!- augur has joined. 16:40:18 ais523: OK, I think I see that any "group over computational equivalence" has a corresponding "group over provable computational equivalence" which is technically weaker, but more tractable, while "saying almost the same thing". (I'm sure you could relate them more formally.) Now, I wonder about the converse. 16:44:38 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds). 16:46:48 -!- relet has joined. 16:50:27 -!- AnMaster has quit (Read error: Operation timed out). 16:52:34 -!- FireFly|n900 has joined. 16:54:03 -!- FireFly|n900 has quit (Client Quit). 16:59:20 -!- kar8nga has quit (Remote host closed the connection). 16:59:27 -!- Phantom_Hoover has joined. 17:01:46 -!- Flonk has joined. 17:07:19 -!- augur has quit (Remote host closed the connection). 17:07:28 -!- augur has joined. 17:07:34 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 17:12:15 -!- augur has quit (Remote host closed the connection). 17:12:20 -!- augur has joined. 17:24:51 -!- Phantom_Hoover has joined. 17:59:29 * Flonk just became aware of the awesomeness of brainfuck 18:01:05 oh? 18:01:09 have you seen iota? 18:01:28 no, whats iota 18:01:47 a combinator language with only one combinator and one non-logical symbol 18:02:13 O_o 18:03:44 and i thought brainfuck was masochistic. 18:04:16 Flonk, it's of the same computational class as Brainfuck, too. 18:06:24 well 18:06:32 it depends on what you mean by computational class 18:06:36 in terms of power, any TC language is 18:06:40 Unlambda/Lazy K > Iota 18:06:48 if you mean its a tarpit, only sort of 18:06:54 tarpits tend to be machine languages 18:07:00 whereas iota is a combinator language 18:07:14 which has its roots in the lambda calculus, whereas machine languages have their roots in turing machines 18:14:43 "Computational class" generally means "what kinds of things can it compute" in eso-land, rather than "what it has roots in" 18:15:16 well then its kind of useless to say that its in the same computational class as brainfuck 18:15:34 because almost all esolangs are TC 18:15:43 its like saying its in the same computational class as piet 18:15:57 That's not useless, though. 18:16:20 it pretty much is 18:16:22 its TC 18:16:25 most esolangs are 18:16:30 you'd be surprised if one werent 18:17:15 There are quite a few that aren't. There are quite a few that *intentionally* aren't. 18:17:27 Like C? 18:17:43 C isn't eso 18:17:53 augur, O RLY? 18:17:53 and its only not TC for silly reasons 18:18:01 well, its fucking weird, ill give you that 18:18:08 but its not an esolang 18:18:09 "Silly"? 18:18:17 yes 18:18:47 It's not TC! How is it not TC for silly reasons! 18:18:57 silly, in that it gives you directly manipulable access to memory addresses, and therefore the size of pointers has to be visible 18:19:10 and thats what leads to the non-TCness 18:19:18 augur, don't see where silly comes in. 18:19:40 the size of pointers becomes a part of the language itself, not something thats invisible and happening only between the compiler and the machine code 18:20:12 and its prooooobably true that you never need to actually know how big this or that pointer is 18:20:27 Unless you want to, I dunno, store it. 18:20:28 you just need to be able to do math on pointer sizes 18:20:35 cpressey: nope! 18:20:36 Or send it across a wire. 18:20:48 augur, malloc? 18:20:52 you just need to allocated size(the_pointer) space! 18:21:19 augur, so you need to know what size(the_pointer) is! 18:21:35 no, you just need to be able to allocate enough space to store one 18:21:41 however much space that happens to be 18:21:45 Or, you know, prove that your real-time system can react to every event in less than 1 msec. 18:22:03 How long will it take to follow this pointer? Well that's the thing see 18:22:08 augur, oh, and what if you want, say, a dynamically-allocated 2D array? 18:22:16 cpressey: i think if you want to do that you should be coding in a language closer to the metal or with good verification :P 18:22:26 Closer to the metal than C... uh-huh. 18:22:30 -!- kar8nga has joined. 18:22:36 sure! 18:22:38 cpressey, ring 0 assembly? 18:22:43 C--, obviously. 18:22:45 xp 18:23:50 So, because C isn't sufficiently "close to the metal", it should be even "further away from the metal", to the point where it supports pointers of unbounded length? 18:24:04 cpressey, well, yes. 18:24:10 cpressey: no, not at all 18:24:26 just that it should make pointer size transparent 18:24:31 Actually, once size_t is unbounded you can make a MRM, I think. 18:24:59 augur: It would need pointers of unbounded size (unbounded at runtime, mind you) in order to be TC, you realize. 18:25:06 im not actually sure if thats possible, im probably wrong, but i suspect that there are ways to write a language that is about that low level, but which can gloss over the details of any given machine 18:25:17 augur, that's C. 18:25:36 It's just high-level enough that it can run on most architectures. 18:25:46 cpressey: well yes 18:25:53 ofcourse, i think saying C isnt TC is kind of a trick 18:26:11 because its as TC as any programming language on a given machine is 18:26:14 which is to say, it isnt 18:26:20 That is irrelevant. 18:26:20 but only because its on a finite machine 18:26:40 if you could design a computer with infinite memory then you could hav a TC C 18:26:49 augur, no, you couldn't. 18:26:59 C's specification explicitly makes it a FSM. 18:27:00 sure you could 18:27:14 your integers would just have to be potentially an infinite number of bits long 18:27:16 You couldn't make a standards-compliant TC C. 18:27:22 augur, *impossible*! 18:27:31 impossible due to physics 18:27:34 sizeof(int *) *must* be bounded! 18:27:38 sizeof(x) would need to be able to evaluate to the integer "infinity", which C doesn't define. 18:27:40 no, impossible due to the standard 18:27:40 It's *defined* that way. 18:27:58 sizeof(x) would indeed evaluate to infinity 18:28:03 but that ceases to be relevant 18:28:09 But there *is no infinity* defined in C 18:28:13 More generally, sizeof must return a value of type size_t, which is itself defined to be finite. 18:28:14 the C standard requires a finite size of integers and a finite size of pointers, meaning that the total program space is always finite 18:28:27 cpressey: that may be so, but it doesnt matter 18:28:42 augur, it *does*. 18:28:55 It does, because the language you're talking about is not C. 18:28:55 the fact that C has no defined infinity is precisely why it's a SILLY way to restrict C's computational power 18:28:57 sizeof cannot have infinity. 18:29:01 its a technicality of non-TCness 18:29:07 not any sort of genuine conceptual limitation 18:29:17 Yes it is. 18:29:20 no its not 18:29:47 no, it's quite important 18:29:52 not really 18:30:10 now, it's silly to restrict TCness because of the impracticality of an infinite program space 18:30:11 for any finite machine you can compile a C program to it 18:30:19 but you cannot consider C to be TC 18:30:25 i didnt say it was! 18:30:31 i said it was non-TC but only for silly reasons 18:30:56 You said C on an infinite machine would be TC. Sadly, no. C-with-infinity might be. 18:31:06 well ok, fine 18:31:09 C-with-infinity then 18:31:23 thats not a substantial change to the language to make it Not C 18:32:16 augur, yes it is. 18:32:28 For one thing, malloc would work completely differently. 18:32:48 malloc(sizeof(void *)) == malloc(infinity) 18:33:09 yes, but on a ram machine with each memory cell of infinite size 18:33:22 instead of just one bit 18:33:25 It's pretty substantial because of C's memory model. In languages like Lisp you can get relative (and thus unbounded) addressing with things like car and cons. In C you have to use pointers, and pointers are castable to integers, so you have to deal with the possibility of infinite integers, etc. 18:33:44 right, i get that 18:33:54 like i said, if you made pointers opaque 18:33:54 It's not impossible to do, but it doesn't strike me as simple. 18:33:58 ie not castable to integers 18:34:06 i mean, im not saying THAT wouldnt make it not C 18:34:43 but i did also say that i really doubt that anyone truly NEEDS to see the pointers as integers in any substantial sense 18:35:02 pointer arithmetic is all for memory shuffling and i think you could probably just get away with a point type that has opaque mathematics 18:35:42 Sure. Pascal does that. 18:37:11 its just a suspicion tho, that you-the-programmer dont actually ever need to use pointers as ints outside of navigating memory 18:37:46 if thats the case, then you could probably gloss over that somehow like pascal, without substantially changing the nature of how c-programs are written 18:38:13 And make it much harder to write a garbage collector or an OS kernel in C. Yes. 18:38:24 and so i would consider that to be a silly sort of non-TC-ness, in the same way that any finite-tape turing machine is not-TC 18:38:33 oh well sure, but why would you garbage collect on an infinite memory machine? :P 18:38:53 You wouldn't. But my machine doesn't *have* infinite memory. 18:38:55 you could never garbage collect and still have enough memory for any terminating program you want! 18:39:02 well im not saying it does 18:42:24 i just dont think its very insightful to say that C is not turing complete, because it's /effectively/ turing complete 18:42:48 No, it's not. I would call that a misunderstanding of what "Turing complete" means. 18:43:02 -!- olsner has quit (Read error: Connection reset by peer). 18:43:26 and i would say that denying it is a misunderstanding of it. :D 18:43:41 to say that a finite tape turing machine is not turing complete is entirely true 18:43:46 but also entirely missing the point 18:43:58 The point being? 18:44:02 -!- kar8nga has quit (Remote host closed the connection). 18:44:14 cpressey, that augur likes C. 18:44:25 the differences between the automata's internal structure are far more important to computational power than the tape size 18:45:26 Hang on, does the C standard allow for mmapping to external devices? 18:45:30 But actually, they aren't. A turing machine with a finite tape -> finite automaton. A pushdown automaton with finite stack -> finite automaton. Etc. 18:46:04 The internal structure is a technicality, computational-power-wise, if the storage size is fixed. 18:46:16 and vice versa 18:46:50 Because then we can define a fixed address o which can be used to interface to a TM. 18:46:53 and since ToC studies the nature of computation, not the nature of harddrive space, the more salient and important aspect of study is and has always been the kinds of automata behavior 18:46:58 well, has mostly been 18:47:12 the incidental fun of what happens when you run out of memory is always a perenial issue 18:47:16 Vice versa? The storage size is a technicality if the internal structure is fixed? I would hardly agree with that. 18:48:03 augur: Can you tell me why you think Turing said his machine should have infinite tape? 18:48:10 no what i mean is that the differences between the classes of automata, by their internal state-machine properties, are far more salient than the memory limitations they run up against 18:48:32 you can give a TM more memory, and it can compute more and more complex classes of functions, up to TCness 18:49:58 a PDA with an infinite stack is still not TC 18:50:03 itll only get you the CF languages 18:50:30 infinite memory does not a TM make 18:50:32 But can you tell me why you think Turing designed his machine with an infinite tape? 18:50:38 * Phantom_Hoover imagines a little palmtop with an infinite stack poking out of it into the distance. 18:50:53 because you need infinite memory for TRUE TCness 18:51:04 but you also need infinite memory for true CFness 18:51:08 Ah! So "TC" is not the same as "TRUE TC" 18:51:16 ofcourse it does 18:51:22 and i never used it otherwise 18:51:28 "effectively TC" does not mean "actually TC" 18:52:16 a computer that can simulate EVERY turing machine, minus the ones with trivial infinite loops, is also not ACTUALLY TC 18:52:19 but its effectively TC 18:53:02 just because the computer will not simulate while (true) {} doesnt mean its not effectively TC 18:53:14 it just means it wont do computations that aren't really computing anything 18:53:59 Er - well I don't think it's possible to design such a computer, by the Halting Problem, but that's a side-track 18:53:59 -!- Gregor-P has joined. 18:54:02 and i think if you asked turing whether or not his definition was intended to explore computationaly ALGORITHMS 18:54:07 or computational vagaries 18:54:10 he'd say algorithms 18:54:15 Phantom_Hoover: (Should I call the Halting Problem HP so you can have other hallucinations?) 18:54:16 uh 18:54:19 ofcourse its possible 18:54:30 recognition of trivial loops do not violate the halting problem 18:54:32 cpressey, why? 18:54:52 precisely because their recognition is not itself a non-terminating program. 18:55:09 augur: I can get your machine to simulate while (true) {} by giving it any number of other equivalent loops which it cannot recognize 18:55:35 We're getting into computational equivalence here, aren't we? 18:55:41 if your loop does anything in between cycles, then its not equivalent 18:55:52 Here be dragons! 18:55:59 Phantom_Hoover: (It was re your PDA vision. HP = Hewlett-Packard, get it?) 18:56:05 and if it doesnt do anything inside the loop, then its trivially detectable 18:56:13 cpressey, hah. 18:56:15 we already know that trivial infinite loops are detectable 18:56:19 thats not where the halting problem comes from 18:56:41 the halting problem comes from paradoxical cases where proving that some program will halt is also a proof that it wont halt 18:56:45 augur: "Does anything"? I can give you thousands of pieces of code that are equivalent to doing nothing. 18:56:58 do go on 18:57:18 augur, while () {x++; x--} 18:57:23 that doesnt do nothing 18:57:26 Given an appropriate definition of x. 18:57:34 it has no effects outside of the loop 18:57:37 augur, it's *equivalent* to doing nothing. 18:57:39 but inside the loop it stil does something 18:57:43 its equivalent OUTSIDE of the loop 18:57:49 if (collatzHalts) x++; if (goldbachIsTrue) x--; 18:57:52 but the behavior of the machine is not identical 18:58:05 -!- olsner has joined. 18:58:17 the point is that detection of trivial loops by behavior is possible 18:58:19 This is not about "behaviour of the machine", this is about "what functions can it compute or not compute". 18:58:30 and if you elminate any particular trivial loop, you cease to be TC 18:58:38 augur, OK, so let's give that it eliminates trivial loops. It's still TC. 18:58:39 because you cant simulate some particular turing machine 18:58:54 but to be TC you have to be able to simulate EVERY turing machine 18:58:55 augur: Maybe my Turing machine can't read the letter A or produce the letter M. Therefore not TC? 18:59:20 Lazy K is TC, but it works so non-TMily that you can't meaningfully compare them other than by which functions they can compute. 18:59:28 if you're simulating a turing machine, and your UTM design explicitly rejects turing machines that encode A's or M's somehow, then yes 18:59:29 its not TC 18:59:33 That's equivalent to "Can't read this particular syntax that gives an empty loop." There are an infinite number of others that do the same thing. 18:59:52 yes there are, but a UTM needs to be able to simulate EVERY turing machine 19:00:04 thats what makes it universal 19:00:10 augur, you can be TC without being a UTM. 19:00:15 no you cant. 19:00:22 See my comment above re Lazy K. 19:00:23 TCness means being able to simulate any turing machine. 19:00:41 augur, no, not really. It means it's able to compute anything a TM can. 19:00:43 if Lazy K is TC it can simulate a TM 19:00:48 it might not BE a TM 19:00:51 but it can simulate one 19:01:26 So can your limited TM. 19:01:30 nope 19:01:37 Yes it can. 19:01:39 augur: Yes. You misunderstand "simulate". 19:01:44 because i explicitly limited it to not be able to simulate a particular machine 19:01:51 augur, no you didn't. 19:01:54 yes, i did 19:01:58 You forbade a single program. 19:02:05 yes 19:02:07 Not a single machine. 19:02:12 A particular machine is only one of an infinite number that *perform the same computation*. 19:02:19 It can still simulate one, just by interpreting. 19:02:21 and programs and machines are not distinguishable in any real fashion 19:02:33 You might as well say, well, this UTM doesn't interpret the lambda caclulus, thus it isn't universal. 19:02:34 i can define a turing machine that is that program 19:02:38 augur, point being? 19:02:51 my point being is that i can then forbid that particular machine 19:03:06 and the putative UTM stops being universal 19:03:07 We have demonstrated that any computation a TM can do can be done by your restricted TM. 19:03:22 but that is not the definition of TCness 19:03:25 Just by adding self-cancelling instructions into loops. 19:03:35 augur, *yes it is*. 19:03:37 no 19:03:38 it isnt 19:03:44 quote the wikipedia 19:03:45 "In computability theory, a collection of data-manipulation rules (an instruction set, programming language, or cellular automaton) is said to be Turing complete if and only if such system can simulate a single-taped Turing machine." 19:03:58 it is not simply enough to be able to compute the same functions 19:04:00 augur: If your UTM forbids machine X, then I just give your UTM, my UTM with X encoded as input to my UTM. Your UTM runs my UTM which runs X. Making your machine run X. 19:04:11 augur: Get it? 19:04:13 What cpressey said. 19:04:33 and there are finite means for detecting such recodings. 19:04:42 augur: Actually, there aren't. 19:04:46 actually there are. 19:04:49 There aren't even *decidable* means. 19:04:58 there are FINITE means. 19:05:11 tho decidable and finite i suppose in this case mean the same thing. 19:05:20 There aren't means that can be put in *your* UTM. 19:05:21 since all problems are solvable in finite time. 19:05:24 -!- zzo38 has joined. 19:05:43 i didnt say there were means that could be implemented in my particular UTM 19:05:48 tho there might be 19:05:53 augur, so it's superturing? 19:05:53 No, not all problems are solvable in finite time. *Some problems are not solvable*. 19:05:57 Phantom_Hoover: nope 19:06:09 the wonderfully bizare thing about this whole proof theory/theory of computation mess 19:06:18 augur, there is a problem that can't be solved in finite time. We've mentioned it already. 19:06:20 augur: By claiming you could build a machine that would not simulate X, you were claiming there were such means. 19:06:23 -!- Behold has joined. 19:06:25 is that knowing that you cant know is not the same as knowing that you know you cant know 19:06:46 Phantom_Hoover: there are lots of problems that cant be solved even in infinite time 19:06:57 but it only takes finite time to discover that they're not solvable. 19:07:17 augur, no, not really. 19:07:21 yes really 19:07:25 the halting problem is one such example 19:07:34 -!- BeholdMyGlory has quit (Ping timeout: 245 seconds). 19:07:40 it is not merely unsolvable in finite time, it is inherently paradoxical and impossible to solve at all 19:07:54 augur, consider the Reimann hypothesis. 19:08:02 what about the reimann hypothesis 19:08:04 It is impossible to prove that it is undecidable. 19:08:24 so? 19:08:30 i didnt say ALL undecidable problems are provably so 19:08:35 just that SOME are 19:08:49 augur, you keep changing your definition! 19:08:58 while(1){x++;x--;} might have some effects in some cases if the optimizer won't remove it (or if it is marked as volatile). Such as, if x is at a invalid address it will be error, or, some memory mapped video or whatever, can have other effect 19:09:00 and in particular, the trivial infinite loops are provably infinite loops 19:09:17 well, the trivial infinite loops with no internal operations 19:09:18 augur, and that makes not a jot of difference to the computational class. 19:09:25 ofcourse it does 19:09:32 augur: You don't seem to understand that disallowing "while (1) {}" does not make your machine non-Turing-complete. 19:09:32 For reasons comprehensively outlined above. 19:09:39 cpressey: yes, it does 19:09:45 augur: No, it doesn't. 19:09:47 yes it does 19:09:57 because you have forbidden certain turing machines 19:10:06 Why is there all Excess Flood at the top? 19:10:10 a whole class of turing machines that do certain endless things 19:10:27 augur: The lambda calculus forbids ALL Turing machines. Therefore it must not be Turing complete either! 19:10:28 and as a result, you are not capable of simulating them, and thus you're not TC 19:10:34 no it doesnt 19:10:42 the lambda calculus simulates all turing machines 19:10:50 augur: But it depends what other functions you might have, you might be able to do other things with it too 19:10:53 augur, SO DOES YOUR RESTRICTED TM 19:10:57 no it doesnt 19:11:03 i just said it doesnt, Phantom_Hoover 19:11:16 It *does*! 19:11:19 no 19:11:20 it doesnt 19:11:22 here watch 19:11:32 Such as, Icoruma has no kind of while loops, but you can still call yourself. 19:11:35 You can put a UTM on it and make it simulate the forbidden ones! 19:11:41 I define a TM which is Turing Complete sans all TMs that are equivalent in behavior to while (true) {} 19:11:55 C preprocessor codes can also call themself by #include files. 19:12:05 -!- Behold has changed nick to BeholdMyGlory. 19:12:14 this machine is not turing complete by explicit declaration 19:12:15 augur: Be careful about "equivalent in behaviour" -- you mean "externally observable behaviour", right? 19:12:44 i mean the operation of the machine being simulated, or the operation of the machine being simulated by the machine being simulated, etc. 19:12:56 down the infinitude of ways of simulating 19:13:11 augur: That's not how Turing completeness is defined. 19:13:22 what 19:13:26 im not defining turing completeness 19:13:29 im defining non-turing completeness 19:13:38 You are using the definition of TC. 19:13:40 or rather, a particular machine that is not turing complete 19:14:16 you can define such a machine that will detect all trivial infinite loops of that sort, regardless of how many layers of simulation they go through 19:14:22 and it can do it in finite time 19:14:27 and without itself employing such a loop 19:14:53 A system is TC if it can compute every function that a Turing machine can. (roughly speaking.) It does not have to do every "operation" that the Turing machine does, nor does it have to be "equivalent in behaviour" at the states-and-transitions level. If it meant that, nothing except TMs could be TC. 19:15:06 that is not the definition of turing complete, sorry. 19:15:21 that is the definition of extensional equivalent of computers 19:15:24 augur, it is. Sorry. 19:15:25 which are different things entirely. 19:15:35 Errr no actually they're basically the same thing. 19:15:38 they're closely related, but they're not the same thing. 19:15:57 the normal definition is to do with equivalence of halting behaviour on arbitrary input 19:16:05 but it's rather unclear as to how the input is involved 19:17:00 also, regardless 19:17:51 -!- ais523 has quit (Remote host closed the connection). 19:18:02 even without the ability to finitely detect these things, there is still a set of turing machines which will halt on all inputs that in some way or other would be a trivial loop 19:18:10 augur, you killed ais! 19:18:16 the decidability of that particular set is, ofcourse, irrelevant to the point 19:18:40 every member of that set is a turing machine which will halt on some program that they should not halt on if they were TC 19:18:43 augur: Not if you want to build that UTM, which I believe you said you could. 19:18:51 fine, forget building a UTM 19:19:06 the point i was trying to make was immaterial to the actual ability to do these things 19:19:15 the point was that such a TM is all but turing complete 19:20:02 and its only turing complete on a particular class of utterly useless loops that do no sort of computation but instead just cycle through some number of states endlessly 19:20:23 * cpressey looks sidelong at Phantom_Hoover 19:20:42 Ultimate Teller Machine? 19:20:48 Sorry, that's all I've got. 19:20:49 the fact that its might be impossible to say which turing machine is such a machine is irrelevant 19:21:03 Phantom_Hoover: not bad, not bad... 19:21:11 -!- mtve has quit (Ping timeout: 265 seconds). 19:21:17 infact, stated in those terms its trivial 19:21:30 and would catch all the equivalent x++x-- examples 19:21:53 a two tape turing machine, one for work and one for state tracking 19:22:02 augur: Yay, you just "effectively solved" the halting problem. 19:22:07 no, i didnt 19:22:18 In the same sense that your finite tape machine is "effectively TC" 19:22:30 i didnt even remotely effectively solve it 19:23:05 the point i was making, however, is that something can be non-TC without being non-TC in any meaningful way 19:23:12 Well, there's a set of TMs which always halt. We don't know which ones they are. But identifying them is irrelevant! 19:23:44 well yes, it is irrelevant to the issue of whether or not there are some TMs that always halt 19:23:51 if the question is "do some TMs always halt?" 19:23:58 then it doesnt matter what the full set of those are 19:24:11 the only relevant thing is to find one that does, or find a proof that one does 19:24:18 the same is true of C being effectively TC 19:24:53 is there any halting computation that cannot be performed on some C program compiled for an arbitrarily large machine? no. 19:25:32 are there non-halting computations that will halt on arbitrarily large C machines? yes. 19:26:08 -!- mtve has joined. 19:26:33 the theory of computation has little to say about non-halting computations because there's not much _to_ say, if the object of inquiry is the computation of functions 19:27:06 non-halting machines do not compute functions, they simply work on memory. 19:27:11 augur: So why do you think Turing included the section on Enumeration machines in his original paper? 19:28:06 because there IS this theoretical construct in which a machine that takes infinite time does actually halt via some magical process 19:28:36 and because non-halting machines are still useful for lots of things 19:28:58 Thought there was not much to say about them 19:29:24 there isnt. hence why there isn't much said 19:29:32 But they're useful for lots of things. 19:29:41 which, non-halting computations? 19:29:53 Did you not just say just that? 19:29:56 sure, but then you're outside the realm of computational equivalence and into _behavioral_ equivalence. 19:30:16 So, a computation cannot have an infinite result? 19:30:25 It's still a computation. 19:30:42 Not sure how this disqualifies it from computational equivalence. 19:30:44 its a hypercomputation 19:31:12 which is beyond the realm of TCness 19:31:27 augur, what is your actual point? 19:31:57 my point is that while C is not _actually_ TC, the ways in which it is not TC are like the ways in which a UTM-minus-trivial-loops is not TC 19:32:12 augur, and our point is that that's rubbish. 19:32:31 well you show me how then. 19:33:02 Give me a UTM-minus-infinite-loops, and I can still write any program I want for it. 19:33:02 Because a) C is an FSM and b) UTM-minus-trivial-loops is TC unless you invoke superturing stuff. 19:33:13 cpressey: not one that loops infinitely! 19:33:25 Sorry, I missed a word there. 19:33:38 Give me a UTM-minus-*trivial*-infinite-loops, and I can still write any program I want for it. 19:33:46 no, dont even worry about triviality 19:33:47 That was your example from before, was it not? 19:33:55 take any non-trivial infinite loop, honestly, it doesnt matter 19:33:59 OK, then, 19:34:02 take any non-halting turing machine if you want 19:34:20 Give me a UTM-minus-*all*-infinite-loops and I'll give you a solution to the Halting Problem. 19:34:21 thats actually completely fine, the triviality was merely to point out that its possible to do in finite time 19:35:39 i shouldve said any non-halting looping machine, actually not simply any non-halting machine 19:35:40 but 19:35:50 no you wont, because its no longer universal, and therefore cannot answer correctly that a machine with no loops but with non-halting non-loops. 19:36:05 there are plenty of turing machines that do not halt but do not loop 19:36:44 From the point of view of computabilty, only halting matters. Who cares if the machine "loops" or not, whatever that means? 19:36:56 it matters because loops are deciable 19:37:07 well, detection of them is decidable 19:37:15 all you need to do is record the state of your simulated machine 19:37:24 eventually itll cycle through a previous state 19:37:28 in some finite amount of time 19:37:30 and then you halt 19:37:49 loop detection is decidable 19:38:15 but a machine that does not simulate a machine with loops is not TC, even if it simulates everything else 19:38:18 but so what 19:38:26 thats a boring, uninteresting kind of non-TC-ness 19:38:32 yeah sure its technically not TC 19:38:43 but big fucking deal 19:39:06 augur: You are boring and uninteresting, too. 19:39:20 you wanted to argue with me so you got it 19:39:33 augur: And I regret it. 19:39:35 if you didnt want to be bored, you shouldnt argue things that you're wrong about. 19:40:09 or you should at least not argue them with someone who's willing to spend hours to demonstrate that you're wrong. 19:40:27 ...at any cost, it would seem. 19:40:40 if the cost is to social relationships, its not a cost at all 19:40:49 if the cost is to my happiness, i cant say im any less happy as a result 19:41:04 Well, I would say that the cost is to truth, but maybe you don't believe in that either. 19:41:15 theres no cost to truth either 19:41:24 because nothing ive said was false. 19:41:47 augur: You corrected yourself several times. 19:41:59 if i corrected myself, then it didnt cost truth. 19:41:59 Therefore, you must have said at least one false thing, at one point. 19:44:06 Actually, that last is a great example of defending yourself at any cost. 19:44:23 im sure you think that 19:44:39 but in the end, i was right, you were wrong 19:44:43 and thats all that matters. 19:44:53 Good attitude. 19:45:00 -!- cpressey has quit (Quit: Leaving.). 19:45:51 poor cpressey. hurt and insulted by a simple discussion about C and turing completeness 19:45:51 And the award for obnoxious bloody-mindedness goes to: augur! 19:46:05 im happy to be blood-minded about things that dont matter. 19:46:14 augur, no, by the fact that he couldn't punch you in the face, which you deserved. 19:46:29 you and he deserved it more than i ever did 19:47:00 not the least because you'd punch someone in the face over something as inconsequential as this 19:47:56 You know, I'm going to stop discussing this. You aren't going to be convinced you're wrong. 19:48:09 well why should i be when im not 19:48:12 that would be silly 19:48:34 we've already established that detection of looping behavior is decidable 19:48:46 which is not, by the way, news to anyone with any actual ToC experience 19:49:21 which demonstrates that lack of TCness is not necessarily a significant constraint on a machine 19:49:34 which is the only point i was trying to make about C 19:49:55 It is the case with C; there are problems that are not solvable by C. 19:50:12 example? 19:50:27 The brackets problem. 19:50:33 which is 19:50:47 Check whether a given string is balanced. 19:50:56 uh 19:50:59 C is an FSM, so it can't solve it 19:51:14 thats perhaps not solvable for a string of arbitrary size 19:51:21 and a machine of different arbitrary size 19:51:40 but the same is true of any programming language on a finite machine 19:52:05 however, for all strings, there exists some finite machine on which C can solve the problem for that string. 19:52:53 unless the string is infinitely long, but that computation wouldnt halt and has no answer 19:53:19 at least no turing computation would halt 19:54:02 the point remains: there is no halting computation which C cannot compute. there are merely halting computations which some particular machine running C code cannot compute 19:56:40 but the same is true of any programming language on any machine 19:56:41 except abstract machines, i mean. 19:56:41 and thus, we come full circle: C might not be TC, but is only not TC in an uninteresting sense. 19:59:43 -!- Gregor-W has joined. 20:00:00 Gregor-W, do you have something interesting to say? 20:00:08 Phantom_Hoover: my suggestion is, if at any point in the future i describe something as silly 20:00:13 dont argue with me 20:00:13 I think the real argument is that you can't even define a C compiler targeting an abstract machine that would be TC, because too many details of real machines are baked into the language, namely maximum memory size. 20:00:54 (Sorry, didn't read the whole backlog, not sure if I'm arguing something that's already been argued) 20:00:57 Gregor-W: probably true, tho irrelevant, because you can always define maxmemsize to be larger than it is. 20:01:08 augur: Not when it IS infinite. 20:01:17 possibly true 20:01:33 im not entirely sure of that, but im not going to argue either way 20:01:37 augur, actually true. 20:01:49 i would just say that anything that requires infinite memory is a silly computation to perform 20:01:53 Unless, you can modify C to add some new commands, such as "integer" and "real" and disallow sizeof to be used on them 20:02:06 and if you disagree you can timetravel into the past and relive the last hour :) 20:02:07 The only argument I've heard that I found compelling that could maybe make it almost make sense is that if you had infinite memory AND infinite-sized words, then sizeof(void*) could in fact be infinity, which would make everything "work" 20:02:09 augur, it's not so much "infinite" as unbounded. 20:02:23 Phantom_Hoover: any halting computation requires only finite memory 20:02:32 augur: But you can't predict how much memory it will require. 20:02:37 doesnt matter. 20:02:41 augur: Yes, it does. 20:02:45 you hit the memory wall, then you upgrade 20:02:47 augur, yes. Finite, *unbounded* memory. 20:02:53 augur, *you cannot do that in C*, 20:02:59 well 20:03:03 i would have to recompile 20:03:03 yes 20:03:11 Yeah, upgrading your machine is not part of C X-P 20:03:12 augur, that's not even vaguely C. 20:03:26 * Gregor-W -> lunch 20:03:27 Gregor-W: nor is the output of the compiled code :) 20:03:47 augur: The computation can depend on sizeof(void *), so you may end up with a different computation in the upgraded machine. 20:03:50 What else you could do is, make a kind of C that numbers and pointers are not interchangeable, even though you can add numbers and pointers together 20:03:57 Gregor-W: possibly. 20:04:04 zzo38, we are talking standard C. 20:04:09 but again, i would classify that distinction as a silly 20:04:14 the program is still written in C 20:04:18 the compile product might be different 20:04:24 but the C source is the same 20:04:30 and the language spec is the same 20:04:36 so the language is not the limitation here 20:04:40 Does C require computation? 20:04:47 s/computation/compilation. 20:04:58 s|.|/| 20:05:00 i imagine you could interpret it 20:05:14 but it'd be a bitch of an interpreter to write 20:05:21 infact, it sounds like something someone here would do 20:05:33 It does... 20:05:36 so long as it was written in brainfuck 20:05:37 :D 20:05:52 The tables turned! 20:07:15 always 20:08:05 also, zzo38: the suggestion of making numbers not interchangable with pointers was something i suggested before the argument got anywhere interesting 20:08:16 the response was that that was no longer C 20:08:26 which is true, but also true in an uninteresting way :P 20:09:04 augur, uninteresting in the sense that a load of C programs would cease to work? 20:10:08 backwards compatibility is not my concern ;) 20:10:29 You could still allow pointers to be used as boolean values (many C programs require it) 20:10:35 uninteresting in the sense that any program that ceases to work was probably a hack or written out of ignorance 20:12:06 Which letters are missing? http://sprunge.us/VJAR 20:12:58 -!- augur has quit (Remote host closed the connection). 20:13:12 -!- augur has joined. 20:13:12 -!- myndzi has quit (Read error: Connection reset by peer). 20:13:42 -!- myndzi has joined. 20:14:25 zzo38, pointer → bool is definitely not standards compliant. 20:15:28 Phantom_Hoover: OK, so it probably isn't standards compliant. A lot of programs use it. Also some programs use GNU extensions to C. And other things. 20:16:54 zzo38, assuming NULL is 0 is non-compliant because NULL is undefined. It could be 0xDEADBEEF for all you know. 20:17:46 Phantom_Hoover: Yes. Still, NULL==0 is very common. Although you should still avoid such things as that (and other things) if you want to be standard compliant. 20:18:43 And even if NULL is not zero, it should be somewhat reasonable to make a compiler where a pointer used as boolean is false if NULL and true otherwise 20:19:03 Well. Yes. 20:20:43 -!- mtve has quit (Ping timeout: 265 seconds). 20:20:47 -!- myndzi has quit (Ping timeout: 240 seconds). 20:21:36 (You can have a #pragma setting that tells it whether or not the current module should treat pointer->boolean this way, and if assigning 0 to a pointer makes it NULL, and then you can turn off this setting in some other modules that contain platform-specific codes.) 20:36:49 -!- Gregor-W has quit (Ping timeout: 252 seconds). 20:38:48 -!- ski has quit (Ping timeout: 264 seconds). 20:54:40 -!- kar8nga has joined. 20:56:38 -!- Gregor-W has joined. 20:56:43 Still arguing about C? 20:57:18 No. 20:57:28 Good :P 20:57:32 Now we are arguing about http://zzo38computer.cjb.net/icosahedral/printout/main.dvi 20:57:52 (This time about the actual text more, and less about the formatting. Although comment on the formatting as well if you want to) 20:58:28 (The file is available as PDF also, in case you prefer PDF) 20:59:49 Please read the texts I have added, and tell me if is understandable and stuff and so on, about if you think is good, if you have other suggestion, etc 21:03:06 Please tell me your opinion of this game? 21:04:28 Phantom_Hoover: NULL is not 0, but (void*)0 is NULL. 21:04:46 Even if the literal value of NULL is not 0, (void*)0 is NULL. 21:05:56 So wait, if (malloc(1)) must always be false if malloc fails? 21:06:38 -!- oerjan has joined. 21:06:47 Yes. NULL is always false. 21:06:49 pikhq, Phantom_Hoover: This is perhaps the most confusing conversation you two have ever had :P 21:07:20 Gregor-W, what other confusing conversations have we had? 21:07:36 That's my point? Maybe? Idonno. 21:08:18 It makes sense NULL is always false, but what happens for if you are writing platform-specific codes you want accessing address zero? That is why you should have the #pragma that I described 21:09:00 zzo38, why would you want to access the value at 0? 21:09:08 zzo38: The result of casting from a number to a pointer is implementation-defined, so... 21:09:37 Phantom_Hoover: There are various possible reasons, depending on the hardware, it might be useful in some cases 21:09:48 The only time you'd want to do that would be when writing really low-level OS code, at which point NULL isn't even meaningful. 21:10:27 I suppose if it is platform-specific you can write some codes in assembly language even 21:10:58 Yes, exactly. 21:11:44 If you actually need to twiddle with explicit addresses, you probably don't have malloc and friends. 21:13:38 Phantom_Hoover: Yes. But what if the C compiler on that platform defines something other than zero as NULL and you write ((void*)0) then it don't works?????????????????? 21:13:54 zzo38, why would you do so? 21:14:57 I don't need to define NULL to be something other than zero, but if some platforms do so, what are you going to do? 21:15:15 zzo38: that will work 100% 21:15:32 casting an integral constant of 0 to a pointer type gives the null value 21:15:36 (which is dumb) 21:15:48 No one, past present or future, will EVER define NULL to be anything other than 0. Furthermore, no one, past present or future, will EVER define casts between ints and pointers to be anything but their obvious semantics. EV-ER. 21:15:51 zzo38, *0 is perfectly legitimate C, it will just segfault on pretty much anything. 21:16:40 Yes and I have written things like *0 to make the program deliverately segfault when I wanted to put breakpoints into the source file 21:16:55 zzo38, OK, that's insane, but anyway... 21:17:08 That's not insane at all. 21:17:10 I do that. 21:17:19 Didn't he have _exit 21:17:58 That won't break in a debugger. 21:18:18 Debuggers already have breakpoints. They're called breakpoints. 21:19:09 Yes, and the debugger breakpoint is useful for setting breakpoints at run time. But it doesn't help if you want to add breakpoints into the source file. 21:19:32 I suppose that is sensible enough. 21:19:52 And what might happen if a line number occurs multiple times in a source file, what will the debugger do with that? 21:20:08 Why would that happen? 21:20:17 (Such as, by using #line command) 21:20:34 Anyway, I accept that using segfaults for breakpoints is sometimes sensible. 21:20:56 Is it permitted to use the #line command to mention files that do not exist? 21:21:20 Why would you manually manipulate the lie numbers 21:21:29 s/lie/line/s/$/?/ 21:22:16 Other programs might cause a line number multiple times, such as Enhanced CWEB 21:22:40 ...Why would Enhanced CWEB do this, but not CWEB? 21:23:20 Normal CWEB does this as well, but with Enhanced CWEB you might have the same line number multiple times but with a different code on the line each time, in some cases. 21:23:59 zzo38, isn't that a bit... mad? 21:24:23 Perhaps it is? But I am OK with that 21:30:10 In addition, there are cases where a chunk might be used multiple times, but the C preprocessor might make them different each time (this can happen even in normal CWEB), such as "#define global extern" and put @ in heading file and then "#define global" as just blank for in main file, which some programs do. 21:32:17 Has it taken you some amount of time to figure out if I am insane? 21:38:21 And, do you have any opinion about Icosahedral RPG? 21:47:59 -!- myndzi has joined. 22:02:29 -!- sshc has quit (Ping timeout: 240 seconds). 22:03:17 -!- sshc has joined. 22:08:00 -!- tombom_ has joined. 22:10:10 -!- tombom has quit (Ping timeout: 246 seconds). 22:19:18 -!- Flonk_ has joined. 22:20:55 -!- Flonk has quit (Ping timeout: 260 seconds). 22:20:59 -!- Flonk_ has changed nick to Flonk. 22:27:32 -!- mtve has joined. 22:34:53 -!- Gregor-W has quit (Ping timeout: 252 seconds). 22:38:11 -!- kar8nga has quit (Remote host closed the connection). 22:39:35 -!- derdon has quit (Ping timeout: 246 seconds). 22:40:14 -!- derdon has joined. 22:42:51 -!- Wamanuz has quit (Read error: Connection reset by peer). 22:43:13 -!- Wamanuz has joined. 22:46:45 -!- tombom__ has joined. 22:49:14 -!- cpressey has joined. 22:49:17 // 22:50:57 -!- tombom_ has quit (*.net *.split). 22:52:27 -!- derdon has quit (Ping timeout: 260 seconds). 22:53:31 zzo38: Can yesweb handle multiple languages in the same document? 22:53:58 Like, if I write some modules of my program in (Literate) Pascal, and some in (Literate) C, and I want to make a PDF of the whole thing... 22:54:23 (I don't need to do this. I just thought I'd ask) 22:54:48 cpressey: Yes. yesweb does support multiple languages in same document. 22:54:55 Nice. 22:55:02 According to an utterly unreliable "study", iPhone users get more sex than BlackBerry or Android users. 22:55:06 Who knew? 22:55:27 However, to output to multiple files you need to define a macro for that (it is simple to do). 22:55:45 So, it is not built-in, but it is easy to add. 22:56:15 Is there a way in Haskell to get an appropriate "null" value for an arbitrary type? 22:56:18 (I can add it to yesweb.tex if I want to or if someone else does or if it is seen as common enough) 22:56:45 Phantom_Hoover: Maybe a where a is your type? 22:56:57 then use Nothing for null and Just x for x 22:57:01 oerjan, no, I mean an actual member of a. 22:57:13 Using Maybe seems... wrong. 22:57:36 Not using something like Maybe seems... not possible. 22:57:37 Phantom_Hoover: there as some type classes that have null values sort of, but they're far from all types 22:57:53 oerjan, yeah, a typeclass would be enough. 22:58:18 Something like class Null a where { null :: a } 22:58:37 I think you'd have to have a function on your typeclass that tells you what member the "null" is. 22:58:42 There are different models of Android phones, but I read about Geeksphone which might be the best kind of Android phone 22:58:52 you are free to define such a class yourself, of course 22:58:57 Can you have a type like "Maybe Maybe Maybe Maybe Maybe Maybe Maybe Maybe Number"? 22:59:04 !haskell :t mzero 22:59:15 zzo38, yews. 22:59:17 s/w// 22:59:26 zzo38: sure, except you need some parentheses there 22:59:29 Monads are types like any other. 22:59:47 !haskell mzero 23:00:03 You can even have IO (Maybe (Maybe (IO (State Int ())))) 23:00:14 darn EgoBot and its useless error messages 23:00:22 oerjan, more GHC. 23:00:31 Phantom_Hoover: no, definitely EgoBot 23:00:46 Do you ever have a use for that kind of types like I described? 23:00:51 oerjan, surely it just gives you EgoBot's error. 23:01:08 zzo38: I was trying to think of a "serious" use for that, but I can't. 23:01:22 zzo38, well, you might sometimes. If you want to mix State and IO, you would do that kind of thing. 23:01:24 Phantom_Hoover: yes, which is useless, due to the way it throws away ghci errors and tries module compilation with runghc instead 23:01:36 oerjan, ohh. 23:01:48 You would almost always want to combine multiple Maybes into a single Maybe. 23:02:07 cpressey, yes, that specific example is useless. 23:02:15 !haskell :i MonadZero 23:02:27 !haskell :info MonadZero 23:02:33 !haskell :h 23:02:41 But other combinations of monads are perfectly justified. 23:02:45 Commands available from the prompt: 23:02:50 !haskell putStrLn "hello" 23:02:58 hello 23:03:26 oerjan, in any case, mzero isn't really what I was looking for. 23:03:26 * oerjan asks winhugs instead 23:04:11 Phantom_Hoover: i was just trying to find out if mzero was MonadZero (it was) or Monoid, and what the one for the other was (mempty) 23:04:39 of course Num types have 0 23:04:42 mzero appears to be defined in Control.Monad. 23:04:46 yes 23:04:49 !haskell Just (Just 1) 23:05:02 Just (Just 1) 23:05:03 !haskell :t Just (Just 1) 23:05:10 Just (Just 1) :: (Num t) => Maybe (Maybe t) 23:05:23 !haskell :t Just Nothing 23:05:28 Just Nothing :: Maybe (Maybe a) 23:05:31 Implement the SARTRE integer in Haskell. 23:05:43 (The SARTRE integer can have two values, either zero or duck sauce) 23:06:02 !haskell data SartreInteger = Zero | DuckSauce 23:06:05 data SARTRE = Zero | Du.. 23:06:18 EgoBot tried to hurt me for that 23:06:42 Beh, need to leave anyway :/ 23:06:46 But you have to make it it can be used like "0" like any other numbers? 23:06:58 -!- cpressey has quit (Quit: Leaving.). 23:07:05 * Sgeo__ gibbers at cpressey 23:07:13 Phantom_Hoover: anyway haskell provides Maybe precisely to _discourage_ you from considering arbitrary types to have null elements, it's considered a _wart_ to have nearly all types have nulls like in Java etc. 23:07:33 oerjan, well, I suppose. 23:09:20 a data definition is neither a ghci command/expression nor a standalone program (needs a main function) 23:09:31 If you make it an instance of Num, you'd be able to add, subtract, ec 23:09:33 etc 23:11:03 zzo38: instance Num SARTRE where fromInteger 0 = Zero; fromInteger _ = DuckSauce + lots of other methods 23:11:37 (fromInteger is the one which gives you numerical literals) 23:12:10 -!- augur has quit (Remote host closed the connection). 23:12:22 -!- augur has joined. 23:13:13 i've tried it in EgoBot before and if you don't include all the necessary methods it just aborts with a warning 23:13:18 My dad's suggesting I take benedril to help me go to sleep 23:13:41 No, wikipedia, I did not mean a pokemon 23:14:10 Sgeo__, I have a good way of getting to sleep. 23:14:25 Hit yourself in the head with a lamp. 23:14:40 * Phantom_Hoover nearly typed "lambda" rather than "lamp" there 23:14:58 a lambda shaped lamp 23:15:01 Although hitting yourself in the head with a lambda may help with sleeping. 23:16:16 i often do something analogous to hitting myself in the head with a lambda 23:17:17 augur, what would that be? 23:17:19 my sleep generally ends up involving me in a semi-conscious state trying to understand how it is that i, as a function of some variables, will ever get back to sleep since im simply laying in bed and not being applied to any values 23:17:26 which would apparently constitute 23:17:31 "falling asleep" 23:17:37 augur, I get like that sometimes. 23:17:41 It's weird... 23:17:42 and i do mean that literally 23:17:54 the other day i was doing a lot of categorial-grammar related stuff 23:18:04 Well, get some variables and apply yourself to them. 23:18:07 which is essentially type-level functions with directionality 23:18:23 and at one point i wont up slightly, and ended up having that exact thought 23:18:24 augur: Yes I do sometimes think of strange things like that while sleeping, but probably not quite that 23:18:38 and it wasnt some metaphorical interpretation of sexual loneliness 23:18:42 unless you dig really deep 23:18:53 it was a literal thing 23:19:17 Yes I mean it in the same way, it is never anything about sexual loneliness 23:19:30 :D 23:19:32 zzo38, how do you know? 23:19:36 it was very bizarre 23:20:00 augur, so did you find any variables? 23:20:13 well i fell asleep 23:20:14 Phantom_Hoover: I don't actually know, I just guess. But when I am sleep I think of strange things, of various strange things, some of which are impossible to describe, but it has nothing to do with sexual loneliness 23:20:45 * Phantom_Hoover thought a while ago that computers were basically machine code interpreters written in universe. 23:20:48 but in the context of the metaphor i decided that i must be a thunk, not a proper function or else i wasnt going to fall asleep any time soon 23:20:50 -!- tombom__ has quit (Quit: Leaving). 23:21:00 its all perversely sexually interpretable, lol 23:21:05 It's quite an interesting way of looking at things. 23:21:20 but its entirely a result of me working on a parser 23:21:21 augur: Of course I suppose anything can be if you want it to be. 23:21:33 (But I don't want it to be) 23:21:49 augur, no such things as thunks in the pure lambda calculus, though. 23:21:55 Everything can be applied. 23:22:33 Phantom_Hoover: true enough, but thats ok 23:29:33 * Phantom_Hoover wonders if alise has heard about Multics' memory model. 23:30:45 It's very similar to what he outlined. 23:41:05 ? 23:41:12 whatd she outline? 23:43:02 Here is the new version of yesweb with output of multiple files: http://sprunge.us/YVXY 23:57:29 -!- zzo38 has quit (Quit: Hit yourself in the head with a lambda.). 23:58:54 Are vector processors little-used?