00:00:37 <kallisti> well I installed both show and simple-reflect but it seems to be using show.
00:00:58 <kallisti> but even after installing show it installed simple-reflect when I told it to
00:03:33 <kallisti> I have a feeling it has something to do with a misconfigured system.
00:03:40 <kallisti> I have both GHC 6 and 7 on this computer.
00:03:48 <oerjan> kallisti: what does Prelude.negate x give?
00:04:24 <elliott> <kallisti> elliott: what are some things I should have done before compiling and installing GHC?
00:04:28 <oerjan> kallisti: iirc they are not supposed to mix packages for different ghc versions
00:04:39 <elliott> it's not a misconfiguration
00:04:43 <elliott> the library is just fucked up
00:04:51 <elliott> come on, ghc bugs don't manifest as subtle wrongness where "a" is used for no reason
00:05:10 <kallisti> so does it work on your system.
00:05:31 <kallisti> and perfectly configuredness etc
00:05:45 <elliott> negate = withReduce $ fun "negate" `iOp` negate `dOp` negate
00:05:46 <elliott> iOp :: (Expr -> Expr) -> (Integer -> Integer) -> Expr -> Expr
00:05:46 <elliott> iOp rr ff aa = (rr a ) { intExpr = ff <$> intExpr aa }
00:05:46 <elliott> dOp :: (Expr -> Expr) -> (Double -> Double) -> Expr -> Expr
00:05:46 <elliott> dOp rr ff aa = (rr aa ) { doubleExpr = ff <$> doubleExpr aa }
00:06:04 <elliott> instance (Show a, FromExpr b) => FromExpr (a -> b) where
00:06:05 <elliott> fromExpr ff aa = fromExpr $ op L 10 " " ff (lift aa)
00:06:30 <oerjan> elliott: that rr a should have been rr aa, no? :D
00:06:48 <kallisti> hm on the source I looked at it was a not aa
00:07:08 <oerjan> kallisti: see the second iOp line
00:07:09 <kallisti> iOp r f a = (r a ) { intExpr = f <$> intExpr a }
00:07:18 <elliott> kallisti: http://hackage.haskell.org/packages/archive/show/0.4.1.2/doc/html/src/SimpleReflect.html
00:07:23 <elliott> I don't care what source you're looking at, it's the wrong one
00:07:46 <elliott> that's not the show package
00:07:50 <kallisti> I would have spotted it much earlier if I were looking at the right source. :P
00:07:51 <elliott> which is what lambdabot uses
00:07:56 <elliott> otoh it might be newer/less buggy
00:08:04 <kallisti> http://hackage.haskell.org/packages/archive/simple-reflect/0.2/doc/html/src/Debug-SimpleReflect-Expr.html#Expr
00:08:15 <elliott> http://hackage.haskell.org/packages/archive/numbers/2009.8.9/doc/html/Data-Number-Symbolic.html
00:08:22 <elliott> :t Data.Number.Symbolic.var
00:08:46 <oerjan> kallisti: um you were clearly using show-0.4.1.2 in what you pasted
00:09:28 * kallisti is well-known for his attention to detail.
00:10:03 <kallisti> well, technically, yes. I ACTION'd it
00:11:20 -!- Jafet has quit (Quit: Leaving.).
00:12:01 -!- Jafet has joined.
00:12:14 -!- NihilistDandy has joined.
00:12:17 <kallisti> elliott: you never explained why I shouldn't move mueval into /usr/bin
00:12:47 <zzo38> To make include file by search path, I have made the <|> for IO and the choice for any Alternative and then make as follows:
00:12:56 <zzo38> loadInputFile = parseInputFile >=> either ((>> exitFailure) . hPutStrLn stderr . show ) (fmap join . sequence . fmap loadIncludeFiles);
00:13:06 <zzo38> parseInputFile n = theSearchPath >>= (<|> fileErr n) . choice . fmap (parseFromFile (mmlParser <* eof) . (</> n));
00:13:15 <zzo38> loadIncludeFiles (Include x) = loadInputFile x; loadIncludeFiles x = return [x];
00:14:15 <zzo38> Is this the proper way or is there better ways?
00:14:50 <kallisti> elliott: also what's the difference between mueval and mueval-core?
00:15:21 <elliott> oerjan: hm in (f x), what precedence is f at
00:16:17 <kallisti> I don't recall seeing the Report mention a precedence for function application.
00:16:27 <oerjan> iirc showsPrec uses 11 for the level above operators?
00:16:53 <oerjan> the haskell report doesn't assign any numbers to non-operator syntax afair
00:18:00 <kallisti> oh nice Symbolic does reductions
00:18:33 <oerjan> also, the let, case and \ expressions don't fit into simple precedence
00:19:35 <oerjan> they are high from the left, but cannot be put right after application, and are greedy/low to the right
00:22:59 <elliott> kallisti: simplereflect does too, they're just manual
00:23:28 -!- Phantom_Hoover has joined.
00:23:41 <Phantom_Hoover> Oh, Jesus, Vi Hart is now affiliated with Khan Academy.
00:24:13 <Phantom_Hoover> @tell Sgeo You are no longer allowed to use any Khan Academy resources. Thank you for your coöperation.
00:24:27 <Sgeo> What's wrong with Vi Hart?
00:24:28 <lambdabot> Sgeo: You have 2 new messages. '/msg lambdabot @messages' to read them.
00:24:39 <lambdabot> oerjan said 8d 11h 14m 17s ago: well i have a hunch that you need a bit of self-esteem more than you need intelligence.
00:24:39 <lambdabot> Phantom_Hoover said 26s ago: You are no longer allowed to use any Khan Academy resources. Thank you for your coöperation.
00:25:22 <Phantom_Hoover> Sgeo, tau advocate, not to mention that I strongly suspect that she's what SMBC terms a math enthusiast, i.e. someone more concerned with the trappings of maths than the actual substance.
00:25:45 <oerjan> lambdabot: i don't like your reverse amnesia
00:26:17 <Phantom_Hoover> I haven't watched her videos in a while, but ISTR them having a large element of "look at this cool thing maths is so beautiful!" without actually explaining the underlying maths.
00:26:57 <kallisti> > let derivs f x = takeWhile (/=0) . map val . iterate df . f $ dVar x in derivs (^3) (Data.Number.Symbolic.var "x")
00:27:44 <kallisti> > let derivs f x = takeWhile (/=0) . map val . iterate df . f $ dVar x in derivs (^3) (Data.Number.Symbolic.con "x")
00:27:45 <lambdabot> No instance for (GHC.Num.Num [GHC.Types.Char])
00:27:56 <kallisti> > let derivs f x = takeWhile (/=0) . map val . iterate df . f $ dVar x in derivs (^3) (Data.Number.Symbolic.con 5)
00:28:15 <zzo38> 6 is certainly the correct answer in [x*x*x,(x+x)*x+x*x,2*x+x+x+x+x,6]
00:28:25 <zzo38> But I don't know why they didn't simplify the other results more
00:29:12 <elliott> oerjan: hm what precedence is \ at
00:29:17 <lambdabot> *Exception: show: No overloading for function
00:29:29 <oerjan> elliott: i just told you above
00:29:44 <elliott> oerjan: ok what's a _conservative_ precedence to assign \ :P
00:30:00 <oerjan> 11 from the left, -1 from the right?
00:30:33 <elliott> oerjan: *single precedence
00:30:41 <elliott> conservative as in, always valid but sometimes produces needless parens
00:31:07 <lambdabot> Source not found. You untyped fool!
00:32:13 <elliott> oerjan: hm what precedence is e at in (\_ -> e)
00:32:36 <oerjan> ...it's an arbitrary expression
00:33:16 <elliott> oerjan: ok what precedence would you showsPrec it at if you had to showsPrec an e in that position :P
00:33:52 <oerjan> elliott: erm not really
00:34:35 <Phantom_Hoover> http://www.reddit.com/r/math/comments/o13r9/profile_of_eric_lander_mathematician_turned/
00:34:48 <Phantom_Hoover> Profile of a mathematician turned biologist.... turned killer
00:34:53 <oerjan> elliott: no, that way if e contains any operators it will be parenthesized
00:35:07 <elliott> oerjan: oh right it's > not <
00:35:53 -!- oerjan has quit (Quit: Good night).
00:36:37 <elliott> Phantom_Hoover: I was hoping it'd be actually that.
00:37:02 <Phantom_Hoover> Does the prospect of biomathematical murder entice you?
00:37:11 <elliott> Phantom_Hoover: What's a synonym of inspectable.
00:37:41 <elliott> Phantom_Hoover: I hate you.
00:38:26 <Phantom_Hoover> (You cannot be a biomathematical murderer because you are a) a programmer and hence incapable of science and maths and b) an English pansy and hence incapable of killing anything.)
00:40:27 -!- Phantom_Hoover has quit (Quit: Leaving).
00:43:49 * kallisti enjoys how particularly easy it is to define a recursive dual number for automatic differentiation.
00:44:01 <kallisti> so that you can continue taking derivatives of derivatives.
00:44:20 <kallisti> or compute values from differentiated numbers and differentiate that.
00:47:12 <elliott> http://hackage.haskell.org/package/ad does all that
00:49:30 * kallisti thinks it would be swell if Symbolic transformed x*x into x^2 and x*x^e to x^(e+1)
00:49:52 <kallisti> also x+x to 2*x, and x + C*x to (C+1)*x
00:50:20 <kallisti> perhaps I could convince them to let me patch it or something?
00:51:46 <kallisti> though I'd be more interested in a more generalized way to redefine display/reduction behavior.
00:56:12 <kallisti> unless a CAS can be embedded in Haskell's numeric typeclasses.
00:57:18 <kallisti> but I'm mostly interested in a few simple reductions.
00:57:59 <kallisti> not, say, sovling equations and performing complex algebra.
00:59:29 -!- Jafet has quit (Quit: Leaving.).
00:59:35 <kallisti> there's something called DoCon but it... apparently has no documentation
01:02:18 -!- iconmaster has joined.
01:02:30 -!- iconmaster has quit (Client Quit).
01:04:09 <kallisti> @tell iconmaster hi, your nick makes me think of ReBoot.
01:05:36 <kallisti> it would be interesting to analyze the complexity of language implementations.
01:06:27 <kallisti> for example, why is Perl so slow? is it all constant factors is it non-constant stuff going on under the hood?
01:08:06 <kallisti> I would think it's mostly constant factors or linear factors.
01:08:52 <kallisti> variable interpolation would be linear (not counting stuff like @{[...]} which is basically an eval)
01:13:07 <elliott> kallisti: did you know: the asker of the highest-voted question of all time on SO only has 263 rep
01:13:57 <elliott> i have gone completely off the deep end
01:14:26 <kallisti> you're like me when I was playing WoW.
01:15:32 <olsner> elliott: which question?
01:16:28 <olsner> not "how is babby formed?" then?
01:18:34 <elliott> olsner: http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books
01:18:46 <elliott> it got converted to community wiki before they could reap the massive rep spoils :P
01:19:18 <elliott> slightly above an hour after being posted, even
01:36:54 -!- derdon has quit (Remote host closed the connection).
01:37:42 <kallisti> "I am a bug" is the worst thing I've ever read.
01:45:43 -!- lambdabot has quit (Ping timeout: 244 seconds).
02:02:44 <pikhq> Worse than "I am Error"?
02:31:30 -!- MDude has changed nick to MSleep.
02:41:05 -!- pikhq has quit (Ping timeout: 248 seconds).
02:41:07 -!- pikhq_ has joined.
03:09:01 -!- augur has joined.
03:18:29 -!- pikhq has joined.
03:21:18 -!- pikhq_ has quit (Ping timeout: 244 seconds).
03:29:38 -!- cheater has quit (Ping timeout: 268 seconds).
03:47:46 <zzo38> I found some pinball game for Texas Instruments calculator, but you cannot choose which direction to nudge the table (it always does in a random direction when you push that button), and you have to wait ten seconds before nudging again otherwise you are accused of cheating.
03:49:27 <zzo38> Due to these rules, it isn't a very good game.
03:50:24 <itidus21> and on the strength of this accusation you are escorted from the premises bringing an early end to the game of pinball
03:52:30 <zzo38> Most computer pinball game you can at least select which direction to nudge the table! And does not have such a severe penalty (it isn't cheating to nudge the table, anyways). (Flipperless computer pinball games usually have no penalty for nudging the table, however.)
03:58:14 <ais523> zzo38: real pinball tables penalise you for nudging the table
03:58:26 <ais523> sometimes with a warning, but if you do it repeatedly, or hard enough, they lock both flippers and you automatically lose the ball
03:58:29 <zzo38> ais523: Yes they do; but only if you do it too hard or too much.
04:14:42 <quintopia> i can't remember what it's called but it is best
04:16:09 <zzo38> I have Visual Pinball, it has some flipperless games JiggleBox is best one.
04:18:14 <zzo38> Visual Pinball doesn't work on Wine either. It is only for Windows. But there can be make better one for many operating system and with open source, possibly.
04:19:10 <quintopia> but you have all these ideas and you never make them :/
04:19:14 <zzo38> I don't think this is a yes and no question
04:24:31 <itidus21> this pinball project which is under strict deadlines will require a new programming language like C and Haskell, but markedly superior
04:26:45 <itidus21> hmm.. it just has to be better than them
04:28:15 <ais523> it's hard to envisage a language that's better than C at everything and also better than Haskell at everything
04:28:22 <ais523> although if it existed, I'd probably use it
04:30:13 <pikhq> It's hard to envisage a language that's better than C at *everything* that's not a C-family language with stupid decisions omitted.
04:36:28 <itidus21> its necessary to make the pinball game
04:39:18 <ais523> give me a lang that's better than C, Haskell, and Perl in every respect, and I'll write scapegoat in it
04:39:42 <zzo38> I am not saying it has to be done either
04:40:05 <pikhq> ais523: Wouldn't it be enough to be better than C and Haskell in every respect? *zing*
04:40:20 <ais523> neither's really good for one-off text processing
04:40:36 <pikhq> What, and Perl is?
04:40:44 <ais523> pikhq: surprisingly, yes
04:40:45 <elliott> ais523: neither does scapegoat
04:40:55 <pikhq> (yes, yes, I know, that's the *one* thing Perl actually does well.)
04:41:00 <zzo38> But my general idea, is that it has some kind of Forth-like virtual machine, which can be programmed in Forth but also in C or Haskell or other programming languages, but there are two separate programs: the one that sets the physical table parameters, and one which emulates the CPU of the pinball.
04:41:03 <quintopia> elliott: give him @ and he'll give you scapegoat
04:41:12 <pikhq> It *is* awk on steroids, after all.
04:41:17 <elliott> but what vcs will i develop @ with?
04:41:31 <zzo38> And unlike Visual Pinball and whatever, you must use physical parameters so the CPU emulation program cannot do anything that it cannot do physically, even if done by computer physics.
04:41:34 <pikhq> I see we have a cyclic dependency here.
04:41:36 <elliott> ais523: we need some mutual productive recursion so we can have @ and scapegoat be created codependently so they can be developed with each other
04:41:38 <ais523> elliott: something that sg imports well
04:41:46 <pikhq> I'm going to solve this in the standard elliott way.
04:41:48 <elliott> ais523: give me a bit of scapegoat and i'll give you a bit of @
04:41:56 <pikhq> elliott: You will develop @ with @ as the VCS.
04:42:15 <ais523> elliott: hmm… I'm guessing sg will at least mostly be written in ASCII, so the first bit is probably going to be 0
04:42:19 <elliott> pikhq: @ as the solution to every problem, offloading work to others... yep, checks out
04:42:21 <ais523> the second, harder to say
04:42:37 <elliott> ais523: I need 32 bits to get started
04:42:45 <elliott> in return i'll produce 64 bits of @
04:42:53 <zzo38> Text processing can be one thing Perl does well; but AWK can also do text processing it is designed for that purpose.
04:43:19 <ais523> elliott: are we just both going to come up with increasingly long header comments? :P
04:43:24 <pikhq> zzo38: Yup. And Perl is AWK with more stuff.
04:43:31 <ais523> but I can't even do that without knowing what language to write sg in
04:43:34 <elliott> ais523: no way, @ isn't textual
04:43:38 <elliott> ais523: just gimme the start of the README or something
04:43:40 <ais523> seriously, I probably would write it if I could think of an appropriate language
04:43:46 <pikhq> (in spirit, if not in a more strict sense)
04:43:53 <ais523> elliott: surely, @'s /comments/ can contain textual data, though?
04:43:56 <quintopia> it doesnt have to be the first 32 bits does it?
04:44:07 <quintopia> do the bits have to be consecutive?
04:44:08 <ais523> so you just need to start with the bits that mean "comment", then the content of the comment
04:44:14 <elliott> ais523: I'm giving you the bit format of it, certainly it's not going to start with a packed UTF-8 string
04:44:36 <elliott> ais523: anyway, I'd be trying to implement sg more actively if I remembered what the most recent model was
04:44:52 <zzo38> pikhq: Yes, Perl does have things like AWK
04:44:58 <ais523> as I said, I'd draw a picture of it if I were any good at drawing
04:45:00 <zzo38> So Perl can be used for text processing too
04:45:21 <elliott> ais523: just use LaTeX or something, there's diagram packages
04:45:30 <pikhq> Which, if it's designed for anything, that's what it's designed for.
04:45:31 <ais523> but I'd have to learn them
04:46:23 <elliott> ais523: ah, you're trying to do something successfully without learning!
04:46:27 <zzo38> To draw pictures, you can also use ImageMagick, GIMP, Microsoft Paint, METAFONT, SVG, ... depend what you make. I think there is some GNU diagram program to make diagrams, or something like that
04:46:28 <elliott> good luck, nobody has ever managed that.
04:46:46 <ais523> I'm trying /not/ to do something, to avoid having to learn how
04:47:37 <ais523> that's reasonable, right?
04:47:46 <zzo38> I happen to think METAFONT and ImageMagick combined can make draw picture good for many uses.
04:49:02 <zzo38> Yes, PHP does have drawing function too.
04:50:08 <zzo38> I have done job asked by some other people, making program in PHP to draw pie charts.
05:05:40 <elliott> Wow, I've been programming for ~8 years.
05:09:19 <itidus21> apparently programming is about quality not quantity
05:11:02 -!- MDuck has joined.
05:11:12 <elliott> itidus21: 8 years is a pretty long time to do one thing.
05:11:31 <elliott> Anything over 8 would be stretching it a bit, anyway; I doubt I would have been very good at programming at 7.
05:11:35 <elliott> (Not to say I was any good at it at 8.)
05:11:35 <itidus21> it is if you actually do that thing instead of pretending to do it
05:12:50 <pikhq> itidus21: Please, like you wrote large, significant things when you were 15. :P
05:13:05 <itidus21> i never created anything signifigant ever :D
05:13:16 <itidus21> its the art of super procrastination
05:14:27 -!- MSleep has quit (Ping timeout: 244 seconds).
05:17:45 <itidus21> so elliott is referring to programming when he knew how to program
05:17:55 <itidus21> not the screwing around training years
05:23:58 <Frooxius> But you learn all the time. When is the point where you "know how to program" and where you don't? I mean, I think it's somewhat gradual transition. Plus, you always learn new things, so you might think in the future that you didn't know how to program now x3
05:24:25 -!- lambdabot has joined.
05:25:51 <itidus21> Frooxius: i think the concept of when does a child become an adult is related
05:27:42 <Frooxius> Yeah that's not sudden transition either. Though... some remain children in some ways for a long time :D
05:28:00 <itidus21> Frooxius: for someone like me, the process is about realizing i am not yet a programmer
05:28:23 <itidus21> by that bastard cryst_eheh_heh
05:28:34 <itidus21> in a chatroom in a distant land
05:28:58 <Frooxius> I never really consider myself anything that much, I just keep making stuff as best as I can and that's it. I don't need any label to do what I do.
05:29:46 <Frooxius> Plus I constantly think things I do are horrible anyway so... x3 It helps to improve them though
05:30:06 <Frooxius> Or throw into garbage and redo from scratch
05:32:33 <itidus21> i see myself as more of the john romero type.. except not as cool as him
05:32:52 <elliott> <itidus21> so elliott is referring to programming when he knew how to program
05:32:52 <elliott> <itidus21> not the screwing around training years
05:33:10 <elliott> I programmed when I was 8 but I didn't know how to program when I was 8 :p
05:33:28 <itidus21> so is it like learning to speak?
05:33:53 -!- Frooxius_ has joined.
05:34:43 <elliott> I doubt it. Maybe a foreign language, but I've never learned one.
05:34:50 <elliott> The easiest way to find out what it's like would be to do it.
05:35:44 * kallisti didn't know how to program for maybe like a year? if he understands elliott correctly.
05:36:08 <itidus21> i screwed around in qbasic 1.0 with the help files at first
05:36:24 <elliott> kallisti: oh, you think you know how to program! how long ago did you start programming?
05:36:33 -!- Frooxius has quit (Ping timeout: 248 seconds).
05:36:46 -!- Frooxius_ has changed nick to Frooxius.
05:36:49 <elliott> kallisti: congratulations, you're in your 5th year of not knowing how to program :)
05:36:57 * elliott doesn't know how to program either.
05:37:07 <kallisti> elliott: when does one learn to program, great sensei. :P
05:37:59 <itidus21> this guy i knew, he wanted to teach me stuff... he basically knocked me out of the ring when teaching me to try to actually make 2d games in c for windows
05:38:25 <itidus21> it was like *pow* *pow pow pow*
05:38:33 <kallisti> why did you think of it as a competition?
05:38:44 <elliott> kallisti: because that's the only way he can frame it as losing
05:39:02 <elliott> kallisti: observe him attempting to lose your question ^
05:39:41 <elliott> yes, i'm making a funny joke
05:39:42 <kallisti> I certainly don't think I've mastered programming by any means, nor do I have very much experience with good program design. But I feel that the past 5 years count for something.
05:40:47 <kallisti> a few weeks in, I remember asking #python what a delimiter was. :P
05:40:59 <kallisti> it used this word "delimiter" in the split method thing and I didn't know what that meant.
05:42:52 <zzo38> I have written part of a D&D prestige class called "Aberration Saver" that corresponds to the organization called "Aberration Saver"; I also wrote the title of a prestige class "Celestial Saver" and of spells "Circling the Square" and "Confuse Time" and "Confuse Objects" and of feats "Minimize Spell".
05:43:22 <zzo38> Maybe I should add one class for calculus or category theory or something like that, too.
05:48:44 <itidus21> i should clean my room some day
05:49:02 <kallisti> itidus21: what do you have to do right now?
05:49:49 <kallisti> !perl print int(rand(2)?'clean room":"definitely clean room"
05:49:52 <EgoBot> Can't find string terminator "'" anywhere before EOF at /tmp/input.2326 line 1.
05:49:58 <kallisti> !perl print int(rand(2)?'clean room':"definitely clean room"
05:49:59 <EgoBot> syntax error at /tmp/input.2368 line 1, at EOF \ Execution of /tmp/input.2368 aborted due to compilation errors.
05:50:15 <kallisti> !perl print (int(rand(2)?'clean room':"definitely clean room")
05:50:16 <EgoBot> syntax error at /tmp/input.2431 line 1, at EOF \ Execution of /tmp/input.2431 aborted due to compilation errors.
05:50:45 <kallisti> !perl print int(rand(2)?'clean room':"definitely clean room"
05:50:46 <EgoBot> syntax error at /tmp/input.2508 line 1, at EOF \ Execution of /tmp/input.2508 aborted due to compilation errors.
05:51:07 <kallisti> !perl print int(rand(2))?'clean room':"definitely clean room"
05:52:33 -!- Vorpal has joined.
05:59:24 <itidus21> i seek feedback on this http://pastebin.ca/2098801
06:06:09 <itidus21> in contrast with that scheme, an idea i am thinking about is http://pastebin.ca/2098804
06:10:51 -!- Klisz has quit (Read error: Connection timed out).
06:11:38 -!- Klisz has joined.
06:12:23 <itidus21> and adding the instructions {"w","a","s","d"} to change the current cell in the io matrix
06:12:40 <elliott> (mirrored to http://sprunge.us/GdOR, http://sprunge.us/UNSd)
06:13:02 <elliott> how do you initialise the io matrix
06:13:08 <elliott> BF IO is based on one-dimensional bytestrings
06:13:16 <elliott> so how do you turn the input into a matrix?
06:14:39 <itidus21> hmm.. by violating everything near and dear about esolangs heheh
06:15:24 <itidus21> one analogy for what i have dubbed the io matrix is a bitmap
06:16:24 <itidus21> so all the input and output would act upon a bitmap
06:17:08 <elliott> you should check out paintfuck
06:17:11 <elliott> not the same thing but bitmap bf all the same
06:17:28 <itidus21> i also had the idea of a frame updating operator
06:18:44 <itidus21> so, wwwwaaaassssdddd would theoretically move a cursor of sorts in a box shape in the bitmap, and then an extra operator such as "e" would tell it to update
06:19:55 <itidus21> so ,w.w.w.w.a.a.a.a.s.s.s.s.d.d.d.d.e!# would theroetically draw a box made of #
06:20:54 <itidus21> my lack of comprehension of bf's [ and ] operators is probably signifigant at this stage :P
06:22:58 <itidus21> hmm paintfuck seems to embody the idea of wasd as nsew
06:24:30 <elliott> <itidus21> so ,w.w.w.w.a.a.a.a.s.s.s.s.d.d.d.d.e!# would theroetically draw a box made of #
06:24:33 <elliott> this isn't a valid brainfuck program
06:24:38 <elliott> ! is just a notational convenience for /interpreters/
06:24:50 <elliott> you have to compute the ascii value of ! manually intsead
06:25:03 <itidus21> since... my input is my bitmap
06:25:14 <itidus21> i can't really have my cake and eat it
06:25:15 <elliott> (also, most interpreters don't support it -- it originated with the dbfi self-interpreter, which was forced to use such a scheme because it's all bf itself can host)
06:27:28 <itidus21> ^bf +++++++++++++++++++++++++++++++++++.
06:27:57 <itidus21> +++++++++++++++++++++++++++++++++++w.w.w.w.a.a.a.a.s.s.s.s.d.d.d.d.e :-D
06:28:39 <itidus21> i guess i should focus on paintfuck direction notation
06:30:02 <itidus21> +++++++++++++++++++++++++++++++++++n.n.n.n.e.e.e.e.s.s.s.s.w.w.w.w.q (where q = some kind of.. end of frame/cellular automaton iteration operator)
06:30:50 <zzo38> I read some idea about a chess variant with an infinite number of rules. But I have different idea, which is a chess variant where the number of kind of pieces is exactly googolplex. You could have a 10x10 board indicating possible jumps, in each cell put a number 0 to 9. For each possible configuration of this board, assign a number 0 to 9. Each possible set of these value is the kind of piece. Its Haskell type would be: ((Ten, Ten) -> Ten) -
06:33:53 <itidus21> "q" is really intended here along the lines of vsync as if to say, the data is ready
06:34:11 <itidus21> well not like vsync.. but sort of like it
06:37:49 -!- zzo38 has quit (Quit: zzo38).
06:38:30 <itidus21> another goal i have in mind with such things is to use such a language to control a memory mapped array inside a given program
06:39:33 <itidus21> but the more i think about it the more ridiculous it seems
06:46:40 <itidus21> so this "memory mapped array" might look like: cell 0 = player1 paddle position, cell 1 = player2 paddle position, cell 3 = player1 points, cell 4 = player2 points, cell 5 = ball x position, cell 6 = ball y position
06:53:22 <elliott> <itidus21> "q" is really intended here along the lines of vsync as if to say, the data is ready
06:53:29 <elliott> it's called blitting... or flipping the buffer... or w/e
06:56:29 <itidus21> so it's really a perverted goal of writing pong in a brainfuck derivative
06:56:47 <itidus21> or.. not the entire pong, but the logic of it
06:58:56 <itidus21> i have to admit paintfuck is very curious
07:01:10 -!- Klisz has quit (Quit: SLEEP, GLORIOUS SLEEP).
07:07:43 <itidus21> i won't truely be a BF programmer until i master the [ and ]
07:12:46 <elliott> kallisti: i just descended into
07:12:50 <elliott> the furthest depths possible
07:13:14 <kallisti> sitting aorund watching SC2 games.
07:13:16 <elliott> http://meta.stackoverflow.com/questions/41976/question-title-that-doesnt-describe-the-problem
07:13:24 <elliott> i have hit absolute rock bottom
07:13:31 <elliott> it's actually really funny
07:17:07 <kallisti> $.butterfly({ aLongList: ofParameters, whichAre: notExplained
07:18:08 <kallisti> elliott: there are so many things in this that are like...
07:18:20 <kallisti> like SO culture is to self-deprecate itself.
07:19:22 <elliott> kallisti: metastackoverflow is about 65% experienced users complaining about the terrible quality of most of the questions/answers
07:23:06 <elliott> @-references don't get updated when names change
07:23:09 <elliott> infer from context appropriately :P
07:23:20 <elliott> (they really should get rewritten but i guess it's too heuristicy)
07:24:37 <kallisti> http://bicycles.stackexchange.com/
07:24:42 <kallisti> just what I've been looking for.
07:25:14 <itidus21> apparently pollyanna is adam davis
07:25:43 <kallisti> http://cstheory.stackexchange.com/questions/9563/all-recursive-algorithms-are-inherently-not-inplace-isnt-it
07:25:47 <kallisti> loooooooooooooooooooooooooooooooooooooool
07:25:58 <elliott> "This question has an open bounty worth +50 reputation from Alan Turing ending in 7 days."
07:26:00 <elliott> you don't see that every day
07:26:13 <kallisti> obviously all of those recursive tree algorithms in the STL are not in-place.
07:28:04 <kallisti> cstheory stackexchange doesn't get a lot of answers
07:28:08 <kallisti> elliott: THIS IS YOUR GOLDEN OPPORTUNITY
07:28:13 <kallisti> TO BECOME MASTER OF CSTHEORY STACKEXCHANGE
07:29:21 <ais523> "Porn Univeristy Of Blow Job"
07:29:35 <ais523> who even searches for that sort of thing? it's unlikely to be worded exactly like that even without the typo
07:30:35 * ais523 vaguely wonders what findthisall.com is actually for, given that it's trying so hard to drive traffic to itself
07:31:03 <kallisti> ais523: uh, what are you talking about. :P
07:32:07 <elliott> ais523: hey, my degree is from the Porn University of Blow Job
07:32:34 <elliott> Blow Job is a wonderful little down, and I understand Adam Porn, the university's founder, was a very generous man indeed
07:32:50 <ais523> anyway, findthisall.com is responsible for about half the spam the wiki gets
07:33:02 <elliott> ais523: what's graue's email?
07:33:18 <ais523> the domain's oceanbase.org, you can probably guess the rest
07:33:28 <itidus21> Blow Job is a wonderful little down the way
07:33:51 <ais523> hmm, if we even had a spam blacklist, I could just put findthisall.com on it
07:34:34 <elliott> how long has the wikispam been going on? has to be at least two months by now, surely?
07:35:08 -!- kallisti has set topic: TODO: spam blacklist | http://codu.org/logs/_esoteric/.
07:35:27 <itidus21> perhaps a bot should be developed which posts wiki edit titles into the channel, and a capacity to delete those wiki edits
07:35:38 <ais523> findthisall.com started on 15th november 2011
07:35:40 <kallisti> yes let's spam the wiki and the channel at the same time
07:36:06 <ais523> the other spambot that we have a lot started rather earlier, but it's harder to block in an automated way
07:39:25 * elliott sends an email off to graue
07:39:35 <elliott> I suggest we try and trick the spambots into spamming Graue if he doesn't reply :)
07:41:48 <kallisti> change the names/ids of every element on every page.
07:42:02 <kallisti> and the bots won't know where to find anything.
07:43:09 <elliott> kallisti: it doesn't really work like that...
07:43:33 * elliott decides kallisti needs to learn more about spamming software for reasons :)
07:43:46 <ais523> elliott: well, the bots are breaking the CAPTCHA
07:43:56 <kallisti> elliott: why does it not work like that.
07:44:06 <ais523> swapping the IDs for captcha answer and edit summary would probably work
07:44:25 <ais523> as the bots probably wouldn't notice that they'd swapped round, and they certainly aren't spamming the CAPTCHA answer into every text box on the page
07:44:36 <elliott> ais523: I rather suspect they might go on element order
07:44:44 <elliott> perhaps even rendered size
07:44:46 <ais523> ah, that's possible too
07:44:53 <elliott> or they might search for known text around the boxes
07:44:59 <elliott> like usage information and field labels
07:45:07 <elliott> site admins really won't want to mess with those, after all
07:45:10 <ais523> seems a little advanced for a spambot
07:45:25 <ais523> normally they just aim at low-hanging fruit
07:45:33 <fizzie> "Aren't you little short for a spambot."
07:45:41 <elliott> ais523: yeah, Esolang must be reeling in billions for them :P
07:45:49 <elliott> (I realise they're not specifically targeting Esolang)
07:46:14 <kallisti> elliott: I think you're expecting far too much from spambots.
07:46:21 * ais523 visits findthisall.com in w3m
07:46:31 <ais523> even if its purpose is to spread malware, I bet it doesn't spread it via w3m on Linux
07:46:47 <ais523> I mean, even if that combination is vulnerable, the chance that anyone would bother to try an exploit for it is basically 0
07:47:02 <kallisti> anyway if it's element order (which is pretty likely as well) then you can just add some hidden elements somewhere
07:47:29 <ais523> hmm, it's a list of searches it guesses I might be using, and some results
07:47:32 <ais523> although quite a few of them are empty
07:47:34 <fizzie> Hidden elements, which they ignore, since they try to approximate what a user would do.
07:47:35 <ais523> what an embarassing homepage
07:48:01 <fizzie> Are you sure you're not looking for High Quality Euro Watches?
07:48:20 <ais523> heh, many of the results are just random URLs with irrelevant descriptions and INTERCAL worked into them somewhere
07:48:25 <ais523> this seems to be a clearinghouse for spam links
07:48:43 <ais523> as in, it's nothing but sponsored referrals
07:48:55 <elliott> ais523: i visited it, it's boring
07:48:57 <ais523> "Check results for INTERCAL on our free comparison site"
07:49:24 <ais523> what a pointless thing to spam
07:49:52 <kallisti> and you may be pleasantly surprised at how dumb spambots actually are.
07:49:56 <ais523> they're relying on people searching for a term, finding findthisall.com, then completely forgetting what they were looking for and clicking on one of its links because they look interesting
07:50:14 <ais523> nah, every distinct website I visit increases the chance that one of them has a w3m exploit
07:50:17 <kallisti> and by you and I mean the owner of the wiki.
07:50:33 <ais523> kallisti: oh, you mean change the wiki layout?
07:50:42 <ais523> there are several obvious solutions to the current rash of spam
07:50:51 <ais523> but graue isn't implementing any of them, or even responding to emails
07:51:04 <elliott> hmm, yay, I should hit the last SO privilege level before the 3 ridiculously huge ones today
07:51:18 <ais523> "You want information about search engine optimization and you would like to have it in a easy to understand format. If this is the case, this article will be perfect for you. We will lay out some of the most important tips and guidelines, in a way that you can quickly digest. The main thing to remember is that you need a solid strategy for which %LINK1% you'll be using, and how you'll use them, but we'll get to that in a moment."
07:51:21 <elliott> (it goes 5000, 10000, 15000, 20000)
07:51:29 <ais523> what does the 5000 level do?
07:51:49 <ais523> hmm, are you going to hit the top privelege level then delete the entire site?
07:51:50 <elliott> allows me to vote on suggested post edits and approve tag wiki edits
07:51:55 <elliott> ais523: yes, that's my master plan
07:51:59 <ais523> like EVE Online scammers?
07:52:52 <elliott> (10000 gets you moderation privileges like delete votes, handling flags, viewing deleted posts, etc.; 15000 lets you protect questions; 20000 lets you vote to delete answers, delete closed questions, edit tag wikis arbitrarily)
07:53:13 <elliott> I assume there's some secret level above those that lets you delete the site
07:53:41 <ais523> "delete votes"? that sounds abusable
07:53:47 <elliott> hmm, the 10k rep privileges are kind of like wikipedia making people admins when they hit a certain edit count
07:53:52 <ais523> does it let you delete downvotes aimed at you?
07:53:58 <elliott> except not really, since people have to vote and accept your stuff to raise rep :)
07:54:03 <elliott> ais523: cast delete votes, that is
07:54:06 <elliott> i.e. cast votes to delete questions
07:54:17 <ais523> and also cast votes to not delete, I take it?
07:54:33 <elliott> I don't think any of the voting systems work that way, they're mostly just 5 people -> action taken
07:54:39 <elliott> e.g. it takes 5 close votes to close a question
07:55:05 <elliott> and you need a good amount of rep to cast them in the first place
07:55:12 <elliott> so the chances of a high-quality question being closed like that are low
07:55:38 <ais523> I guess 5 people with the ability to cast delete votes could delete the whole site, one question at a time
07:56:45 <ais523> hmm, I guess I'm one of the few people in the world with enough technical knowledge to delete Wikipedia's Main Page correctly, if I had admin privileges
07:56:50 <ais523> the thing would just get undeleted pretty quickly, though
07:57:10 <ais523> I'm amused that the safeguards against deleting it are so much higher than the safeguards against editing it
07:57:18 <fizzie> ais523: You've mentioned this before, in fact. Are you sure you're not harboring some Main Page deletion fantasies?
07:57:30 <elliott> He's talked about it at least 3 or 4 times.
07:57:37 <ais523> fizzie: it's because I've been trying to persuade Wikipedia to move it to Portal:Main for ages
07:57:41 <ais523> but I gave up after a while
07:57:42 <fizzie> Department of Wikiland Security may be in touch.
07:57:49 <ais523> hmm, I suppose I should claim that's the reason I left
07:57:52 <elliott> ais523: You can delete Esolang's main page. Nobody will notice if you just do it for a few minutes.
07:57:57 <elliott> Don't keep your urges cooped up inside.
07:58:02 <ais523> anyway, there's always a big debate about "can you actually /do/ that?"
07:58:09 <ais523> and the answer is "yes, if you know how, it's actually quite easy"
07:58:14 <ais523> but nobody ever believes me
07:58:43 <elliott> ais523: The one thing I must do with my life is to become a producer of creative works of sufficient notability that an article on any major work I create is guaranteed, and then to release such a work and title it Main Page.
07:59:37 <elliott> I really want to have a universe sandbox so I can see what would happen before I commit to actually going to all that effort to making it happen.
08:00:13 <ais523> elliott: how do you know you're not in one at the moment, and simply held back your memories of the outside whilst inside it, in order to make sure you acted plausibly
08:00:31 <elliott> ais523: if that is the case, I salute its creator
08:00:50 <elliott> but it's inevitable that I /will/ end up doing all that, because it's specified in the parameters
08:00:54 <elliott> so I don't have to devote any effort to actually doing it
08:01:09 <elliott> probably the simplest way this will happen is for me to change my mind and devote effort to it
08:01:16 <elliott> ais523: Jimbo Wales' editcount is /under 9000/?
08:01:28 <ais523> would you expect it to be high?
08:01:33 <ais523> most of what he does doesn't require actual edits
08:01:36 <ais523> and he isn't even in charge any more
08:01:48 <ais523> also, he preferred to use a mailing list to wiki talk pages for discusison
08:01:56 <ais523> which is, I think, a mistake
08:02:03 <elliott> ais523: well, it's been 11 years
08:02:07 <fizzie> elliott: You can aim for the low-hanging fruit and just design an esolang called "Main Page".
08:02:11 <elliott> he's made under 818 edits per year
08:02:30 <elliott> that seems abnormally low for a founder who at least participated /moderately/ actively for a good while
08:02:51 <elliott> fizzie: do you really think any of us would object to putting a dab on our main page for that?
08:03:01 <elliott> I'd probably just link the trilime to it :P
08:03:53 <fizzie> What's that "I have plans for this file!" mean?
08:04:33 <elliott> fizzie: I uploaded it to put it on my Main Page redesign.
08:04:41 <elliott> You can't hotlink it from the theme files.
08:04:58 <elliott> Obviously I had to upload it before anyone actually knew about the redesign, though, to test it :p
08:05:31 <elliott> http://esoteric.voxelperfect.net/w/index.php?title=Main_Page&direction=next&oldid=21677
08:05:43 <elliott> I like how the last few edits before I replaced it were adding more "of the day"s
08:06:38 <elliott> ais523: [[User:Fydo851ts563n]]
08:06:41 <fizzie> So what does the trilime symbolize?
08:07:07 <elliott> ais523: fizzie: the trilime is the matrix of solidity
08:07:16 <ais523> elliott: but, umm, what?
08:07:24 <ais523> it predates us hearing about the matrix of solidity
08:07:37 <elliott> do you seriously believe the matrix of solidity didn't exist before we heard about it?
08:07:38 <fizzie> Linear time is no boundary for the matrix of solidity?
08:07:44 <elliott> further evidence: 1. limes are solid 2. if not the trilime, what else?
08:07:47 <ais523> elliott: s/trapped/locked/
08:08:14 <elliott> ais523: hmm, I suppose you could argue we're consensually locked
08:08:30 <ais523> elliott: but you're underage!
08:08:40 <elliott> ais523: not in the matrix of solidity!
08:08:47 <elliott> This is the Postfix program at host pendrell.textdrive.com.
08:08:48 <elliott> I'm sorry to have to inform you that your message could not
08:08:48 <elliott> be delivered to one or more recipients. It's attached below.
08:08:48 <elliott> For further assistance, please send mail to <postmaster>
08:08:48 <elliott> If you do so, please include this problem report. You can
08:08:48 <elliott> delete your own text from the attached returned message.
08:08:52 <elliott> <graue-deadnet@pendrell.textdrive.com>: maildir delivery failed: error writing
08:08:54 <elliott> message: Disc quota exceeded
08:09:30 <ais523> elliott: well, that's the last known email address for Graue
08:09:38 <ais523> I didn't get an error about it when I sent there
08:09:42 <ais523> my guess is that it /is/ his email address
08:09:44 <ais523> but he no longer reads it
08:09:51 <ais523> and his disc quota has entirely filled up with mail
08:09:57 <ais523> explaining why I didn't get a bounce on my last email, but you did
08:10:00 <fizzie> Email of the day: "Uh, we have this exam for this course you're the assistant for tomorrow, do you have any idea who's preparing the questions?" "Er... the lecturer of the course flew to Tokio a week ago, left his laptop at home, and won't be back until the 16th..."
08:10:13 <elliott> ais523: searching elsewhere, scott at the same domain seems to be his email address too
08:10:19 <ais523> note that you're not going to get "disc quota exceeded" unless it can identify the user in question
08:10:22 <ais523> elliott: are you going to try it?
08:10:42 <elliott> failing that, I'll find out where he lives and take a crowbar
08:11:14 <elliott> sent, let's see if it bounces
08:12:43 <elliott> ais523: theory: graue likes spambots
08:13:01 <ais523> so how do you explain the ban on <div>?
08:13:04 <fizzie> I guess I got nominated to prepare an exam. "Oh well, let's check the previous one for ideas and the TeX template... bash: cd: edu/T-61.5140/exam: Permission denied"
08:13:13 <elliott> ais523: he also hates div and span tags
08:13:33 <fizzie> It's SPAMbots he likes, not SPANbots.
08:13:55 <fizzie> elliott: Whoops; went with the Finnish spelling.
08:14:37 <elliott> maybe i'll ask ais523 whether i should sleep
08:14:48 <ais523> elliott: I should sleep myself
08:14:51 <ais523> but I keep getting distracted
08:15:03 <ais523> either that, or I should stay awake until a sensible time to sleep and then sleep
08:15:11 <ais523> the thing is, I need to be awake at about 7pm
08:15:16 <fizzie> "drwx--S--- 3 [lecturer's account] edu 7168 2011-11-10 12:20 edu/T-61.5140/exam/" well that's just impolite.
08:15:20 <ais523> so if I don't go to sleep soon, I won't have time to fit in a good day's sleep
08:15:34 <ais523> to a group that doesn't exist?
08:15:43 <elliott> why would the edu group not exist?
08:15:47 <fizzie> Huh? The 'edu' group exists just fine.
08:15:52 <fizzie> Inherited from the parent, probably.
08:16:08 <elliott> fizzie: Can't you just use a root escalation?
08:16:20 <ais523> oh, I read edu as the user, and 7168 as the group
08:16:42 <fizzie> Oh; right, I redacted the user.
08:16:50 <fizzie> To protect the guilty, and so on.
08:17:29 <fizzie> Oh well, the student-run exam archive probably has scanned copies of the old exams anyway.
08:17:52 <fizzie> (Not the 2011 ones, apparently.)
08:20:25 <elliott> fizzie: I wish the students could see this, it'd be so reassuring for them.
08:21:22 <elliott> fizzie: You should somehow work the channel into one of the questions, e.g. "Alice connects to her favourite IRC network irc.freenode.net and joins #esoteric. Bob sends her an automated welcome message. What is 2 + 2?"
08:22:56 -!- zzo38 has joined.
08:23:02 <fizzie> It's a re-re-exam anyway; the "main" one was last May, and a repeat opportunity last August; this one is just for the stragglers.
08:23:29 <fizzie> Three people have signed up for it, though I suppose there could always be a couple extra; signing up is in theory mandatory, in practice not.
08:23:49 <fizzie> How much can three people matter? Wait, no, not three people: three students.
08:24:02 <fizzie> Three smelly, unwashed students. (Disclaimer: they might not smell.)
08:24:12 <elliott> fizzie: You should just not give them an exam and they'll be so happy. Probably.
08:24:28 <elliott> "Is this an exam?" (correct answer "no")
08:26:10 <elliott> hmm, i just got another upvote
08:26:14 <elliott> maybe i _will_ sleep after all
08:26:37 <Deewiant> fizzie: Why'd the lecturer leave his laptop at home and how do you know this? (I presume it wasn't an accident or you wouldn't know about it, unless he called you or something.)
08:27:38 <elliott> The lecturer was Deewiant all along.
08:27:46 <elliott> (Is Deewiant still even at that place? Finland is so confusing.)
08:28:07 <Deewiant> Yes, I'm at that place for a sufficiently broad value of "that place".
08:28:52 <elliott> Deewiant: University thingy thingy Google Wave. Without the Google part.
08:28:57 <elliott> Although Finland might merge with Google in the coming years.
08:29:40 <elliott> Haven't you been there, like, ten years now? FINLAND.
08:29:48 <fizzie> Deewiant: He emailed me on 28th (of December) that "I'll be leaving for Tokyo tomorrow, back on Jan 16th, not going to take a computer with me, could you kindly update next year's details on the course's website?" Had (apparently; we haven't managed to contact him) completely forgotten about any exam.
08:30:06 <fizzie> Deewiant: I guess it's borderline possible he'd have a ready exam in his office? Though probably not very likely.
08:30:32 <elliott> Who the hell doesn't take a computer with them?
08:30:41 <elliott> That's like "I'm not taking clothes, or oxygen."
08:30:42 <fizzie> elliott: It's called a va-cay-shun.
08:30:52 <elliott> Naked space vacuum vacation.
08:30:59 <elliott> (The term is "holiday", foreigner.)
08:31:07 <elliott> wow, i just got another update!
08:31:15 <elliott> ais523: you should sleep, i don't need you to be awake to entertain me since i'm sleeping
08:32:41 <fizzie> elliott: Anyway, he's not answering his phone either, so I think it's the "unplugged" sort of a holiday. (I mean, don't people usually go to Tokyo to get rid of the hussle and bustle of civilization?)
08:33:03 <fizzie> Hussel-bussel. Anyway.
08:33:26 <fizzie> Tokyo, the last uncharted wilderness. And so on.
08:34:01 <fizzie> (Can you even get an Internet connection there? Maybe with a satellite phone...)
08:34:26 <elliott> I have a hard time believing it's possible to cross the street without a smartphone in Tokyo.
08:35:55 <elliott> I think ais523 fell asleep.
08:36:15 <Deewiant> fizzie: On an unrelated note, your ICS user web page is old enough that it's full of dead links.
08:36:41 <zzo38> I don't take computer to vacation.
08:36:51 <zzo38> I usually do take books, pencil, paper.
08:37:17 <zzo38> I don't take telephone to vacation either.
08:37:35 <elliott> Deewiant: Are you suggesting he adopt the FASCIST AALTO TEMPLATE? (I assume they have a template. It is possible they have a template. A template... might exist?)
08:37:51 <elliott> (Who the fuck calls a university Wave?!)
08:37:54 <Deewiant> elliott: He's using an out-of-date template.
08:38:18 <elliott> Deewiant: Yes, it's like the Confederate flag.
08:38:27 <elliott> Deewiant: You just can't handle: FREEDOM.
08:39:03 <Deewiant> I'm not saying he should use the new template, making up his own stuff is fine by me too.
08:40:24 <elliott> fizzie: You should tile whatever logo you guys used before Aalto as the background.
08:42:20 <fizzie> Maybe he went to Tokyo to DRIFT RACE. I've understood that's kind of what they do there.
08:42:46 <elliott> They have cars in Finland?
08:43:03 <fizzie> Horse-driven snowmobiles.
08:44:49 <fizzie> Sometimes when the two kinds meet there are... accidents.
08:45:11 <elliott> I really hope Finland is actually like that.
08:45:44 <elliott> ais523: here's a question for you: is efficient /// compilation (to a "standard" language, like C) possible?
08:45:50 <fizzie> You'll be so disappointed when your government finally exiles you here.
08:46:14 <ais523> I can't think of an obvious way, but I'm not convinced it's impossible
08:47:01 <elliott> it's self-modifying, but at least code only modifies code /after/ it
08:47:11 <elliott> e.g., a replacement never does anything to /itself/
08:49:27 <elliott> @tell oerjan You should fix the Perl /// interpreter (per http://esolangs.org/wiki/Talk:Slashes) :P
08:50:28 <zzo38> I try to make (Functor (forall x y. f x y)) to be a constraint but it doesn't seems to work
08:51:17 <itidus21> http://www.google.com/search?q="matrix+of+solidity"
08:51:31 <zzo38> It says it is expected kind `*' but `f x y' has kind `* -> *'
08:52:28 <elliott> zzo38: you can't have instances like that afaik
08:52:39 <elliott> but it's impossible to say the real error without knowing context
08:53:49 <elliott> itidus21: i like how we are second place
08:54:29 <itidus21> its actually surprising we aren't first place
08:54:32 <zzo38> But doesn't it have like the (,) functor and (->) functors have one additional type argument for all type of kind (*)
08:54:50 <itidus21> hmm ill try a better search engine
08:55:33 <itidus21> duckduckgo drops the ball on this one
08:55:56 <itidus21> bing drops the ball on this one
08:56:34 <elliott> ais523: why the hell is it 9 am?
08:56:49 <ais523> becaues it's almost 9am
08:57:42 <elliott> http://www.lifeoflight.com/channellinglibrary/merlin/533.html beloved beloved beloved
09:05:01 <ais523> bleh, we need a quick and easy to type way to say "just fix all the typos in what I've said recently"
09:05:04 <ais523> I suggest * on a line by itself
09:06:43 <elliott> bleh, i have to sleep now, or i'll end up sleeping at some even more terrible time
09:07:04 <elliott> ais523: wake me up before it gets too late, please, thanks
09:07:17 <itidus21> i think its a form of courtesy
09:07:34 <itidus21> or a form of acknowledging ones typos
09:08:56 -!- elliott has quit (Read error: Operation timed out).
09:10:01 <zzo38> Then how can I make constraints and classes that put multiple parameters in?
09:12:24 <Sgeo> I assume your question is more advanced than that
09:12:35 <zzo38> Yes my question is more advanced than that
09:14:06 -!- nooga has joined.
09:20:09 <itidus21> vis a vis my http://sprunge.us/GdOR and http://sprunge.us/UNSd i would say
09:23:21 <itidus21> brainfuck and boolfuck use bf tape and io streams
09:26:20 -!- nooga has quit (Ping timeout: 240 seconds).
09:27:29 <itidus21> what i had in mind is to use bf tape and io matrix
09:39:22 -!- ais523 has quit (Remote host closed the connection).
09:40:20 <itidus21> next insight here is that in such an io matrix, the pointer should have dimensions in addition to position
09:43:55 <itidus21> so that can position the pointer at (x,y) and stretch it to (width, height) and do an operation on that like increment, decrement or write a specific value to them all.
09:48:03 <zzo38> Is the left zero law for MonadPlus implied by the other Monad and Functor laws and by the type signatures?
09:55:16 <kallisti> zzo38: which laws? I can't think of one that would be related.
09:55:39 <kallisti> it needs mzero, which isn't defined anywhere else.
10:07:41 <zzo38> mzero :: m a, where it must work for any argument type. Which means that fmap on it must not affect it since there can be no value to affect (since fmap id = id, it cannot do other things), which means join on such a thing must be same too (join mzero = mzero) due to the (>>= return) = id law.
10:08:24 <zzo38> Did I do it wrong?
10:09:15 <zzo38> (Assuming that the class methods must be fully defined, of course)
10:11:33 <kallisti> zzo38: hm, but then is that because of other laws or simply because mzero :: m a ?
10:12:45 <zzo38> I think it is due to the functor laws. The (>>= return) law seem to imply that if fmap cannot affect something, then join cannot affect it either.
10:17:24 <zzo38> (I mean its value remain unaffected)
10:19:54 <kallisti> this is too metamath for me. :P
10:20:35 <kallisti> what causes 2 + 2 = 4? is it the 4, the +, the =, the left 2, or the right 2?
10:22:05 <zzo38> I think it is the + that causes 2 + 2 to make 4
10:24:42 <kallisti> I think the whole expression depends on its parts.
10:25:01 <kallisti> but yes, I think what you're saying makes sense as well.
10:25:12 <zzo38> Yes, I agree with that. Still, the main thing that causes addition to result in an answer is the addition.
10:25:33 <zzo38> But of course it won't work if you don't have something to add!
10:25:50 <itidus21> (1+1) + (1 + 1) = (1 + 1 + 1 + 1)
10:26:12 <kallisti> also if equality were defined differently you would not be able to say the same thing about the value of 4.
10:26:13 <zzo38> itidus21: That's different; it is caused by associative laws.
10:26:31 <zzo38> kallisti: Yes, that too.
10:31:14 <kallisti> anyway I'm not sure that they're connected anyway.
10:31:33 <kallisti> I'm pretty sure the zero law is just stemming from the simple fact that mplus and mzero form a monoid.
10:32:14 <kallisti> you could say it's a result of mplus in much the same way that 4 is the result of addition in the expression 2 + 2. if you want to think of it that way.
10:33:55 <kallisti> maybe if mplus had a default definition, with mzero being the minimal complete definition.
10:34:22 <zzo38> kallisti: I don't think so. The identity law (mplus mzero = flip mplus mzero = id) follow from a monoid, but left zero law (mzero >> x = mzero) is difference, it is a bit like multiplication but not really.
10:35:06 <kallisti> oh by left zero law I thought you meant mzero `mplus` x = mzero
10:35:26 <zzo38> No, that is called the left identity law.
10:36:08 <zzo38> Maybe you can understand my other comments and proof now that you know what I meant by left zero law.
10:36:55 <kallisti> oops. here I was, getting all philosophical.
10:41:02 <kallisti> well, if the left zero law weren't true I don't think left identity for monads could be true either.
10:43:54 -!- GreaseMonkey has quit (Quit: The Other Game).
10:50:59 <HackEgo> Monads are just monoids in the category of endofunctors.
10:51:05 * Sgeo has every desire to write some Template Haskell code very soon
10:51:34 <Sgeo> It's either that or writing very repetitive Haskell code
10:51:43 <Sgeo> Although I've already been doing quite a bit of the latter :/
10:51:51 <Sgeo> Because I intend to make a binding to the AW SDK
10:53:33 <Sgeo> Defining data structures in a regular way with a consistent naming pattern, and making consistently named functions that take those data structures as arguments
10:53:36 <Sgeo> Things like that
10:53:46 -!- sebbu2 has joined.
10:53:46 -!- sebbu2 has quit (Changing host).
10:53:46 -!- sebbu2 has joined.
10:55:10 <Sgeo> I will probably use a quasiquoter
10:55:34 <Sgeo> So I can copy/paste from Aw.h right into the thing without repeated search/replace and whatnot
10:55:42 <Sgeo> (Which I've been doing quite a bit of these past few days)
10:56:52 -!- sebbu has quit (Ping timeout: 252 seconds).
11:01:07 <kallisti> Sgeo: are you sure there's not an abstraction?
11:15:21 <itidus21> i think that i have a hidden motive with programming to try to use programming to bridge the gap between required data resources and available financial
11:17:00 <itidus21> like for example, 3d scanners, 2d scanners, cameras, video cameras, 3d cameras, motion capture, microphones etc.. all provide a lot of data resources
11:19:10 <itidus21> not to mention the cost of actors, painters, animators, film sets, voice actors to apply all these technologies to
11:22:02 -!- Jafet has joined.
11:22:32 -!- azaq23 has joined.
11:22:47 -!- azaq23 has quit (Max SendQ exceeded).
11:23:24 -!- azaq23 has joined.
11:23:28 <itidus21> Frooxius: well the idea is quite obvious "aha.. i can simulate all these things with a computer!" but then there is the need for 2d digital artists, animators, 3d modellers, music composers, render farms (in some cases)
11:24:34 <Frooxius> Hmm, I just saw an abstraction and actors and such, I'm not really paying attention much ^^'
11:24:58 <itidus21> oh, since i don't understand esolangs i just go off on my own tangents
11:25:21 <Frooxius> I made a short abstract (maybe? x3 ) film before though, if you're interested: http://www.youtube.com/watch?v=yQJYr13Ixew
11:25:43 <itidus21> basically my comments are not releveant or related to what was said before
11:26:59 -!- Jafet1 has joined.
11:27:21 -!- Jafet has quit (Ping timeout: 240 seconds).
11:33:12 -!- Jafet1 has quit (Ping timeout: 260 seconds).
11:35:55 -!- nooga has joined.
11:44:35 <Sgeo> kallisti, there probably are, but I can't think of anything off the top of my head that's remotely type-safe
11:45:03 <Sgeo> Or thread-safe
11:47:45 <zzo38> The type (c x y -> z) is a indexed comonad for any category c like (x -> z) is for a monoid x
11:48:00 <zzo38> The type (c x y -> z) is a indexed comonad for any category c like (x -> z) is a comonad for a monoid x
11:50:14 -!- zzo38 has quit (Remote host closed the connection).
12:07:24 <itidus21> i'm impressed by the language trigger having just read about it
12:08:30 -!- Jafet has joined.
12:08:38 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
12:09:00 <HackEgo> cat: wisdom/: Is a directory
12:09:07 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
12:11:25 -!- Phantom_Hoover has joined.
12:14:18 -!- monqy has quit (Quit: hello).
12:16:05 -!- nooga has quit (Ping timeout: 252 seconds).
12:37:39 -!- MDuck has changed nick to MDude.
12:38:57 -!- nooga has joined.
13:04:19 -!- nooga has quit (Ping timeout: 276 seconds).
13:29:09 -!- sebbu2 has changed nick to sebbu.
13:35:46 -!- Sgeo has quit (Read error: Connection reset by peer).
13:37:28 -!- Sgeo has joined.
13:42:34 <Sgeo> Only restarted comp because I was too lazy to clear up the clutter of programs
13:42:39 <Sgeo> Wanted a fresh start
13:42:44 <Sgeo> And now because of it I am noticing c2hs
13:45:03 <itidus21> so i was working independantly on a symbol independant thing a few days ago and just encountered the idea on the wiki (probably unconcious plagiarism on my part)
13:45:08 <itidus21> anyway, in this case the idea was
13:45:32 <itidus21> "" = 0, "x" = 1 where x is a particular symbol, "xx" = 2 where x is a particular symbol, "*" = infinity
13:46:14 <itidus21> in hindsight, the idea of "" = 0 doesn't look so great
13:46:54 <itidus21> but this would be designed to give something like aa+aa=aaaa
13:48:21 <itidus21> or maybe to say 'a' = 1, 'b' = 2, 'c' = 3... "abbccc"
13:51:44 <itidus21> i guess what my notion comes down to is that a symbol could encode a number by being a string of that number
13:53:55 <fizzie> You see unary numbers like that sometimes; e.g. in sed programs, since it's easy to add them.
13:55:27 <fizzie> And there's of course the combination of unary and boring brainfuck derivatives, http://www.esolangs.org/wiki/Unary
13:55:51 <itidus21> once, in a program lost to a hard disk crash, i had this idea of a rock paper scissors game where you could do sequences of rock paper scissors
13:57:04 <itidus21> i implemented it in c++ with allegro many years before coming here
13:57:19 <itidus21> it was a good idea... but hard disks die
13:57:49 <itidus21> anyway.. the idea was.. the 2 players had hitpoints... and different sequences take off different amounts of hitpoints
13:58:25 <itidus21> so rrr, ppp, sss gave you a bonus
13:58:38 <itidus21> but then there was more complicated sequences
13:58:53 <itidus21> up to possibly 8 in length i forget exactly
13:59:29 <itidus21> and so the game becomes about trying to complete a long sequence, while preventing the other playing completing a long sequence
14:02:28 <itidus21> since uh.. at every round of the game, a rock will beat a scissors
14:03:20 <itidus21> so if you can predict what their pattern is you can try to head them off before they complete it
14:05:48 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .).
14:16:33 -!- nooga has joined.
14:17:12 <Phantom_Hoover> There.... is a box of Gardasil next to the butter in my fridge.
14:17:51 <Phantom_Hoover> At least my sandwich will be immune to cervical cancer *and* genital warts, I suppose.
15:25:16 <kallisti> I can't even tell if I'm tired or not.
15:40:52 * kallisti is reading "What every computer scientist should know about floating-point arithmetic"
15:44:16 <kallisti> "Floating-point arithmetic is considered an esoteric subject by many." -- first sentence.
15:45:29 <Phantom_Hoover> Or rather, it's designed for good enough accuracy over a wide range of precisions, not precise numerical computation.
15:46:18 <kallisti> "This is rather surprising, because floating-point is ubiquitous in computer systems: Almost every language has a floating-point datatype; computers from PCs to supercomputers have floating-point accelerators; most compilers will be called upon to compile floating-point algorithms from time to time; and virtually every operating system must handle floating-point exceptions such as overflow."
15:47:25 <kallisti> I think I'll mostly be interested in the compiler and OS sections.
15:47:49 <kallisti> and not the "lol this is how overflow and rounding errors happen lololololo" section
15:49:33 <kallisti> oh hm it discusses the IEEE standard. That will be useful, because I haven't managed to find an open copy of it anywhere.
15:54:44 -!- Ngevd has joined.
15:57:45 <Ngevd> I like today's Gunnerkrigg court
15:59:23 <Ngevd> Today's Comments on a Postcard sounds awfully familiar...
16:19:49 <Deewiant> Hooray, I now have an (almost; no 5-1) complete set of up to 6-piece Nalimov endgame tablebases.
16:23:25 <Phantom_Hoover> Now, a complete set of 6-piece Nalimov endgame tablebases; tomorrow, the world!
16:31:07 <Deewiant> In the far future, perhaps a seven-piece set.
16:50:19 <Vorpal> <kallisti> oh hm it discusses the IEEE standard. That will be useful, because I haven't managed to find an open copy of it anywhere. <-- try IEEE?
16:51:41 <Vorpal> kallisti, here: http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=4610933
16:52:50 <Vorpal> I got my copy from there, can access it by university proxy, check if your university offers that too (if you study at one, I don't remember). If you don't I'm afraid I'm not allowed to distribute it though, and the pdf is marked with who downloaded it on the bottom of every page.
16:53:48 <kallisti> yes I can access it via my university.
16:54:01 <Vorpal> kallisti, then the problem is solved
16:54:08 <kallisti> not sure if I can do so on this computer though
16:54:28 <Vorpal> kallisti, my university offers a proxy service for such things, so I can do it from anywhere
16:55:58 <Sgeo> The /r/circlejerk CSS fooled me for a bit
16:57:02 <lahwran> you can downvote stuff there easy
16:58:29 <Sgeo> Not what I was referring to
17:03:10 <lahwran> then what were you referring to, oh wise CSS master?
17:06:32 -!- elliott has joined.
17:06:56 -!- Vorpal has quit (Ping timeout: 240 seconds).
17:08:58 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
17:09:26 <elliott> wow, Graue deleted some spam
17:09:33 <elliott> @tell oerjan you owe me one
17:10:41 <Sgeo> lahwran, look at who the commenters are.
17:11:08 -!- oklopol has quit (Read error: Connection reset by peer).
17:11:22 <lahwran> @tell lambdabot derp, okay?
17:11:40 -!- Ngevd has quit (Read error: Connection reset by peer).
17:13:15 <lahwran> Sgeo: that's actually pretty impressive CSS
17:13:45 -!- Ngevd has joined.
17:18:13 -!- Taneb has joined.
17:18:50 -!- Ngevd has quit (Ping timeout: 240 seconds).
17:40:32 -!- augur has quit (Remote host closed the connection).
17:48:34 <Sgeo> Apparently earphones do not exist in the future.
17:48:41 * Sgeo goes back to watching DS9
17:49:12 * kallisti is uncharacteristically watching the entire first season of Trigun.
17:56:00 <fizzie> Did it have multiple seasons?
17:57:35 -!- oerjan has joined.
17:58:44 <elliott> hi oerjan, YOU MAY PAY ME IN BLOOD
17:59:39 -!- Klisz has joined.
18:01:19 <lambdabot> oerjan: You have 2 new messages. '/msg lambdabot @messages' to read them.
18:01:23 <lambdabot> elliott said 9h 11m 50s ago: You should fix the Perl /// interpreter (per http://esolangs.org/wiki/Talk:Slashes) :P
18:01:23 <lambdabot> elliott said 51m 49s ago: you owe me one
18:02:03 <oerjan> ah but you used the reverse magical word
18:02:32 <elliott> oerjan: Yes, and then I emailed Graue at the CORRECT ADDRESS unlike everybody else, and got a response, and he deleted spam.
18:02:41 <elliott> And says he'll try and do something about it on the weekend.
18:02:48 <elliott> PAY IN BLOOD, CORRECTED /// INTERPRETER
18:03:21 <oerjan> i don't think i've emailed graue recently at any address, so i don't see the point
18:03:57 <elliott> oerjan: ais did, and you whined at least once about Graue being non-responsive :P
18:04:22 <elliott> There are lots of bloggers out there that do not really comprehend the potential of their blogs; specifically, the money making potential of the blog and how it might be optimized to generate a reliable online income. Here are a number of reasons why anyone may make money blogging. Blogs are becoming increasingly popular due to the fact that they can be put to use for income generation. Online Marketers work with blogs for advertising and marketi
18:04:22 <elliott> ng and bloggers capitalize on that require and make dollars blogging. So why are blogs so rewarding? Well here are usually four reasons:
18:05:43 <Sgeo> Oh ffs, it took way too long for me to get the hint
18:05:46 <Sgeo> (in this episode)
18:06:43 -!- Taneb has quit (Quit: Goodbye).
18:07:12 <oerjan> i am slightly worried that there are three admins active and still they missed User:KuzyFueesi
18:07:41 <elliott> oerjan: ais uses rss which can reorder things
18:07:50 <elliott> graue only deleted one page, though
18:08:03 <elliott> @tell ais523 [[User:KuzyFueesi]]
18:08:57 <oerjan> ...but does it have a 10 cutoff limit like the wordpress blog rss?
18:10:30 <elliott> Graaa upvote me you people.
18:10:33 <elliott> oerjan: I doubt it's that low.
18:14:57 -!- DCliche has joined.
18:16:09 <EgoBot> perl (sending via DCC)
18:17:07 * elliott thinks about techniques for efficient /// implementation
18:17:27 <oerjan> !slashes /test/ho///hm/test
18:17:31 <elliott> you could store the whole program in a trie somehow
18:17:37 <elliott> the only thing you need ordering for is ordering of execution
18:18:15 -!- Klisz has quit (Ping timeout: 244 seconds).
18:24:14 <elliott> An article talking partly about J with a J code example from Programming in the 21st Century is #2 on proggit.
18:24:26 <elliott> Maybe proggit has merit after all.
18:24:43 <elliott> Of course, then I click the comments...
18:25:37 <elliott> Deewiant: But all the other links are boring!!!!!!
18:38:33 -!- Zuu has quit (Ping timeout: 252 seconds).
18:44:03 -!- Ngevd has joined.
18:49:36 <EgoBot> Interpreter slashes deleted.
18:49:59 <oerjan> !addinterp slashesl perl http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
18:50:01 <EgoBot> Interpreter slashesl installed.
18:50:06 <EgoBot> Interpreter slashesl deleted.
18:50:11 <oerjan> !addinterp slashes perl http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
18:50:13 <EgoBot> Interpreter slashes installed.
18:50:49 <oerjan> !slashes /test/ho/test
18:53:51 <EgoBot> perl (sending via DCC)
18:56:23 <elliott> what does anemic even mean
18:56:52 <oerjan> lack of red blood cells
18:57:12 <elliott> i just assumed there must be some hidden meaning i was missing for that to make sense
18:57:32 <oerjan> i just paid a blood debt, is all
18:57:35 <Ngevd> oerjan is actually anemic. He really needs to get to a hospital, stat
18:58:16 <oerjan> Ngevd: a very plausible interpretation.
19:02:36 <elliott> ?pl \i o f a b -> i $ f (o a) (o b)
19:02:36 <lambdabot> (. (flip =<< ((flip . ((.) .)) .) . flip (.))) . (.) . (.) . (.)
19:02:39 <elliott> ?pl \a b -> i $ f (o a) (o b)
19:02:56 <elliott> ?pl \a b c -> i $ f (o a) (o b) (o c)
19:02:56 <lambdabot> ((i .) .) . flip flip o . ((.) .) . (. o) . f . o
19:03:00 <elliott> ?pl \a b c d -> i $ f (o a) (o b) (o c) (o d)
19:03:00 <lambdabot> (((i .) .) .) . flip flip o . ((flip . ((.) .)) .) . flip flip o . ((.) .) . (. o) . f . o
19:03:52 <oerjan> elliott: needs more on
19:04:52 <elliott> oerjan: well the problem with on is that it's just for binary operators...
19:04:58 <lambdabot> Couldn't match expected type `a -> b' against inferred type `Expr'
19:04:58 <lambdabot> In the second argument of `on', namely `o'
19:04:58 <lambdabot> In the expression: (?i .: ?f) `on` o
19:05:02 <lambdabot> forall a c b a1. (?i::a -> c, ?f::b -> b -> a, ?o::a1 -> b) => a1 -> a1 -> c
19:05:12 <elliott> it would be nice to regularise the scheme a bit so that you can more easily extend to further arguments.
19:05:46 <oerjan> i believe we wrote onN on a previous occasion
19:10:39 <elliott> i mean i don't want a typeclass hack
19:10:41 <elliott> just a more regular scheme
19:15:09 -!- DCliche has changed nick to Klisz.
19:24:42 <oerjan> :t let onMore c f o a = c (f (o a)) o; onEnd f _ = f in onMore (onMore onEnd)
19:24:43 <lambdabot> forall t t1 t2. (t2 -> t2 -> t) -> (t1 -> t2) -> t1 -> t1 -> t
19:25:05 <oerjan> elliott: regular enough? :)
19:25:28 <oerjan> :t let onMore c f o a = c (f (o a)) o; onEnd f _ = f in onMore (onMore (onMore (onMore onEnd)))
19:25:29 <lambdabot> forall t t1 t2. (t2 -> t2 -> t2 -> t2 -> t) -> (t1 -> t2) -> t1 -> t1 -> t1 -> t1 -> t
19:26:07 <elliott> :t let onMore c f o a = c (f (o a)) o; onEnd f _ = f in (onMore . onMore . onMore . onMore) onEnd
19:26:08 <lambdabot> forall t t1 t2. (t1 -> t1 -> t1 -> t1 -> t2) -> (t -> t1) -> t -> t -> t -> t -> t2
19:26:23 <elliott> oerjan: it would be nice to specify i and o as an argument, though, but only once
19:26:28 <elliott> I guess that would be a pain though
19:26:36 <elliott> i.e. factor them out into an argument without having to repeat them
19:26:45 <oerjan> elliott: um o _is_ factored out
19:27:44 <elliott> oerjan: I'm asking what I'd replace to change o
19:28:07 <oerjan> and onMore onN = onSuccN
19:28:16 <oerjan> with on2 the usual one
19:28:21 <elliott> I can't tell whether you understand my question :P
19:29:07 <oerjan> elliott: o is the second argument of onN, as usual
19:31:46 <oerjan> :t let ioMore c f i o a = c (f (o a)) i o; ioEnd f i _ = i f in ioMore (ioMore (ioMore ioEnd))
19:31:47 <lambdabot> forall t t1 t2 t3. (t3 -> t3 -> t3 -> t) -> (t -> t1) -> (t2 -> t3) -> t2 -> t2 -> t2 -> t1
19:31:58 <elliott> oerjan: ok maybe i'm not expressing what I want
19:32:17 <elliott> oerjan: neat, thanks -- it'd be nice if f came /after/ i and o though >__>
19:32:23 <elliott> although hmm i guess that's pretty easy
19:32:53 <elliott> :t let nest c i o f a = c i o (f (o a)); stop i _ f = i f in (nest.nest.nest) stop Endo appEndo
19:32:54 <lambdabot> forall a a1. ((a1 -> a1) -> (a1 -> a1) -> (a1 -> a1) -> a -> a) -> Endo a1 -> Endo a1 -> Endo a1 -> Endo a
19:33:09 <elliott> generalised newtype-ish lifting
19:33:54 * elliott then wonders if you could bundle i and o into _stop_
19:34:03 <elliott> (nest.nest.nest) inEndo ...
19:34:08 <elliott> with inEndo being defined appropriately
19:34:12 <elliott> that would be the absolute ideal
19:36:40 <Ngevd> Now you've got me thinking about zipWithN
19:36:43 <oerjan> you can do it if you put inEndo first
19:37:12 <elliott> :t let nest c i o f a = c i o (f (o a)); stop i _ f = i f; inEndo f = f stop Endo appEndo in inEndo (nest.nest.nest)
19:37:13 <lambdabot> forall a a1. ((a1 -> a1) -> (a1 -> a1) -> (a1 -> a1) -> a -> a) -> Endo a1 -> Endo a1 -> Endo a1 -> Endo a
19:37:48 <elliott> hm stop seems so redundant there, the only place it's used is where you already know what i is
19:38:01 <elliott> :t let nest c i o f a = c i o (f (o a)); stop i _ f = i f; inEndo f = f stop Endo appEndo in inEndo stop
19:38:09 <oerjan> elliott: just use const i, then
19:38:26 <elliott> :t let nest c i o f a = c i o (f (o a)); inEndo f = f (const Endo) Endo appEndo in inEndo stop
19:38:29 <elliott> :t let nest c i o f a = c i o (f (o a)); inEndo f = f (const Endo) Endo appEndo in inEndo nest
19:38:30 <lambdabot> Couldn't match expected type `Endo a'
19:38:30 <lambdabot> Probable cause: `nest' is applied to too few arguments
19:38:50 <elliott> :t let nest c i o f a = c i o (f (o a)); inEndo f = f const Endo appEndo in inEndo nest
19:38:51 <lambdabot> forall a a1. ((a1 -> a1) -> a -> a) -> Endo a1 -> Endo a
19:38:59 <elliott> @pl \c i o f a -> c i o (f (o a))
19:38:59 <lambdabot> flip flip (flip (.)) . (liftM2 ((.) . (.)) .)
19:39:03 <elliott> @pl \i o f a -> c i o (f (o a))
19:39:04 <lambdabot> (`ap` flip (.)) . (((.) . (.)) .) . c
19:39:06 <elliott> @pl \o f a -> c i o (f (o a))
19:39:09 <elliott> @pl \f a -> c i o (f (o a))
19:39:59 <elliott> :t \f a -> c i o (f (o a))
19:40:00 <lambdabot> Couldn't match expected type `t -> t1' against inferred type `Expr'
19:40:00 <lambdabot> In the first argument of `f', namely `(o a)'
19:40:00 <lambdabot> In the third argument of `c', namely `(f (o a))'
19:40:04 <elliott> :t \c i o f a -> c i o (f (o a))
19:40:05 <lambdabot> forall t t1 t2 t3 t4. (t -> (t1 -> t2) -> t3 -> t4) -> t -> (t1 -> t2) -> (t2 -> t3) -> t1 -> t4
19:40:13 <elliott> :t \c i o -> result (c i o) . argument o
19:40:13 <lambdabot> forall t a b (f :: * -> *) a1. (Functor f) => (t -> f a1 -> a -> b) -> t -> f a1 -> (a1 -> a) -> f b
19:40:43 <elliott> : let nest k i o = result (k i o) . argument o; inEndo f = f const Endo appEndo in inEndo nest
19:40:45 <elliott> :t let nest k i o = result (k i o) . argument o; inEndo f = f const Endo appEndo in inEndo nest
19:40:46 <lambdabot> forall a a1. ((a1 -> a1) -> a -> a) -> Endo a1 -> Endo a
19:40:51 <elliott> oerjan: that's really nice, thank you!
19:41:39 <elliott> (those argument and result combinators are from http://conal.net/blog/posts/semantic-editor-combinators)
19:44:06 <elliott> oerjan: i was inspired by seeing (~>) defined later based on that and Conal liking it, as (i ~> o) f = i . f . o
19:44:22 <elliott> nothing that can't be extended to more arguments is elegant enough! :p
19:44:48 <elliott> :t let nest k o = result (k o) . argument o; inEndo f = f (const Endo) appEndo in inEndo nest
19:44:49 <lambdabot> forall a a1. ((a -> a) -> a1 -> a1) -> Endo a -> Endo a1
19:45:28 <elliott> :t let nest k o = result (k o) . argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in inEndo (nest . nest)
19:45:28 <lambdabot> forall a a1. ((a -> a) -> (a -> a) -> a1 -> a1) -> Endo a -> Endo a -> Endo a1
19:45:35 <elliott> oerjan: methinks that's as good as it gets :P
19:45:41 <elliott> oerjan: what's with the monomorphism there?
19:46:11 <elliott> <elliott> :t let nest k o = result (k o) . argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in inEndo (nest . nest)
19:46:11 <elliott> <lambdabot> forall a a1. ((a -> a) -> (a -> a) -> a1 -> a1) -> Endo a -> Endo a -> Endo a1
19:46:20 <elliott> ((a -> a) -> (b -> b) -> (c -> c)) -> Endo a -> Endo b -> Endo c
19:46:49 <elliott> @pl \k o -> (k o .) . (. o)
19:49:10 <elliott> it's just the newtype field
19:49:20 -!- ais523 has joined.
19:49:22 <elliott> <elliott> :t let nest k o = result (k o) . argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in nest
19:49:27 <elliott> :t let nest k o = result (k o) . argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in nest
19:49:28 <lambdabot> forall (f :: * -> *) a a1 b. (Functor f) => (f a -> a1 -> b) -> f a -> (a -> a1) -> f b
19:49:44 <elliott> oerjan: i think nest's recursion might be restricting all the arguments of the result to have the same type, sort of thing
19:49:56 <elliott> argh lambdabot's (.) isn't helping
19:50:45 <oerjan> elliott: yes, of course, because they all have o applied
19:51:57 <oerjan> o is passed as an argument, thus monomorphic. i suppose you could sprinkle some rank2
19:52:49 -!- Zuu has joined.
19:53:42 <elliott> :t let nest k o = result (k o) P.. argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in nest
19:53:46 <elliott> :t let nest k o = result (k o) Prelude.. argument o; (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in nest
19:53:47 <lambdabot> forall (f :: * -> *) a a1 b. (Functor f) => (f a -> a1 -> b) -> f a -> (a -> a1) -> f b
19:53:57 <elliott> :t let nest k o = (k o Prelude..) Prelude.. (Prelude.. o); (i ~> o) f = f (const i) o; inEndo = Endo ~> appEndo in nest
19:53:57 <lambdabot> forall a b c c1. ((a -> b) -> c -> c1) -> (a -> b) -> (b -> c) -> a -> c1
19:54:23 <ais523> elliott: what was the reply?
19:54:23 <lambdabot> ais523: You have 1 new message. '/msg lambdabot @messages' to read it.
19:54:56 <elliott> ais523: he'll see what he can do, but might not have time until the weekend or after
19:55:05 <ais523> oh, looks like he deleted exactly one spam page
19:55:36 <elliott> so, I conclude that anyone who has sent email to Graue in, like, a year, has sent email to /dev/null
19:55:55 <elliott> ais523: I did mention AbuseFilter in my email
19:56:08 <elliott> i was considering asking him to update MW too :P
19:56:44 <elliott> oerjan: hindley-milner sucks, restricting monomorphism like that :)
19:57:06 <ais523> elliott: you have to update MW to install AbuseFilter
19:57:15 <ais523> did you mention spam blacklist, and upgrading the CAPTCHA, too?
19:57:29 <elliott> oerjan: unfortunately I'd need a typeclass or something to fix it
19:57:44 <elliott> ais523: "It would be greatly appreciated if you could tighten the CAPTCHA, or
19:57:44 <elliott> install an extension like AbuseFilter to allow the admins to blacklist
19:59:05 <ais523> AbuseFilter does much more than blacklisting domains
19:59:09 <ais523> you can, say, blacklist regexps
19:59:21 <ais523> or even, say, forbid a user's first edit being to their own user page
19:59:34 <elliott> ais523: yeah, but I (a) was annoyed enough about the spam to be writing it quickly and (b) didn't feel like writing marketing copy :P
19:59:50 <ais523> (and just throw up a message saying "editing your own user page on your first edit is a common behaviour for spambots, please edit a different page first, such as the sandbox, to prove you're human")
20:01:00 * elliott considers changing "Why not join us on IRC?" to "Why not join us in the matrix of solidity?"
20:01:05 <elliott> maybe once Graue isn't looking :D
20:08:28 <ais523> why do you consider /IRC/ to be the matrix of solidity?
20:08:33 <ais523> `pastlog matrix of solidity
20:09:16 <HackEgo> 299) <treederwright> enjoy being locked in your matrix of solidity
20:09:20 <elliott> ais523: that's the origin of it, after all
20:09:38 <elliott> we, on IRC, were closed-minded; treederwright enlightened us as to the matrix of solidity we are locked within
20:09:47 <ais523> I can't believe that "matrix of solidity" never came up in the logs before now, though
20:09:53 <ais523> so, I conclude that pastlog has broken again
20:10:24 <HackEgo> 2011-11-10.txt:22:50:04: <Phantom_Hoover> `quote matrix of solidity
20:10:38 <lambdabot> replicateM n x = sequence (replicate n x)
20:10:40 <lambdabot> replicateM_ n x = sequence_ (replicate n x)
20:10:44 <lambdabot> sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs)
20:10:44 <lambdabot> -- OR: sequence = foldr (liftM2 (:)) (return [])
20:10:45 <lambdabot> sequence_ ms = foldr (>>) (return ()) ms
20:18:19 -!- augur has joined.
20:19:11 <oerjan> <ais523> so, I conclude that pastlog has broken again <-- i wonder if this is the same bug that sometimes causes `welcome to give only the nick: part
20:19:20 -!- Ngevd has quit (Ping timeout: 252 seconds).
20:19:47 <ais523> `welcome clog cmeme glogbot glogbackup
20:19:50 <HackEgo> clog: cmeme: glogbot: glogbackup: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
20:20:13 <oerjan> ais523: i _think_ it usually happens when HackEgo is just starting up after a long break
20:20:37 <oerjan> like something is timing out, maybe
20:20:52 <ais523> `pastlog matrix of solidity
20:21:01 <HackEgo> 2011-04-01.txt:23:42:21: * iconmaster is enjoying being locked in his matrix of solidity.
20:21:29 <ais523> `pastlog matrix of solidity
20:21:38 <HackEgo> 2011-05-18.txt:20:14:43: <ais523_> also, I didn't know that the matrix of solidity thing was on the main page
20:21:49 <ais523> could just be a problem with trying to load all the logs into cache
20:22:00 <elliott> so timing out after "waking up" sounds likely to me
20:22:18 <elliott> I'm not sure it would give partial output, though, and I /rewrote/ that piece of code
20:22:24 <elliott> `run echo -n hi; sleep 10000
20:22:26 <elliott> `run echo bye; sleep 10000
20:23:15 <oerjan> elliott: for `welcome, which i wrote, it's probably to do with the use of @ and ? subprocesses?
20:24:28 -!- Ngevd has joined.
20:24:45 <Ngevd> Remember my vocab tester thing I did a while back?
20:24:52 <Ngevd> I've decided to give it more features
20:25:07 <oerjan> a fnobbly cromulent vocab tester
20:25:29 <HackEgo> Argument "latin" isn't numeric in int at /hackenv/bin/words line 141. \
20:25:33 <HackEgo> Usage: words [-dhNo] [DATASETS...] [NUMBER_OF_WORDS] \ \ valid datasets: --eng-1M --eng-all --eng-fiction --eng-gb --eng-us --french --german --hebrew --russian --spanish --irish --german-medical --bulgarian --catalan --swedish --brazilian --canadian-english-insane --manx --italian --ogerman --portuguese --polish --gaelic --finnish --norwegian \ default: --eng-1M \ \ options: \ -h, --help this help text
20:26:03 <Ngevd> `words 10 --italian
20:26:07 <HackEgo> fughe soltinsava disperai rimentissa imitargogne abbero perter sbendaleghe crimpleme scolora
20:26:36 <oerjan> lascianza sperate vogni chintrate
20:29:29 <Ngevd> How does System.Environment.getArgs behave?
20:29:54 <oerjan> Ngevd: it gives a list argument strings
20:30:19 <oerjan> excluding program name
20:31:05 <oerjan> :t System.Environment.getArgs
20:31:08 <Ngevd> So, if I ran "latin_vocab military", what would it give me?
20:31:11 <elliott> oerjan: "of course" -- many people would see no problem with getArgs being pure :/
20:31:16 <elliott> well apart from the existence of withArgs
20:31:45 <oerjan> elliott: there's a function to change it, though :P
20:31:55 <kallisti> > foldr (+) 0 [1..5] :: Sym Int
20:32:09 <elliott> oerjan: <elliott> well apart from the existence of withArgs
20:32:28 <elliott> kallisti: "i sure do like how Sym reduces expressions automatically" --kallisti
20:32:37 <oerjan> elliott: i cannot possibly read and write response simultaneously, duh
20:32:57 <kallisti> elliott: obviously you should do exactly what I want in all situations.
20:33:23 <oerjan> > foldr (+) 0 [1..5] :: Sym (Sym Int)
20:34:39 <kallisti> > foldr (+) 0 [1..5] :: Sym ((->) Int)
20:34:40 <lambdabot> `(->) GHC.Types.Int' is not applied to enough type arguments
20:40:37 -!- GreaseMonkey has joined.
20:41:50 <lambdabot> Source not found. I feel much better now.
20:42:14 <oerjan> elliott: btw chu-carroll over at goodmath/badmath is doing a series on basic category theory
20:42:29 <oerjan> he just got to cartesian closed categories
20:42:35 <elliott> why didn't you tell me earlier :P
20:42:58 <oerjan> because there was just a post reminding me
20:43:10 <lambdabot> Source not found. I feel much better now.
20:43:10 <lambdabot> Source not found. Just what do you think you're doing Dave?
20:43:24 <lambdabot> forall a (m :: * -> *) b. (MonadCont m) => ((a -> m b) -> m a) -> m a
20:44:18 <lambdabot> callCC f = Cont $ \c -> runCont (f (\a -> Cont $ \_ -> c a)) c
20:44:48 <oerjan> i wonder if they'll add writer and reader as methods like they're doing with state. oh hm reader would just be asks, wouldn't it
20:44:52 <lambdabot> forall r a. (r -> a) -> Reader r a
20:44:57 <lambdabot> forall r a (m :: * -> *). (MonadReader r m) => (r -> a) -> m a
20:45:28 <elliott> > callCC ($ [42,43]) >> callCC ($ [99])
20:45:29 <lambdabot> No instance for (GHC.Show.Show (m [t]))
20:45:29 <lambdabot> arising from a use of `M43411467...
20:45:34 <elliott> > runCont (callCC ($ [42,43]) >> callCC ($ [99])) id
20:47:02 <lambdabot> forall a r. ((a -> r) -> r) -> Cont r a
20:47:27 <oerjan> hm would that even make sense as a MonadCont method
20:47:37 <lambdabot> forall a (m :: * -> *) r. ((a -> m r) -> m r) -> ContT r m a
20:48:42 <oerjan> if you have a -> m r, and (a -> r) -> r, can you construct an m r
20:49:30 <elliott> MonadFix? if so, probably yes
20:49:39 <Ngevd> How do you put breakpoints in ghci
20:49:49 <Ngevd> For debugging purposes
20:49:56 <oerjan> elliott: i was assuming it should be something generalizing cont
20:50:07 <elliott> oerjan: oh so MonadCont m?
20:50:33 <elliott> you're asking whether cont could go in MonadCont
20:50:55 <elliott> oerjan: couldn't you just fix r = m r, and then run it?
20:50:57 <oerjan> all of reader, writer and state could go in the respective classes (and state will/does)
20:51:06 <elliott> and wire up the continuation to escape the outer continuation
20:51:13 <elliott> Cont is really special though
20:51:20 <elliott> like, most monad transformers commute
20:51:25 <elliott> most of them can lift callback operations in the base monad
20:51:31 <elliott> ContT can't do anything like that
20:51:44 <elliott> in a sense because it's the most general monad possible
20:51:57 <elliott> so you don't get any convenient extra laws :P
20:52:21 <shachaf> ContT is the most general monad possible?
20:52:23 <oerjan> perhaps that's sort of why... you can lift reader, writer and state because they are essentially commuting extensions
20:52:30 <elliott> shachaf: well you can build any monad with Cont
20:52:38 <elliott> http://blog.sigfpe.com/2008/12/mother-of-all-monads.html and so on
20:52:52 <elliott> so ContT sort of gives you the raw monad structure and doesn't let you assume anything
20:52:52 <shachaf> But what about generalizations of Cont?
20:53:09 <elliott> <oerjan> perhaps that's sort of why... you can lift reader, writer and state because they are essentially commuting extensions
20:53:15 <elliott> oerjan: this is why i like the composable effects model
20:53:55 <shachaf> http://hackage.haskell.org/packages/archive/kan-extensions/2.1/doc/html/Data-Functor-KanExtension.html
20:53:56 <elliott> http://math.andrej.com/2010/09/27/programming-with-effects-ii-introducing-eff/
20:54:01 <elliott> (http://hackage.haskell.org/package/effects is a haskell impl)
20:54:07 <elliott> oerjan: hmm ListT has problems too
20:54:20 <elliott> I guess anything sufficiently control-flowy makes monad transformers go to hell
20:55:24 <elliott> shachaf: "compose" as a type variable? Seriously?
20:55:30 -!- oerjan has set topic: The real haskell overflow channel | TODO: spam blacklist | http://codu.org/logs/_esoteric/.
20:55:58 <shachaf> Oh, you've been talking about Cont for a while in here.
20:56:02 * shachaf considers reading the backlog.
20:56:24 <elliott> shachaf: It's about whether you can put cont in MonadCont.
20:57:09 <oerjan> <elliott> I guess anything sufficiently control-flowy makes monad transformers go to hell <-- what about ErrorT
20:57:27 <elliott> shachaf: You should read that post on eff if you haven't; we finally have a decent alternatiev to monad transformers.
20:57:41 <elliott> oerjan: people always put ErrorT just above IO or Identity, I forget why
20:58:01 <shachaf> elliott: Ugh. Added to the list of tabs.
20:58:48 <elliott> shachaf: You just can't handle the SNAZZ.
21:19:57 -!- iconmaster has joined.
21:23:35 -!- azaq23 has quit (Quit: Leaving.).
21:25:16 -!- PiRSquared17 has joined.
21:29:40 <elliott> :t \str strList -> elem (map toLower str) $ convertToLower $ words strList
21:29:48 <elliott> :t \str strList -> elem (map toLower str) $ id $ words strList
21:31:16 <lambdabot> forall a. (a -> Bool) -> [a] -> Bool
21:31:53 <oerjan> <fizzie> Hussel-bussel. Anyway. <-- hussuru bussuru
21:33:15 <lambdabot> forall a. (Eq a) => a -> [a] -> Bool
21:33:31 -!- cswords has joined.
21:33:40 -!- cswords has quit (Read error: Connection reset by peer).
21:36:50 <oerjan> Ngevd: so how often do you eat three tonnes of jarlsberg?
21:37:55 -!- rapido has joined.
21:38:27 <elliott> Gregor: Oh, right, you replied :P
21:38:34 <Ngevd> oerjan, so /that's/ why that sounded familiar
21:38:37 <elliott> Gregor: How does the log formatter know when someone leaves a channel; that requires unbounded lookback in the logs
21:40:33 <rapido> for almost 2 years, i'm obsessed with uniquely represented data structures
21:41:46 <rapido> elliott: hey, it's been a while
21:42:48 <oerjan> no, obsessions are evil, you must dedicate your life to eradicate them all!
21:45:27 <elliott> the only good obsession is @
21:46:12 <olsner> hmm, there was something I was thinking about earlier that I thought belonged in #esoteric
21:46:18 <fungot> @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ...too much output!
21:46:18 <rapido> i must admit - i want to pick your esoteric brains
21:46:21 <olsner> but I guess we'll never know
21:46:41 <rapido> anyone familiar with uniquely represented data structures?
21:47:06 <elliott> rapido: I take it you mean structures for which syntactic equality is semantic equality?
21:47:13 <oerjan> future log readers will wonder why that previous fungot line exceeds the irc length limit. of course it's really just because @ is that awesome.
21:47:13 <fungot> oerjan: as a veteran of the game. then i'll put a mean game of blackjack.
21:47:14 <elliott> By "I take it", I mean "I am going to wildly guess".
21:47:33 <elliott> oerjan: I think fungot might be conservative enough about the limits to prevent that :P
21:47:34 <fungot> elliott: and just what your porkhollow's fat ass needs.
21:47:45 <fungot> elliott: his birthday is in a few minutes. wow he is so cool. two more large gizmos. it was once the island
21:48:19 <rapido> elliott: nah, its about unique representation (=layout in memory). But hey, who doesn't want to be unique?
21:48:40 <elliott> rapido: Unique howso? "Nobody else has thought of it"?
21:49:55 <rapido> example: http://www.cs.cmu.edu/~dgolovin/papers/btreap.pdf
21:50:09 <fungot> @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ...
21:50:11 <oerjan> elliott: sure, as long as the name is no longer than 3 characters
21:50:22 <fizzie> Mhm, the ^ul lines are longer.
21:50:52 <fizzie> Anyway, it doesn't go full 512-hog.
21:50:54 <rapido> you don't want others to know that you have been deleting the sexist remark
21:51:20 <elliott> represented data structures represent each logical state with a unique machine state.
21:51:20 <elliott> Such data structures are strongly history-independent; they reveal no information
21:51:20 <elliott> about the historical sequence of operations that led to the current logical state. For
21:51:20 <elliott> example, a uniquely represented file-system would support the deletion of a file in
21:51:20 <elliott> a way that, in a strong information-theoretic sense, provably removes all evidence
21:51:22 <elliott> that the file ever existed."
21:51:27 <elliott> rapido: OK, that _is_ what I said, then.
21:51:39 <elliott> If syntactic equality is semantic equality, every equivalent state has a single representation.
21:51:57 <elliott> Intensional equality, if you'd prefer.
21:51:58 <fizzie> The ^ul might go quite close, though.
21:52:48 <rapido> "Intensional equality" - that's a cool definition
21:53:31 <oerjan> ^ul ((0123456789)S:^):^
21:53:31 <fungot> 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123 ...too much output!
21:53:48 * elliott likes such definitions too, but for reasons of mathematical elegance more than information-hiding.
21:53:51 <rapido> elliott: it's hard to achieve strong history-independency
21:54:29 <elliott> I don't really care about the actual bits and bytes representation so long as the constructor tree is the same... but it's the same thing from a different level of abstraction, and the only difference will be the exact values of pointers.
21:54:58 <rapido> but pondering on it for two years i finally think i have a good result - but it feels hacky
21:55:05 <kallisti> I would think Haskell would be a good playground for creating such structures.
21:55:25 <elliott> kallisti: Not if you care about the exact in-memory representation :P
21:55:50 <elliott> rapido: The simplest way to achieve history-dependency would be to deconstruct and reconstruct the structure on every operation, of course.
21:55:51 <kallisti> that's implementation dependent anyway...
21:56:12 <elliott> kallisti: Yes, in Haskell.
21:56:40 <kallisti> elliott: well that makes sense because circular reasoning is circular.
21:57:10 <kallisti> > (:[])>=>(:[])>=>(:[]) $ "hi"
21:57:12 <elliott> Actually that's begging the question, I think. In the formal sense.
21:57:30 <kallisti> beggining the question is circular reasoning because it begs the question though. obviously.
21:57:35 <rapido> anyone familiar with cartesian trees (treaps?)
21:58:25 <elliott> I have *heard* the term treap!
21:58:52 <rapido> they have the unique property that they have a unique representation
21:59:13 -!- Jafet has quit (Quit: Leaving.).
21:59:14 <rapido> for a fixed set of (x,y) pairs
22:00:59 <rapido> fixed in the sense that there is one unique cartesian tree for a set of (x,y) pairs
22:02:04 <kallisti> so it's kind of like a binary search tree except that it's also heap and it's sorted by position in the original sequence instead of by an ordering over the elements.
22:02:22 -!- lax has joined.
22:02:34 <HackEgo> lax: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
22:02:53 <lax> any friend hereeeeeeee
22:02:55 <lax> im ne win thisssssssssss
22:03:16 <lax> ohh thanksss
22:03:20 <lax> i was tryign this page
22:03:24 <lax> for hoursss
22:03:33 <lax> and finally i did it
22:03:54 <lax> so u are chatting here?
22:04:08 <Ngevd> Supposedly about esoteric programming languages
22:04:18 <lax> elliottttttttttttt
22:04:22 <lax> dotn leave meeeeeeee
22:04:26 <elliott> ais523: [[User:KuzyFueesi]]
22:04:37 <lax> ahhh i tough u gone
22:04:58 <lax> ive just have some minutes here
22:05:05 <lax> nice to meet u here
22:05:43 <Ngevd> Hang on, one important question, lax. Do you live in a place called Hexham?
22:06:30 <lax> i cant get what she says
22:06:38 <kallisti> lax: anywhere in Scandinavia perhaps?
22:06:52 <elliott> i'm not even sure myself any more :(
22:07:15 <fizzie> elliott: Everyone's always from either Hexinki or Helsham.
22:07:31 <lax> im from peru
22:07:35 <rapido> elliott: what about ternary logic? you don't have to be female or male
22:07:38 <lax> south america
22:07:40 <elliott> peru is right next to finland i think
22:07:49 <elliott> rapido: I didn't imply that :P
22:08:05 <fizzie> elliott: mooz married someone from Peru, so in that sense at least.
22:08:24 <lax> my country
22:08:27 <fizzie> elliott: Not as far as I know, but I don't know much.
22:08:42 <kallisti> lax: are you a fan of Immortal Technique? :>
22:08:47 <fizzie> Ngevd: Just this one guy, you know?
22:09:02 <elliott> don't worry, i'll keep talking at least every 30 seconds so you know i'm here
22:09:05 <lax> who is mooz
22:09:20 <Ngevd> lax :Just this one guy, you know?
22:09:34 <lax> im want to talk to eliott
22:09:54 <elliott> lax: good choice, Ngevd sucks
22:10:01 <kallisti> "Because a Cartesian tree is a binary tree, it is natural to use it as a binary search tree for an ordered sequence of values. " wow I'm genius
22:10:09 <elliott> lax: not as bad as kallisti tho
22:10:25 <lax> well i have to go eliott
22:10:29 <lax> nice to meet u here
22:10:34 <lax> thanks for u time
22:10:39 <rapido> sometime i wonder if elliott is male, female and bimale - typing really fast at separate keyboards
22:10:40 <lax> u seem to be nice
22:10:44 <HackEgo> cont attambennisco kra attrepla alopath ventanc mahata publi polar casecr suffer lough poplicat dinge lat piry mire ant koo elved poblynwan langorzah jump bad same aurvadher grimen bie mile amuant spansum woolgtenie portung suff pula colli pat pulsifer pohy prot deschl nic hesitio auerly slro ttr invoke idicla hot rage
22:10:49 <fizzie> Ngevd: http://sbp.so/qsort (Also who on earth did that archive-page? Someone here?)
22:11:04 <elliott> rapido: as has been repeatedly established, i'm an amorphous, non-corporeal blob that lives on the internet
22:11:09 <lax> God bless u aliott
22:11:26 <lax> i dotn know how to use that chatt
22:11:35 <elliott> i just type words and they come out on the screen
22:11:37 <lax> but i have email
22:11:43 <elliott> oh good, what's your email
22:11:55 <lax> nellcita@hotmail.com
22:12:07 <lax> thats the mail i use to chatt or facebook
22:12:13 <lax> same there
22:12:34 <rapido> do not - i repeat - do not reveal your email! you will be spammed
22:12:37 <Ngevd> fizzie, so that's mooz
22:13:02 <lax> ohhhh eliott
22:13:05 <lax> u wotn do that
22:13:08 <elliott> rapido: you'll get spammed even if you don't :P
22:13:13 <elliott> i'll protect you from the spambots
22:13:19 -!- derdon has joined.
22:13:20 <lax> ohh thanks
22:13:24 <lax> loves from peru
22:13:29 <lax> and wellcome
22:13:46 <fizzie> Ngevd: Indeed. He even was on-channel in 2003 or thereabouts.
22:13:56 <Ngevd> fizzie, Before my time then.
22:14:03 -!- lax has left.
22:14:06 <fizzie> elliott: You're such a... what's that term... "playa"?
22:14:06 <elliott> i have no idea what just happened
22:14:11 <rapido> you protect me from spambots? where do i sign?
22:14:15 <Ngevd> 2003, I was... using computers to write as many roman numerals as I could
22:14:26 <elliott> rapido: sorry, by invite only
22:14:58 <elliott> fizzie: http://upload.wikimedia.org/wikipedia/commons/2/26/Kluft-photo-Black-Rock-Desert-Aug-2005-Img_5081.jpg <-- me
22:15:22 <oerjan> Ngevd: clearly a job for INTERCAL
22:17:58 <elliott> fizzie: How does that syntax-highlighting work, anyway?
22:18:04 <kallisti> http://en.wikipedia.org/wiki/Mu_(lost_continent)
22:20:38 <rapido> manual syntax highlighting: *do* it
22:21:39 -!- Ngevd has quit (Quit: Taneb cancelled playing Dwarf Fortress: Needs sleep).
22:21:48 <PiRSquared17> elliott: http://en.wikipedia.org/wiki/User:Ikluft is you?
22:22:04 <elliott> PiRSquared17: no, why would it be?
22:22:13 <PiRSquared17> http://upload.wikimedia.org/wikipedia/commons/2/26/Kluft-photo-Black-Rock-Desert-Aug-2005-Img_5081.jpg <-- me
22:22:21 <elliott> <fizzie> elliott: You're such a... what's that term... "playa"?
22:22:35 <oerjan> PiRSquared17: finnmark finnmark finnmark finnmark finnmark finnmark
22:24:51 <elliott> oh dear, i think my lightbulb is about to break
22:25:14 -!- rapido has quit (Quit: rapido).
22:25:16 <oerjan> are there enough elliotts to change it?
22:27:14 <ais523> elliott: wiki's being slow loading
22:32:04 <ais523> incidentally, people who aren't using a monospace font, how does your client kern uTu?
22:32:20 <ais523> it looks pretty weird on mine, the second u overlaps the bottom of the T, bu the first u doesn't
22:34:04 <elliott> same here, but I'm pretty sure that's correct
22:34:16 <elliott> or at least, T after u is what's incorrect :)
22:34:54 <kallisti> elliott: hi I'm reading "On computable numbers with an application to the entscheidungsproblem" by Alan Turing.
22:34:54 <ais523> arguably, that asymmetrical kerning is appropriate for camelCase
22:37:30 <shachaf> kallisti: Why would you read about computable numbers?
22:37:37 <shachaf> Practically all numbers are uncomputable.
22:38:11 <oerjan> shachaf: so he can entscheid properly, duh
22:39:28 <oerjan> `addquote <Phantom_Hoover> There.... is a box of Gardasil next to the butter in my fridge. <Phantom_Hoover> At least my sandwich will be immune to cervical cancer *and* genital warts, I suppose.
22:39:31 <HackEgo> 795) <Phantom_Hoover> There.... is a box of Gardasil next to the butter in my fridge. <Phantom_Hoover> At least my sandwich will be immune to cervical cancer *and* genital warts, I suppose.
22:40:13 <ais523> OK, that is a good quote
22:40:27 <HackEgo> 356) <tswett> Grr. Why does it exist? Why can't I kill it?
22:40:29 <HackEgo> 569) <fungot> elliott__: my fnord into normal life was a painful and difficult process. [...]
22:40:32 <HackEgo> 413) <oklopol> so about jacuzzis, do they usually have a way to make it it not heat but freeze the water?
22:40:54 <ais523> 413 is the best of those three
22:40:57 <lambdabot> iconmaster: You have 1 new message. '/msg lambdabot @messages' to read it.
22:40:57 <ais523> but the other two are decent
22:41:05 <ais523> still waiting on two more
22:41:21 <HackEgo> 747) <pikhq_> Gregor is actually a rare species of mangoat <oerjan> the fashion sense comes from the mango part
22:41:21 <HackEgo> 45) <Aftran> It looks like my hairs are too fat. Can you help me split them?
22:41:54 <oerjan> gives such a nostalgic feeling
22:41:57 <ais523> is it a /good/ classic?
22:42:15 * oerjan swats elliott -----###
22:42:48 <olsner> I think I saw the mangoat quote live
22:42:53 <kallisti> shachaf: sorry, as a COMPUTER science major I'm only interesting in the COMPUTERable ones.
22:43:03 <ais523> elliott: indeed, but it's one of oerjan's better puns
22:43:05 <kallisti> even though that's "practically none" of them.
22:43:06 <ais523> I didn't see it coming
22:43:17 <HackEgo> *poof* <pikhq_> Gregor is actually a rare species of mangoat <oerjan> the fashion sense comes from the mango part
22:43:18 <elliott> it's just not as funny as the others sory
22:43:30 <oerjan> WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
22:43:40 <HackEgo> 309) <fungot> oerjan: are you in an aware state when the only hammer you have is for variable assignation and blocks
22:43:44 <HackEgo> 641) <fungot> fizzie: it doesn't *use* raw cgi. to my deep fnord i'm only fnord of the job description. it's badly fnord also.
22:44:11 <elliott> so i just this second realised what "fungot" means
22:44:11 <fungot> elliott: in a good way though, so it's the left-right eye. you say yeah, but hang it on your wall. literally.
22:44:27 <oerjan> elliott: wait, for the first time?
22:44:34 <elliott> yes, unless i knew and then forgot
22:44:50 <HackEgo> 37) <Dylan> kaelis: yes kaelis, but however will get the horses to wear knickers?
22:44:50 <HackEgo> 77) <Warrigal> It's not incest if you're third cousins!
22:44:51 <HackEgo> 133) <coppro> what's the data of? [...] <Sgeo> Locations in a now deceased game called Mutation <coppro> I have no problems with you being interested in online games <coppro> but the necrophilia is disturbing
22:44:53 <olsner> elliott: what does it mean?
22:45:21 <olsner> oh, right, I knew that
22:45:31 <HackEgo> *poof* <Dylan> kaelis: yes kaelis, but however will get the horses to wear knickers?
22:45:32 -!- zzo38 has joined.
22:45:32 <oerjan> hm apparently there are people named fungot
22:45:32 <fungot> oerjan: the stuff scattered about your room. you of course it was a nasty pair, but he had already been a mass grave. the grisly abomination for your birthday. a number of interests.
22:45:46 <fizzie> "Funge-98 Bot" is even the realname of eir Twitter account.
22:46:01 <elliott> fizzie: And the name of the git repo interface thing, IIRC. I just never... made the connection.
22:46:18 <ais523> elliott: oh, I'd known it was funge bot all along, and your sudden realisation made me doubt that
22:46:26 <ais523> do you know the etymology behind thutubot's name, btw?
22:46:40 -!- oklopol has joined.
22:46:42 <fizzie> elliott: It's because e's such a FUN guy it crowds out then FUNGy part.
22:47:14 * olsner follows fungot on twitter
22:47:14 <fungot> olsner: that is a winner's attitude, and there is no particularly good human translation for this concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear con
22:47:28 <lambdabot> itidus21 said 13d 16h 2m 2s ago: welcome back
22:47:28 <lambdabot> itidus21 said 13d 16h 1m 10s ago: it was funny for me at the time since you were joining and leaving at a high rate. but the joke has expired
22:47:28 <lambdabot> oerjan said 10d 13h 1m 54s ago: btw, fmap' shows that T is also a contravariant functor in its first argument.
22:47:45 <fizzie> I need to restart that Twitter script one day.
22:48:07 <elliott> oerjan: haskell quiz of the day: can any data type be given both a valid Functor and a valid Contrafunctor instance?
22:48:18 <oerjan> zzo38: lambdabot is supposed to only show them once, but there's some weird resetting going on occasionally...
22:48:24 <elliott> this is one of those quizzes where I don't know the answer, and want to find out.
22:48:38 <olsner> its last tweet was twat in May, apparently
22:48:39 <oerjan> elliott: data T a = T hth
22:48:51 <olsner> indeed fizzie needs to restart the script
22:49:06 <oerjan> or even data T a b = T a
22:49:10 <fizzie> I could try if it has bitrotted away right now.
22:50:02 <elliott> oerjan: hmm... i think that might violate the laws when _|_ is involved
22:50:08 <elliott> at least, data T a = T isn't a monad if you count bottoms
22:51:37 <fizzie> It's possible Twitter's authentication API changed and broke it, and that's why I haven't restarted.
22:52:15 <elliott> fizzie: They're OAuth-only these days, I think.
22:52:18 <oerjan> elliott: who said anything about monad
22:52:39 <oerjan> ok that doesn't quite type
22:53:22 <elliott> oerjan: well monads are functors, I was just giving an analogy...
22:53:31 <elliott> also, fmap = const unsafeCeoerce :P
22:54:30 <oerjan> but to have a Functor, you just need that all appearances of the last parameter are in covariant, nonstrict positions afaict
22:54:40 <oerjan> and if there are none, it's trivial
22:55:04 <oerjan> and for Contrafunctor, probably the same but with contravariant
22:55:19 <elliott> oerjan: ok one that actually mentions a /and/ b on the RHS :P
22:55:25 <elliott> and no cheating by outsourcing to your existing T!
22:55:33 <oerjan> well then i don't know
22:56:02 <elliott> join the club! (the club is mine)
22:57:21 <tswett> Is there a stipend associated with this club?
22:57:31 <oerjan> i doubt there are any with simple ADTs, though
22:58:47 <elliott> tswett: 1,000,000 pounds per day or however much you can afford
22:58:58 <elliott> oerjan: i don't see how gadts would help
22:59:09 <tswett> I get paid however much I can afford?
22:59:49 <oerjan> elliott: well i imagined if there is some way to hide the type so it isn't exposed, analogous to show . read ...
23:00:12 <olsner> oh, fungot twat again! https://twitter.com/#!/fungot/status/154697756248776705
23:00:12 <fungot> olsner: that is a winner's attitude, and there is no particularly good human translation for this concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear con
23:00:29 <olsner> huh, that's the exact same thing it said last time
23:00:33 <fungot> olsner: you really wish your side.
23:00:46 <elliott> fizzie: Will it tweet with its fungot dataset too? :p
23:00:46 <fungot> elliott: the one who got you killed him for it?
23:00:53 <tswett> I... don't think there's any practical limit to the amount of money I can afford to be paid.
23:01:28 <olsner> I think the way it works is that if you have lots of money you get lots of money, if you have no money you get no money
23:01:49 <elliott> tswett: Oh, I was thinking of tithes.
23:01:56 <pikhq> Shame, too. I can afford to be paid any positive stipend.
23:01:59 <oerjan> like data T a b c = T (a -> c) (c -> b) but where you cannot actually get at the pieces
23:01:59 <elliott> I... er... congratulations, you have unlimited money!
23:02:28 <elliott> oerjan: which pieces? c or (a,b)?
23:02:52 <elliott> oerjan: data T a b where T :: (a -> c) -> (c -> b) -> T a b?
23:02:52 -!- iconmaster has quit (Ping timeout: 248 seconds).
23:02:54 <fizzie> elliott: Not yet, but maybe soon.
23:03:00 <fizzie> $ ./twungot-poster.py fungot.json
23:03:00 <fizzie> [2012-01-05 00:56:34] Tweeted: About NetHack: of this town. in one hand he held his court. these chosen ones will defend the land, is described in snorri's _edda_ as... (fungot)
23:03:00 <fungot> fizzie: so, you give up, jade is my slime tube and this is a new game. there is a heavy amount of time i will say you are only here to deliver a message and then i'll put his shit up?
23:03:01 <fungot> fizzie: you will be taking that crowbar though rare, is quite a troubling development primed for the digestive ruination that's about to take is the ultimate riddle.
23:03:14 <oerjan> elliott: no, the c _should_ still be the type parameter
23:03:20 <fizzie> That's a good moment to sleep. ->
23:03:29 <elliott> oerjan: you want it existential but exposed?
23:03:43 <elliott> fizzie: <olsner> oh, fungot twat again! https://twitter.com/#!/fungot/status/154697756248776705
23:03:44 <fungot> elliott: to be honest, it doesn't exist in a state of almost perpetual stalemate, and expands to a larger board and more exotic collection of what he refers to as a thermal hull, instead of some kind of clock pun. no, dammit, will this breakfast injure his shrill, bearded, scraggly old men in space. jade's radioactive, omnipotent, space-warping dog named...
23:03:56 <oerjan> elliott: i have no idea if it makes sense in any way
23:04:17 <elliott> oerjan: well what's the eliminator?
23:04:36 <tswett> How long as fungot been set to Homestuck?
23:04:37 <fungot> tswett: your modus grabs, who wants it back. it keeps happening. you seem to have a knack for always guessing right on the first try! r3l4t1v3 to my pr3s3nt to r3m4rk of r34ssur4nc3!
23:04:37 <elliott> `addquote <fungot> elliott: to be honest, it doesn't exist in a state of almost perpetual stalemate, and expands to a larger board and more exotic collection of what he refers to as a thermal hull, instead of some kind of clock pun. no, dammit, will this breakfast injure his shrill, bearded, scraggly old men in space. jade's radioactive, omnipotent, space-warping dog named...
23:04:37 <fungot> elliott: what, the last one. wait no, that just made you disappear" and stuff. this is just the sort of human profanity?
23:04:40 <HackEgo> 794) <fungot> elliott: to be honest, it doesn't exist in a state of almost perpetual stalemate, and expands to a larger board and more exotic collection of what he refers to as a thermal hull, instead of some kind of clock pun. no, dammit, will this breakfast injure his shrill, bearded, scraggly old men in space. jade's radioactive, omnipotent, space-warping dog named...
23:05:19 <tswett> fungot: DO YOU P4Y 4NY 4TT3NT1ON TO TH3 STUFF P3OPL3 S4Y TO YOU?
23:05:20 <fungot> tswett: for a while it was frustrating. edification. perfection. those are your favorite books of all time, wise, a distinction in men that would forever. how many metalayers removed this story can we just cut it in half, splitting it into two pieces in the two large screens.
23:05:35 <tswett> NOP3, 1 GU3SS NOT. >:|
23:11:14 -!- NihilistDandy has quit (Read error: Connection reset by peer).
23:11:28 -!- NihilistDandy has joined.
23:11:39 -!- NihilistDandy has quit (Client Quit).
23:17:34 -!- monqy has joined.
23:19:12 <elliott> kallisti: http://stackoverflow.com/questions/8735132/can-a-php-file-ever-be-read-externally
23:19:38 <zzo38> I found some document of a chess variant, there are four players and the board rotates after every move pair. You have to use divination to determine the direction of rotation. Whenever there is a pawn promotion, you have to bow and make secret hand signs and use cards to determine what you promote to. In case there are two candidates for a winner at the end of the game, use divination to determine which is the winner. The winner can have the k
23:19:51 -!- DCliche has joined.
23:20:18 <oerjan> "The winner can have the k"
23:21:32 <zzo38> There are many methods of divination listed, including: chiromancy, astrology, dowsing, using knucklebones marked with letters of the alphabet, and divination by interpreting the movements of a key suspended by a thread from the nail of the third finger on a young virgin's hand while one of the Psalms was recited.
23:21:57 -!- NihilistDandy has joined.
23:22:20 <zzo38> (Tea leaves is also one of the choices, in case you like to drink tea a lot while playing chess.)
23:22:50 <elliott> oerjan: hm i have a sort of vague idea of how you could make that nest stuff polymorphic
23:22:52 -!- Klisz has quit (Disconnected by services).
23:22:54 -!- DCliche has changed nick to Klisz.
23:23:16 <elliott> oerjan: the idea is that inEndo would apply an infinite /stream/ of appEndo
23:23:22 <elliott> and each one would be used for one argument
23:23:28 <elliott> so the types never get unified
23:23:37 <elliott> ofc the problem there is how to get that infinite heterogeneous stream expressed...
23:29:22 <kallisti> elliott: "Not opening the PHP file with <?php" good one
23:31:18 <oerjan> elliott: you know that haskell functions with infinite length parameter lists are useless, right? :P
23:31:45 <elliott> oerjan: um yes... but consider if you could express an infinite stream on the type level
23:32:11 <elliott> oerjan: the point is that (nest.nest.nest) needs /three/ unwrapprs
23:32:19 <elliott> so what inEndo has to be able to do is to produce an arbitrary number of appEndos
23:32:34 <elliott> nest is a bad name but I can't think of a better name
23:34:23 <oerjan> i think you are going to need a class for that
23:34:52 <oerjan> because you cannot have an infinite heterogeneous type
23:35:23 <elliott> oerjan: no shit, i am speaking in figurative terms to express what inEndo /essentially/ needs to do to get it to work :P
23:35:34 <elliott> not proposing that if I just define an infinite stream type it'll work
23:37:55 <oerjan> yeah, i just remember you started this earlier with saying you didn't want to use classes
23:39:42 <elliott> oerjan: well rather i didn't want to use a typeclass to define how to unwrap/wrap a type
23:39:51 <elliott> i.e. I don't want to tie (Endo,appEndo) to the Endo type itself
23:39:54 <elliott> an internal typeclass is fine
23:41:05 <elliott> oerjan: oh cool, "inEndo id" = Endo
23:41:19 <elliott> inEndo (flip const) = appEndo
23:41:56 -!- nooga has quit (Ping timeout: 240 seconds).
23:42:38 <oerjan> > let nest (o,os) = result (k os) . argument o then?
23:42:39 <lambdabot> <no location info>: parse error on input `then'
23:42:56 <oerjan> :t let nest (o,os) = result (k os) . argument o in nest
23:42:57 <lambdabot> Couldn't match expected type `t -> a -> b'
23:42:57 <lambdabot> In the first argument of `result', namely `(k os)'
23:43:19 <elliott> inEndo :: ((forall a. t -> (a -> a) -> Endo a) -> (forall a. Endo a -> a -> a) -> r) -> r
23:43:34 <elliott> oerjan: well i don't see how you could define an inEndo for that...
23:43:45 <oerjan> :t let nest k (o,os) = result (k os) . argument o in nest
23:43:46 <lambdabot> forall t a b (f :: * -> *) a1. (Functor f) => (t -> a -> b) -> (f a1, t) -> (a1 -> a) -> f b
23:43:48 <elliott> you'd need a typeclass for inEndo itself
23:43:54 <elliott> that kind of works I guess :/
23:44:02 <oerjan> elliott: yes, that was what i thought
23:45:54 <oerjan> inEndo seems like the right place to have one if you must
23:46:52 <lambdabot> No instance for (GHC.Show.Show (m GHC.Types.Char))
23:48:09 -!- Phantom_Hoover has quit (Quit: Leaving).
23:50:34 <kallisti> > let pal alphabet = []:map (:[]) alphabet >- (\c -> map (\e -> e : c ++ [e]) alphabet) in pal "abc" --oopse
23:50:47 <kallisti> > let pal alphabet = []:map (:[]) alphabet >>- (\c -> map (\e -> e : c ++ [e]) alphabet) in pal "abc" --oopse
23:50:49 <lambdabot> ["","aaa","aba","bab","aca","cac","bbb","bcb","cbc","ccc"]
23:52:07 <kallisti> > let pal alphabet = join . iterate (>>- (\c -> map (\e -> e : c ++ [e]) alphabet) in pal "abc") $ [] :map (:[]) alphabet
23:52:08 <lambdabot> <no location info>: parse error on input `in'
23:52:23 <kallisti> > let pal alphabet = join . iterate (>>- (\c -> map (\e -> e : c ++ [e]) alphabet) $ [] :map (:[]) alphabet in pal "abc"
23:52:24 <lambdabot> <no location info>: parse error on input `in'
23:52:47 <kallisti> > let pal alphabet = join . iterate (>>- (\c -> map (\e -> e : c ++ [e]) alphabet)) $ [] :map (:[]) alphabet in pal "abc"
23:52:48 <lambdabot> ["","a","b","c","aa","aaa","bb","aba","cc","bab","aca","cac","bbb","bcb","c...
23:53:09 <kallisti> > let pal alphabet = join . iterate (>>= (\c -> map (\e -> e : c ++ [e]) alphabet)) $ [] :map (:[]) alphabet in pal "abc"
23:53:11 <lambdabot> ["","a","b","c","aa","bb","cc","aaa","bab","cac","aba","bbb","cbc","aca","b...
23:53:29 <elliott> for finite alphabets maybe :)
23:53:35 <ais523> <bws111> Do you think it should be legal for a man to marry his cat, so that the cat gets health benefits and the man gets a tax deduction?
23:53:48 <ais523> hmm, if I were zzo38 I'd have said that without the attribution
23:54:17 <kallisti> anyway that code looks kind of ugly to me.