00:00:08 olsner: the point being you need something to start it off, a compiler for L when there is no compiler for L presently. 00:01:36 I _know_ some Smalltalker has done something imminently relevant to this discussion and to Feather 00:01:39 Argh 00:02:02 know as in you are guessing so, or know as in you remember somebody doing so? 00:02:20 also: if on this path you happen to find a good model of code serialization (not compilation) you should let me know about it 00:03:16 Know as in I remember someone doing so, although I guess the actual relevance of the project is questionable 00:03:27 I saw source code that started out in one language and turned into another 00:03:40 isn't that just a compiler. 00:03:55 Oh, you mean like within a source? 00:03:57 Yes 00:04:03 I guess that seems a bit like Forth 00:04:07 But it wasn't Forth 00:04:25 I suppose it depends on what you mean by "language". 00:04:41 I mean if you write enough functions is that a language, if you write macros does that make it a language, if you alter the parser... 00:05:09 At the very least the parser changed, but I think it was more fundamental than that 00:05:25 that sounds ugly and gross 00:07:14 I guess you could also incrementally alter the way the compiler works. 00:07:19 Found it 00:07:20 http://piumarta.com/software/maru/maru-2.4/test-pepsi.l 00:07:43 you can change binary lambda calculus into binary combinatory logic within 125 bits, but it all looks like 0s and 1s:-( 00:07:51 'course it's piumarta 00:07:59 piumarta? 00:08:06 http://www.dynamic-languages-symposium.org/dls-06/program/media/IanPiumarta_2006_OpenExtensibleDynamicProgrammingSystems_Dls.pdf 00:08:16 yeah one of his papers 00:08:25 I don't get the "'course it's piumarta" 00:08:34 because piumarta does all this stuff 00:08:39 (piumarta is great) 00:08:41 uhhhhh basically one of his papers had apply and eval as functions with definable multimethods 00:08:45 and yeah that 00:09:03 you should look up maru if you haven't 00:09:07 the vpri stuff he does does things like 00:09:13 pasting in the diagram of a tcp packet from the rfc directly 00:09:20 and it gives you a parser for them 00:09:26 Ok that's awesome. 00:09:26 and that's how they define the packet structure 00:09:41 Going to go read this presentation 00:13:26 http://piumarta.com/software/cola/ welp 00:13:40 pepsi and cola? 00:13:46 is there a theme here 00:13:49 guess he's thirsty 00:13:59 maru is named after some cat though 00:16:09 "Pepsi -- not quite The Real Thing 00:16:11 " 00:17:04 "(a white-paper advocating widespread, unreasonable behaviour) 00:17:05 " 00:17:58 I think ais523 would like this 00:18:00 Maybe? 00:18:47 maybe 00:20:23 Maybe I'll understand this COLA stuff if I read the whitepaper 00:20:24 Reading it now 00:20:35 and lo was sgeo drowned in sodas 00:24:43 i feel like writing a lightweight graph-oriented p2p distributed database 00:25:00 go 4 it 00:25:14 but then i think about network programming and I'm like NO 00:26:09 "(Readers under the age of 35, or those never significantly exposed 00:26:10 to an anglo-saxon culture, might have trouble figuring this one out.)" 00:26:22 Was there some sort of ad campaign where Pepsi was called fake? 00:26:27 A fake Coke? 00:26:57 new coke I think 00:27:01 New Coke. 00:27:10 scandal of the century 00:27:17 Personally I prefer Fentimans 00:27:23 The cola of Hexham 00:27:39 I have a dire warning: If anyone here ever considers setting up WPA2 Enterprise at home, think again. The radius server configuration almost broke my mind. 00:28:23 And don't talk to me about connecting windows clients to it. 00:28:26 Vorpal Enterprises Inc LLC GmbH is foiled once again. 00:28:38 Gregor, you forgot A/S and AB 00:28:52 HHI superiority remains unsurpassed 00:28:53 oh and Ltd 00:29:25 Vorpal: LLC means the same as Ltd 00:29:29 Of course, so does GmbH... 00:29:35 well yes 00:29:44 But LLC more literally does since they're in the same language X-D 00:29:50 Whoa 00:29:50 hm 00:29:56 Gregor, didn't know that, hm 00:30:05 also SSL/TLS certificate infrastructure is weird 00:30:07 My various nicks spell out the first three letters of my real name 00:30:27 Taneb, oh? 00:30:35 Taneb atriq Ngevd 00:30:38 NaT 00:30:42 NaThAn 00:30:50 right 00:31:04 -!- Taneb has changed nick to hendiadys. 00:31:26 Gregor, also I discovered two amusing bugs with this premium segment netgear router/AP 00:31:27 Surprised this isn't taken 00:31:55 hendiadys: Also free: Surprised 00:32:13 Gregor, both are related to not having the IP 192.168.1.1. Stuff breaks. For a start, RADIUS breaks, since it sends that IP hard coded in the RADIUS requests. Also it doesn't listen to telnet if that IP is not used. 00:32:26 This is going to give me a headache, isn't it? 00:32:27 "Messaging is therefore self-describing (the semantics of sending messages to objects are 00:32:27 described and implemented by sending messages to objects)." 00:32:28 Vorpal: Is there a REASON you wanted Enterprise at home? 00:33:11 Sgeo: just call it "metacircularity" and you'll sound smart without having to get it 00:33:14 Gregor, because I could? And I'm paranoid and like the idea of using certificates to limit who can connect, after all I use keys-only for ssh 00:35:18 * Sgeo gives up 00:35:23 Maybe I'll try reading it another day 00:35:28 Gregor, also hm, think of the possibilities with granting temporary access to guests, (using EAP-TTLS-MSCHAPv2 or PEAP obviously, using EAP-TLS would be far too annoying for that). Hey I could design a web interface for that 00:35:52 “Because I could” → nope 00:35:55 IRN BRU 00:36:14 Gregor, well, a lot of the stuff that happens in this channel is "because I could" 00:36:28 Vorpal: No, I mean, you clearly couldN'T ;) 00:36:44 Gregor, well I did manage in the end, I just suggest it wasn't worth the effort 00:36:55 Oh! 00:36:56 and probably will result in a lot of frustration 00:37:01 OK, I thought you'd tried and given up. 00:37:07 I don't think you said you got it working X-D 00:37:11 Gregor, I said it *almost* broke my mind 00:37:27 In no way does that suggest whether you made it work or not. 00:37:35 Gregor, also it is an axiom that I do not give up until my mind is broken 00:37:45 Right, that I didn't know X-D 00:37:56 Gregor, because I consider giving up as my mind breaking 00:38:20 unless I can prove it impossible of course, which it clearly isn't in this case, since it is being used all over the place 00:38:31 I try to keep my mind unbroken. 00:38:34 So I give up before that point. 00:38:39 ah okay 00:40:13 Gregor, anyway, the most annoying thing was probably how well Microsoft hid the checkbox for "do not prepend the computer name to the user name you enter in a totally different part of the property-dialog box tree thingy" 00:41:06 at least OS X didn't really hide the configuration, it was in a logical place, just not shown on initial connection attempt 00:41:43 So, you can have temporary guests so long as they go through some insanely complicated configuration process first? 00:42:37 Gregor, it isn't very complicated on the client side on linux or android though 00:42:41 -!- dessos has joined. 00:42:46 really simple there really 00:43:07 Gregor, but I have no idea why microsoft wanted to make it more complex than required 00:44:42 Gregor, actually, unless you use pattern lock or higher (that is, pin code or password), you can't seem to import the CA certificate of the RADIUS server on Android into the certificate store. 00:44:53 so I guess that could potentially count as complicated on Android 00:45:10 not sure what sort of person wouldn't use at least pattern lock though 00:45:41 (nor can I imagine someone using password to unlock the screen of their phone, since the screen timeout is so short on a phone) 00:46:14 I don't use a pattern lock. 00:46:19 My phone doesn't lock. 00:46:22 oh? 00:46:26 Just swipe-to-go. 00:46:28 hm 00:46:39 well I guess I found such an user then 00:46:52 I personally use pattern lock 00:51:35 -!- hendiadys has quit (Quit: bedtime for hendiadys). 01:02:06 -!- nooga has quit (Ping timeout: 276 seconds). 01:10:36 -!- copumpkin has quit (Ping timeout: 240 seconds). 01:11:08 -!- copumpkin has joined. 01:13:24 How much cheating would be acceptable in a Feather-like language? <-- i would think it is his unwillingness to cheat that makes ais523 crazy thinking about feather. otoh i doubt he would care about cheating that had no _observable_ effect. 01:15:15 Does "results in the language actually being able to run on a computer" count as an observable effect? 01:16:13 You mean the cheat is that it exists? 01:16:16 feather is runnable 01:16:31 if you think it is inherently not you don't understand it... 01:17:32 ' I don't think a) is solvable, while remaining computable, but you can fake it using retroactive changes 01:17:32 ' 01:18:05 well, there you go, he's obviously fine with faking it! as long as it doesn't result in a parade of dumb jokes 01:19:01 dont forget the 2% community service. parade of dumb jokes is inevitable haven't you seen them 01:20:40 `quote Bike.*joke 01:20:44 yeah whatever 01:20:47 888) i don't even know anything about feather and i'm getting sick of the time travel jokes 01:20:56 wait is that really the command 01:22:36 which command 01:32:50 I don't like daylight saving time. How many other people in here hate daylight saving time? 01:35:40 time sucks 01:36:13 Do you mean spacetime? 01:36:51 no, i mean time 01:38:51 Space sucks too 01:40:07 i hate time in general but especially daylight savings time. the worst time. 01:45:08 -!- hagb4rd has quit (Quit: hagb4rd). 01:45:42 -!- hagb4rd has joined. 01:48:20 Are the papers mentioned in hoogle's readme interesting? 01:52:10 -!- DHeadshot has quit (Read error: Connection reset by peer). 01:52:16 -!- DH____ has joined. 02:11:00 -!- FreeFull has quit (Ping timeout: 264 seconds). 02:15:49 I'm going to go watch some Farscape per Phantom_Hoover's suggestion. 02:17:30 yesssss oh shit does this mean i have to watch that thing 02:17:37 Yes. 02:17:48 On the other hand, "that thing" is only 12 30-minute episodes. 02:17:50 total 02:18:26 what's that thing 02:18:29 Also, even if it seems not interesting for the first few episodes, keep with it. Telling you how long to keep with it would be spoily 02:18:34 Puella Magi Madoka Magica 02:18:40 that was my guess 02:19:52 i think Fiora already spoiled ~the twist~ but also i have since forgotten what it is 02:20:38 Oh hey Farscape's on Hulu :D 02:21:29 I wonder if the calculus of constructions with the axiom of choice would be equivalent to ZFC. 02:21:46 Sgeo, fuck you americans 02:21:57 the tribulations i had to go through 02:22:01 to torrent it 02:22:50 How far could you get in defining V in the CoC? Start by defining a well-ordering. 02:23:00 i nearly gave up when the resolution inexplicably dropped to the size of a postage stamp in season 3 02:23:24 what's this "farscape" thing is it good 02:23:42 Mahō Shōjo Madoka Magika is actually fairly good, though it's very not-obvious at the start. 02:23:44 yes 02:23:47 Then, for each well-ordering n, say that V_n is any set of elements of V_m, where m < n, and if m and m' are isomorphic, then it contains the same elements of V_m as of V_m'. 02:24:20 * Bike blinks at the macrons. hoighty-toighty 02:24:24 I doubt you can actually write that definition in CoC. 02:24:26 Sgeo: It's only slightly spoilery to say that it's a deconstruction. 02:24:34 hiss 02:24:39 Bike: I romanize stuff right. :P 02:24:49 Sgeo: are you aware of any realistic fantastical anime? 02:24:50 Phantom_Hoover, it's the SG-1 guy! 02:24:54 mahou shoujou madouka magika 02:25:02 yes 02:25:03 Sgeo: more realistic than the Fullmetal Alchemists, but it's allowed to be more fantastical as well. Or less. 02:25:14 I only watched one episode of FMA 02:25:24 damned actor-stealers 02:25:25 realistic how 02:25:27 Bike: Uh, only the first two "o"s are long. 02:25:28 I hope it was of the 03 and not the 09. 02:25:35 Bike: "Mahou Shoujo Madoka Magika" 02:25:36 tswett, I don't know 02:25:40 pikhq: you doun't say 02:25:42 what's this "farscape" thing is it good 02:25:43 y 02:26:12 Realistic in the sense that there aren't very many things that obviously wouldn't have happened if it weren't necessary for the story. 02:26:24 realistic/down-to-earth fantasy..? hmm 02:26:25 realistic is the wrong word for that 02:26:35 there is probably a right one but i dunno what it is 02:26:35 what a definition. 02:26:38 naturalistic maybe 02:26:50 Yeah, I dunno what the best word would be. 02:27:00 You should watch Haibane Renmei. (Hauiubauneu Reunmeuiu) 02:27:03 I watched two episodes of Smallville; it seems to be a good antiexample of what I'm talking about. 02:27:29 what's this "Hauiubauneu Reunmeuiu" thing is it good 02:27:34 I guess when I think of "realistic" anime with fantastical elements I think of things like patlabor 02:27:39 it's pretty good 02:27:42 A tornado strikes, and four people are almost killed. It just so happens that all four people are major characters in the story. 02:27:48 also it's by yoshitoshi abe if you like that guy 02:27:58 whats anime 02:28:06 who knows 02:28:09 Chinese cartoons. 02:28:20 Clark Kent's space ship takes off and crash lands itself in a corn field. I guess it's designed so that if there's no pilot inside, it just flies randomly. 02:28:23 Phantom_Hoover, "Commander Kryten" 02:28:24 wat 02:28:29 monqy: Anime is short for animation 02:28:32 crichton, you idiot 02:28:38 zzo38: ah, that makes sense 02:28:39 like michael crichton 02:28:51 That little chip thingy is essential to the ship's functioning. So they put it on the exterior of the ship with nothing holding it down. 02:28:52 tswett: that would be pretty entertaining in the real world, you must admit 02:28:59 Farscape is a combination of every single SF show ever, isnt it? 02:29:19 Is it a combination of Ultraviolet and Aeon whatever too 02:29:29 is farscape an anime 02:29:30 i don't think so 02:29:32 Flux apparently 02:29:35 Actors from SG-1, a name from Red Dwarf 02:29:40 It's apparently every anime, monqy. 02:29:48 hm, is that good or bad 02:29:49 probably would save us all a lot of time to watch it really 02:29:50 (yes I know the actors went from Farscape -> SG-1) 02:29:55 It still feels weird 02:29:55 i've heard some weird things about anime 02:30:08 things you wouldn't want to tell a child to know 02:30:11 i like how the name Sgeo is having trouble with is that of the ordinary american human 02:30:30 I've heard that if you call yourself kawaii in a mirror three times it becomes true, horribly true. 02:31:04 I've heard that most anime is made in Japan. 02:32:24 i've heard it's made by cuttlefish as part of a top-secret experiment to teach them a trade skill 02:32:38 That would explain Ika Musume 02:33:01 http://www.youtube.com/watch?v=gUwQwtDpdE4 animes 02:34:02 hahaha Bike do you think we're stupid 02:34:10 everyone knows it's vietnamese 02:35:38 I've never seen any Vietnamese TV. Maybe it's good. 02:53:21 -!- nooodl has quit (Ping timeout: 248 seconds). 02:55:31 Will ISE WebPACK run on a VM running CentOS and which is not connected to the internet? 02:58:14 Phantom_Hoover, I'll re-watch tomorrow. Kind of annoying trying to watch with TV in background, can't hear what aliens are saying 02:58:45 -!- sebbu has joined. 02:59:06 -!- sebbu has quit (Changing host). 02:59:06 -!- sebbu has joined. 03:03:00 All right, I'm watching Ha-Re. 03:24:04 -!- SirCmpwn has quit (Ping timeout: 248 seconds). 03:24:06 -!- ineiros has quit (Ping timeout: 264 seconds). 03:24:11 -!- SirCmpwn has joined. 03:24:32 -!- ineiros has joined. 03:32:02 -!- carado_ has joined. 03:34:00 -!- carado has quit (Ping timeout: 256 seconds). 03:35:15 I think the TOGA computer could be implemented using only two 7400 series ICs. 03:35:44 (This is not including the ROM, RAM, and clock, but those aren't a part of the CPU) 03:36:51 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 03:41:02 ion: I like this attitude to impurity 03:41:12 hehe 03:41:15 racial? 03:41:27 bike: Even worse 03:41:49 Is this a red cow thing 03:45:37 -!- sebbu2 has joined. 03:45:37 -!- sebbu2 has quit (Changing host). 03:45:37 -!- sebbu2 has joined. 03:47:45 -!- sebbu has quit (Ping timeout: 248 seconds). 03:51:07 -!- DH____ has quit (Read error: Connection reset by peer). 03:51:13 -!- DHeadshot has joined. 03:56:38 -!- monqy has quit (Quit: hello). 04:01:12 Specifically 74175 and 74161 04:04:41 zzo38: you could use a 555 (and a few passive linear components) for the clock, which isn't 7400 series but is carried by the same sort of distributors 04:06:41 ais523: OK, I suppose it can. 04:14:30 -!- carado_ has quit (Ping timeout: 264 seconds). 04:20:00 -!- TeruFSX has joined. 04:29:56 -!- Arc_Koen has quit (Quit: Arc_Koen). 04:39:30 -!- monqy has joined. 04:45:36 -!- ogrom has joined. 04:48:36 What's the difference between maru and cola? 04:59:05 :t (a -> b) -> (b -> a) -> IORef a -> IORef b 04:59:06 parse error on input `->' 04:59:15 derp 04:59:20 @hoogle (a -> b) -> (b -> a) -> IORef a -> IORef b 04:59:21 Prelude until :: (a -> Bool) -> (a -> a) -> a -> a 04:59:21 Prelude (.) :: (b -> c) -> (a -> b) -> a -> c 04:59:21 Data.Function (.) :: (b -> c) -> (a -> b) -> a -> c 05:12:24 IORef isn't Invariant 05:13:33 Invariant? 05:13:40 @hackage invariant 05:13:40 http://hackage.haskell.org/package/invariant 05:15:09 If there was a way to get notified when an IORef changed, could IORef be made invariant? 05:15:16 wow, the hackage page on IO is huge 05:15:24 Bike: that shouldn't really be surprising 05:15:44 it's not, but it's still the biggest page i've seen on hackage 05:15:46 basically because anything that interacts with system calls has to be in IO, and there are a lot of system calls 05:15:57 and a lot of sugar-around-system-calls, too 05:16:02 "File and directory names are values of type String, whose precise meaning is operating system dependen" oh boy 05:16:39 @hoogle () 05:16:39 System.FilePath.Windows () :: FilePath -> FilePath -> FilePath 05:16:39 System.FilePath.Posix () :: FilePath -> FilePath -> FilePath 05:16:54 hmm… Cyrillic is a lot easier to read if your default interpretation of letters is as Greek 05:17:00 rather than as English 05:17:06 seems to be a lot of inspiration from there 05:17:13 cyrillic developed out of greek and english developed out of latin 05:17:20 Bike: for aimake2 I invented an OS-independent filename format 05:17:42 Bike: FilePath is broke as hell :( 05:18:07 for relative paths, it's dir/dir/dir/dir/filename, for absolute paths, it's root/dir/dir/dir/dir/dir/filename, there's a boolean saying whether it's relative or absolute, and any slashes, colons, and backslashes in the components are escaped with backslashes 05:18:17 ais523, did you look at cola and maru? 05:18:20 (colons are escaped so that colon can be used as an end-of-string marker when embedding them in longer strings) 05:18:21 Sgeo: no 05:18:28 cola is a sort of soft drink, isn't it? 05:18:31 but I don't know what maru is 05:18:35 a cat 05:18:39 @google maru cat 05:18:41 http://www.youtube.com/watch?v=8uDuls5TyNE 05:18:44 perfect 05:19:02 ais523, Cola: http://piumarta.com/software/cola/ 05:19:17 Maru: http://piumarta.com/software/maru/ 05:19:36 Sgeo: it's sort-of like you're doing that thing zzo38 does where you talk about something out of context, without indications of what it is and why other people should be interested in it 05:19:47 and tend to not get a response for that reason 05:20:32 ais523, it vaguely reminds me of your motivations for Feather. Cola is supposed to be completely self-describing 05:20:42 "is completely self-describing (from the metal, or even FPGA gates, up) exposing all aspects of its implementation for inspection and incremental modification;" 05:20:57 btw i think i'm far enough along in lyah to write a monad tutorial 05:22:12 Sgeo: that wasn't really the motivation for Feather, directly, or at least it's only half of it 05:22:29 the point of Feather is that it has to not require a huge amount of complex structure to accomplish that 05:22:45 oh, maru is tiny 05:22:50 i.e. all the complexity should be added on lata 05:22:56 it's like what, a few pages of C and then three of itself? 05:22:58 *later 05:23:09 hmm, the pages of C disappoint me 05:23:47 Anyway Another Haskell Question: Why does, say, digitToInt throw an exception instead of return a Maybe Int or what have you? 05:24:24 Bike, whenever you have questions of that sort, where a different meaning of a function or whatever would make more sense, it's probably "idiotic historical reason" 05:24:33 hmm, maru just looks to me like yet another lisp 05:24:38 even if it isn't lisp 05:24:45 the interest seems to be the fact that it has a self-hosted compiler 05:24:54 which is true of basically every functional language in existence 05:24:59 Sgeo: I try not to assume sad things. 05:25:23 even brainfuck has a self-hosted compiler 05:25:33 Plus there could be other reasons. 05:25:52 Like, should there be an Error monad you can stuff whatever information into? Where would you use that and not Maybe? Bla bla. 05:26:06 Bike: there's Either 05:26:21 elliott: btw, is EitherT possible as a monad transformer, or doesn't it make sense? 05:27:01 I still don't have a good intuitive model of what a monad transformer actually is/does 05:28:11 A monad transformer makes a new monad from some other monad, by homomorphism, I think, isn't it? 05:28:25 There is EitherT monad transformer, in some package 05:28:48 hmm, so I guess it does make sense 05:28:59 Bike: Maybe is a monad 05:29:05 ais523: EitherT exists, sure 05:29:15 does that answer my question in a way i don't see 05:29:18 Bike: oh I guess not 05:29:30 Bike: anyway as a common lisper you should be accustomed to things being stupid because people were idiots once 05:29:35 your whole language is an example 05:29:37 quite 05:30:02 oh yeah, EitherT makes sense because it's equivalent to (and likely implemented as) manually packing and unpacking an either at every >>= and return 05:30:05 did lisp kill your parents or something, also 05:30:09 yes 05:30:13 how did you discover my secret 05:30:13 Maybe can be like Either () 05:30:21 a doodyheaded orphan 05:30:25 you're truly a scoundrel, sir 05:30:38 elliott: btw is it wrong that in OCaml, I use List as Maybe for nicer syntax and better library support? 05:30:50 what's wrong is ocaml 05:30:54 (ocaml also killed my parents) 05:31:06 There ought to be Alternative and MonadPlus for Either x, too, if x is Monoid; but, there isn't. 05:31:48 I've heard that mp4 or is it mp5 is nice? 05:31:56 Or.. whatever the macro-y thing for OCaml is 05:32:00 mp4 05:32:49 mp3 05:33:06 camlp4, i guess 05:33:07 catchy! 05:33:24 http://www.podval.org/~sds/ocaml-sucks.html i really shouldn't google things 05:34:16 i should just live in a box, in connecticut. 05:34:20 i read that page once and thought it was silly and went up to the enclosing directory and saw a link to esr's "Anti-Idiotarian Manifesto" and then I decided to ignore everything they say forever 05:34:24 true story! 05:34:36 nice. 05:34:38 well half silly and half obviously dumb things 05:34:42 er as in obviously dumb about ocaml 05:34:45 (this is because ocaml is dumb) 05:34:47 btw esr came by #lisp the other day 05:34:59 he was convinced to use python instead 05:35:04 Bike: by #lisp? 05:35:16 the channel 05:35:19 and were they trying to convince him to use lisp, or to not use lisp? 05:35:44 oh, he wanted to make some python thingamajig faster and he said something about liking lisp back when he was an undergrad bla bla bla 05:36:20 elliott: Haskell is the Java of functional programming languages, it lives too many levels of abstractions up despite that being technically correct 05:36:20 "Additionally, functions take a fixed number of arguments, so, to multiply three numbers, you have to call Int64.mul twice." 05:36:52 varargs are nice, but I wouldn't really use * as a crowning example 05:36:56 I would use lift. 05:36:56 ais523: random FUD nonsense is the IRC statements of ais523? 05:36:57 Bike: and to multiply an arbitrary number of numbers, you use fold 05:37:12 elliott: I'm just trying to be as inflammatory as you, but I'm not very good at it :( 05:37:15 I like this "No Polymorphism" section which amounts to "the compiler can't infer rank-2 types" 05:37:23 ais523: well the trick is you just say things suck 05:37:26 people can figure out why for themselves 05:37:42 hmm 05:37:52 i just like the horror i'm hearing in the voice 05:37:57 you have to call the function TWICE 05:38:28 in practice it's hard to implement a varargs multiplication that doesn't operate internally via splitting it into separate multiplications 05:38:56 "higher order functions taking higher order functions as arguments": couldn't he just say "third order functions"? 05:39:18 that's like saying "numbers greater than 1, and by more than 1!" 05:39:28 peano haskell 05:40:06 Pattern matching 05:40:06 This is a very powerful tool, should be easily implemented as a Lisp macro using DESTRUCTURING-BIND. 05:40:12 this is the most smug lisp weenie page ever 05:40:58 some of the things he lists as disadvantages, such as inability to redefine the internals of a module out underneath it, are probably not actually disadvantages 05:41:48 * Sgeo would consider that a disadvantage... 05:42:06 you can't definedly do it in cl anyway `-` 05:42:10 Or... hmm, maybe allow modules to define points at which internals are allowed to be redefined? 05:42:51 Perhaps it would be good, to allow modules to define the point at which internals are allowed to be redefined, possibly. 05:43:02 It might help a few things, possibly? 05:43:24 hmm, why is "Assembly" written in a fixed-width font? I can sort-of see that for the names of other languages 05:43:32 but "Assembly"? 05:43:37 or just define defineable things you can piggy back your own behavior on, like typeclasses or generics 05:43:37 Consistency? 05:43:42 -!- DHeadshot has quit (Read error: Connection reset by peer). 05:44:06 -!- DHeadshot has joined. 05:49:56 elliott, apparently IO (IORef a) is a monad 05:50:57 * Sgeo goes to read http://blog.ezyang.com/2011/06/the-iva-monad/ 05:54:12 But fmap runs I/O actions so it doesn't seem a functor? 05:55:01 Actually, perhaps that is OK, because it only does readIORef and newIORef 05:55:11 It never writes them, so it is OK, I guess 05:56:49 -!- DHeadshot has quit (Read error: Connection reset by peer). 05:57:07 Actually, no, I don't think so, since other things could still access the IORef 05:57:51 And to compare them 05:58:18 Meaning that fmap id = id doesn't hold because it is a different IORef, so won't be equal 05:59:17 Therefore it isn't a monad 06:00:03 The value inside the IORef would be the same though 06:00:07 Oh... hm 06:00:50 But other things can still write to IORef and check if one is equal to another 06:01:32 (I am talking about the "R" monad which they defined) 06:11:51 do { a <- runR r; b <- runR (id <$> r); print (a == b); } won't be equal even if do { a <- runR r; b <- runR r; print (a == b); } is (although that too might be unequal, but it might be equal, too; but the first one is unequal regardless of if the second one is equal or unequal) 06:13:00 But there is read-only IORef types, specifically (CoYoneda IORef) 06:15:38 I have no idea waht CoYoneda is 06:15:56 @hoogle CoYoneda 06:15:56 No results found 06:16:16 good name though 06:16:27 let's just name everything after that guy. 06:17:04 It is the left Yoneda lemma 06:17:47 Anyway Another Haskell Question: Why does, say, digitToInt throw an exception instead of return a Maybe Int or what have you? <-- digitToInt is mainly intended to use with readInt, which takes a separate function to test whether the digit is in range. 06:18:45 CoYoneda :: forall f x y. (x -> y) -> f x -> CoYoneda f y; is I think, its definition 06:19:19 edwardk has called it Yoneda, but he also called the right Yoneda lemma also Yoneda, which causes confusion. 06:22:23 You cannot write to the IORef in CoYoneda IORef because the type which it stores cannot be known. 06:22:54 -!- TeruFSX has quit (Ping timeout: 252 seconds). 06:23:43 But you can read it by readCoYonedaIORef (CoYoneda x y) = x <$> readIORef y; 06:26:16 `fetch http://oerjan.nvg.org/esoteric/emmental/ul.emm 06:27:01 * oerjan swats HackEgo -----### 06:27:20 `ping 06:27:34 2013-03-10 06:27:33 URL:http://oerjan.nvg.org/esoteric/emmental/ul.emm [16417/16417] -> "ul.emm" [1] 06:27:36 pong 06:27:41 whew 06:28:46 `emmental -f ul.emm -e ((Ho hum)!:aSS)(Ho hum)!:aSS 06:28:47 emmental: emmental.hs:42:1-56: Non-exhaustive patterns in function pop 06:28:57 funny guy 06:29:56 oh duh 06:30:37 `run emmental -f ul.emm -e '((Ho hum)!:aSS)(Ho hum)!:aSS' 06:30:40 ​((Ho hum)!:aSS)(Ho hum)!:aSS 06:30:45 there you go! 06:33:02 `run emmental -f ul.emm -e '(0)S((0)(1))(~:^:S*a~^~*a*~:^):^' 06:33:26 there's a possibility it's too slow for that. 06:33:33 No output. 06:34:17 `run emmental -f ul.emm -e '(0)S((0)('"\n"'))(~:^:S*a~^~*a*~:^):^' 06:34:48 No output. 06:34:54 hmph 06:35:08 `run echo -f ul.emm -e '(0)S((0)('"\n"'))(~:^:S*a~^~*a*~:^):^' 06:35:09 ​-f ul.emm -e (0)S((0)(\n))(~:^:S*a~^~*a*~:^):^ 06:35:19 oh it's not an actual newline 06:36:34 `run echo -f ul.emm -e $(echo '(()(*))(~:^:S*a~^a~!~*~:('; echo '/)S^):^') 06:36:35 ​-f ul.emm -e (()(*))(~:^:S*a~^a~!~*~:( /)S^):^ 06:36:47 `run echo -f ul.emm -e "$(echo '(()(*))(~:^:S*a~^a~!~*~:('; echo '/)S^):^')" 06:36:49 ​-f ul.emm -e (()(*))(~:^:S*a~^a~!~*~:( \ /)S^):^ 06:36:59 `run emmental -f ul.emm -e "$(echo '(()(*))(~:^:S*a~^a~!~*~:('; echo '/)S^):^')" 06:37:30 No output. 06:37:41 `run emmental -f ul.emm -e "$(echo '(()(*))(~:^:S*a~^a~!~*~:('; echo '/)S^):^')" | head -5 06:38:12 No output. 06:38:19 it worked on my computer :( 06:39:32 `run emmental -f ul.emm -e "$(echo '((y'; echo ')S:^):^')" | head -5 06:40:03 No output. 06:40:27 `run emmental -f ul.emm -e '(:aSS):aSS' # This worked a moment ago 06:40:31 ​(:aSS):aSS 06:41:13 `run emmental -f ul.emm -e "$(echo '((y'; echo '):*:*:*S')" 06:41:16 No output. 06:41:22 wtf 06:41:28 `run echo -f ul.emm -e "$(echo '((y'; echo '):*:*:*S')" 06:41:29 ​-f ul.emm -e ((y \ ):*:*:*S 06:41:35 oh duh 06:41:39 `run echo -f ul.emm -e "$(echo '(y'; echo '):*:*:*S')" 06:41:41 ​-f ul.emm -e (y \ ):*:*:*S 06:41:48 `run emmental -f ul.emm -e "$(echo '(y'; echo '):*:*:*S')" 06:41:52 y \ y \ y \ y \ y \ y \ y \ y 06:41:59 sheesh 06:42:31 well no use trying anything bigger :P 06:43:37 hi 06:43:46 hello! 06:43:58 my underload implementation in emmental is slow! 06:44:45 Is it being too fast 06:44:49 which is expected, really - it optimizes for minimal number of instructions and reserved symbols, not speed. 06:45:11 `cat ul.emm 06:45:13 ​###1-1111-1#11#1-! \ ###1-1111-1#11##1##1--1--! \ ###1-1111-1 #1#11-11 # ! \ ###1-1111-1 ####1-11-11- #1 ! \ ###1-1111-1 ##1##1--11- #11 ! \ ###1-1111-1 #1#1##1--11- #11##1-1- ! \ ###1-1111-1 #1##1--111 #1##1-- ! \ ###1-1111-1 ###1#11-1-1- #111111 ! \ # \ ###1-1111-1 \ ######1###1###1###1##1###1###1##1 ###1##1####1##1#1##1##1#1 \ ####1## 06:45:22 Err 06:45:24 (and i suspect the emmental interpreter isn't optimal either.) 06:45:31 I just read some blatantly false documentation on Hackag 06:45:33 Hackage 06:45:38 `file bin/emmental 06:45:41 bin/emmental: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped 06:45:58 oh "minimal number of instructions" is "minimal number of _different_ instructions". 06:45:58 (And by blatantly false I mean it says it returns a True or False when neither is in sight in the type) 06:46:05 can I see, sgeo? 06:46:08 so it's not golfed. 06:46:19 http://hackage.haskell.org/packages/archive/IfElse/0.85/doc/html/Control-Monad-IfElse.html 06:46:21 awhen 06:46:36 `file src/emmental.hs 06:46:38 src/emmental.hs: UTF-8 Unicode English text 06:46:46 Jafet: you might try that. 06:46:53 these docs seem just kind of bad 06:47:01 -!- FreeFull has joined. 06:47:17 (also isn't cond just guards or) 06:47:34 oh, a list, duh 06:47:39 fuck 06:47:58 `url src/emmental.hs 06:48:02 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/src/emmental.hs 06:49:16 Authored by Ørjan Johansen. 06:49:32 https://github.com/mmirman/ImperativeHaskell/blob/master/Main.hs 06:50:50 http://kormacode.blogspot.com/2011/11/c-style-haskell_10.html 06:51:34 :t (=<<) 06:51:36 Monad m => (a -> m b) -> m a -> m b 06:51:50 ... 06:53:48 Bike: its flip (>>=) 06:54:55 Jafet: um the Emmental interpreter is cpressey's, i just modified it a little to make it useable on HackEgo. 06:55:11 elliott: yes the "..." was the lack of sound of me imagining slapping my forehead. 06:55:30 http://hackage.haskell.org/packages/archive/simple-observer/0.0.1/doc/html/src/Control-Observer-Synchronous.html 06:55:33 but: is there a point to that behind syntactic convenience 06:55:41 well it e.g. matches the order of ($), (<$>) 06:55:46 Why does this use MVar instead of... TVars or IORefs? 06:55:58 you may find more at http://esolangs.org/wiki/Emmental#Computability_class 06:56:01 are you just going to go through random packages on haskell and ask us why they're wrong all day.... 06:56:04 *hackage 06:56:31 sgeo could become a masked haskell vigilante 06:56:59 oerjan: "Haskell program" is a 404 HTH HAND 06:57:09 a shuriken strikes above my head. "you don't need a lambda there!" it is the Mask 06:57:21 oops 06:57:23 maskell? work with me sgeo 06:57:51 oerjan: "By the necessities of this kind of Emmental programming, 10 byte values have been reserved for the interpreter's internal use. These are all non-printable control codes." pfft, you should have taken the opportunity to use []<> 06:57:52 The masked raskell 06:58:24 elliott: try now, i somehow switche Unl and Emm in the filename :P 06:58:31 *switched 06:58:47 yep that works 06:58:54 has an encoding problem, though 06:58:58 what 06:59:10 - By Ørjan Johansen, February-March 2013. 06:59:19 possibly IE manages to guess the right encoding there. 06:59:28 um it's UTF-8 06:59:36 yes but your server is not transmitting that fat 06:59:37 *fact 06:59:46 *sigh* 06:59:46 (and hence it's failing to display the non-ascii utf-8 in my browser) 06:59:47 I do not understand OI at all 07:00:07 also: lens and a license that actually exists? and type signatures??? the enterprisey age of oerjan begins 07:00:10 that is a fantastic name, assuming it's some kind of opposite of IO 07:00:26 http://hackage.haskell.org/packages/archive/oi/0.2.1.0/doc/html/Data-OI.html 07:00:37 and by fantastic i mean laughing for a few minuts straight followed by ramming my head into a wall in pained desperation 07:00:45 it hurts sgeo. it really hurts 07:01:07 as I understand it OI doesn't work. 07:01:26 «Datatype for intermediating interaction: OI has two states (programmer cannot distinguish), non-expressed and exressed. `Non-expressed' indicates that no computation is assigned. In other words, it's value is never denotated by any expression. » is it wrong to judge a library by its docs grammatical errors 07:01:37 elliott: i even imported all modules either qualified or with import lists 07:01:39 (if it is i want to be right. sorry) 07:01:48 (even lens, it was shorter than i feared) 07:02:12 oerjan: there is Control.Lens.Operators for when you want to import Lens qualified but still use the infix, btw 07:02:52 though I view explicit import lists for "standard" packages like base and containers as insanity-inducing. and then add lens to that list to avoid additional insanity. 07:04:28 elliott: the thing is that other people view packages missing explicit import lists a insanity-inducing when they break on the slightest upgrade 07:04:45 *as 07:05:15 admittedly i only added the list for lens at the last minute. 07:05:33 oerjan: well the point is that base etc. are standard. and that the time you spend maintaining those import lists is longer than the time it takes to fix stuff on upgrades, especially when versioned dependencies mitigate the problem. (ghc has policy not to use them for this reason btw) 07:05:45 and then you add lens even though it isn't stable at all because every rule needs an exception :P 07:06:07 elliott: the insanity is when someone _else's_ package breaks and you cannot get hold of them to fix it. 07:06:13 or so i hear. 07:06:22 ah. so you believe your coding style has an influence on the world :P 07:06:30 nah. 07:06:39 i just felt like being enterprisy. 07:06:42 *ey. 07:07:25 like, i commented almost everything, added type signatures to just about everything, used the prettyprint module... 07:07:34 and lens. 07:07:52 i'm proud of you, son 07:08:14 should there be a book like Real World Haskell, except Enterprise Haskell instead of that thing i just named 07:08:19 and did a couple of refactorings. 07:08:40 Bike: should there be something like jazz, but more like a banana 07:08:44 instead of jazz 07:08:51 thinking.... yes 07:08:56 fuck bananas, though 07:09:05 also that already exists: free jazz. 07:20:40 I try to install one simple package, and it feels like it's compiling half of Hackage 07:22:18 What does it feel like to compile half of Hackage? 07:22:43 It feels like I should go to sleep instead of waiting up for this thing to finish 07:22:56 Well you did lose a whole hour. 07:23:48 asjdfhklasjdfhlaksjdfh 07:24:07 The actual package that I wanted failed to compile because of lack of FlexibleContexts 07:31:14 elliott: FEATURED LANGUAGE BLURB NOW INACCURATE, HTH 07:31:33 ( damn you) 07:35:00 -!- Garuda has joined. 07:35:18 oerjan: its ais523's job 07:35:27 OKAY 07:36:39 fixed 07:36:44 ofc, it's a wiki, you could fix it yourself :) 07:36:56 -!- Garuda has left ("Leaving..."). 07:36:58 OH 07:37:19 * oerjan wasn't sure how to formulate, he claims 07:38:15 also people aren't used to just casually editing the main page 07:38:47 it's a black hole of templates 07:39:53 rip garuda 07:40:07 ais523: for what it's worth, I'd rather they don't get into the habit. because do you remember NSQX. 07:40:32 elliott: it's OK if they're oerjan 07:40:38 YAY 07:40:41 nsqx? 07:40:48 hmm, I should just make oerjan an admin. that way he'd be obligated to fix this kind of stuff 07:40:49 don't ask 07:40:51 Bike: um... 07:40:52 `quote NSQX 07:40:57 No output. 07:41:00 what. 07:41:00 Oh. 07:41:01 `quote NSQX 07:41:02 `pastlog 07:41:03 No output. 07:41:05 elliott: I don't think there are any 07:41:08 no, what, there was an NSQX quote 07:41:13 maybe it got penta`quoted 07:41:14 `quote Well.*day 07:41:17 No output. 07:41:19 I'll wait here. 07:41:19 HELP 07:41:20 `help 07:41:21 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 07:41:31 if someone removed it I will slay them 07:41:34 No output. 07:41:42 elliott: this is all your fault for getting people into the habit of deleting quotes hth 07:41:47 Bike: here you go: 07:41:49 http://codu.org/projects/hackbot/fshg/index.cgi/rev/df5488147554 07:41:50 http://codu.org/projects/hackbot/fshg/index.cgi/rev/9673f347ec4d 07:41:59 the first one especially. 07:42:22 elliott: those don't really get across how NSQX behaved 07:42:24 so far he is the only person to have ever evaded a block on the esolang wiki 07:42:32 elliott: not counting spambots? 07:42:38 those aren't people, ais523 07:42:43 and possibly whoever it was who was impersonating lament? 07:42:43 A very enthusiastic day. 07:43:10 Bike: this may also help http://esolangs.org/wiki/User_talk:NSQX 07:43:17 that was kind of boring though did y- oh 07:43:32 pictured: my skill at diplomacy gradually weakening 07:43:40 btw enthusiasm isn't usually a quality that i would ascribe to units of time 07:44:15 oh another good nsqx quote (nsquote) 07:44:16 This seems like a good idea, and I support it, but I suspect NSQX will manage to mess it up somehow. —Maharba 05:45, 22 April 2012 (UTC) 07:44:26 nsqxote? 07:44:49 don nsqxote 07:44:55 wow it's weird seeing you like, write actual sentences 07:45:08 yeah i try to avoid doing it 07:45:12 in the past 07:45:18 wow, nsqx was less than a year ago 07:45:21 well 07:45:21 i guess that makes it ok, just don't do it again 07:45:24 I thought it was further back, somehow 07:45:32 or in another place i can see it, retroactively speaking 07:45:36 you should have seen my on-channel outburst when i woke up and the main page was totally fucked and recent changes had like 500 changes by one guy in it 07:45:45 it involved a lot of allcaps yelling asking what the fuck is going on 07:45:52 that's what nsqx did? 07:46:16 http://esolangs.org/w/index.php?title=Main_Page&oldid=31480 07:46:18 nsqx's main page 07:46:26 except the template he used got deleted 07:46:36 also http://esolangs.org/wiki/Nonsense_Query_List. 07:47:13 man, i've seen sql worse than that. 07:47:34 elliott: are you sure about that being nsqx's main page? apart from the formatting error, it looks like the current one 07:47:44 Bike: oh right he also started botting 07:47:45 14:11, 30 March 2012 (diff | hist) . . (0)‎ . . m UniCode ‎ (Wikipedia python library) 07:47:48 14:11, 30 March 2012 (diff | hist) . . (0)‎ . . m UniCode ‎ (Wikipedia python library) 07:47:51 14:11, 30 March 2012 (diff | hist) . . (0)‎ . . m UniCode ‎ (Wikipedia python library) 07:47:54 14:11, 30 March 2012 (diff | hist) . . (+57)‎ . . m UniCode ‎ (Wikipedia python library) 07:47:58 ais523: yes he introduced a formatting error and the "most recent languages" thing 07:48:01 but it took him about 50 revisions 07:48:04 elliott: right 07:48:14 also how did the most recent languages work? manual updating? 07:48:19 yes 07:48:22 templated 07:48:25 containing his language ofc :P 07:48:29 ofc 07:48:40 I think Special:Newpages is transcludable 07:48:44 so you might be able to do it that way 07:48:57 so elliott what's an example of a thing that doesn't fill you with rage? like let's say, an esolang 07:49:02 i like underload 07:49:13 and /// 07:49:19 i think /// is my favourite or second-favourite esolang maybe 07:49:35 fuck, everybody likes underload. 07:50:08 who wouldn't like a language whose article's first section describes a specific aspect of the language and then goes on to admit nothing ever implemented it 07:50:21 granted 07:50:21 even i like underload…yikes! 07:50:54 terrifying 07:50:55 also as a rule we like things oerjan has a hard time programming in. 07:51:07 wait what 07:51:12 well for instance, ///. 07:51:21 well a language has to be at least moderately good (or dupdog) for people to seriously try programming it 07:51:26 you found underload a bit too easy so you had to make it terrible and remove 90% of it for it to appeal 07:51:27 Wait, what's the point of the reserved characters? 07:51:32 Bike: there isn't one 07:51:40 they were meant to be for overload, the language underload is a tarpit of 07:51:40 O KAY 07:51:44 Bike: so you can output unmatched parens, etc 07:51:45 but overload doesn't exist 07:51:51 what the hell is - oh 07:51:53 ais523: err, they don't let you do that 07:52:09 at least not according to [[Underload]] 07:52:09 elliott: I have a few unfinished Overload interps lying around, which may or may not implement the same language 07:52:12 hmm 07:52:24 I guess I could try to dig them out? 07:52:33 also isnt underload a tarpit of like, joy 07:52:36 unfinished because I never manged to work out Overload's specs 07:52:40 Bike: it's a tarpit of Overload 07:52:41 or... i don't remember 07:52:46 Overload has some similarities to Joy, but not that many 07:52:53 elliott: i followed the same approach for emmental, btw 07:52:55 Underload removed most of the complexity that other languages don't have 07:53:02 Overload has pointers, for instance 07:53:06 oerjan: heh 07:53:25 monqy: do you like /// btw 07:53:29 i feel it's important for people to like /// 07:53:38 man i feel like i should be compiling a fucking #esoteric talmud here 07:53:45 there's just so much history and subtlety 07:54:03 and if you're wondering how pointers work in a concatenative language 07:54:07 it's, umm, interesting 07:54:27 well i wasn't wondering but now i sort of am 07:54:40 concatenative languages are pointless, duh 07:55:09 you can still have a thing that points it's just that the points themselves are gone! 07:55:21 fancy 07:55:33 oh it also had goto 07:55:41 um what 07:55:47 23:53:25 monqy: do you like /// btw 07:55:48 23:53:29 i feel it's important for people to like /// 07:55:48 yes 07:56:00 if it encountered a literal pointer in source code 07:56:03 it interpreted it as a goto 07:56:16 and ^ was actually implemented by putting a pointer to the next statement at the end of the top stack element 07:56:24 then detaching and jumping to that stack element 07:56:34 actually, ^ wasn't a primitive, you could implement it in the rest of the language 07:56:54 (it is a primitive in Underload) 07:57:00 Bike: here's the #esoteric history: hey guys remember those good days. no. no we don't. every day before now is complete shit and everyone in the past was awful 07:57:43 elliott: no that's generalized history. what happens is that you go over all the complete shit with a fine toothed comb to find the little nuggets of digested shit and then you compile those into a book and let it rot for like a thousand years or so and then it's canon. 07:57:58 I dunno 07:58:12 there used to be more esolang discussion, but the offtopic discussion used to be more awful, too 07:58:20 nowadays we have less esolang discussion, but more interesting offtopic dicussion 08:14:30 Do you know if it is possible for a Verilog simulation to import and export MIDI files? 08:15:18 zzo38: I don't, although at least output seems likely 08:15:29 Bike: as long as the book says that Bike sucks i'm ok 08:15:30 and it would be easy if you had a preprocessor/postprocessor 08:16:21 ;_; 08:19:55 I am trying to think of how to do some specific kind of ordering of records having the same primary order (such as a timestamp), such that you can insert stuff before or after or in between any of them, move stuff, delete stuff, while still working. Does SQL even support such things? 08:22:15 zzo38: couldn't you just use a secondary ordering as a tiebreak? 08:22:36 ais523: That is what I thought, but then it isn't "everywhere dense" 08:24:02 SQL has no surreal number type, fraction type, or accurate real number type. 08:25:01 -!- epicmonkey has joined. 08:29:13 -!- oerjan has quit (Quit: leaving). 08:29:16 Possibly a custom collation might work, but I don't know of the speed or size of such things 08:32:28 What do you think is best? 08:33:13 -!- Taneb has joined. 08:34:46 I did not expect this snow 08:34:52 elliott, can you confirm snow? 08:35:07 confirmed 08:37:22 my laptop said it was rainsnowing earlier, but I didn't look out of the window to check 08:37:25 apparently it's now snowing 08:37:30 perhaps I'll see if there's snow on the ground 08:37:57 observation results: I can't see snow on the ground 08:38:35 Yeah, but you're stupidly far midlands 08:43:37 Is there any better way than what I suggested? It could be made the index of these fields together, and then make a view which orders them and adds fields for before and after, so that you can make insert in between. 08:47:12 *apparently it's now sunny with clouds 08:47:18 weird typo 08:47:31 -!- ais523 has left (" fizzie: it makes demons fly out of my window, washing the windows api"). 09:01:26 -!- Yonkie has joined. 09:13:53 -!- Bike has quit (Quit: leaving). 09:14:27 -!- DHeadshot has joined. 10:00:22 -!- nooga has joined. 10:06:36 moin ihr stricher 10:07:50 *wrongchan* 10:08:05 scusi 10:19:31 ja 10:19:45 die wenigsten hier sprechen überhaupt Deutsch vermutlich. 10:20:10 I did not expect this snow <-- is it unusual at this time of year over there? 10:20:12 ich dachte schon ich wäre der einzige 10:20:25 Mid march? Not unheard of, but yes unusual 10:20:29 good morning together 10:20:37 Taneb, it is -10 C or so today here, was like +2 a couple of days ago though 10:22:38 Taneb, hm or is "here today" more idiomatic? 10:22:43 rather than "today here"' 10:22:48 s/'$// 10:22:53 Yes, I think it would be 10:22:59 ah, good to know 10:40:25 Vorpal: https://en.wikipedia.org/wiki/Place%E2%80%93manner%E2%80%93time (and https://en.wikipedia.org/wiki/Adjective#Adjective_order for adjectives) 10:40:58 .oO( senor vorpal kickasso? 9 10:41:00 ) 10:42:13 yes 10:43:43 Vorpal: you should be ready for random snow at least until may 10:48:12 olsner, well yes 10:48:23 why wouldn't you be 10:49:26 ah, I read the message the wrong way, I thought you were the one who didn't expect the snow 10:49:54 Deewiant, interesting 10:50:12 olsner, though i have to say, it is really rare in may 10:50:30 at least in these parts of Sweden 10:50:35 probably not rare up north 10:58:25 -!- Taneb has quit (Ping timeout: 256 seconds). 11:17:10 Does vi or vim or emacs have a mode to ring the bell once a specified column is reached? 11:20:02 i hope not 11:20:17 what if i accidentally enable it? i do not want the bell 11:20:36 is that what type writers had? 11:25:37 Some typewriters had such thing. 11:27:47 -!- sebbu2 has changed nick to sebbu. 11:31:07 -!- nooodl has joined. 11:45:00 -!- Phantom__Hoover has joined. 11:45:00 -!- Phantom_Hoover has joined. 11:45:08 -!- Phantom__Hoover has quit (Client Quit). 11:48:31 Why does reactive-banana have filterJust when Data.Maybe has catMaybes 11:48:39 :t filterJust 11:48:41 Not in scope: `filterJust' 11:48:43 :t catMaybes 11:48:44 [Maybe a] -> [a] 11:49:29 because bananas hate cats and maybes 11:50:33 simianMaybes 11:52:11 catMaybes also seems that can be written in many ways, such as: catMaybes = (>>= toList); or catMaybes x = do { Just y <- x; [y]; }; or in other ways too, I guess. 11:53:20 :t toList 11:53:22 Not in scope: `toList' 11:53:22 Perhaps you meant one of these: 11:53:22 `Data.Foldable.toList' (imported from Data.Foldable), 11:54:08 FreeFull: because it works on Behaviors instead iirc? 11:54:12 zzo38: I personally would have written it as a fold, but the monadic version might be better 11:54:31 elliott: Rather than lists? 11:55:06 yes 11:55:44 Fair enough 11:55:52 FreeFull: You could fold too, but toList is foldable, anyways. 11:56:40 You can do (Foldable f) -> f (Maybe a) -> f a 11:56:45 Which is more general 11:57:03 FreeFull: ...no you can't. 11:57:09 (and Behavior can't be an instance of Foldable) 11:57:24 elliott: Oh right, you'd need to know the constructor 11:57:58 Foldable does not imply Functor; Foldable just means it can be converted to a list. 11:58:42 Well you can't do it for Functors 11:58:52 At least not without additional restraints too 11:58:55 Yes, you can't do it for Functors either. 11:59:31 You could do it for Alternative. 12:00:24 Or for Functor+Plus. 12:02:29 Actually, I don't think so. 12:02:38 But you could with MonadPlus. 12:02:44 Alternative is not enough. 12:03:07 How do some and many work anyway 12:03:41 catMaybes = (>>= maybe mzero return); 12:04:06 FreeFull: badly 12:04:12 FreeFull: alt. they don't 12:04:25 I seem to get bottom for anything but Nothing 12:04:28 FreeFull: alt. they only make sense for things like parser combinators 12:04:48 :t \x -> do { Just y < x; return x; } 12:04:50 Couldn't match expected type `m0 a0' with actual type `Bool' 12:04:50 In a stmt of a 'do' block: Just y < x 12:04:50 In the expression: 12:04:51 but if you think of them in terms of applicative parsers they make perfect sense 12:04:57 Well, some and many can do other things too, but mostly for parsers. 12:04:58 :t \x -> do { Just y <- x; return x; } 12:05:00 Monad m => m (Maybe t) -> m (m (Maybe t)) 12:05:07 Oh, right 12:05:10 other things too "but not much" 12:05:54 :t \x -> do { Just y <- x; return x; } [Just 3] 12:05:56 parse error on input `[' 12:06:02 :t (\x -> do { Just y <- x; return x; } $ [Just 3]) 12:06:03 Num a => ([Maybe a] -> Maybe t) -> [Maybe a] -> Maybe t 12:06:10 If you have a instance Alternative IO, then you could automatically stop reading on error, for example. 12:06:59 Control.Applicative seems to only come with [] and Maybe instances 12:07:20 Any monad on (->) is also applicative, though. 12:08:03 -!- carado_ has joined. 12:08:09 Haskell only does monads on (->) anyway, right? 12:09:38 Yes. 12:10:17 FreeFull: http://hackage.haskell.org/packages/archive/base/4.6.0.1/doc/html/Control-Applicative.html#control.i:Applicative 12:10:31 and all the standard monad transformers etc. are instances 12:10:55 (Haskell cannot automatically define the instances, though) 12:11:05 elliott: What about Alternative? 12:11:30 oh, you meant Alternative 12:11:46 the docs still list more than that there 12:12:00 (ReadP, ReadPrec, STM, arguably: ArrowMonad/WrappedMonad/WrappedArrow) 12:12:39 return = pure; >>= = ???????? 12:12:44 In other categories though, it is not necessarily the case that all monads are applicative. 12:13:05 Oh wait, other way around 12:13:34 Yes. 12:13:45 pure = return; (<*>) = ap; 12:15:02 pure = return; (<*>) f a = f >>= \f -> return (f a) 12:15:12 I prefer using fmap/pure/liftPair instead of <*> but that can work too; liftPair is workable with any tensor category, though. 12:15:14 I am always tempted to abuse Haskell's scoping 12:15:33 that definition is... not quite right 12:15:52 elliott: Oh right 12:15:57 pure = return; (<*>) f a = f >>= \f -> return (f <$> a) 12:16:06 still no :P 12:16:10 Damn =P 12:16:20 @src ap 12:16:20 ap = liftM2 id 12:16:31 "there you have it" 12:17:01 The return is unnecessary 12:17:14 have you considered thinking it through 12:17:24 No 12:17:46 dropping the return doesn't work either 12:18:07 oh hm 12:18:17 :t \p q -> p >>= \f -> fmap p q 12:18:18 (a -> b) -> (a -> a) -> a -> b 12:18:20 er 12:18:21 :t \p q -> p >>= \f -> fmap f q 12:18:22 (Monad m, Functor m) => m (a -> b) -> m a -> m b 12:18:24 right that works. 12:18:28 =P 12:19:11 of course liftM2 id is better 12:21:29 imo liftM2 ($) is better than liftM2 id because it makes it more clear even though it's the same thing 12:22:44 imo clarity is overrated 12:23:00 monqy: um liftM2 id is shorter 12:23:51 liftM2($) 12:24:09 help 12:25:14 liftM2$id 12:25:30 liftM2 is also same as liftA2, specifically because all monads in Haskell are applicative, that it can do that, I think is the reason. 12:26:41 -!- DHeadshot has quit (Ping timeout: 248 seconds). 12:26:41 All categories have monads (at least an identity monad, and if it has final objects, also a Finalize monad). 12:26:46 You are right, except not all monads are applicatives. So, well, you weren't right. 12:27:24 They are (in Haskell, not in general), but the instance is not necessarily defined. 12:28:31 -!- DHeadshot has joined. 12:28:59 A category with final objects has a Finalize monad for each final object of that category, actually. 12:29:32 :t let f :: Monad m => ((a -> b -> c) -> m a -> m b -> m c) -> d; f = undefined in f liftM2 12:29:34 Ambiguous type variable `m0' in the constraint: 12:29:34 (Monad m0) arising from a use of `f' 12:29:34 Probable fix: add a type signature that fixes these type variable(s) 12:29:50 :t let f :: Monad m => ((a -> b -> c) -> m a -> m b -> m c) -> d; f _ = undefined in f liftM2 12:29:52 Ambiguous type variable `m0' in the constraint: 12:29:52 (Monad m0) arising from a use of `f' 12:29:52 Probable fix: add a type signature that fixes these type variable(s) 12:30:31 :t let f :: (Monad m => (a -> b -> c) -> m a -> m b -> m c) -> d; f _ = undefined in f liftM2 12:30:32 d 12:30:35 :t let f :: (Monad m => (a -> b -> c) -> m a -> m b -> m c) -> d; f _ = undefined in f liftA2 12:30:36 Ambiguous type variable `m0' in the constraint: 12:30:36 (Applicative m0) arising from a use of `liftA2' 12:30:36 Probable fix: add a type signature that fixes these type variable(s) 12:36:16 -!- ogrom has quit (Quit: Left). 12:40:41 -!- zzo38 has quit (Remote host closed the connection). 12:52:38 -!- Taneb has joined. 13:08:55 -!- Arc_Koen has joined. 13:10:44 -!- Arc_Koen has quit (Client Quit). 13:11:00 -!- Arc_Koen has joined. 13:12:56 @tell Oerjan "In any case I believe this proves Emmental Turing-complete. However it may happen to do so in a way which I have previously disagreed with Chris Pressey on whether it counts or not. :P " what does that mean? 13:12:56 Consider it noted. 13:13:56 @tell Oerjan also my attempt to use qdeql was so close, but you didn't use it at all :( 13:13:56 Consider it noted. 13:14:11 -!- kallisti1 has changed nick to kallisti. 13:15:09 I wonder if lambdabot treats nicks case sensitively or not 13:16:22 you couldn't have wondered that three minutes earlier could you :( 13:19:59 -!- nooga has quit (Ping timeout: 255 seconds). 13:26:26 it wasn't a pertinent question back then 13:32:00 @tell Olsner hello 13:32:00 Consider it noted. 13:33:02 @tell ARC_KOEN I don't even remember if I tried talking to myself yet 13:33:02 You can tell yourself! 13:33:06 ok 13:33:39 elliott: hi 13:33:39 olsner: You have 1 new message. '/msg lambdabot @messages' to read it. 13:36:36 omg it worked ! 13:56:35 -!- copumpkin has quit (Ping timeout: 240 seconds). 13:57:08 -!- copumpkin has joined. 14:02:52 -!- atehwa has quit (Ping timeout: 246 seconds). 14:10:22 -!- atehwa has joined. 14:17:28 -!- FreeFull has quit (Quit: Bbl). 14:44:17 -!- sebbu has quit (Ping timeout: 248 seconds). 14:52:07 wait... 14:52:14 @tell ELLIOTT hmm 14:52:14 Consider it noted. 14:52:35 oh, right 14:53:03 Phantom_Hoover: wait since when are you here 14:53:03 elliott: You have 1 new message. '/msg lambdabot @messages' to read it. 14:53:32 i've been here for 3 hours... 14:53:43 fuck you 14:54:14 (HOW THE FUCK IS IT SNOWING IN MARCH) 14:55:01 magickque 14:55:07 Phantom_Hoover: basically snow is like rain but when it's cold enough to freeze it'll come down as "snow" instead 14:55:27 why does england get all the damn sno 14:55:28 w 14:56:00 -!- sebbu has joined. 14:56:01 -!- sebbu has quit (Changing host). 14:56:01 -!- sebbu has joined. 14:57:08 I don't think you've got quite all of it. 14:57:31 Finnish Meteorological Institute says there's a 49 cm snow cover here, for example. 14:57:32 how dare you lump me in with the english 14:57:48 we haven't had much snow here for a long time, maybe that's the snow that you're getting 14:59:20 -!- carado_ has changed nick to carado. 15:00:57 -!- FreeFull has joined. 15:10:28 -!- wareya_ has quit (Read error: Connection reset by peer). 15:11:02 -!- wareya has joined. 15:21:05 -!- DHeadshot has quit (Read error: Connection reset by peer). 15:53:15 Got FreeGame to work 15:53:20 Needed a newer version 15:55:44 Is it bad that I don't entirely understand FlexibleContexts UndecidableInstances etc., and plan on letting GHC tell me if I ever need them? 15:58:21 Functions of type a->a are monoids, right? 15:58:33 mempty = id; mappend = . 15:58:34 erm 15:58:37 mappend = (.) 15:58:45 Or would it be flip (.)? 15:58:45 we call them "Endo" here 15:58:52 and "Dual Endo" ;) 15:58:58 er 15:59:02 (Endo a) 15:59:06 Dual (Endo a) 15:59:08 "something like THat 15:59:50 Sgeo, yes, but as newtype Endo a = Endo {appEndo :: a -> a} 16:00:07 Because "instance Monoid m => Monoid (a -> m)" exists 16:00:49 And they'd overlap if you want mempty :: String -> String, for example 16:00:57 (is it id or const ""?) 16:02:19 const "" 16:02:21 oh 16:02:21 nm 16:04:41 Taneb: const "" is a -> String though 16:04:54 Basically, I'm imaginging how one would write "plugins" for SimpleIRC bots. Each plugin would have a function IrcConfig->IrcConfig that adds its own event handlers to the config 16:04:56 FreeFull, and why can't a be String? 16:05:08 It could be 16:05:11 It could be anything 16:05:36 So, const "" is a valid mappend fo String -> String, yeah? 16:05:38 mempty, rather 16:05:52 Sgeo, Endo IrcConfig 16:06:04 Also, SimpleIRC still sucks for being not as typesafe as it should be 16:06:59 There's only one type of event handler, and every message (except for one) gets the same type of message passed to it, and the types in that record tend to have Maybes 16:07:39 So rather than "Ok, the event handler for this message will always receive XYZ", it's "the event handler for this message must be capable of dealing with parts of the message not being there" 16:19:05 @hoogle runMaybeT 16:19:05 Control.Monad.Trans.Maybe runMaybeT :: MaybeT m a -> m (Maybe a) 16:28:48 :t MaybeT [Nothing, Nothing, Just 1] 16:28:50 Not in scope: data constructor `MaybeT' 16:29:27 MaybeT [] Integer 16:30:12 -!- sebbu has quit (Ping timeout: 248 seconds). 16:33:56 -!- TeruFSX has joined. 16:34:12 :t runMaybeT $ do { x <- [3..10]; return x; } 16:34:14 Not in scope: `runMaybeT' 16:36:57 How can I express ap in terms of fmap, return, and join? 16:38:46 first express (>>=) 16:39:12 f <*> x = join (fmap (uncurry fmap . flip (,) x) f) 16:39:45 Actually, I can make that nicer... 16:40:14 no i can't 16:41:00 join (fmap (flip fmap x) f) 16:42:03 -!- sebbu has joined. 16:42:03 -!- sebbu has quit (Changing host). 16:42:03 -!- sebbu has joined. 16:46:55 Thanks, Deewiant 16:47:17 No need to make a tuple just so that you can uncurry... 16:47:31 Of course 16:52:18 -!- Taneb has quit (Ping timeout: 264 seconds). 16:56:27 -!- Taneb has joined. 17:03:53 -!- AnotherTest has joined. 17:08:54 This is very weird:http://stackoverflow.com/questions/15268229/ebnf-whitespacing-in-meta-identifiers/15324944 17:09:28 I've sort of tried to answer the question. Although I actually find it hard to believe that the standard would have missed something that obvious 17:12:25 -!- Bike has joined. 17:23:25 The Gall-Peters projection makes me uncomfortable 17:24:44 why 17:25:04 Maybe I'm just too used to Mercator 17:25:47 Mercator looks better 17:29:13 Great, I found a bug in iceweasel 17:38:43 -!- Taneb has quit (Ping timeout: 260 seconds). 17:39:27 -!- Taneb has joined. 17:47:46 ^list 17:47:46 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 17:47:50 Thanks 17:48:02 thankies 17:49:16 yw 17:49:33 The bot in MSPA that I made is so... early that we sometimes think it's a false alarm when it isn't 17:49:47 oh gosh the pun 17:50:11 (john: still totally adorkable) 17:50:16 Trivia: I know someone who actually answered an exam question along the lines of "Nuclear power plants work by nuclear fish" 17:50:31 The options were Nuclear Fission, Nuclear Fusion, and Nuclear Fish 17:51:18 that sounds like a debaitable answer 17:51:20 were they shore? 17:51:45 I am afraid they were a few kippers short of a shoal 17:51:47 it sounds pretty outraygeous to me 17:52:30 `pastelogs Trivia: 17:53:02 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.29785 17:53:19 ... 17:53:24 Thanks, HackEgo. 17:54:10 Anyway, now I shall leave. 17:54:30 what's a nuclear fish? 17:54:43 It's a joke answer to an easy exam question 17:55:13 so not a fish with glowing eyes and lethal touch? 17:55:57 -!- ogrom has joined. 18:38:49 -!- Frooxius has quit (Quit: ChatZilla 0.9.90-rdmsoft [XULRunner 1.9.0.17/2009122204]). 18:39:06 -!- Frooxius has joined. 18:41:02 -!- Frooxius has quit (Client Quit). 18:41:16 -!- Frooxius has joined. 18:45:28 -!- carado_ has joined. 18:45:31 -!- carado has quit (Quit: Leaving). 18:46:09 -!- carado_ has changed nick to carado. 19:12:38 so not a fish with glowing eyes and lethal touch? <-- it could be 19:22:39 -!- nooga has joined. 19:45:50 -!- c00kiemon5ter has joined. 19:57:55 -!- sirdancealo2 has quit (Quit: ragequit). 19:59:42 You know what the world doesn't need? 19:59:48 Harlem shake (gangnam style) 20:00:50 Harlem shake (gangnam style) (dubstep remix) 20:00:58 psy dancing the actual harlem shake would be kinda fun 20:03:46 Also, I quite like the occasional dubstep 20:04:04 burial's pretty nice 20:04:28 I'm not "into it", but I find it pleasant to listen to 20:04:36 In the same way I enjoy classical music 20:05:42 Harlem shake (gangnam style) (dubstep remix) <-- oh my god 20:05:54 Please say it exists 20:06:43 I don't think so 20:06:48 Aww 20:06:59 Saying that, I've never actually heard Harlem Shake 20:07:00 "Psy Does the 'Harlem Shake' + Announces 'Gangnam Style' Followup 20:07:00 PopCrush ‎- 5 hours ago" 20:07:02 oh my god 20:07:13 I'm scared to click that link 20:07:13 "Gangnam Shake" 20:08:01 Bike, looks like your wish has come true (before you made it?) 20:08:24 cool 20:08:35 just google harlem shake gangnam style 20:08:37 first hit 20:08:45 I'm not going to click it 20:09:03 Retroactive wish granting 20:09:19 I wish that Czechoslovakia was two countries 20:09:38 Slovakia, and... something like Czechia but that sounds stupid so not that 20:13:21 :/ 20:13:26 What's wrong with Czech Republic 20:13:39 i dunno, i think "czechia" sounds better 20:13:48 That's a much better name than Czechia, FreeFull 20:13:50 Thanks 20:13:51 what's the endonym in common use 20:13:53 In Polish, it's just called Czechy 20:15:20 kmc, "Czech", if an endonym is what I think it is 20:16:18 i think you are mixing up endonyms and demonyms 20:16:30 i'm asking what people in czech republic call the country in their native language 20:16:33 in common use 20:17:08 bbl 20:17:08 czechworld 20:17:32 Česká republika 20:17:53 Or just Česko 20:20:45 -!- Taneb has quit (Ping timeout: 276 seconds). 20:21:40 -!- Taneb has joined. 20:21:58 -!- augur has quit (Remote host closed the connection). 20:27:45 -!- epicmonkey has quit (Ping timeout: 248 seconds). 20:43:10 -!- AnotherTest has quit (Quit: Leaving.). 20:47:55 -!- oerjan has joined. 20:50:30 -!- ogrom has quit (Ping timeout: 256 seconds). 20:51:54 -!- ogrom has joined. 20:59:45 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds). 21:01:51 Aaaaaargh 21:03:20 -!- ais523 has joined. 21:04:20 -!- Frooxius has quit (Ping timeout: 248 seconds). 21:05:32 -!- Frooxius has joined. 21:07:09 the universe vs. Taneb: 25-3 21:07:09 oerjan: You have 2 new messages. '/msg lambdabot @messages' to read them. 21:07:14 @messages 21:07:15 Arc_Koen said 7h 54m 19s ago: "In any case I believe this proves Emmental Turing-complete. However it may happen to do so in a way which I have previously disagreed with Chris Pressey on whether it 21:07:15 counts or not. :P " what does that mean? 21:07:15 Arc_Koen said 7h 53m 19s ago: also my attempt to use qdeql was so close, but you didn't use it at all :( 21:07:36 Arc_Koen: aww 21:07:42 I'm doing substantially worse than Scott Pilgrim 21:08:46 Alas, this is Taneb's brain vs Taneb 21:09:42 Arc_Koen: chris pressey has quandaries about whether it is TC unless it can do TC computation on data given through the language's official input method - which i don't use at all :P 21:09:55 or that's my impresssion anyway. 21:10:20 @tell Arc_Koen chris pressey has quandaries about whether it is TC unless it can do TC computation on data given through the language's official input method - which i don't use at all :P 21:10:20 Consider it noted. 21:10:38 @tell Arc_Koen s/it/a language/ 21:10:38 Consider it noted. 21:12:54 @tell Arc_Koen aww. well you can do an implementation that actually handles input, then. 21:12:55 Consider it noted. 21:15:07 -!- Bike has quit (Quit: leaving). 21:16:44 @tell Arc_Koen Hey, maybe you can make an implementation that doesn't use the _stack_. or only the top element, that is. 21:16:45 Consider it noted. 21:19:23 @tell Arc_Koen hm wait you need the stack to use ! :( 21:19:23 Consider it noted. 21:21:24 elliott: we seem to have a persistent spambot who's got around the captcha somehow, I've set abusefilter to recognise its edits and disallow them (no blocks yet); there might theoretically be false positives but we haven't had any all year 21:21:46 specifically, it looks for ".
" and a capital letter, but no newlines, in a new user's first edit, and only if it's to a user page 21:22:43 I wish I had the drive to actually do things 21:22:49 That'd be cool 21:22:56 Taneb: you too, eh? 21:23:51 -!- abumirqaan has quit (Read error: Operation timed out). 21:24:17 -!- abumirqaan has joined. 21:24:29 this is a trivially easy restriction for a spambot author to modify their spambot to get around, but unless they're targetting Esolang specifically they won't 21:26:05 they could use a genetical algorithm to tweak things trivially until they pass, and keep site-specific data without actually doing anything manually. in theory. 21:26:12 *genetic 21:26:44 but if they cared that much, they wouldn't use
in the first place. 21:29:50 -!- Phantom_Hoover has joined. 21:31:32 oerjan, you are a criminal mastermind 21:31:43 THANK YOU 21:34:42 How do some and many work anyway 21:35:16 Who knows 21:35:21 some and many only make sense in alternatives where the same action can either succeed or fail at different times. 21:35:57 Digging up old conversations 21:35:59 Like bones 21:36:00 most simple monads do not have that property. 21:36:13 it's called "logreading" 21:37:06 So they are useless for the Alternative instances that come with Control.Applicative 21:37:08 State(T) and IO can do it, but neither Maybe, Reader or Writer give that property. 21:38:13 Reader doesn't allow you to modify the values you read, and Writer doesn't allow you to read them 21:38:40 Maybe doesn't have any "side-values" 21:38:43 Neither does [] 21:40:20 -!- mroman has left. 21:41:01 > runState (many $ do x <- get; guard (x < 10); put (x+1); return x) 0 21:41:03 No instance for (Control.Monad.MonadPlus 21:41:03 Data.Functor.I... 21:41:26 oh hm 21:42:11 > runStateT (many $ do x <- get; guard (x < 10); put (x+1); lift $ Just x) 0 21:42:13 Just ([0,1,2,3,4,5,6,7,8,9],10) 21:42:17 there you go 21:42:21 FreeFull: ^ 21:43:30 State alone doesn't have the Alternative part. 21:44:25 Is this StateT Int Maybe 21:44:37 probably Integer, by defaulting 21:45:45 > runStateT (many $ do x <- get; guard (x < 3); put (x+1); lift $ [x]) 0 -- seeing what happens with lists 21:45:47 [([0,1,2],3),([0,1],2),([0],1),([],0)] 21:46:21 -!- zzo38 has joined. 21:47:30 > evalStateT (many $ do x <- get; guard (x < 3); put (x+1); lift $ [x]) 0 21:47:32 [[0,1,2],[0,1],[0],[]] 21:49:01 right, with lists the failure case is _always_ included after the success, so you get an automatic branch at each iteration that doesn't completely fail 21:49:24 i'm sure that could be used for _something_ :P 21:49:57 sadly it's in the wrong order to give an infinite list. hm... 21:50:02 :k Backward 21:50:04 Not in scope: type constructor or class `Backward' 21:50:05 ^list 21:50:06 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 21:50:06 :k Backwards 21:50:08 Not in scope: type constructor or class `Backwards' 21:50:13 What, again? 21:50:42 Bah, I can't watch sound ATM 21:50:57 ...I really need to fix my graphics card driver thingy on my computer 21:50:58 hussie is incredibly silly 21:51:19 oerjan: buuuuuuuut nobody will know that 21:51:19 Arc_Koen: You have 5 new messages. '/msg lambdabot @messages' to read them. 21:51:28 :t forwards 21:51:30 Not in scope: `forwards' 21:51:31 :k Backwards 21:51:32 Not in scope: type constructor or class `Backwards' 21:51:32 that's the problem when we just say "I just proved this language is TC" 21:51:52 * oerjan swats lambdabot for not having Backwards -----### 21:51:52 We need a time machine and ask Alan Turing 21:51:59 And Alonzo Church 21:52:05 Arc_Koen: :/ 21:52:22 Sure, considering the list to have success/failure is one possible way to look at it, and is a reasonable way to do so in some circumstances. 21:52:25 @messages 21:52:25 oerjan said 42m 5s ago: chris pressey has quandaries about whether it is TC unless it can do TC computation on data given through the language's official input method - which i don't use at all : 21:52:25 P 21:52:25 oerjan said 41m 47s ago: s/it/a language/ 21:52:25 oerjan said 39m 30s ago: aww. well you can do an implementation that actually handles input, then. 21:52:25 oerjan said 35m 41s ago: Hey, maybe you can make an implementation that doesn't use the _stack_. or only the top element, that is. 21:52:27 oerjan said 33m 2s ago: hm wait you need the stack to use ! :( 21:52:50 oh I just watched this fun time travel series pilot 21:53:07 apparently the pilot wasn't a success because they didn't make the series 21:53:26 why do they keep canceling all my favourite time travel series :( 21:53:33 Fiora, what's the music to the update so I can hum it while it's muted? 21:53:51 Arc_Koen, did you hear the time travel Irregular Podcasts? 21:53:55 nope 21:54:02 I'm npt really into podcasts 21:54:17 http://irregularwebcomic.net/podcasts/ numbers 14, 17, and 18 21:54:21 They're more like radio plays 21:54:42 Taneb, if it helps, the song is Elevatorstuck 21:54:53 ok I'll listen to them right now 21:55:31 Thanks 21:55:46 but you know deep down I feel no time travel series can be truly realistic 21:55:57 This one goes for silliness 21:56:01 Taneb: it's like, the elevator music 21:56:05 because what you could do if you had a time machine is SO HUGE 21:56:22 Arc_Koen, Primer is about as realistic it gets 21:56:27 so any use of a time machine shown in a series is *nothing* compared to its actual potential 21:56:34 Primer, hmm 21:56:38 I'll look into it 21:57:02 What a silly Homestuck update 21:57:05 And goodnight, folks 21:57:06 -!- Taneb has quit (Quit: Leaving). 21:57:41 oh wait Backwards won't help for this 21:57:43 Taneb: #14 is really weird 21:57:54 I think he's listing all bacteria he knows 22:00:08 -!- Bike has joined. 22:03:13 -!- DHeadshot has joined. 22:13:02 -!- TeruFSX has quit (Ping timeout: 250 seconds). 22:18:12 Do you like this idea of the INI for describing preferred input and so on of NES/Famicom game? http://forums.nesdev.com/viewtopic.php?p=108450#p108450 22:19:24 -!- zzo38 has quit (Remote host closed the connection). 22:20:17 Is it bad that I don't entirely understand FlexibleContexts UndecidableInstances etc., and plan on letting GHC tell me if I ever need them? 22:20:41 note that if you follow ghc's advice like that, you might end up getting redundant options. 22:21:33 in my last program, it suggested several things before FlexibleInstances, all of which are implied by it 22:22:01 (i think FlexibleContexts was one) 22:31:04 `run paste http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.15934 22:31:40 `pastelogs Trivia: 22:32:17 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.21731 22:32:40 oh he left. 22:39:25 -!- ogrom has quit (Quit: Left). 22:54:08 -!- Sgeo has quit (Ping timeout: 248 seconds). 22:54:08 -!- nooodl has quit (Ping timeout: 248 seconds). 22:54:11 -!- nooodl_ has joined. 22:54:12 -!- Sgeo has joined. 23:11:00 Hey, who wants to buy one ten thousandth of my post-tax income for all time? 23:11:06 Only $750. This is not an offer. 23:15:39 on ten thousandth? 23:15:41 hmm 23:15:43 no 23:17:06 How long do you intend to be alive? 23:29:22 -!- DH____ has joined. 23:29:37 -!- DHeadshot has quit (Read error: Connection reset by peer). 23:33:53 -!- DH____ has quit (Read error: Connection reset by peer). 23:34:01 -!- DHeadshot has joined. 23:38:35 -!- zzo38 has joined. 23:40:30 -!- DHeadshot has quit (Read error: Connection reset by peer). 23:40:51 -!- DHeadshot has joined. 23:43:38 hmm, that translates to more than $7.5 million lifetime earnings = a good deal 23:43:50 that seems likely, I guess 23:43:53 given inflation 23:44:02 although, you need to take into account alternative investments 23:44:07 -!- Bike has quit (Ping timeout: 260 seconds). 23:44:10 D&D multiplication is weird 23:44:16 also there's a potential loophole; if you do the deal with 10 thousand different people 23:44:34 then you get $7.5 million, which is enough to live off, and so never have to make any money at all and so don't have to pay them back 23:44:44 Sgeo: think of it as added percentages 23:44:51 it's not ×2, it's +100% 23:46:54 o.O, and that works out identically? 23:46:56 Hm 23:47:17 -!- Bike has joined. 23:48:25 Yes, D&D multiplication does work like that, although the DM which I play with always uses actual multiplication. I too think they write it like that wrongly; in Icosahedral RPG rules they should be written what is meant instead, whether it is x2 or +100% or whatever!! 23:52:08 Dungeons & Dragons, the original roll-playing game. 23:54:35 -!- Bike has quit (Ping timeout: 245 seconds). 23:54:52 ais523: you'd have to make the deals simultaneously though 23:54:59 Receiving $750 is income 23:55:37 hmm 23:56:12 yeah but you'd still end up with quite a lot, after rounding errors 23:56:17 around half, I think, maybe a bit more 23:56:33 -!- Bike has joined. 23:59:19 > sum [ x*0.075 | x <- [0..9999] ] 23:59:20 3749624.9999999995 23:59:52 > sum [ x*0.075 | x <- [0..9999] ] / 7500000 23:59:54 0.49994999999999995