00:00:47 An iterator-based model seems to be a reasonable approximation for parser combinators proper. 00:01:52 as an input source, sure. 00:01:57 > [1..] 00:01:58 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28... 00:02:00 hey look it's an iterator. 00:17:01 AWWW I HAS KITTY 00:18:58 Gregor, a foul-smelling neighbour's tomcat that wakes you up with noise outside your window in the middle of the night and sleep on your garden furniture? 00:19:13 night → 00:22:29 is the neighbour foul-smelling or is that his tomcat 00:22:33 both?? 00:23:32 -!- Vorpal has quit (Ping timeout: 240 seconds). 00:25:45 -!- sllide has quit (Ping timeout: 260 seconds). 00:27:51 i'll hazard a guess that tiamat is neither the neighbor's nor a tomcat. the foul-smelling part is plausible, though. 00:28:07 She smells like kitty 00:28:25 And considering that she sleeps next to me every night, I wouldn't let her get away with smelling too bad :P 00:29:14 oh i'm sure she _fnarfs_ like a kitty 00:29:32 * oerjan runs away 00:30:09 X-D 00:30:30 That being said, fnarf is the /taste/-equivalent, not /smell/-equivalent, I don't eat my cat :P 00:30:53 ah. what is the smell-equivalent then. 00:31:20 !simplename 00:31:29 FYP. 00:31:34 fyp. 00:31:40 so it appears. 00:31:46 does she fyp like a kitty 00:39:40 Composition becomes (<=<) and applying functions becomes (=<<) and morphisms (x) becomes (return . x) and values (x) becomes (return x), is this correct? I don't know for sure 00:40:48 oerjan: There is no smell-equivalent. Fnarf is taste when one has no sense of smell :P 00:41:16 * Phantom_Hoover → sleep 00:41:39 -!- Phantom_Hoover has quit (Quit: Leaving). 00:42:14 Gregor: Try licking your cat. Report back on your findings. 00:42:25 Also, videotapei t. 00:42:27 videotape it. 00:42:52 * Gregor uploads "Licking pussy" to youtube 00:42:57 * Gregor watches it get removed. 00:43:46 give it a lewd thumnail and watch the views go up 00:43:52 thubmnale 00:43:55 thubmlain 00:43:58 thunmail 00:44:02 hlep 00:44:22 thunmail 00:44:26 No custom thumbnails for me :P 00:44:28 -!- GreaseMonkey has joined. 00:44:28 -!- GreaseMonkey has quit (Changing host). 00:44:28 -!- GreaseMonkey has joined. 00:44:41 Gregor: just do it the oldfashioned way (a second or two in the middle of the video) 00:44:50 you can then adjust it I think :P 00:46:05 -!- Patashu has joined. 00:46:33 Don't put on Youtube. Then, it will not get removed from Youtube. You can use different format such as Vorbis/Theora. 00:46:43 And host it yourself so that Youtube will not damage it. 00:48:08 Gregor: A perfect plan. 00:48:21 But I am not sure why a video is even necessary. 00:49:06 zzo38: That's even halfway reasonable what with HTML5 video being supported most places. 00:49:49 Though, unfortunately, you'll still need to encode to multiple formats, courtesy of stupid people going "ZOMG FREE CODEC BAD". 00:50:14 Or, if you prefer blaming *them*: courtesy of MPEG being made of money-grubbing bastards. 00:57:25 How can I install Cabal packages? The people in #haskell channel kept tolding me things that don't go. I told them there is no cabal but they told me the same thing anyways. I do have lib/Cabal-1.10.1.0 but there is no executable program. 00:57:36 You need cabal-install. 00:57:56 http://hackage.haskell.org/package/cabal-install, http://www.haskell.org/haskellwiki/Cabal-Install, http://hackage.haskell.org/trac/hackage/wiki/CabalInstall. 00:58:09 zzo38: If you install the Haskell Platform you get cabal-install. 00:58:22 That's easier than bootstrapping it which is only offered as a Unix shell script to my knowledge. 00:58:35 But cabal is also cabal 00:58:40 zzo38: What? 00:58:48 No, cabal-install provides the "cabal" command-line tool. 00:58:52 I did install the Haskell Platform it has no cabal. 00:59:00 It does, it just isn't in your PATH variable. 00:59:04 Find out where cabal.exe is. 00:59:04 -!- MDude has joined. 00:59:05 It only has that directory but has no executable. 00:59:22 it's probably in C:\Program Files\blah blah blah for some blah blah blah 00:59:42 O! I found it. It is: F:\Program Files2\Haskell_Platform\lib\extralibs\bin\cabal.exe 01:00:01 I typed dir cabal.exe /b/s from the directory I installed Haskell and that worked. 01:00:14 Right, so add that directory to your PATH. 01:00:19 OK 01:00:48 zzo38: Then do "cabal update"; you likely want to edit the configuration file it creates. 01:00:52 (It tells you where.) 01:00:55 OK 01:01:33 Oops it says failed 01:01:33 Specifically, you want to look for a line that looks like "-- documentation: False" and change it to "documentation: True", or it won't install the documentation for the libraries you install. You might also want to change the line mentioning library-profiling to "library-profiling: True", so that it installs profiling versions of libraries you install. 01:01:42 (The packages that come with the Haskell Platform all have documentation and profiling.) 01:01:49 zzo38: What does it say? 01:02:00 It says "cabal: failed" 01:02:04 That's it? 01:02:21 But it did also tell where the config file is and created it. 01:02:50 Is the only error "cabal: failed"? 01:03:04 You need an internet connection to do it, if you're running it on a network-less box. 01:03:07 It has other messages too but not error messages. 01:03:16 I do have internet obviously I am connecting to IRC 01:03:19 Well, the other messages are probably relevant to the failure. 01:03:22 -!- azaq231 has joined. 01:03:23 zzo38: You could be doing it on another computer. :p 01:03:59 "Config file path source is default config file. Config file not found. Writing default configuration. Downloading the latest package list from hackage.haskell.org. cabal: failed" 01:04:02 -!- azaq23 has quit (Ping timeout: 250 seconds). 01:04:44 Hmm. 01:04:53 Are you able to download the file http://hackage.haskell.org/packages/archive/00-index.tar.gz? 01:05:07 It says "world-file: F:\Documents and Settings\user\Application Data\cabal\world" but there is no such file. Is that what is wrong? 01:05:36 Is that the file I need? If so, where do I install it? 01:05:40 No, it'll create that when it needs to. 01:05:54 That failure looks like it's failing to download http://hackage.haskell.org/packages/archive/00-index.tar.gz. Is there anything abnormal about your setup? 01:05:59 Where do I install the 00-index.tar.gz file? 01:06:44 I don't know, but I'm just asking to see if you _can_. If you can't, that's the problem. 01:06:49 If you can, then the problem is something else. :p 01:06:49 I don't think there is any abnormal stuff that would cause that to fail 01:07:31 Yes I can download it 01:08:07 perhaps try cabal update once more? 01:08:10 OK 01:08:19 No, it still failed 01:10:20 hmm 01:10:24 zzo38: try cabal -v update 01:10:28 that should give more information 01:10:37 No, it is exactly the same 01:10:45 huh 01:10:48 could http://www.haskell.org/pipermail/haskell-cafe/2011-August/094883.html be relevant? 01:10:50 it says Downloading the latest package list from hackage.haskell.org 01:10:50 Downloaded to 01:10:50 /home/elliott/.cabal/packages/hackage.haskell.org/00-index.tar.gz 01:10:50 for me 01:10:59 does it not say something similar? then I guess the problem is with the downloading 01:11:00 oh, hmm 01:11:09 zzo38: can you try and find a curl.exe or wget.exe in the Haskell Platform tree? 01:11:13 maybe it is expecting to find one in PATH. 01:11:17 even though it uses the HTTP package... 01:11:38 oerjan: unlikely, since -v didn't produce a message about the file being downloaded 01:12:04 -!- CakeProphet has quit (Read error: Operation timed out). 01:12:05 OK I will try what that says 01:12:06 ok it's just a cabal error i saw discussed recently 01:12:16 elliott: I have wget.exe and curl.exe in my PATH. 01:12:44 hmm 01:13:15 zzo38: I'd say ask #haskell quoting the output of cabal (you probably want to pastebin it), unfortunately I haven't the expertise to help further 01:13:25 Not any ones that might have been part of Haskell Platform, though. But I don't know how that would make a difference. 01:21:59 hm i think when installing the haskell platform, it asks whether you want to set PATH. did you confirm that? 01:22:33 oerjan: I told it not to set anything so that I can set it manually, which I did. 01:23:01 aha. maybe you are still missing some PATH element it needs, then. 01:23:42 oerjan: no, it's a proxy problem. 01:23:47 oerjan: How would that cause it to try to use a proxy? I tried -v3 and it says it is using proxy 0.0.0.0:0 01:23:48 oh 01:23:49 (as discovered in #haskell) 01:23:56 ok then 01:24:09 zzo38: I don't suppose the config file says anything about proxies? 01:24:21 elliott: Yes I did look and the config file says nothing. 01:45:05 -!- copumpkin has quit (Ping timeout: 260 seconds). 01:45:30 -!- copumpkin has joined. 02:12:09 -!- augur has joined. 02:31:18 -!- pikhq has joined. 02:31:20 -!- pikhq_ has quit (Ping timeout: 260 seconds). 02:47:50 XD 02:47:56 "At a mere 21 million light-years from Earth, a relatively small distance by astronomical standards, the supernova is still getting brighter, and might even be visible with good binoculars in ten days’ time, appearing brighter than any other supernova of its type in the last 30 years. 02:48:11 http://newscenter.lbl.gov/feature-stories/2011/08/25/supernova/ 02:48:41 I *think* it's theoretically possible to do 32TiB of space on x86_32 code. Running on an x86_64 processor. With segmentation. 02:49:17 oerjan: pretie 02:51:01 It'd be something kinda like an unreal mode. But more an unlong mode. 02:51:19 with PAE you can have 64GB... if you're cheeky with segmentation + ISR handling that could work quite well 02:52:02 can you access the 64-bitness of the registers in 32-bit mode? 02:52:07 No. 02:52:13 poop. 02:52:26 And you can't do segmentation in 64-bit mode. 02:52:32 Not that you'd want to. 02:52:39 i know about THAT... 02:52:51 iirc 64-bit mode requires paging to be enabled 02:53:02 i've never done 64-bit though, only up to 32-bit 02:53:12 not sure if i ever pulled off unreal mode 02:55:53 More than that. What you do to enter long mode is you enable long mode through a couple of added real mode instructions, and then enable paging. 02:56:17 Enabling paging takes you into long mode. 02:56:49 hmm... 02:57:16 And then jump into the 64-bit segment. 02:57:23 s/segment/page/ ? 02:57:25 (so you're not in compatibility mode) 02:57:27 No. 02:57:30 -!- evincar has quit (Ping timeout: 246 seconds). 02:57:33 segment 0? 02:57:38 The vestiges of segmentation exists. 02:57:43 s/exists/exist/ 02:58:03 echo cat | sed statement 02:59:29 The segment table exists on x86_64, but *only* for the purpose of the rings, and marking long mode vs. compatibility mode. 02:59:44 -!- evincar has joined. 03:00:03 i take it rings 1 and 2 don't serve much purpose? 03:00:44 Actually, they *can* serve purpose if you want your OS to have more flexibility than "this is kernel, this is not-kernel". 03:00:49 (not like they did after the 286... they really cocked that up) 03:00:52 hmmkay 03:00:54 An obvious use of them at present is Xen. 03:01:09 i thought xen was more of a hypervisor thing 03:01:19 it is. 03:01:26 The guest kernels run in ring 1. 03:01:38 The Xen hypervisor runs in ring 0. 03:02:06 does it catch SGDT? 03:02:14 and yes i mean SGDT 03:02:40 -!- zzo38 has left. 03:03:01 Unless you're running using the hardware virtualisation extensions, what happens there is precisely the same as what happens when a userspace process does that. 03:03:32 If you *are* running with those, what happens instead is the system call gets trapped and the hypervisor emulates it. 03:03:41 sweet 03:04:06 i've never seen any info on how to use the hypervisor (i know there's the AMD and Intel variants) 03:04:30 oddly enough i did once read about how SMI works 03:04:33 erm, SMM 03:05:15 I'm not clear on the details, either. 03:06:37 I just know they make x86 meet the the Popek & Goldberg requirements. 03:11:43 -!- zzo38 has joined. 03:14:22 Do you know the books "Science Made Stupid" and "Cvltvre Made Stvpid"? On page 19 there is examples of effective use of statistics including: 50% of the U.S. population has a sub-median standard of living. The average mortality rate among people who jog is 100%. People who buy paperback humor books are less likely to be eaten by crocodiles than population in general. 03:14:55 -!- azaq231 has quit (Ping timeout: 260 seconds). 03:18:03 How droll. 03:21:01 There is "PRONUNCIATION SYMBOLS USED IN THIS BOOK", none of which are actually used in the book. It includes "b" in "dumb", "e" in "home", "g" in "align", "k" in "know", etc 03:21:03 that last one needs a citation. 03:21:35 OK. 03:21:39 -!- azaq23 has joined. 03:21:58 (about the paperback crocodiles.) 03:22:15 OK. 03:24:21 There is a future invention checklist. Some of the things on that list have happened since the book was published, including: flat-screen TV, flat-screen 3D TV, first black president, and new joke invented. 03:25:34 oerjan: I think it's just saying P(buy paperback humour books AND eaten by crocodile) < P(eaten by crocodile). 03:26:07 evincar: Possibly, although I am unsure. 03:26:46 There is a test to score yourself on to see if you are a neanderthal. Question #13 is not worth any points, though. ("Have you ever felt like bashing a postal clerk with a club? You are normal--no points.") 03:27:41 evincar: that's not a reasonable interpretation. 03:27:42 evincar, <=, surely/ 03:27:59 Interpretation of what? 03:28:14 "People who buy paperback humor books are less likely to be eaten by crocodiles than population in general. 03:28:17 " 03:28:31 It doesn't seem to me like it is saying what evincar says it is, but I am unsure. 03:29:31 P(eaten by crocodile|buy paperback humour books) <= P(eaten by crocodile). 03:29:37 is my interpretation. 03:30:15 (P(Q|R) = P(Q AND R)/P(R) as usual) 03:31:18 oerjan: I also interpreted it in that way 03:33:08 It has periodic table of elements made up, the columns are now labeled: 1A, 2B, NOT 2B, 3D, 4F, and R2-D2. Elements include lint (Li), scum (Sc), irony (Feh), pandemonium (Pd), etc 03:35:46 istr mentioned that's been done also by "look around you" 03:36:35 I don't know if Look Around You had a fake periodic table but it DOES have a fake everything else :P 03:37:12 it's the third google suggestion 03:38:04 http://www.bbc.co.uk/comedy/lookaroundyou/series1/periodic.shtml 03:38:54 I have also seen the Star Trek periodic table of elements. 03:39:44 -!- hagb4rd has joined. 03:40:53 The Look Around You periodic table is very different though. 03:43:16 istr _mentioned_? 03:43:41 on reddit, probably 03:43:45 <3 Look Around You 03:43:56 I thought istr==I seem to recall 03:44:14 I haven't watched the second season except for the music episode though 03:44:17 yes 03:44:46 as in i recall seeing some link to it 03:46:01 "If the surface area of the well is 750,000 cubic fluorometers..." Does that mean anything? 03:46:29 is that from the same book? if so probably not. 03:47:39 That is from Look Around You. 03:51:32 -!- Lymia has joined. 03:51:36 -!- Lymee has quit (Disconnected by services). 03:51:38 -!- Lymia has changed nick to Lymee. 03:52:32 Sgeo: <= naturally, but < is what the sentence said. 03:56:41 then even more probably not. 04:00:35 -!- oerjan has quit (Quit: Good night). 04:07:57 -!- GreaseMonkey has quit (Read error: Operation timed out). 04:54:58 -!- GreaseMonkey has joined. 04:54:58 -!- GreaseMonkey has quit (Changing host). 04:54:58 -!- GreaseMonkey has joined. 04:58:43 Today is the only time I figured out the correct response for Final Jeopardy. It was something about the Earl of Chester or whatever, and the 18th century, I don't know anything about those things. But I said the correct response as soon as the clue was revealed, anyways. 04:59:20 I don't know why, but I understood it that time. 05:02:07 I want LLVM and Haskell to be ported to Glulx, can they ever do that? 05:02:34 And C. 05:05:08 Currently, as far as I know, the only programming language that compiles to Glulx is Inform. But it should have other programming languages too, such as C. 05:05:41 I was thinking about targeting TinyVM or one of its cousins. 05:05:56 Simply because that's a project that deserves some attention. 05:05:59 What is TinyVM or one of its cousins? 05:06:41 zzo38: https://github.com/GenTiradentes/tinyvm 05:06:44 -!- elliott has quit (Ping timeout: 252 seconds). 05:07:56 Why can numbers not be specified in octal? 05:09:23 I also would like LLVM to target MMIX. And also for Haskell for target MMIX. I believe GCC already targets MMIX. 05:09:26 -!- derrik has joined. 05:12:32 -!- azaq231 has joined. 05:15:15 -!- azaq23 has quit (Ping timeout: 260 seconds). 05:18:32 TinyVM seems to be very simple 05:19:49 I'm currently looking up how you do anything useful with it. 05:19:53 I understand why there is no "break" after case 0x17 but why is there none after case 0x18? 05:20:08 It does not seem you can do much useful with it, except for a simple experiment. 05:20:19 It does not even have input. 05:21:05 -!- MDude has changed nick to MSleep. 05:21:11 I presume you can add hooks somewhere. 05:21:21 Or, say, an "int" instruction of your own. 05:21:32 Even just one point of customisation would be fine. 05:21:59 The "int" instruction seems to do nothing as far as I can tell from the tvm.c source file. 05:23:07 It also does not appear very well designed, but at least it will work and has simplicity and so on. 05:24:11 I found it interesting, at least. 05:24:17 In concept, primarily. 05:24:24 "Here is a very small VM." 05:24:37 I might fork it and clean it up somewhat. 06:08:53 Yes. It is interesting in that way. 06:08:55 -!- zzo38 has quit (Remote host closed the connection). 06:35:17 -!- azaq231 has quit (Ping timeout: 240 seconds). 06:36:42 -!- azaq23 has joined. 06:49:52 -!- jcp has quit (Ping timeout: 250 seconds). 06:50:53 -!- jcp|other has quit (Read error: Operation timed out). 06:54:02 -!- jcp|other has joined. 06:54:14 -!- jcp has joined. 06:54:36 -!- wetneb has quit (Quit: Leaving.). 07:24:22 -!- jcp|1 has joined. 07:26:16 -!- jcp has quit (Ping timeout: 258 seconds). 07:26:26 -!- jcp|other has quit (Ping timeout: 252 seconds). 07:27:14 -!- jcp has joined. 07:54:50 -!- Slereah has joined. 07:55:44 -!- CakeProphet has joined. 07:55:44 -!- CakeProphet has quit (Changing host). 07:55:44 -!- CakeProphet has joined. 07:56:11 -!- GuestIceKovu has quit (Ping timeout: 240 seconds). 08:09:33 hi my name is CakeProphet 08:09:50 ok 08:10:19 okay so I am probably now going to switch to a parser combinator library. 08:10:24 upon realizing that I must also parse infix operators. 08:11:37 starting over with nothing: the joys of programming. 08:13:00 don't underestimate the value of knowing how not to do it 08:15:49 CakeProphet: You could use a Pratt parser. 08:15:58 If you don't feel like switching. 08:16:54 Although from the sound of it, your code could use it? 08:17:03 That is, a change. 08:18:13 yes. 08:21:17 so I guess it's time to find one for Python. If I can't find one then I'll just use yacc. 08:22:13 oh, you're writing it in python? 08:22:19 google told me the python version of parsec is called pysec 08:22:36 not sure how easy it will be to find 08:22:46 or how good it is 08:29:47 -!- Patashu has quit (Ping timeout: 258 seconds). 08:53:32 a commonly used package is called pyparsing 08:53:35 that uses similar techniques. 08:56:26 @hoogle (<+>) 08:56:26 Control.Arrow (<+>) :: ArrowPlus a => a b c -> a b c -> a b c 08:56:26 Text.PrettyPrint.HughesPJ (<+>) :: Doc -> Doc -> Doc 08:56:26 Language.Haskell.TH.PprLib (<+>) :: Doc -> Doc -> Doc 08:58:43 -!- derrik has quit (Quit: gone). 09:02:30 -!- EgoBot has quit (Ping timeout: 252 seconds). 09:02:38 -!- EgoBot has joined. 09:05:52 -!- BeholdMyGlory has joined. 09:06:48 -!- Phantom_Hoover has joined. 09:08:11 -!- Taneb|Kindle has joined. 09:08:19 Hello 09:09:25 Taneb|Kindle: Hello. 09:10:06 How is the world of esoteric programming today? 09:10:59 Question: in a postfix language, should "cadr" mean "car cdr" like its name indicates, or "cdr car" so it works the way it does in Lisp? 09:13:15 I'm going with the by-name one. 09:13:20 At the risk of confusing myself. 09:14:02 If you want it the other way around you can always call it "rdac" 09:14:34 -!- Taneb|Kindle has quit (Ping timeout: 252 seconds). 09:15:23 Or car=head, cdr=rest, cadr=headrest, cdar=resthead, etc. 09:21:49 xkcd came true >:< 09:22:45 http://xkcd.com/937/ 09:23:05 -!- derrik has joined. 09:23:06 evincar: no need to do that if you have composition 09:25:12 monqy the functional purist. 09:25:22 always and forever 09:25:49 monqy: Naturally. I was just talking about names. 09:26:14 (cdr car) "cadr" def versus (car cdr) "cadr" def. 09:26:31 evincar: you missed my point; you don't even have to name them 09:26:43 evincar: unless they're so extensively used and composition is so verbose that they really need them 09:26:50 It's for concision. 09:26:52 That's all. 09:27:02 Composition is just juxtaposition. 09:27:10 then there's even less reason 09:27:29 It was a passing curiosity. 09:28:50 Sgeo: huh, these new ones are a little better quality than usual. 09:29:02 let's hope it's a steady comeback. 09:29:36 though he definitely already used the wedding setting in the "known someone too long to ask their name" comic. 09:29:50 (re: latest comic) 09:31:04 or maybe the quality has just gotten so long that if I find anything slightly amusing it's a sign of a "comeback" 09:31:09 s/long/low/ 09:37:11 -!- CakeProphet has quit (Ping timeout: 260 seconds). 09:39:52 -!- CakeProphet has joined. 09:39:52 -!- CakeProphet has quit (Changing host). 09:39:52 -!- CakeProphet has joined. 09:40:23 -!- azaq23 has quit (Quit: Leaving.). 09:48:50 -!- Vorpal has joined. 09:48:57 -!- Vorpal has quit (Changing host). 09:48:57 -!- Vorpal has joined. 09:52:00 -!- derrik_ has joined. 09:52:29 -!- derrik has quit (Ping timeout: 264 seconds). 09:52:41 -!- derrik_ has changed nick to derrik. 09:54:26 -!- derrik has quit (Client Quit). 09:54:49 -!- derrik has joined. 10:01:31 -!- ptyyy has joined. 10:03:01 -!- ptyyy has left. 10:08:10 -!- FireFly has joined. 10:12:17 -!- GreaseMonkey has quit (Quit: The Other Game). 10:23:23 -!- Patashu has joined. 10:24:36 -!- evincar has quit (Quit: Sleeping through the hurricane.). 10:31:08 So a hd image has about 2 million pixels. Looking at such an image, a regular human couldn't identify the x,y coordinate of an arbitrarily selected black pixel on a white background or a white pixel on a black background, and yet we presume to understand the pixel. 10:31:46 what 10:32:00 oh.. i will break down what i said 10:32:27 A 1920x1080 (HD) image has about 2 million pixels. 10:32:57 We could fill this image all black #000000 or all white #FFFFFF 10:33:28 And having filled the image, we could mark a single pixel in the inverse colour. 10:33:58 So if we filled the image all black, we could select a random pixel to make white 10:34:10 And if we filled the image all white, we could select a random pixel to make black 10:34:50 -!- MSleep has quit (Read error: Connection reset by peer). 10:35:08 AHA WE SHALL FIND THE AMERICAN SPIES IN OUR MIDST 10:35:09 -!- MSleep has joined. 10:35:36 And yet, if we asked a casual human observer to tell us the (x,y) coordinate of that single pixel just by looking at it, most likely they could not 10:35:48 even given a signifigant amount of time 10:35:54 Phantom_Hoover: hm? 10:36:02 it is highly likely they would be off by at least a pixel 10:36:03 Phantom_Hoover: I'm in usa but apparently on a french server 10:36:16 You cunning bastard. 10:36:26 -!- pikhq has quit (*.net *.split). 10:36:32 -!- chickenzilla has quit (*.net *.split). 10:36:32 -!- myndzi has quit (*.net *.split). 10:36:32 -!- atehwa has quit (*.net *.split). 10:36:32 -!- aloril has quit (*.net *.split). 10:36:32 -!- augur has quit (*.net *.split). 10:36:32 -!- itidus20 has quit (*.net *.split). 10:36:32 -!- fungot has quit (*.net *.split). 10:36:32 -!- clog has quit (*.net *.split). 10:36:32 -!- fizzie has quit (*.net *.split). 10:36:32 I guess some people might try to connect to servers near themselves 10:36:32 itidus20, yesyesyes I get all that I just have no idea what the hell you're talking about. 10:36:41 bye itidus20 10:36:56 Oh, wait, he was a SUBVERSIVE CAPITALIST PIGDOG 10:37:02 -!- pikhq has joined. 10:37:02 -!- augur has joined. 10:37:02 -!- chickenzilla has joined. 10:37:02 -!- myndzi has joined. 10:37:02 -!- itidus20 has joined. 10:37:02 -!- atehwa has joined. 10:37:02 -!- fungot has joined. 10:37:02 -!- aloril has joined. 10:37:02 -!- clog has joined. 10:37:02 -!- fizzie has joined. 10:37:10 -!- EgoBot has quit (*.net *.split). 10:37:14 fizzie, YOUR TRUE COLOURS ARE REVEALED 10:37:38 -!- EgoBot has joined. 10:37:50 -!- coppro has quit (*.net *.split). 10:38:06 -!- coppro has joined. 10:38:22 -!- yorick has quit (*.net *.split). 10:38:41 -!- yorick has joined. 10:38:59 -!- FireFly has quit (*.net *.split). 10:38:59 -!- copumpkin has quit (*.net *.split). 10:39:00 -!- shachaf has quit (*.net *.split). 10:39:20 -!- derrik has quit (*.net *.split). 10:39:30 -!- FireFly has joined. 10:39:31 -!- copumpkin has joined. 10:39:31 -!- shachaf has joined. 10:39:34 -!- FireFly has quit (Quit: FireFly). 10:39:37 -!- derrik has joined. 10:39:40 -!- CakeProphet has quit (*.net *.split). 10:39:42 -!- monqy has quit (*.net *.split). 10:39:42 -!- olsner has quit (*.net *.split). 10:40:06 -!- Patashu has quit (*.net *.split). 10:40:08 -!- mycroftiv has quit (*.net *.split). 10:40:08 -!- Zetro has quit (*.net *.split). 10:40:08 -!- twice11 has quit (*.net *.split). 10:40:18 -!- FireyFly has joined. 10:41:03 -!- Patashu has joined. 10:41:03 -!- mycroftiv has joined. 10:41:03 -!- Zetro has joined. 10:41:03 -!- twice11 has joined. 10:41:18 -!- CakeProphet has joined. 10:41:18 -!- monqy has joined. 10:41:18 -!- olsner has joined. 10:44:20 -!- Slereah has quit (*.net *.split). 10:44:35 -!- Slereah has joined. 10:45:27 -!- monqy has quit (Quit: hello). 11:40:35 -!- FireyFly has changed nick to FireFly. 12:01:53 -!- oerjan has joined. 12:03:45 -!- augur has quit (Remote host closed the connection). 12:57:52 -!- hagb4rd has quit (Ping timeout: 252 seconds). 13:36:18 -!- sllide has joined. 13:46:14 -!- Sgeo has quit (Ping timeout: 245 seconds). 13:48:41 -!- Sgeo has joined. 13:49:00 -!- Patashu has quit (Ping timeout: 240 seconds). 13:54:59 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 13:55:07 -!- oerjan has quit (Quit: leaving). 13:59:44 -!- copumpkin has quit (Ping timeout: 250 seconds). 14:00:09 -!- copumpkin has joined. 14:05:44 -!- augur has joined. 14:22:25 -!- derrik has left. 14:22:48 -!- Wamanuz2 has joined. 14:25:33 -!- Wamanuz has quit (Ping timeout: 252 seconds). 14:59:41 -!- augur has quit (Remote host closed the connection). 16:38:47 Phantom_not_here_Hoover: I no gets it. 16:40:23 Every battle in the history of video games has been between The Order of Those who Walk Right, and The Cult of Those who Walk Left. 17:25:22 -!- zzo38 has joined. 17:35:52 -!- MSleep has changed nick to MDude. 17:45:10 -!- zzo38 has quit (Remote host closed the connection). 17:52:20 -!- Phantom_Hoover has joined. 17:55:21 -!- elliott has joined. 18:15:14 Gregor: So does mudem work now? 18:17:18 elliott: In theory :P 18:17:39 Gregor: Does it still have that nasty bug that made HackEgo unreliable? :P 18:17:56 elliott: In theory :P 18:18:25 Gregor: That's annoying and restricts my plans for world domination :P 18:20:36 :t fix 18:20:37 forall a. (a -> a) -> a 18:20:38 :t ($) 18:20:39 forall a b. (a -> b) -> a -> b 18:20:50 > fix ($) 18:20:51 Overlapping instances for GHC.Show.Show (a -> b) 18:20:51 arising from a use of `... 18:21:03 :t fix ($) 18:21:04 forall a b. a -> b 18:43:41 -!- yorick has quit (Quit: Poef!). 19:13:10 -!- sllide has quit (Read error: Connection reset by peer). 19:13:36 -!- sllide has joined. 19:13:52 -!- oerjan has joined. 19:24:28 Gregor, how's work on Plof? 19:25:23 Sgeo: http://codu.org/projects/fythe/hg/ 19:25:49 ty 19:26:20 Sgeo: That was sarcasm. There is no current version of Plof 4 at all. 19:26:38 -!- zzo38 has joined. 19:26:52 Oh >.> 19:27:06 elliott: That's technically not quite true :P 19:27:17 I've got a few files which may or may not be part of Plof 4 on my computer. 19:27:28 The last thing that happened was me pestering Gregor about various language changes that I'd like after trying to use the previous evrsion, realising that it was far too bitrotten and incomplete to actually use, and then devoting my energy to making Fythe good enough to implement what I would want Plof to be, which then stopped when I got number keys :P 19:27:32 Gregor: Fair enough. 19:27:37 s/got/lost 19:27:38 / 19:28:44 Gregor: By "technically", do you mean that the files are a hundred lines long, last edited a year ago, and with syntax errors, or something more than that :P 19:29:12 Is there any proposal for restrictive classes in Haskell, such as having a monad that is only allowed to contain types of a certain class? (I would think it might also be necessary to have the monad type itself follow the same restriction so that "join" has a valid type on that monad) 19:30:02 class Functor f a b | f -> a b where fmap :: (a -> b) -> f a -> f b 19:30:10 -!- pikhq has quit (Ping timeout: 246 seconds). 19:30:13 -rw-r--r-- 1 gregor gregor 8059 Jul 30 18:36 plof_g.plof 19:30:22 class Applicative f a b | f -> a b where ... blah blah blah 19:30:25 $ wc -l plof_g.plof 19:30:25 237 plof_g.plof 19:30:44 Gregor: .plof? So nothing that can actually run then X-D 19:31:10 zzo38: there are classes generalizing Monad in that way, aka parametrized monads. they don't become instances of the ordinary Monad though. 19:31:27 elliott, your nuber keys work now? 19:31:33 number, too 19:31:50 Sgeo: What makes you think that? 19:32:01 elliott: No, plof_g.plof is a Fythe file. 19:32:22 Oh, I missed s/got/lost 19:32:22 / 19:32:24 Gregor: Good file extension :P 19:32:58 zzo38: they can still be used with do notation if you use the proper language extension 19:33:48 http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#rebindable-syntax 19:34:11 oerjan: O, that's how it works. But I think it would be useful sometimes to generalize any class in that way by specifying restrictions on instances; maybe you need to be able to specify restrictions on => specifications or whatever... maybe Template Haskell could make new classes but then you need to have members of the same name 19:34:23 I do know about rebindable syntax. 19:34:39 And I do not mean specifically monads or do-notation 19:37:15 Another possibility could be class-based pattern matching, where you could specify the purpose of functions based on their class. 19:37:25 well, this subject tends to come up whenever someone wants to make Set into a Monad :P 19:37:48 Yes, that is one of the purposes of what I am mentioning; it allows you to make Set into a Monad. 19:37:55 (because you cannot use it unless there is an Ord instance for the elements) 19:38:16 or at least Eq 19:39:07 The implementation of Set requires an Ord instance, although I suppose you could make up SlowSet with less capability of Set but only requires Eq not Ord 19:39:26 yeah 19:39:38 Gregor: Good file extension :P 19:39:44 elliott: Oh, I'm sorry, I thought this was the year 2011 and I wasn't using DOS. I'd better rename it to PLOF_G.FYT 19:40:49 Gregor: OBVIOUSLY I was referring to the fact that it was more than three characters, not the fact that you named a Fythe file .plof instead of .fythe :P 19:41:02 Which you then subconsciously corrected to make the DOS dig :P 19:41:03 But there's no distinction 19:41:17 Unless you'd like all Plof files named .fythe. 19:41:36 It's only coincidence that Fythe files are valid Plof, isn't it 19:41:37 Instead, I have made an executive decision that, since there is in fact no distinction, all files which are part of the Plof project will be .plof. 19:41:52 No, it's no coincidence at all; the Plof bits build Fythe into Plof. 19:41:58 There's no distinction because there is no Fythe language. 19:42:04 (Except when there is) 19:42:06 Yes there is :P 19:42:19 It's just coincidence that Plof happens to want to use "fythe {...}" to enclose Fythe bits :P 19:42:31 -!- ais523 has joined. 19:42:45 plof_g.plof in fact has no fythe {} bits, it has grammar {} and transform {} bits. 19:42:55 --potential employer 19:42:56 Ohnowait, I lied, there are a few fythe {} bits X-P 19:43:03 ....wat. WHY DIDN'T IT POST. 19:43:10 CakeProphet: Because of SATAN. 19:43:10 I didn't know such bits existed, are they new? 19:43:20 -!- CakeProphet has quit (Quit: Reconnecting). 19:43:21 elliott: They've been in for months :P 19:43:30 elliott: They're implemented by fythecore. 19:43:37 -!- CakeProphet has joined. 19:43:37 -!- CakeProphet has quit (Changing host). 19:43:37 -!- CakeProphet has joined. 19:44:57 Gregor: Oh, I ignored fythecore :P 19:45:36 Dood, cfythe is /basically/ done. 19:45:43 -!- pikhq has joined. 19:46:30 Gregor: Except for all the bignum imperfections that are the only things I concern myself with :P 19:49:08 How do I do if I want to define a monad in terms of unit/fmap/join or in terms of Kleisli composition? 19:49:31 `addquote Gregor: Except for all the bignum imperfections that are the only things I concern myself with :P 19:49:36 631) Gregor: Except for all the bignum imperfections that are the only things I concern myself with :P 19:49:37 m >>= f = join (fmap f m) 19:49:46 zzo38: return = pure; m >>= f = join (fmap f m) for example 19:49:54 Vorpal: that's not funny or interesting? 19:50:00 elliott, it is typical of you 19:50:11 Vorpal: so are most things I say 19:50:18 elliott, this more than most 19:50:22 elliott, and I find it funny 19:50:25 not really, no 19:50:31 elliott, like half my DF quotes? 19:50:44 Phantom_Hoover: Those are funny assuming you don't know what DF is. 19:50:51 I guess mine might be funny if you don't know what bignums are? But actually not really. 19:51:05 elliott, it is funny if you don't know who elliott is 19:51:08 maybe 19:51:19 Considering you said that the humour is derived from its typicality, that's a contradiction. 19:51:20 elliott: OK. That can use unit/fmap/join (which is the most common way in category theory, I think), but there is also Kleisli composition can it be defined in that way? 19:51:39 elliott, I was joking about the last thing. 19:52:06 `addquote elliott, it is typical of you Vorpal: so are most things I say 19:52:08 632) elliott, it is typical of you Vorpal: so are most things I say 19:52:10 zzo38: Well, (f >=> g) x = do fx <- f x; g fx 19:52:12 ?undo do fx <- f x; g fx 19:52:12 f x >>= \ fx -> g fx 19:52:24 Gregor, "that's not funny or interesting" 19:52:27 so (f >=> g) x = f x >>= g, obviously 19:52:28 (it is) 19:52:38 Gregor: Let's keep that one and ditch the other. 19:52:39 `delquote 631 19:52:41 ​*poof* 19:53:07 zzo38: yeah, I think (m >>= f) = (const m >=> f) () 19:53:14 :t \m f -> (const m >=> f) () 19:53:15 forall (m :: * -> *) b c. (Monad m) => m b -> (b -> m c) -> m c 19:53:18 yeah 19:53:32 brb, moving bouncer to a different computer 19:53:40 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net). 19:54:15 -!- Vorpal has joined. 19:56:15 36 hours agoHackBot addquote monqy: help how do I use lambdabot to send messages to people. [...around half an hour later...] @messages quicksilver said 1y 2m 18d 19h 54m 29s ago: you use @tell 19:56:19 ais523: thanks, I forgot to logread 19:56:36 elliott: I considered even @telling you about it, it was so amazing 19:56:36 (g >=> f) x = f x >>= g = join (fmap g (f x)) 19:56:45 but decided you were probably going to notice it when going through quotes 19:56:57 :t join . fmap ?g . ?f 19:56:57 forall (m :: * -> *) a a1 (f :: * -> *). (Monad m, ?g::a1 -> m a, Functor m, ?f::f (m a1), Functor f) => f (m a) 19:57:20 thank you, caleskell 19:57:23 :D 19:57:28 :t join P.. fmap ?g P.. ?f 19:57:29 Couldn't find qualified module. 19:57:32 argh 19:57:39 :t join Prelude.. fmap ?g Prelude.. ?f 19:57:40 forall a a1 (f :: * -> *) a2. (Monad f, ?g::a1 -> f a, Functor f, ?f::a2 -> f a1) => a2 -> f a 19:57:45 I suppose it is then easy to just reverse them in order to define it in terms of (<=<) instead of (>=>) since (<=<) is matching category theory better, I think. Is it? 19:57:51 eek 19:58:19 -!- Sgeo has quit (Ping timeout: 245 seconds). 19:58:55 both >=> and <=< are valid category theory compositions 19:59:13 -!- monqy has joined. 19:59:52 for opposite categories 20:00:22 Yes, I did read about the opposite categories in Wikipedia. 20:01:07 -!- Sgeo has joined. 20:01:56 also i vaguely recall not all category theorists agree on which order to compose things 20:02:09 ais523: um, hmm, I didn't see that quote, maybe I forgot to logread /yesterday/ 20:02:40 elliott: it was early morning yesterday 20:02:51 just before I went to bed far too late 20:03:00 oh no, it looks like evincar discusses languages before that quote 20:03:05 oerjan: Is that the caes? It seem to me that <=< is the one that matches the order of composition of ordinary morphisms in the Hask category when making them used in the monad 20:03:08 elliott: oh no 20:03:11 yeah, composition can go backwards to some category theorists 20:03:30 >=> is much nicer than <=< 20:03:36 backwards composition is... backwards 20:03:39 (same goes for (.) really) 20:03:42 I use <=< in some cases 20:03:52 unfortunately the only standard name for (flip (.)) is (>>>) from Control.Category 20:03:55 which is too verbose 20:04:00 |> is what F sharp uses, IIRC, that's quit enice 20:04:02 quite nice 20:04:07 zzo38: well it's the order which corresponds to ., yes. 20:04:10 hm 20:04:29 -!- myndzi has quit (Remote host closed the connection). 20:04:51 otoh, /application/ is arguably backwards in Haskell :) 20:04:53 and thus Factor was invented 20:04:55 |> isn't flip (.), though, but flip ($) 20:04:55 oerjan: Yes, that is what I meant. 20:04:59 oerjan: oh, it is? 20:05:07 oerjan: is (.>) flip (.) 20:05:09 iirc 20:05:10 I forget what the operator actually is 20:05:13 .> is quite nice 20:05:15 elliott: i don't know 20:05:20 (.) would be the nicest name, but it's taken ;-) 20:05:22 i've just barely heard of |> 20:05:24 -!- Sgeo has quit (Ping timeout: 245 seconds). 20:05:31 elliott: I can understand very well why it can be considered backwards 20:05:52 -!- pikhq has quit (Remote host closed the connection). 20:06:43 07:46:37: my favorite question to receive from someone who knows nothing about programming: "why are there so many programming languages? why not just have one." 20:06:43 i think this a lot, too 20:06:47 it would lower my stress levels considerably 20:06:59 it would have to be a good one though 20:07:10 -!- Sgeo has joined. 20:07:14 because different languages are good in different situations 20:07:49 elliott: watch out, soon after, evincar will be stupid about it, iirc 20:08:16 I guess it's probably too late 20:08:28 Of course you use different programming language for different purpose, is good idea. 20:09:04 browser tabs scale so terribly :( 20:09:26 it's all too frequent that I get so many tabs that I can't see any of the icons 20:09:32 I guess firefox has a better time with that... 20:09:37 what happens with me is 20:09:40 not only do i get too many tabs 20:09:42 i also get too many windows 20:09:50 because i start new windows as a vague organisational method 20:09:52 oh I keep myself to one window 20:09:54 but then they just kind of... inbreed 20:10:12 monqy: have i told you yet about my Perfect Tab replacements, they're totally perfect, one day i will implement them and be happy 20:10:18 On my computer I don't use the icons and each tab becomes as long as possible, so it becomes easier to watch. I also hardly ever open a large amount of tabs like many other people do. 20:10:42 one of my problems is that I keep tabs alive forever as a note to self or a thing to read or investigate 20:11:03 so I have a bunch of ancient tabs that I'm not paying any attention to that are a big clutter 20:11:15 You can use bookmarks isn't it? 20:11:33 managing bookmarks like that would be a bit much for me 20:11:36 monqy: you have not, asked me you should ask me 20:11:40 elliott: ask 20:11:53 monqy: ok so mine unifies history, bookmarks and tabs 20:12:07 zzo38: if I made a special bookmarks place for those sorts of bookmarks it might be okay, but I dunno I'm too lazy 20:12:11 monqy: instead of being horizontal it's vertical because the list is practically infinite (I'll get to this) 20:12:21 monqy: basically, 20:12:30 monqy: from a tab-less point of view -- i.e. only ever clicking links linearly on a page -- 20:12:48 is it just icons, are the names colapseable, or does it take up a lot of space :( 20:12:48 monqy: it would be (either top-to-bottom or bottom-to-top, it's irrelevant) a list from most recently-visited page to least 20:12:51 i.e., a history list 20:13:10 monqy: it shouldn't take more than a hundred or two horizontal pixels which is not much these days, and it pays off in usability 20:13:13 but yeah, listen, 20:13:37 my horizontal space is valuable, what with tiling and all :( 20:13:42 yes yes yes but listen 20:13:45 monqy: now, obviously you have a cache, so if you click a page that's close enough to the current pages, it'll load instantly 20:13:51 but further away ones might have to reload 20:13:53 this is basically just gc 20:14:07 monqy: now, clicking a page lower down obviously moves it to the top, because you re-visit it 20:14:23 monqy: Ctrl+T just opens a new blank tab at the top and forks the history 20:14:24 that is 20:14:34 say you visit A->B->C, Ctrl+T, go to D->E->F 20:14:37 if you omitted the Ctrl+T 20:14:39 the list would look like 20:14:42 A, B, C, D, E, F 20:14:44 but with the Ctrl+T 20:14:45 it looks like 20:14:50 A, B, D, E, C, F 20:15:03 because the most recent pages in each "tab" (fork) are at the bottom 20:15:05 with the history above 20:15:46 monqy: bookmarking something is just starring it; it moves around in the history like normal and you can bring up a list of all starred pages 20:15:58 monqy: and also: tabs automatically unload if you ignore them for long enough 20:16:02 because history = tabs 20:16:15 (you can set tabs not to unload if you think a resource might expire; that just saves it to disk) 20:16:16 unless they're starred I hope? 20:16:27 oh good 20:16:31 monqy: well, do you keep all your bookmarks open all the time? (assuming you used bookmarks) 20:16:33 probably not 20:16:37 but if you think it might expire you can hold it, yes 20:16:56 so basically this is a vertical list, roughly in visitation order, organised with forks to keep relevant stuff near the bottom 20:16:59 oh by unload I mistook you for meaning they get cleaned up forever :'( 20:17:05 no, they just get GC'd 20:17:06 im still tired 20:17:12 to save memory 20:17:29 would there be any way to organise starred tabs 20:17:29 something nice would be if you hover over an entry it shows a little screenshot poking out from the list so you can easily distinguish pages by rolling your mouse around 20:17:49 monqy: anyway, it does take horizontal space, but you could pretty much just dedicate a workspace to your browser, or use a vertical split in your WM :P 20:17:59 ew vertical split :( 20:18:08 er 20:18:09 but really, horizontal space is pretty cheap 20:18:14 erm, horizontal split 20:18:15 you KNOW WHAT I MEAN 20:18:17 yeah 20:18:22 monqy: you could probably just give them notes, which would just be an arbitrary string of text, and you could fuzzy-search that 20:18:23 I knew what you meant 20:18:25 you could use them like tags if you wanted 20:18:27 which confused me 20:18:39 and a page title/url would count towards the notes I guess 20:18:45 and obviously if you typed into the address bar it'd search notes as well as everything else 20:19:37 Would there be any use to have a kind ** for classes? And why is the proposal for type level natural numbers using Nat as its kind rather than using ## as its kind? 20:19:50 because words are nicer than symbols 20:20:38 But all the other kinds use symbols 20:20:53 -!- Sgeo has quit (Ping timeout: 240 seconds). 20:21:39 Including * # (#) ? ?? -> 20:21:58 that's the fault of those kinds :P except for maybe (->) and * 20:23:27 -!- myndzi has joined. 20:24:04 I don't think so. I think it makes sense to use symbols for the kinds since the words are used for type specifications and other stuff instead, so that you can use these symbols for specifying kinds. 20:24:06 -!- myndzi has quit (Client Quit). 20:24:15 well, oerjan has a lot of opinions on this, so I'll hand it over to him 20:24:22 monqy: ok pledge dedication to my amazing tab replacement scheme thanks 20:24:45 monqy: oh and I guess if you don't use a fork's latest page much it moves to be after its history rather than with all the current forks? 20:24:53 probably need that to keep the history part actually useful 20:25:32 `addquote well, oerjan has a lot of opinions on this, so I'll hand it over to him 20:25:34 632) well, oerjan has a lot of opinions on this, so I'll hand it over to him 20:25:54 -!- myndzi has joined. 20:26:00 oerjan: i feel that may lose something out of context :P 20:26:34 no, not really. have you not learned anything about me :P 20:28:02 oerjan, we all know that the only stupid quotes allowed are ones elliott adds of me. 20:28:03 They all lose everything out of context 20:28:13 Phantom_Hoover: Bawww. 20:28:41 anyway my opinion if any is that using symbols is fine when there are only a few kinds, but that the more are added the more they need to switch to something more readable/mnemonic. 20:28:49 Actually I think (#) kind should be renamed to ## and natural number kinds should be + 20:29:00 elliott, what the hell does 'baaaaw' mean? 20:29:06 oerjan: they're adding Nat 20:29:16 so you said. 20:29:19 Phantom_Hoover: I don't know but I didn't say that. 20:29:22 oerjan: no, zzo38 said that >:) 20:29:43 OK, 'Bawww'. 20:30:14 Phantom_Hoover: It's the noise a sheep makes if it's really bad at making proper sheep noises. 20:30:16 I think. 20:30:29 Maybe they should have a pragma to use named kinds and use symbols otherwise; I think Perl does something similar with other stuff 20:30:51 elliott, you're a crappy sheep, in other words? 20:31:07 Phantom_Hoover: Yes. :( 20:31:20 yes, perl's use english 20:32:07 :k (->) 20:32:07 ?? -> ? -> * 20:33:17 What does k do? 20:33:24 :k (.) 20:33:24 parse error on input `.' 20:33:25 shows the kind of a type 20:33:30 Oh, right. 20:33:35 :k Maybe 20:33:35 * -> * 20:34:11 :k IO 20:34:11 * -> * 20:34:32 :k data A b c = B b b c c 20:34:33 parse error on input `data' 20:34:34 afaik (->) is the only common one i know that's very interesting 20:34:53 baaaawwing is what people do on the internet 20:34:54 Instead of *s it has... QUESTION MARKS 20:34:57 when they are butthurt 20:35:03 yes, these are technical terms. 20:35:04 And bawwwing? 20:35:13 because it needs to work with unboxed values as well 20:35:45 ?? literally means "the type allowed as arguments to functions" which basically means "everything but unboxed tuples" 20:35:45 literally means "the type allowed as arguments to functions" which basically means "everything but unboxed tuples" 20:35:49 Boxed? 20:35:54 I think it's the only place ?? is used. 20:35:55 :k State# 20:35:56 Not in scope: type constructor or class `State#' 20:37:01 ? is any type, ?? is anything but unboxed tuples (# or *), (#) is unboxed tuples, # is unboxed types, * is boxed types. 20:37:48 boxed as in "has pointers and stuff" or is there a more technical definition? :P 20:37:54 boxed types are implemented as uniformly sized pointers to values, so they can be moved around without knowing more precisely what type they are, important for polymorphisms 20:38:05 *-s 20:38:26 yes, oerjan's explanation sounds much better. 20:38:35 Seems inelegantly low-level for Haskell. 20:38:45 boxed non-strict types in addition have the option that the pointer goes to a not yet evaluated thunk 20:38:56 Phantom_Hoover: I believe it's a GHC thing 20:39:11 but, uh, it's useful to be able to deal with low-level details when you need to. 20:39:14 iirc all non-strict types are boxed, but there are exceptions the other way 20:39:15 Phantom_Hoover: You would prefer it be slow? 20:40:01 Phantom_Hoover: all the kinds other than * are basically in order for ghc to be able to do things low-level for efficiency 20:40:14 apart from Nat :) 20:40:21 :k Nat 20:40:21 that's for Oleg 20:40:22 Not in scope: type constructor or class `Nat' 20:40:25 * Lymee ? 20:40:49 Lymee: Nat will be a kind, and is just being added so i hear (above) 20:41:10 presumably the kind for types of the form 0, 1, 2 ... 20:41:28 which will be useful for type system calculations 20:41:39 :k 1 20:41:40 * 20:41:50 :k 0 20:41:51 Only unit numeric type pattern is valid 20:41:56 huh 20:41:57 :k 2 20:41:58 Only unit numeric type pattern is valid 20:42:13 Nat is a kind? 20:42:30 Phantom_Hoover: that's what this discussion started with, it will be 20:42:38 Lymee: Nat will be a kind, and is just being added so i hear (above) 20:42:38 How does that work? 20:42:40 Nat is a kind? 20:42:47 Phantom_Hoover is practicing his Vorpal 20:43:08 *practising 20:43:13 oerjan: is Haskell getting dependent types, then? 20:43:17 ais523, no. 20:43:28 that's the most obvious reason to put a natural number in a type 20:43:31 no it isn't 20:43:40 hmm, what more obvious reasons are there? 20:43:41 elliott, I was just asking circuitously how it works. 20:43:44 class Vec n a where Nil :: Vec 0 a; Cons :: a -> Vec n a -> Vec (S n) a 20:43:46 erm 20:43:47 data Vec n a where Nil :: Vec 0 a; Cons :: a -> Vec n a -> Vec (S n) a 20:43:49 not class 20:43:52 Is it just the 0 | S n one? 20:43:55 you can do this already obviously, s/0/Z/ and data Z; data S n 20:44:07 GHC is just adding special support for it to make it less terrible to use 20:44:17 hmm, I'd think of that like a primitive sort of dependent typing 20:44:27 so would many people who have no idea what dependent typing really is :) 20:44:30 ais523, it's not 20:44:33 that's not dependent typing, that's literally just typing 20:44:44 I suppose you could see all types as a kind of dependent typing but that's silly 20:44:50 I suppose so 20:44:59 Dependent typing requires they be arbitrary values. 20:45:04 Phantom_Hoover: no 20:45:11 Omegamega lets you do that with any type and is not dependent. 20:45:16 it requires operations other than just "successor", I imagine 20:45:19 but probably other things too 20:45:21 Dependent typing is when values break through the :: barrier, that's it. 20:45:42 That's what I meant. 20:45:48 Well, right. 20:46:19 :k Maybe 1 20:46:20 * 20:46:35 :t undefined :: 1 20:46:36 Unit 20:46:41 Is 1 the same as ()? 20:46:44 huh 20:47:00 :t undefined :: Unit 20:47:01 Unit 20:47:02 :t Identity 20:47:02 Phantom_Hoover: why would it be? 20:47:03 forall a. a -> Identity a 20:47:05 :t undefined :: () 20:47:05 () 20:47:11 :t undefined :: 99 20:47:12 Only unit numeric type pattern is valid 20:47:14 elliott: unit is the name of () in ML 20:47:17 elliott, because what is it, then? 20:47:23 oh right, that unit numeric type pattern stuff 20:47:24 that makes no sense 20:47:25 1 suggests a type with one element. 20:47:36 Phantom_Hoover: no it doesn't 20:47:40 it does in type and set theory 20:47:41 but not in Haskell 20:47:43 elliott, yes, it does. 20:47:49 no. 20:47:51 It *isn't*, but it certainly suggests that. 20:47:59 no it doesn't :P 20:48:13 modulo _|_s, the obvious type-nat representation has one value per type. 20:48:13 > undefined :: 1 20:48:13 No instance for (GHC.Show.Show GHC.Generics.Unit) 20:48:14 arising from a use of ... 20:48:21 hm Generics 20:48:21 hmm, I wonder how many it has taking _|_s into account 20:48:24 Yes, this is an objectively measurable thing. 20:48:25 data Z = Z, so _|_ and Z 20:48:27 data S n = S n 20:48:37 (S Z) has _|_, S _|_, S Z, so three 20:48:45 S (S Z) has _|_, S _|_, S (S _|_), S (S Z) 20:48:51 so it's n+two, I think 20:48:58 1 suggests — without prior knowledge — a type with a single element. 20:49:13 This does not mean it *is* a type with a single element, just that it's a reasonable guess. 20:49:25 elliott: you don't need anything more than _|_ in those types do you? 20:49:36 could just as well be just data Z 20:49:45 oerjan: no, but that's not valid haskell ninety-eight :P 20:49:46 oerjan, I thought empty data declarations dodn't work. 20:49:51 yes they do 20:49:55 Phantom_Hoover: it's an extension 20:49:56 it's haskell twentyten 20:49:57 no 20:49:59 it's in the report. 20:50:05 right 20:50:11 You just love picking people apart on minor details, don't you? 20:50:18 oh my god stop whining 20:50:28 the minor detail was you saying they "don't work", oerjan saying it's an extension, which is patently untrue, it is in the report 20:50:39 stfu if you're going to whine to simple answers to your implicit question 20:50:49 oerjan: you could do newtype Z = Z Z, newtype S n = S (S n) but that's a rather non-obvious representation 20:50:54 well there's a language flag for it >:) 20:51:08 Well, if you're in that mood, I can't be bothered interacting with you at all. 20:51:28 you're interacting with an IRC channel 20:51:51 you may be unusually irritable but that isn't going to stop me correcting factual errors when I can 20:52:05 oerjan: yeah, but there's a language flag for Haskell98 too :P 20:53:17 -!- ChanServ has set channel mode: +o oerjan. 20:53:32 -!- oerjan has set channel mode: -b *!*ubuntu@*.vodafone-net.de. 20:53:39 -!- oerjan has set channel mode: -o oerjan. 20:53:41 noooooooooo 20:53:47 today on "bad op decisions"... 20:54:11 Now open, sweepstakes on how long until he realises. 20:54:22 Prize is a kitten. 20:54:24 who was banned there? 20:54:28 ais523: cheater 20:54:29 cheater 20:54:32 ah, and why? 20:54:37 trolling 20:54:39 he said something particularly rude to elliott 20:54:40 (I mean, what in particular) 20:54:49 ("trolling" was a pretty good guess in general) 20:54:50 well, about 20:54:52 -!- Sgeo has joined. 20:54:57 oerjan: out of curiosity, what makes you believe that cheater has reformed? 20:55:35 elliott: nothing 20:56:06 oerjan: so, umm, is the intent really to let a troll back in so that they can continue trolling? 20:57:20 I can take partial (if not full) blame of the alleged "bad op decision" here, since I did in fact suggest making it a ban that does time out. 20:57:54 Back when the SHADY CABAL was having it's SECRET DISCUSSIONS behind CLOSED DOORS. 20:58:03 I think the kind for natural numbers should be called + not Nat 20:58:07 oerjan: if you don't intend to reply to my question, it'd be good if you could say so, so that i could stop checking 20:58:42 While (#) should be renamed to ## to not get mixed up with the parentheses 20:58:46 cheater respected member of the #esoteric community 20:58:51 "welcome back" 20:59:22 oerjan: or not, anything goes 21:00:31 Would the natural numbers in types proposal allow making something such as this (but not necessarily using this syntax): data T 0 = X Int; data T n = Y (n-1) (n-1); 21:00:57 17:01 < CakeProphet> what would be the easiest way to construct an AST with pyparsing? 21:01:11 CakeProphet: hi 21:01:20 elliott: imo he was not banned for trolling, but for being particularly impolite. your stfu comment above reminded me that if i'm going to keep him banned i am surely going to have to ban you too eventually just for fairness. 21:01:25 17:01 < mythmon> CakeProphet: what's an AST? 21:01:31 #python 21:01:38 #python 21:02:00 and fizzie also advised against that >:) 21:02:55 oerjan: you really think an off-hand comment to someone being testy is comparable to unprovoked yelling at someone in another channel just for joining it and then complaining loudly in here about not "controlling your pets"? 21:04:09 why does cheater hate elliott anyway 21:04:38 because everyone else keeps it to themselves when they notice him trolling 21:04:50 he doesn't always troll, just usually 21:05:07 I think he's genuinely interested in esolangs and related things, but has too much of a habit of trolling to not troll for long enough to find out more 21:05:10 he would have to be an amazingly stellar contributor to make up for the 90 percent 21:05:23 maybe if he was cpressey the ten percent of the time 21:06:09 At the ban-time I did a "grep cheater" against the August 2011 log, and there was a surprisingly high percentage of more or less reasonable content. 21:07:08 fizzie: after I try and point out his trolling behaviour he usually holds off for a few weeks for obvious reasons. I would have better data on this, but I was too busy doing other things the last time it happened, and I figured it was pointless doing so after he was banned. 21:10:42 I used to think he was just particularly bad at trolling for the blatantness of it but actually it's pretty good because by the time anyone goes to investigate it there'll only be pseudo-productive contributions. 21:11:50 Is it possible to make Haskell cabal have multiple servers? 21:11:58 oerjan: I take it you're not responding? 21:12:29 elliott: i seem to be lost in a web of meta-thoughts. at best. 21:13:06 Fine 21:15:05 I have also written and subsequently discarded approximately seven replies by now, so best not expect much from this front either. 21:15:12 XD 21:15:46 These are some deep waters; larger-than-life questions; after all, it's a matter of an IRC channel. 21:16:09 Well, if nothing else I've come to expect complete non-action from matters involving cheater, so it is not exactly a soul-crushing surprise. 21:17:07 weeee parser combinators. 21:17:21 How to modify the parser in haskell-src-exts? It looks like happy and I do not know how to add stuff? 21:17:25 It's surprising enough that he got banned for doing something blatantly trolly even by his standards, so I guess expecting a miracle is unreasonable. 21:18:02 I do wonder why cheater gets far more leeway as far as behaviour that doesn't incur op warnings goes than anyone else, though, considering he stirs shit on a regular basis. 21:18:06 zzo38: i don't know precisely but happy is iiuc a LALR(1) parser like yacc/bison? 21:18:06 And that's all I'll say. 21:18:52 The file InternalParser.hs says things such as happyIn14 :: (PExp L) -> (HappyAbsSyn ) happyIn14 x = unsafeCoerce# x 21:18:58 um who else is getting op warnings :P 21:19:12 But I do not know how to do that 21:19:12 All I'll say is that you "got" made an equally discarded eight, ninth and tenth reply with that. 21:19:21 oerjan: is that when ops are warned about something? 21:19:24 or when people are warned about ops? 21:19:32 ais523: ...no. 21:20:17 * CakeProphet tries to be polite most of them, and realizes that he has occasionally failed to do this. 21:20:21 fizzie: It would be nice if I could get one undiscarded reply so that I at least have some sort of idea of the logic behind this. oerjan: Very few people, but very few people do the kinds of things cheater does. 21:20:37 am i polite? sometimes maybe 21:20:50 Is there a lossless compressed 64-bit floating point audio format? 21:21:02 Other than ..{gz,bz2,xz} :P 21:21:12 monqy: yes you are very polite. You even greet me! 21:21:19 FLAC is lossless compressed audio, but I do not know about floating point or 64 bits I don't know 21:21:31 zzo38: No float. 21:21:33 elliott: If you insist, but it's going to be a pretty low-quality reply, otherwise I wouldn't keep discarding them. A moment and I'll combine a few. 21:21:44 me greeting people may have many possible meanings depending on context 21:21:56 c....context? 21:21:58 Why do you want it with floating point? 21:22:02 zzo38: oh probably that file is generated _by_ happy, and the real source file is somewhere else? 21:22:02 * CakeProphet scratches his head. 21:22:20 irc isnt a programming language........no need to be so elegant 21:22:29 fizzie: It may surprise you, but I'm not exactly expecting a highly-convincing reply of amazing logical quality, and not for reasons relating to yourself. 21:22:36 monqy doesn't know about irp, obviously. 21:22:57 Dear #esoteric, pease provide documentation for Internet Relay Programming. 21:23:28 http://www.esolangs.org/wiki/IRP 21:23:31 (irp uses a similar system to Intercal, where you must be polite to the interpreter/compiler) 21:23:40 otherwise it will just yell at you. 21:24:04 food -> 21:24:24 food -> OerjanState? 21:24:37 no, food -> OerjanState -> OerjanState 21:24:41 oerjan: The identification at the top says "Language.Haskell.Exts.Annotated.Parser" (although this module is actually called "Language.Haskell.Exts.InternalParser"), and there is no such file as far as I can tell the module says 21:25:19 food -> OerjanState () 21:25:52 food -> cmd 21:25:53 pyparsing is a pretty good library, though the documentation could be somewhat better, and it's all in one massive file 21:25:55 did i get your anguage right ais523 :( 21:26:06 so it literally takes like 2 minutes of holding page down to get to the bottom. 21:26:10 elliott: I don't get it 21:26:17 oh, ICA? 21:26:18 ais523: I thought cmd and exp and bit and a....heplp 21:26:20 What is anguage? 21:26:27 zzo38: i'm not sure 21:26:43 I've actually forgotten what the abbreviation for "command" is, but cmd seems plausible 21:27:01 I've been using exp$0 recently, as it's how the compiler treats it internally ("0-bit integer with possible side effects") 21:27:14 Here goes nothing. My timed-ban quasi-recommendation was possibly a two-pronged thing. Firstly, I have really not progressed much in my cheater studies, so I went with that cursory log-inspection and a lack of any specific firm opinion. Secondly, I advocate the TCP exponential backoff algorithm for channel ban times; it achieves in-practice indefinite bans in a finite number of iterations, yet theoretically never gives up hope. Anyhow, "rebanning" has a lower thr 21:27:37 Is there a version of haskell-src-exts that is using Parsec instead? 21:27:40 fizzie: "has a lower th" 21:27:45 most forums use exponential backoff 21:27:50 elliott: it's "has a lower thr" for me 21:27:54 -- threshold than "banning". Maybe. 21:27:56 presumably, as my nick is one character shorter than yours 21:28:18 or something to do with the length of the names of the servers we're connected to 21:28:29 ais523: Server names, maybe; that's in the :prefix. 21:28:59 Does Freenode still do that "add a registered/unregistered indicator to all messages if the client asks for it" thing, or was that on the previous server? 21:29:00 fizzie: Very well, but considering that cheater was successfully regularly bothersome and personally insulting for the better part of a year before getting banned, and even then only because he did two things in quick succession (bothered me in the channel and then complained here about it), I'll mark down ten years or so ahead on my calendar. 21:29:22 "barjavel" vs. "sendak" is two char's difference 21:31:52 elliott: he seems to grate on you much more than on other people; I'm not sure if that's because he's trolling you in particular, or some sort of huge personality mismatch 21:32:23 ais523: There are others who he grates on in similar amounts, they just aren't public about it. 21:32:38 Considering the kind of shit he gives me, I can't blame them. 21:33:04 Man, I'm ashamed that floating point saved me here. 21:33:09 FLOATING POINT IS ALWAYS WRONG 21:33:28 parser combinators in Python are pretty annoying without that lazy evaluation stuff. 21:34:19 to implmenet recursion in this library, you have to assign the recursive parser as a Forward object 21:34:26 then you say recursiveTerm << expr 21:34:28 later 21:34:44 once you've already used it 21:57:08 zzo38: http://code.haskell.org/haskell-src-exts/src/Language/Haskell/Exts/InternalParser.ly may be the happy source file 21:57:43 oerjan: Yes I found that file already 22:04:54 -!- BeholdMyGlory has quit (Remote host closed the connection). 22:10:24 what is mac's line ending again? 22:10:32 just \r? 22:10:45 \n. 22:10:51 oh, good. 22:10:51 OS X is Unix. 22:11:12 It was \r in the classic days which have been gone for ten years. 22:11:17 I thought they (Windows,Mac,Unix) were each different for some reason. 22:11:19 ah okay. 22:11:26 that must have been why I thought that. 22:11:33 Windows = Mac + Unix 22:11:34 monqy: Hey learn how to play DF. 22:11:40 elliott: I forgot about that 22:11:41 monqy: We're going to invade Hell. 22:11:46 monqy: Well unforget. 22:11:48 elliott: I was actually thinking about doing just that. 22:11:58 elliott: it will not end well :) 22:12:00 CakeProphet: sorry you are not a cool enough kid to invade hell. 22:12:07 -!- zzo38 has left. 22:12:08 ais523: Hey we're actually planning this. :p 22:12:16 dude I have a Dave record shirt. I am beyond cool. 22:12:20 I guess I will need something to do now that I've finished my monster 22:12:21 elliott: it will /still/ not end well 22:12:23 all I need now are some shades. 22:12:24 ais523: I think we can do it, modulo about two decades of preparation. 22:12:31 ais523: Weeell, we could trivially do it, with cave-ins. 22:12:33 But that's wimpy. 22:12:36 in-game decades, or real-life decades? 22:12:38 In-game. 22:12:50 endline = Literal("\r\n") | Literal("\n") 22:12:51 wheeeeee 22:12:59 ais523: The plan is to deal with the first swarm of demons, then build a wall around the edges of the hell in our map (so that demons spawning can't get in), and then put our trade depot in there. 22:13:20 what would putting a trade depot in there do? 22:13:26 also, can demons get through walls? 22:13:34 ais523: Force traders to descend into the unfathomable depths of hell just to trade. 22:13:40 We really hate traders. 22:13:41 this game sounds amazing. 22:13:42 Mostly elves. 22:13:49 ais523: No, they can't. 22:13:49 elliott: how could they get there, though? 22:13:59 if the demons can't get out, surely the traders can't get in? 22:14:01 ais523: Umm, because we'll have broken open the adamantine shaft to hell? 22:14:07 expr << operator | stringLiteral | variable | stackIndex | command 22:14:11 ais523: They only spawn at the edges of the hell map. 22:14:17 does this look like a sane alternative ordering for an expression? 22:14:21 Phantom_Hoover knows more than me about hell. Maybe. 22:14:28 But I'm fairly sure that they won't just spawn ANYWHERE. 22:14:28 elliott: oh, so you're going to lock the demons to the edge of hell 22:14:32 That would be ridiculous. 22:14:38 and put a trading point in the centre, where the traders can actually get to 22:14:44 ais523: Right. 22:14:54 ais523: We'll have some sort of way to kill the demons that congregate around the edges every now and then. 22:15:06 ais523: The hard part will be building the wall, because masons are going to have to work there while demons are spawning. 22:15:12 So it's going to require heavy military guard. 22:15:28 this game sounds amazing. 22:15:30 CakeProphet: It is. 22:15:49 CakeProphet: indeed, it's awesome 22:15:59 (disclaimer: I don't actually play it, just listen to other people play it) 22:16:12 I'm not really sure how pyparsing's operator precedence thing work, especially recursively 22:16:12 how long do you think it will take before fortresscraft is as awesome? 22:16:17 but... I guess I'll find out. 22:17:20 quintopia: you are kidding, right? 22:17:55 elliott: the author intends to make it more dwarf fortressy in the long run. it was original inspired by DF after all. 22:18:34 FortressCraft is the one where they hired someone known solely for being a huge asshole on the internet to be their "PR" and call anyone who dared suggest it might be nearly identical to Minecraft without any interesting innovation various homophobic crap, right? 22:19:40 how would i know? it is true that it is a similar game to minecraft (on purpose) but it does have interesting innovation and will likely have more so in the future. 22:19:47 Frankly though, I doubt anyone who isn't Toady One could make a game that tries to do the same thing as DF and succeeds with such aplomb who (a) isn't Toady One and (b) hasn't spent at least ten years on it. 22:20:14 quintopia: I dunno, generally when people bring up random games out of the blue and suggest that they're gonna be totally as cool as DF they tend to know at least something about them. 22:20:28 i know something about the game 22:20:35 i don't know anything about the politics 22:21:14 program = ZeroOrMore(statement) + endString 22:21:18 weeeeeeee, combinators 22:21:27 but i doubt they are going to try to do the same thing as DF. just do lots of things inspired by it. 22:21:35 elliott: most games aren't totally as cool as DF 22:21:48 quintopia: Considering it's a first-person game, no, no they're not. 22:21:59 which is more readable: top-down or bottom-up? 22:22:05 for arranging the parser bits. 22:22:06 (I've been playing more humble bundle games, but haven't found anything particularly inspiring in the latest batch; also, one of the .debs appears to have a dependency on an nvidia library, which is suspect as I don't have an nvidia graphics card) 22:22:20 ais523: probably CUDA 22:22:33 well, nevermind. this is Python. I have to write it bottom-up 22:22:36 elliott: but they are currently working on independent commandable "slave" agents, so you can expect to be able to tell them to go craft and build stuff for you, DF style 22:22:43 elliott: it wasn't, and besides CUDA only works on nvidia cards 22:23:28 ais523: yes it does; your point? 22:23:47 that I'd be very surprised if a computer game was specific to a particular brand of graphics card 22:23:50 CakeProphet: um parser tokens are usually mutually recursive? 22:23:54 quintopia: that's a really shallow idea of what DF is 22:23:59 ais523: fair enough 22:24:10 quintopia: go play the real thing before comparing anything to it 22:24:15 oerjan: yes, there's a workaround for that in this library. 22:24:36 even elliottcraft (my version thereof) will have agents that go off and build stuff for you, but it's nothing like DF 22:24:41 elliott, isn't that basically elliottcraft in a nutshell? 22:24:43 elliott: it is a thing that DF has in it. therefore, incorporating the same idea is doing something inspired by DF. 22:24:45 oerjan: or are you saying there is no such thing as "bottom-up"? 22:24:48 rather, the skill is in arranging them so that they do, puzzle-game-style 22:25:00 quintopia: DF also has: pixels 22:25:01 doesn't have to be anything like DF to be inspired by it 22:25:07 Today I learned from quintopia: DF is slave labor 22:25:09 Doom has pixels, so I guess it's inspired by DF 22:25:10 or to be as awesome 22:25:21 Gregor: Yes, yes it is 22:25:25 needs moar sci-fi text-based games. 22:25:35 CakeProphet: well that too, but mostly your comment about python 22:25:39 Gregor: Except that the slaves are idiots, terrible at following orders, ignore them half the time, and you still have to keep them happy 22:26:00 oerjan: oh right, yeah there's a fix for that. Basically there's a Forward object that acts as a placeholder, and then you fill in the logic later. 22:26:05 Today I learned: elliott is racist. 22:26:14 Dorf is a species not a race dammit. 22:26:21 elliott: it is called fortresscraft because it is inspired by DF. therefore, you can expect that anywhere it contains DF-like ideas, it is because DF did it first. 22:26:25 CakeProphet: as in text adventure, or as in tty-graphics roguelike? 22:26:29 (I like to believe "dorf" is a horrible slur used only by us uncaring human overseers.) 22:26:34 ais523: either really. 22:26:34 (afaik, Doom was not named after DF) 22:26:39 quintopia: lol 22:26:43 elliott, well, they do what they're told — what am I saying, I spent ten minutes trying to get them to leave all the fortress' crap in a particular place. 22:26:43 Doom Fortress 22:26:53 ais523: but yes rogue-like would be nice. 22:26:53 Gregor, that's redundant. 22:27:01 If it's not a doom fortress, you're doing something wrong. 22:27:16 ais523: I use the term MUD but that refers to the online version, and has a more limited interface due to being telnet-based. 22:27:26 There needs to be at least one crime against the laws of god and man. 22:27:26 *telnet-based with no fucking standardized anything. 22:27:45 CakeProphet: have you seen ZAPM? it's a scifi roguelike that isn't horrible (although isn't as good as most of the better known roguelikes) 22:27:49 Phantom_Hoover: murder is one, no? 22:27:50 Gregor: IMO the merging of Adventure and Fortress mode is inevitable in the long-term; that would lead to awesome things like storming a fortress all by yourself 22:27:54 and then taking it over 22:28:00 That enough like Doom for you? 22:28:03 ais523: sure haven't. 22:28:18 I would like DF-complexity-with-sci-fi-setting 22:28:21 I'm, umm, not sure where you can get it, but presumably search engines know 22:28:26 it's far from DF complexity, unfortunately 22:28:38 but then, roguelikes tend to be single-player, which cuts down the complexity a lot 22:28:42 Phantom_Hoover: also how awesome would it be if you had to climb up the pecking order to become fortress overseer. 22:28:55 ais523: DF Adventure mode would tend to disagree 22:28:56 elliott: Enough like Doom? Sounds like Doom just ripped off DF. 22:29:01 ais523: actually, Fortress mode is more like 0-player 22:29:08 elliott: is the adventure mode as complex as fortress mode? 22:29:13 and, umm, I mean single controllable actor 22:29:36 You could have only one directly controllable actor. 22:29:36 ais523: it's set in the exact same world with the exact same monsters and algorithms and the like, it just only passes time explicitly, like single-stepping in fortress mode, and you have a restricted view radius, making it a Roguelike 22:29:46 ais523: there isn't quite as much to do right now 22:29:52 elliott: and how do you do combat, etc? 22:29:54 ais523: but the actual interactions involved as certainly as complex, because they're the same 22:29:58 ais523: well, by combatting :) 22:30:07 elliott, BtW, it's not too hard to make your fortress a goblin stronghold. 22:30:08 http://df.magmawiki.com/index.php/DF2010:Adventurer_mode#Combat 22:30:09 I mean, do you order a whole load of dwarves to become soldiers and hope they fight? 22:30:15 ais523: it's _Adventurer_ mode 22:30:16 Just leave them in cages and abandon. 22:30:19 ais523: that means you play it yourself 22:30:25 elliott: ah, that's the fundamental difference I was getting at 22:30:32 and I thought that was true, but then you implied I was wrong 22:30:44 ais523: right, but, I mean, a swarm of goblin enemies will act just the same as in fortress mode 22:31:00 CakeProphet: hm i think if you have mutual recursion, you can still define bottom up as "everything except possibly the top (last) element is used by something later", and vice versa for top down 22:31:51 oerjan: yes, it makes a far amount of intuitive sense that there is still a bottom and top to the arrangement of parsers. 22:31:57 even with mutual recursion. 22:32:04 ais523: still, I'd say that Adventurer mode is easily the most complex roguelike in existence, by orders of magnitude as far as world complexity goes 22:32:22 ais523: it's probably not the most fun, though, at least not yet, but it's been developed more recently 22:32:36 I don't think there's any way to win; most people just seem to try and genocide everything else 22:32:46 elliott: it's more player-visible complexity I'm talking about 22:33:01 ais523: I'd say the complexity of the DF world is obvious from a player level 22:33:02 the rest of the world existing is pointless if you don't interact with it 22:33:14 you can walk around the whole thing, so... 22:33:44 FAQ 22:33:44 [edit]How do I get past NPCs which are in my way? 22:33:44 Press s to sit, then move to crawl between their legs. Once you're done press s to stand again. 22:33:45 DF, I... 22:34:03 lul 22:34:27 -!- FireFly has quit (Quit: FireFly). 22:34:27 that's amazing 22:34:39 And what if that NBC is a blob monster? 22:34:49 blobs have legs too! 22:35:00 I would assume it would already be attacking you 22:35:05 in which case sitting is probably not a good idea. 22:35:14 What if it's a friendly blob monster? 22:35:33 or maybe in that case "press s to turn sideways, move to squeeze past it gelatinous mass, then when you're done, press s to turn straight again" 22:36:07 what drawbacks are there to going around in s-mode all the time 22:36:13 ais523: probably tons 22:36:20 indeed, I imagine so too 22:36:22 which is why I asked 22:36:30 ais523: I imagine it's slower to move around, your combat is probably incredibly impaired... I don't actually know though, I imagine you'd have to try it 22:36:34 you wear out your knees quicker 22:36:49 -!- cheater has joined. 22:36:56 ais523: It's unlikely anybody knows all the disadvantages, considering that DF is long past the point where most of its interactions surprise Toady 22:37:33 totally emergent 22:39:44 source code plz? 22:40:04 CakeProphet: you can look at and modify the raws; the engine is flexible enough that that lets you make all kinds of behaviour 22:40:09 the source itself is closed, though 22:40:28 I am sad face. :( 22:40:37 closed-source games are less fun, because messing with the source is part of the fun 22:40:47 ais523: CakeProphet: Raws are basically a fairly-ugly DSL for describing creatures, objects, and interactions; the majority of the game is defined in them 22:40:52 So it's "mostly" open 22:41:02 people have done all kinds of stuff only by editing the raws 22:41:13 but not, say, changed the size of the arena in arena mode 22:41:22 Arena mode isn't much of a game :-P 22:45:37 elliott: Haskell text game? 22:45:52 is that a thing, we could do? 22:45:56 Define "we". 22:46:11 uh, willing members of #esoteric 22:46:19 probably meeting some kind of Elliott Inclusion Principle 22:47:01 the CakeProphet Inclusion Pricinple is const True 22:47:16 monqy doesn't have a well-defined inclusion principle 22:47:20 yet 22:47:35 const undefined is probably going to be problematic. 22:47:47 a haskell text adventure sounds no more interesting than any other text adventure project 22:47:57 perhaps we could have an Elliott-CakeProphet Meta-Inclusion Principle 22:48:03 to decide who gets inclusion principles. 22:48:04 haskell does not really have much to offer apart from the ease in defining a relevant well-typed DSL, but there are already perfectly good declarative languages for this 22:48:35 elliott: what if we used STM to make everything concurrent? 22:49:09 ... 22:49:20 THINK ABOUT IT 22:49:46 obviously active beings would like... have some notion of reaction time. so everything isn't instantaneous. 22:50:08 sounds like DF. except that stm is really irrelevant 22:50:38 concurrency is relevant though, with STM being one of the better means of implementation out there. 22:50:52 No, it's not really relevant at all. 22:51:03 okay fine it's not. 22:51:07 There is no shared state involved, it's more of a CA-style world interaction scenario. 22:51:22 absolutely no shared state? none? are you sure? 22:54:25 if every entity is operating in tandem then there should be a way to regulate simultaneous interactions, no? 22:54:28 * Phantom_Hoover → sleep 22:54:41 -!- Phantom_Hoover has quit (Quit: Leaving). 22:54:42 anyone here know French? is http://esolangs.org/wiki/User:JarvisCo spam? 22:54:58 Google knows French 22:54:59 I'm guessing yes 22:55:04 I realize I'm About rapidly but quickly growing tired of unsolicited e-mails I get every day find regarding the new enhancement pill, cream or product unit. But it is limited for this kind of anonymous emails. Currently I have to watch out for you to enjoy or even tune in to hear those same hours on major TV shows as well as with the radio. Just what's more we should be generating cash income, or even that they would not still be on the air for w 22:55:04 eeks just after day, month after month. 22:55:13 maybe Google is trying to frame poor ol' JarvisCo 22:55:22 that's good enough for me 22:55:44 !perl print qw(yes no)[int(rand(2))] 22:55:46 no 22:56:01 perl disagrees, though I'm not sure I trust the decision making process. 22:56:55 !c int main(void){srand(time(NULL)); printf("%c\n","yn"[rand()/(4294967296U/2)]);} 22:57:02 err 22:57:05 !c int main(void){srand(time(NULL)); printf("%c\n","yn"[rand()/(4294967296U/2)]);} 22:57:07 double err 22:57:10 !c int main(void){srand(time(NULL)); printf("%c\n","yn"[rand()/(4294967295U/2)]);} 22:57:26 throw in a "return 0" for good measure. 22:57:28 the Perl is easier :) 22:57:31 !c int main(void){srand(time(NULL)); printf("%c\n","yn"[rand()/(4294967295U/2)]); return 0;} 22:57:50 CakeProphet: not needed in C99; although admittedly declarations for srand and time would be, and a declaration for printf is needed anyway but I know it works in gcc even without one 22:57:54 surely rand()%2 is fair? 22:57:57 if the distribution is uniform 22:58:08 ais523: do you need an include for any of that? 22:58:10 elliott: historical UNIX rand used to alternate odd and even 22:58:18 heh 22:58:28 That wasn't very random then now was it 22:58:54 -!- Sgeo_ has joined. 22:59:38 I wish every language had qw 22:59:44 and q 22:59:56 in some way or another. 23:00:04 not necessarily identical syntax. 23:00:12 but still convenient syntax nonetheless. 23:00:21 haskell does 23:00:24 -!- Sgeo has quit (Ping timeout: 245 seconds). 23:00:29 what's haskell's syntax for qw? 23:00:34 elliott: via TH you mean? 23:00:44 http://hackage.haskell.org/package/string-qq, http://hackage.haskell.org/package/string-quote, http://hackage.haskell.org/package/interpolatedstring-perl6, http://hackage.haskell.org/package/interpolatedstring-qq 23:00:54 oh my/ 23:00:55 there are more, but they're more templating languages than simple perl-style "" 23:01:19 nifty 23:01:29 no qw though. 23:01:38 unless that's part of the packages somewhere. 23:01:50 what is qw 23:01:54 qw(a b c) == ("a", "b", "C") 23:01:59 oh that would be easy to make 23:02:02 like 23:02:03 real easy 23:02:05 the easiest 23:02:07 yes. 23:02:11 > words"a b c" 23:02:11 ["a","b","c"] 23:02:17 with quasiqoters 23:02:28 also.. 23:02:34 qw#a b c# == ("a", "b", "C") 23:02:38 > let qw=words in qw[q|...|] 23:02:39 A section must be enclosed in parentheses thus: (q |...|)Not in scope: `|..... 23:02:48 though it's not quite as useful in qw as it is in q and qq 23:02:48 CakeProphet: "C"? 23:02:59 oh *c 23:03:10 yeah it randomly uppercases the last element of the list. 23:03:21 that's perl for you 23:04:37 !perl my $test = "c"; print qw(a b $test) 23:04:38 ab$test 23:04:43 no interpolation apparently 23:04:54 qqww 23:04:57 !perl my $test = "c"; print qqw(a b $test) 23:04:57 Can't locate object method "a" via package "b" (perhaps you forgot to load "b"?) at /tmp/input.23546 line 1. 23:05:07 heh. 23:05:30 ok i finally got so far into df to pick a site I hope it is a good site 23:05:46 I suspect qqw exists in Perl 6 23:05:55 although it'd probably be written qq:w or something like that 23:05:56 !perl my $test = "c"; print (qw(a b),$test) 23:05:57 abc 23:06:07 that's TWO whole extra characters. 23:06:08 monqy: um read the quickstart 23:06:10 oh, ofc, it's written «» 23:06:11 come on perl. 23:06:14 elliott: yes i am 23:06:14 monqy: you want to start somewhere pretty easy for your first fort 23:06:16 monqy: oh okay 23:06:18 (with <> being a perl5-style qw) 23:06:28 i spent a lot of time and effort trying to find somewhere easy :( 23:06:46 !perl my $test = "c"; print qw"a b $test" 23:06:46 ab$test 23:06:52 bah 23:07:01 monqy: you'll probably think your fortress is going to go perfectly then die of something really stupid but it is okay it gETS BETER.... 23:07:02 oerjan: so much for "do what I mean" :P 23:07:06 !perl my $test = "c"; print qqww"a b $test" 23:07:07 (after a few...hundred tries....) 23:07:21 http://wtfjs.com/2011/06/27/min-less-max ;; oh come on, this is desirable behaviour, I'm annoyed that Scheme doesn't mandate this 23:08:34 !perl my $test = "c"; print qw(a b),$test #lulz 23:08:35 abc 23:09:02 !perl print qqqsupq 23:09:19 !perl perl print qqxhix 23:09:20 syntax error at /tmp/input.31635 line 1, near "perl print" 23:09:25 oh no it is all snowy i thought it said it was temperate what have i done 23:09:29 !perl print qqxhi\nx 23:09:33 monqy: screenshot 23:09:41 of what 23:09:46 monqy: df 23:09:52 elliott: I guess alphas are not allowed 23:09:58 probably because that would be a terrible choice 23:10:09 monqy: also -minecraft is our main df discussion hub i can try and help you in there to avoid annoying CakeProphet and his perl fun 23:10:23 oh yeah I'm furious. 23:10:42 topic today: Perl fun 23:10:46 all other topics not allowed. 23:11:19 actually I might try DF myself after I get done with this parser business. 23:11:34 which requires that I stop getting distracted by perl.. 23:11:50 CakeProphet: istr that '' as delimiters turns off interpolation and thought maybe "" turned it on 23:12:00 but nah 23:12:05 yeah the '' is the only special case. 23:12:18 unless you count ()[]{} being a special case. 23:12:33 and <> and «» 23:12:44 together with all the other bracketlike characters in Unicode 23:13:05 I've never tried any of those so I wasn't sure if they worked like that or not 23:13:44 also, does sed or awk have those quoting constructs? 23:14:05 * CakeProphet is wondering where they originated. 23:22:36 " vs. ' is shell, of course... 23:24:14 and «» vs <> follows the same pattern 23:26:11 but what about q, qq, qw, and such 23:26:30 does awk and sed allow arbitrary delimeters for m/.../ and s/.../.../? 23:27:16 yes 23:27:18 well, near-arbitrary 23:27:52 `run echo test | sed 's=e=oa=' 23:27:55 toast 23:30:37 `run echo test | sed 'q/.../' 23:30:39 sed: -e expression #1, char 2: extra characters after command 23:35:12 you probably didn't mean q there 23:35:28 no I did I was testing if sed had such a thing. 23:35:46 in sed, all commands are single characters 23:35:51 and the 'q' command doesn't take an argument 23:36:11 it /does/ have such a thing 23:36:16 (see oerjan's test) 23:39:34 -!- cheater has quit (Remote host closed the connection). 23:41:58 oh hey cheater was here 23:42:00 I didn't even notice 23:44:54 he didn't say anything, I don't think 23:49:02 -!- yorick has joined. 23:55:34 -!- cheater has joined.