←2011-01-08 2011-01-09 2011-01-10→ ↑2011 ↑all
00:00:01 <coppro> elliott: you're spouting nonsense
00:00:06 <elliott> coppro: I am not.
00:00:16 <elliott> coppro: Alternatively: Tell that to Conal's face.
00:00:45 <coppro> it's at least bulshytt
00:00:54 <Vorpal> this looks interesting: http://www.haskell.org/haskellwiki/Functional_Reactive_Programming
00:00:55 <coppro> what you're saying, anyways
00:00:59 <elliott> coppro: OH MAN THANKS FOR YOUR CONVINCING ARGUMENTS
00:01:03 <elliott> good to know you are right
00:01:23 <elliott> i'll go back to using haskell, which is perfect as it is, obviously, despite the fact that many of the "leading" haskellers don't like IO and want FRP to succeed
00:01:30 <coppro> elliott: they're as high quality as your usual arguments
00:01:37 <elliott> coppro: oh, fuck off.
00:01:48 <coppro> don't feel like it
00:01:57 <oklopol> you can just run two copies of the program, and allocate a huge amount of memory in the other one, then always take the image drawn by the program that has recently changed the screen more
00:02:06 <oklopol> is my solution to gc freezing
00:02:16 <Vorpal> <coppro> elliott: they're as high quality as your usual arguments <-- coppro++
00:02:19 <oklopol> *allocate at first
00:02:26 <oklopol> so that its gc cycle is different
00:02:33 <elliott> Vorpal: does it make you feel good to automatically agree with and side with anyone who doesn't agree with me?
00:02:36 <coppro> your argument is pretty much a vague appeal to authority
00:02:42 <elliott> you're in good company! like... Republicans!
00:02:46 <coppro> rather than any argument or even explanation of FRP
00:02:46 <elliott> coppro: no, see, i haven't presented any arguments
00:02:49 <elliott> coppro: i've just told you to go away
00:02:53 <Sgeo> elliott, http://docs.racket-lang.org/frtime/index.html isn't decent/
00:03:02 <Vorpal> elliott, I have no idea. I agreed with him based on actually agreeing on the point he was making.
00:03:12 <coppro> elliott: your argument is that FRP is "what makes functional programming possible"
00:03:13 <Vorpal> elliott, so I never tried out what you suggested.
00:03:19 <elliott> coppro: the IO monad is imperative.
00:03:20 <coppro> elliott: I'm not going away
00:03:23 <elliott> it wasn't an argument, also.
00:03:24 <elliott> it was a remark.
00:03:32 <elliott> Sgeo: no, it isn't. a good general implementation of FRP requires solutions to a few open research problems.
00:03:50 <coppro> the IO monad is interprative only depending on your interpretation of it
00:04:08 <Vorpal> elliott, does it feel good to always use strawman arguments by the way?
00:04:22 <elliott> Vorpal: ah... you see, you are making the same mistake as coppro
00:04:25 <elliott> I'm not making an argument.
00:04:28 <elliott> I'm telling you to fuck off.
00:04:40 <Vorpal> elliott, I am replying to this line in the same style: "<elliott> Vorpal: does it make you feel good to automatically agree with and side with anyone who doesn't agree with me?"
00:04:48 <coppro> elliott: we're not fucking off
00:04:51 <elliott> coppro: the IO monad is not impure iff C is impure.
00:04:54 <Sgeo> elliott, if you're going to tell people to fuck off, I'm going to tell you to fuck off.
00:04:56 <coppro> if you wish to stop having us talk to you
00:04:58 <elliott> ah, but you see, if I /ignore you, then you *will* fuck off.
00:05:00 <coppro> you need to leave
00:05:04 <elliott> untrue
00:05:08 <oklopol> i'd like to rem HER ark.
00:05:11 <oklopol> wait
00:05:12 <elliott> IRC clients have had ignore for the past two decades
00:05:14 <oklopol> i'm scrolled up again
00:05:17 <Vorpal> elliott, also appeal to authority: "<elliott> coppro: Alternatively: Tell that to Conal's face."
00:05:18 <oklopol> then that makes even less sense
00:05:28 <elliott> Vorpal: see, that was telling him to fuck off.
00:05:34 <coppro> elliott: you /ignoreing me is not me fucking off;
00:05:38 <elliott> if i thought an argument with coppro could be in any way productive, i would have responded differently.
00:05:44 <elliott> but, you see, i don't, because he always acts the exact same way
00:05:55 <elliott> oklopol: greater than works.
00:05:59 <elliott> ---- greater than?
00:05:59 <elliott> Condition: ['compare', '#0', '#1']
00:06:00 <elliott> Base branch (-1)
00:06:01 <elliott> '#0'
00:06:03 <elliott> Base branch (0)
00:06:03 <Vorpal> elliott, actually I think FRP looks interesting. But I despise the way you argument by being a jerk.
00:06:04 <Sgeo> elliott, I don't know if what you're saying has merit, but I am furious at you telling people to fuck off just because you disagree with them
00:06:05 <elliott> '#0'
00:06:07 <elliott> Base branch (1)
00:06:09 <elliott> '#1'
00:06:10 <coppro> elliott: obviously no Haskell code will be truly functional
00:06:15 <elliott> Vorpal: *I am not arguing*
00:06:18 <coppro> no code on any Von Neumann machine will be
00:06:24 <elliott> coppro: ...loooool
00:06:36 <Vorpal> elliott, okay if you say so. Looked damn similar however.
00:06:41 <oklopol> elliott: what the fuck
00:06:44 <elliott> ignored until, say, you figure out the difference between language and implementation, coppro
00:06:46 <coppro> elliott: do you want to refute my argument?
00:06:49 <oklopol> what the hell
00:06:50 <elliott> nope
00:06:53 <Sgeo> coppro, the impurity of Haskell lies right outside Haskell
00:06:57 <coppro> Sgeo: I know
00:07:06 <oklopol> oh so maybe i did something completely fuck when i changed that one last bit.
00:07:26 <elliott> oklopol: :D my greater than? works even if you don't give it #0 and #1
00:07:32 <elliott> ---- greater than?
00:07:32 <elliott> Condition: ['compare', '#0', '#1']
00:07:32 <elliott> Base branch (-1)
00:07:33 <coppro> elliott: your argument is that IO is not pure because of how it is implemented, but FRP is pure because it can be implemented so that it can be pure
00:07:33 <elliott> ['compare', '#0', '#0']
00:07:35 <elliott> Base branch (0)
00:07:37 <elliott> ['compare', '#0', '#0']
00:07:37 <coppro> i.e. you have no logic
00:07:39 <elliott> Base branch (1)
00:07:41 <elliott> ['compare', '#0', '#1']
00:07:43 <elliott> oklopol: how amazing is that
00:07:58 <oklopol> haha
00:08:03 <oklopol> that's genius :D
00:08:09 <zzo38> Magic Set Editor scripting language is almost pure. It has a few impurities which I think could be easily corrected.
00:08:18 <coppro> zzo38: lolwut
00:08:23 <coppro> no it is not
00:08:37 <oklopol> coppro: look beneath the surface
00:08:50 <oklopol> elliott: can i see your code? :P
00:08:55 <coppro> oklopol: what
00:09:00 <zzo38> coppro: Why do you think?
00:09:07 <coppro> zzo38: it's an imperative language...
00:09:07 <oklopol> coppro: nm
00:09:10 <elliott> greater than? ~ {. -1, 3 -> 0
00:09:10 <elliott> . 3, 5 -> 0 }
00:09:10 <elliott> greater than? ~ {. 3, 3 -> 0
00:09:11 <elliott> . -2, -2 -> 0 }
00:09:13 <elliott> greater than? ~ {. 3, -1 -> 1
00:09:14 <coppro> it happens to have first-class functions
00:09:14 <zzo38> (Well, I am making TeXnicard and it is more like dc instead?)
00:09:15 <oklopol> lox
00:09:15 <elliott> . 5, 3 -> 1 }
00:09:17 <elliott> greater than? ~ compare; #0; #1
00:09:19 <elliott> oklopol: maybe removing <> made it work, but i doubt it
00:09:54 <zzo38> coppro: No it only has local variables and those are not impure. They are only local.
00:10:12 <coppro> zzo38: how do you define pure?
00:11:47 <zzo38> coppro: It would be pure if you change the random number functions to take a parameter "seed" which is normally by the built-in variable called "seed", which is available (and reseeded) for each export template, add card scripts, and pack generation. And also the export template functions for directory should instead return a list, ...
00:12:01 <oklopol> elliott:
00:12:03 <coppro> zzo38: define pure for me
00:12:04 <oklopol> umm
00:12:10 <zzo38> ... and you return from the export template script, the list of all of those concatenated together and then it will copy the files. Instead of duing it immediately.
00:12:10 <luatre> ValueError: substring not found :(
00:12:15 <zzo38> There, that would be pure.
00:12:18 <oklopol> look at this code snippet of mine, and tell me what you think
00:12:19 <elliott> oklopol: what
00:12:19 <oklopol> greater than? ~ {. 5, 6 -> 0 . 10, 12 -> 1 }
00:12:20 <oklopol> greater than? ~ {. 2, 2 -> 0 . 6, 6 -> 1 }
00:12:22 <oklopol> i wrote this code
00:12:28 <oklopol> and then i looked at it for 15 minutes
00:12:36 <zzo38> coppro: Do you understand me?
00:12:38 <oklopol> i think i should sleep amore
00:12:39 <elliott> oklopol: i think you are my favourite person and can i come live with you
00:12:43 <oklopol> yes
00:12:44 <elliott> :D
00:12:47 <elliott> HOORAY
00:12:53 <oklopol> i've always wanted a 15yo gf
00:13:16 <elliott> xD
00:13:19 <oklopol> who is interested in clue
00:13:21 <elliott> 13 just too young?
00:13:26 <elliott> oh, insufficiently clueterested
00:13:36 <elliott> clueterested sounds like some...horrible medical procedure
00:13:44 <coppro> zzo38: no
00:13:47 <elliott> like they redirect your bladder to your balls because it got infested or something
00:13:49 <coppro> zzo38: because you have failed to define pure
00:13:59 <elliott> anyway!
00:14:04 <zzo38> I know it is not a proper definition but doesn't it help?
00:14:07 <coppro> no
00:14:14 <coppro> I want to know what your definition of pure it
00:14:15 <coppro> *is
00:15:02 <oklopol> no global state?
00:15:23 <zzo38> coppro: That every function affects and is affected by, nothing outside of itself. Other variables outside of the function can be considered like a special kind of parameters, and so can variable assignment commands, because they can also be considered like parameters to the rest of the lines of the current function.
00:15:54 <elliott> oklopol: i think you have a bug or something
00:16:06 <elliott> zzo38: the current time of day is a paraemter to the program!
00:16:06 <oklopol> elliott: in clue.py?
00:16:07 <elliott> *parameter
00:16:09 <elliott> EVERYTHING IS PURE
00:16:11 <elliott> oklopol: yes
00:16:15 <oklopol> why
00:16:16 <elliott> oklopol:
00:16:25 <elliott> [is list?(#0)]
00:16:25 <elliott> | 0 => 0
00:16:25 <elliott> | 1 => inc(#2)
00:16:27 <elliott> there's only one recursion
00:16:29 <elliott> and one parameter
00:16:30 <coppro> zzo38: ...
00:16:30 <elliott> that should be #1
00:16:33 <elliott> but it isn't
00:16:35 <elliott> ???
00:16:49 <zzo38> (It does mean that for random numbers, you do have to keep track of the seed counter by yourself, but it could be defined a syntax to do so (like the increment operator in C)
00:16:51 <oklopol> i.... dunno?
00:16:58 <elliott> oklopol: well. :D
00:17:03 <elliott> i'll try defining the function in lu
00:17:04 <elliott> LUATRE
00:17:05 <elliott> luatre
00:17:07 <elliott> see if it works
00:17:15 <variable> zzo38, int getRandomNumber { return 2; //chosen by a random die roll}
00:17:20 <variable> no seed required
00:17:48 <variable> (and yes - I really did just roll a die)
00:18:12 <zzo38> The time of day, as long as it is set only once and stays the same for as long as the function takes to execute, it can work. (You could also have it set during card script, and a "action" script that you push a key to set date/time to the script so you can set it on the card, otherwise everything changes whenever you load the set!)
00:19:39 <zzo38> That way, would make it pure.
00:19:57 <oklopol> elliott: pivot works!
00:20:41 <elliott> oklopol: gimme your files so i can merge them in :D
00:20:44 <elliott> oklopol: or
00:20:48 <elliott> oklopol: was it just the pivot code that was bad
00:21:04 <oklopol> greater than? had an error, nothing else xD
00:21:29 <elliott> oklopol: so the pivot code was right?
00:21:36 <zzo38> You could make these suggested changes if you want to make MSE pure (it is not the most important thing); or use TeXnicard (which uses a different model of templates, so it doesn't need pure).
00:25:53 <oklopol> elliott: i think so
00:26:09 <oklopol> trying to make the actual quicksort now
00:26:40 <oklopol> but i have this vague feeling in my balls that that's not gonna happen anytime soon
00:26:50 <oklopol> yeeeeeeah
00:26:51 <oklopol> no.
00:28:33 <elliott> My new home is in the air.
00:28:36 <elliott> Although it's not tall enough to jump.
00:28:42 <elliott> oklopol: so can i have clue.py/stuff.py
00:28:57 -!- pingveno has quit (Write error: Broken pipe).
00:28:57 <oklopol> but i have a huge amount of horribly ugly debug code :D
00:29:03 <elliott> i can remove it :)
00:29:12 <oklopol> meeeeeeeeeeeeehh
00:29:18 -!- pingveno has joined.
00:29:18 <elliott> oklopol: i want the coooode
00:29:21 <oklopol> i'll make qs wirk furst
00:29:52 -!- cheater00 has joined.
00:30:06 <elliott> :: dof~{.0->0.5->0}dof~{:.[[1,2],[3,4]]->2:[1,2]->1:.[[[1,2,3],4],5]->3:[[1,2,3],4]->2}dof~is list?; cons; car; cdr; inc; #0
00:30:06 <luatre> TypeError: 'int' object is unsubscriptable :(
00:30:08 <elliott> what
00:30:15 <elliott> :: dof~{.0->0 . 5->0}dof~{:.[[1,2],[3,4]]->2:[1,2]->1:.[[[1,2,3],4],5]->3:[[1,2,3],4]->2}dof~is list?; cons; car; cdr; inc; #0
00:30:15 <luatre> TypeError: 'int' object is unsubscriptable :(
00:30:19 <elliott> halp
00:31:07 -!- Mathnerd314 has joined.
00:31:24 <elliott> oklopol: ha;pl
00:32:51 -!- cheater99 has quit (Ping timeout: 240 seconds).
00:34:34 <elliott> "That's not irony." ;; on the internet NOTHING counts as ironic
00:36:04 <j-invariant> god dammit! Coq is evil
00:36:21 <j-invariant> it's designed to hurt me
00:36:40 <j-invariant> everything is impossible but only after you waste 10 mins proving lemmas
00:37:55 <Phantom_Hoover> j-invariant, you clearly have the same high standards for *everything* as elliott.
00:38:17 <elliott> xD
00:38:21 <elliott> air is so lame
00:38:27 <Phantom_Hoover> To the extent that nothing actually satisfies the standards without violating several laws of physics or precepts of mathematics.
00:38:38 <elliott> DAMMIT I WANT ANTIGRAVITY
00:38:47 <j-invariant> that sounds about right :D
00:38:57 <zzo38> elliott: Then invent one antigravity.
00:39:00 <elliott> i'm trying to think of something that i can honestly say is perfect
00:39:06 <elliott> without any qualifiers
00:39:08 <Phantom_Hoover> TeX?
00:39:11 <elliott> but i just ... can't
00:39:13 <elliott> Phantom_Hoover: heck no :)
00:39:21 <elliott> it's even _impure_!
00:39:28 <Phantom_Hoover> elliott, well, for what it was originally designed?
00:39:38 <elliott> Phantom_Hoover: plain tex is gross, whatever zzo38 said
00:39:42 <elliott> latex is a bit limited sometimes
00:39:47 <zzo38> TeX is very good but not quite perfect.
00:40:47 <zzo38> LaTeX and PDF are much worse.
00:41:09 * Phantom_Hoover → sleep
00:41:12 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:41:27 * zzo38 - wake up
00:41:55 <j-invariant> hi
00:42:21 <oklopol> elliott: btw you're right in that there kind of is an interpreter, it's only the actual function applications that are made into python functions.
00:42:22 <zzo38> Hello
00:42:26 <oklopol> but i guess you already knew that
00:42:30 <elliott> told you
00:42:32 <elliott> :P
00:42:36 <j-invariant> I define a new data type like lists except that it cannot have trailing zeros: [0,1,2,0,44,5] is okay but [3,54,2,0,13,0] is a type error
00:42:56 <zzo38> Do you have opinion/comment/suggestion/question about this? http://sprunge.us/BFGb
00:42:59 <oklopol> yep, for some reason i just didn't realize that's actually a rather important part of execution, and not just something that's done at first
00:43:18 <oklopol> reason is probably that i haven't been able to think all that straight today
00:43:28 <oklopol> for instance i watched hours of gay porn
00:43:38 <j-invariant> elliott: see above
00:43:49 <elliott> j-invariant: and?
00:43:52 <oklopol> j-invariant: definition accepted
00:43:52 <elliott> what then
00:43:54 <j-invariant> thatos all :D
00:43:58 <elliott> lol
00:44:04 <j-invariant> now I have to program with it :(
00:44:15 <zzo38> oklopol: Then don't watch pornography anymore.
00:45:04 * Sgeo suddenly wants to buy Chessudoku
00:45:04 <oklopol> nono i think it was more like that i wasn't thinking straight so i started watching men lick each other's balls on the internet
00:45:11 <oklopol> and not the other way around
00:45:32 <oklopol> the reason for this is that i didn't sleep very well
00:45:41 <oklopol> my head is all wheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerlie.
00:45:44 <oklopol> what
00:45:45 <oklopol> anyway
00:46:11 <oklopol> but yeah i'll go on with... i don't remember what but maybe i do when i open py
00:46:56 <oklopol> elliott: i think i managed to make a program with an actual runtime error :D
00:47:01 <elliott> oklopol: wow
00:47:22 <elliott> oklopol: re ball licking, i think zzo38 just doesn't want anyone to wtach pornography
00:47:24 <elliott> *watch
00:47:29 <oklopol> at least i think quicksorting a list of 7 objects shouldn't take more than 100 deep recursion...
00:47:33 <elliott> :D
00:47:50 <oklopol> zzo38: is this true?
00:48:00 <oklopol> i basically watch pornography as a hobby
00:48:11 <j-invariant> this is absolutely crap
00:48:25 <j-invariant> it's not possible to define this list type in any useful way
00:48:34 <zzo38> oklopol: No, it isn't true. I don't want to watch pornography myself, if other people do I don't complain. However, if you watch pornography and you cannot do anything else, then obviously you have done something wrong, such as not watching it upsidedown.
00:49:04 <oklopol> if you want to do something else, but can't, then yes, i agree, you should probably flip your screen
00:49:08 <zzo38> (I am not trying to stop you from watching pornography, I am just trying to suggest better things)
00:50:02 <oklopol> well watching porn can be interesting, once you get past the whole mmm pussy let's masturbate thing.
00:50:48 <oklopol> i have done rather exhaustive research in many areas, but haven't found a publisher yet.
00:50:52 <j-invariant> elliott: I wanted to prove (forall x, [p](x) = [q](x)) -> p = q -- p and q are lists of numbers which represent polynomials, and [p] is the evaluation of p
00:51:05 <zzo38> oklopol: In what areas have you done exhaustive research?
00:51:21 <oklopol> you really want to know?
00:51:39 <zzo38> oklopol: No, I just want to know why you have not found a publisher yet.
00:51:40 <j-invariant> haven't found a publisher?
00:51:46 <zzo38> Can you publish it by yourself?
00:51:46 <oklopol> the most common paraphilias, regular porn is not very interesting outside the mm pussy part
00:52:05 <zzo38> What is the difference?
00:53:32 <oklopol> hard to put into words
00:53:53 <oklopol> but it's interesting how people react in weird situatoins
00:53:56 <oklopol> *situations
00:53:57 <oklopol> say in scat
00:54:09 <oklopol> which is a *very* diverse branch of porn
00:54:41 <oklopol> the rules are completely different
00:55:06 <zzo38> O, so you want to tell the difference which pornography movies you like which are interesting as opposed to non-interesting pornography. Is that it?
00:55:42 <oklopol> mostly i'm interested in what people will do for money
00:55:50 <oklopol> and how well they can hide it
00:56:55 <oklopol> and also, a single type of porn will have a rather clear set of rules, for instance even you might know that in american porn, the girl blows the guy, then they have sex a couple minutes in the basic positions, then the guy jizzes in her face
00:57:13 <oklopol> this is not how things like bukkake and scat work
00:57:25 <oklopol> it's roughly how it works, but a lot of subtletieas
00:57:27 <oklopol> *subtleties
00:57:45 <zzo38> Actually I wouldn't know, I don't like to watch pornography. But at least now I know that it is not so simple to categorize.
00:58:17 <zzo38> Like, if you have a pornography store or archive you would need subcategory for those kind of things, I guess.
00:58:43 <oklopol> the problem with categorization is it really never works
00:58:50 <zzo38> At least that is a bit better hobby than ordinary watching pornography.
00:58:51 <oklopol> well
01:00:03 <oklopol> i mean it's easy to categorize based on certain elements, like for most people it would suffice that "in this movie girls has sex with donkey"
01:00:22 <oklopol> like
01:00:31 <oklopol> it's rather easy to categorize based on what people actually wanna wank to
01:01:05 -!- hagb4rd has joined.
01:01:11 <elliott> oklopol: i am totally moving in
01:01:15 <pikhq> Only in #esoteric does pornography get treated academically.
01:01:15 <oklopol> because most people either have one of a list common elements they want to see in their porn, and it's easy to find porn categorized based on those
01:01:25 <elliott> pikhq: erm plenty of other places too i would think :P
01:01:33 <pikhq> elliott: ONLY IN #ESOTERIC
01:01:36 <pikhq> elliott: :P
01:01:38 <oklopol> like mm i wanna see fat chicks mm i wanna see japs licking each other's faces
01:02:13 <zzo38> If you are going to make a report would you categorize it? Such as, subcategories might be: artistic, photograph, movie, professional, manga, man, woman, American, children, animal, hard, soft, joke, .....
01:02:26 <oklopol> but once you get even slightly deeper, you can't really put your finger on the category, for instance there is obviously a continuous scale of whether the people actually enjoy touching each other
01:03:13 <elliott> zzo38: are you sure you would include the children category :D
01:03:49 <oklopol> i guess that's supposed to be the "amateur" category, but it doesn't really work that way
01:03:51 <zzo38> elliott: Of course child pornography is illegal but you need to include such a category anyways even if it is hidden
01:04:17 * Vorpal looks at scrollback
01:04:19 <pikhq> elliott: There is a black market for it, I'm sure.
01:04:19 <Vorpal> the hell!?
01:04:21 <elliott> "[ ] Children (don't click this) (no really)"
01:04:27 <elliott> Vorpal: we're talking about pornography, hi
01:04:36 -!- sebbu2 has changed nick to sebbu.
01:04:37 <elliott> pikhq: no shit :P
01:04:42 <Vorpal> elliott, yes that was what I reacted to
01:04:46 <elliott> oklopol: tell us more
01:04:47 <oklopol> zzo38: no, i wouldn't categorize like that at all
01:05:06 <oklopol> those overlap
01:05:11 <zzo38> oklopol: OK. How would you categorize? Do you need to make a report of how you categorize?
01:05:11 <pikhq> Not to mention that drawn depictions thereof are generally *legal*. Though it will suck if you get accused of pedophilia and caught with such.
01:05:15 -!- hagb4rd has quit (Ping timeout: 240 seconds).
01:05:23 <Vorpal> oklopol, maybe there is some overlap though?
01:05:57 <Vorpal> oklopol, I mean, for most useful categorisations
01:06:01 <elliott> pikhq: not in the uk actually
01:06:06 <elliott> as of recently... now i look suspicious for knowing this
01:06:08 <zzo38> I have not meant to imply it is a category that you select exactly one category.
01:06:10 <elliott> not legal, that is
01:06:18 <oklopol> zzo38: i would analyze individual movies
01:06:35 <oklopol> if i had to write a report
01:07:11 <zzo38> oklopol: Aren't you doing this for the purpose of writing a report, though?
01:07:19 <oklopol> not really
01:07:23 <oklopol> i just thought you were interesting
01:07:27 <oklopol> *interested
01:07:48 <zzo38> Of course I don't know because I don't like to watch pornography. I am only making suggestion.
01:07:56 <zzo38> Probably I am entirely wrong.
01:08:26 <oklopol> zzo38: oh well yeah i would definitely agree with having those as terms for certain types of porn
01:08:28 <pikhq> elliott: Yeah, but the UK probably still has laws against women showing ankle, I'm sure.
01:08:29 <pikhq> :P
01:08:47 <oklopol> but for instance "hardcore" means nothing as an on/off scale
01:09:10 <oklopol> can be anything between "actual sex!" and max hardcore (actor)
01:09:17 -!- hagb4rd has joined.
01:09:59 <coppro> pikhq: it's better than the USA's laws against women implying they might show ankle
01:10:01 <zzo38> oklopol: Then maybe you need to add a category titled "actual_sex"?
01:10:04 <Vorpal> pikhq, I believe it isn't legal in Sweden either. IIRC there was some court case some years ago that suggested that the law was to be interpreted as it not being legal. Though textual stories of the same would probably be.
01:10:24 <oklopol> zzo38: i'm not very good at putting things like reactions of people into words, so i doubt i could ever actually write any sort of report on anything.
01:10:31 <oklopol> well, i doubt anyone can do that
01:10:46 <pikhq> Vorpal: I seem to recall it being precedent that the 1st amendment bars bans on child pornography without actual children involved in the creation thereof.
01:10:53 <pikhq> At least, in the US.
01:11:06 <Vorpal> pikhq, yeah the 1st amendment is only relevant for US
01:11:09 <zzo38> oklopol: I thought you previously said at first that you were going to write a report, and you need it published??
01:11:16 <pikhq> Vorpal: ... For now.
01:11:17 <pikhq> :P
01:11:22 <Vorpal> pikhq, what do you mean
01:11:22 <coppro> I'm pretty sure the 1st amendment doesn't ban that
01:11:27 <oklopol> doesn't really matter what they say, because cp and necro fans can soon just make their own animations.
01:11:39 <pikhq> Vorpal: Joking suggestion that the US will conquer everything. That's all.
01:11:41 <elliott> Vorpal: We're going to give you democracy.
01:11:46 <zzo38> Can you just publish it by yourself? Or publish it in a pornography store?
01:11:48 <elliott> Hardcore-style.
01:12:01 <oklopol> "<zzo38> oklopol: I thought you previously said at first that you were going to write a report, and you need it published??" <<< are we talking about this because you took that seriously
01:12:01 <Vorpal> pikhq, I'm just waiting for China to invade you ;P
01:12:02 <oklopol> ?
01:12:14 <coppro> Vorpal: I was about to make that joke, except funnier
01:12:17 <elliott> oklopol: yes.
01:12:21 <pikhq> Vorpal: Oh, they're not going to invade.
01:12:23 <Vorpal> coppro, gee thanks :P
01:12:41 <pikhq> Vorpal: They'll just purchase.
01:12:43 <pikhq> So much cleaner.
01:12:44 <Vorpal> pikhq, oh true. They can probably buy you for a tenth of the market value
01:13:08 <oklopol> i have watched tons of porn simply out of pure interest (not saying i haven't also watched tons of it because of penis), that's all i meant.
01:13:09 <Vorpal> (or as the market value would have been if you hadn't managed the economy so badly)
01:13:13 <pikhq> Arguably, they've been working on the down payment.
01:13:16 <zzo38> oklopol: OK, if you cannot write a report, then don't. But you seem to know enough about these things to write a very small report.
01:13:22 <oklopol> sure
01:13:39 <pikhq> (China is the largest holder of federal debt ATM)
01:13:42 <Vorpal> pikhq, only after it all went bad
01:13:53 <Vorpal> (if you meant what I thought you meant)
01:14:09 <elliott> oklopol: lol speaking of max hardcore who you mentioned: "Based on Max Extreme 4, the city of Los Angeles in 1998 charged him with child pornography and distribution of obscenity. The fact that the actress was over the age of 18 was not disputed; they brought charges based solely on the fact that the actress was portraying a character who was underage."
01:14:12 <oklopol> i usually aim for a certain level of professionalism in everything i do
01:14:32 <oklopol> he has a lot of movies like that
01:14:49 <oklopol> but the amount obscenity is incredible for an american actor
01:14:52 <oklopol> *of
01:15:55 <oklopol> americans tend to do even rather hardcore stuff with a hollywood style feel of unrealness.
01:16:10 <oklopol> unlike japs who are just insane
01:17:26 <coppro> yes
01:17:28 <oklopol> dunno if i've seen that movie, i've been out of the game for quite a while
01:17:33 <oklopol> oh 1998
01:17:37 <oklopol> then probably
01:17:38 <pikhq> And Germans, who seem to have a fondness for feces.
01:18:00 <oklopol> there's also that brazilian group, best known for 2g1c
01:18:33 <pikhq> Fucking crazy bastards.
01:18:35 <oklopol> :D
01:18:43 <elliott> oklopol: have you watched SWAP.AVI?
01:18:47 <oklopol> they have a very unique way of doing things
01:18:55 <elliott> oklopol: y/n
01:18:56 -!- oerjan has joined.
01:19:01 <oklopol> elliott: dunno, but usually i've seen the original movies years before these clips are made
01:19:03 <elliott> *SWAP.avi
01:19:05 <elliott> oklopol: http://www.somethingawful.com/d/horrors-of-porn/horrible-saga-swapavi.php
01:19:10 <elliott> oklopol: it was requested by the something awful forums
01:19:19 <elliott> oklopol: to be the most ridiculous and inexplicable scat film possible
01:19:23 <elliott> oklopol: and they actually made it according to the requirements
01:19:26 <oklopol> oh the jap one?
01:19:26 <elliott> and it is ... yeah
01:19:29 -!- FireFly has quit (Quit: swatted to death).
01:19:30 <oklopol> with the silver suits
01:19:30 <elliott> not that i know of
01:19:31 <elliott> brazil
01:19:32 <elliott> no
01:19:34 <elliott> oklopol: read http://www.somethingawful.com/d/horrors-of-porn/horrible-saga-swapavi.php
01:19:35 <elliott> it's hilarious
01:19:38 <oklopol> will
01:19:39 <elliott> pics are barfy though
01:19:40 <coppro> you know...
01:19:45 <elliott> Sexual Content: Imagine if the Holocaust was a 63 minute long video about pooping. Now imagine your mother drowning in a bathtub full of diarrhea. This is the sexual content of SWAP.avi.
01:19:46 <coppro> I should just never unignore elliott
01:19:52 <coppro> this channel is that much nicer without him
01:20:29 <Vorpal> coppro, only issue is missing out of more than half of the convos
01:20:29 <oklopol> well there are tons of 63 minute movies about pooping
01:20:34 <Vorpal> he is the most active speaker in here
01:20:36 <Vorpal> (still I think)
01:20:56 <elliott> oklopol: no, no, keep watching
01:21:31 <Vorpal> night →
01:21:39 <elliott> Vorpal: i'm just waiting for you to have to do enough work that you leave and i will be able to completely dominate, making me in control of who ignores and gets ignores entirely based on channel flow.
01:22:28 <oerjan> coppro: under the circumstances, i am starting to agree
01:23:41 <pikhq> WTF?
01:25:37 <elliott> oerjan: hey oklopol is the one who started the scat talk
01:26:05 <elliott> pikhq: ?FTW
01:26:17 * Sgeo decides he will ignore elliott's advice and re-investigate Ur/Web
01:26:22 <elliott> Oh dear god.
01:27:03 <coppro> pikhq: who was that at?
01:27:05 <zzo38> Set your user mode +D if you want to ignore someone, next time.
01:27:19 <pikhq> coppro:
01:27:22 <pikhq> oerjan:
01:27:25 <elliott> zzo38: why
01:27:30 <zzo38> I mean, mode +giDRQ
01:27:32 * elliott wonders wtf pikhq is doing
01:27:41 <pikhq> elliott: WTFing at coppro and oerjan.
01:27:45 <oerjan> pikhq: you and your funny blank lines
01:27:50 <zzo38> Next time you want to ignore someone, do like that instead.
01:27:51 <elliott> pikhq: why
01:27:59 <oklopol> looks pretty run-of-the-mill
01:28:00 <oklopol> based on pics
01:28:03 <coppro> lol zzo38
01:28:06 <pikhq> 18:19 <coppro> I should just never unignore elliott
01:28:10 <pikhq> 18:19 <coppro> this channel is that much nicer without him
01:28:13 <pikhq> 18:22 <oerjan> coppro: under the circumstances, i am starting to agree
01:28:29 <elliott> i think oerjan is either complaining about my joke wrt controlling the channel flow. or the scat.
01:28:31 <elliott> i should ignore myself, it'd be fun
01:28:33 <elliott> never be able to correct typos
01:28:45 <coppro> pikhq: because while sometimes he provides me with new things to look at, usually what he does is "your worldview disagrees with mine you suck"
01:28:48 <oklopol> and the only reason i started talking about this is that zzo38 insisted
01:28:50 <oklopol> :D
01:28:50 <elliott> coppro is just always an idiot, but apparently not idiotic enough to not ignore me
01:28:53 <elliott> :3
01:28:58 <elliott> oklopol: let's ban zzo38!
01:29:04 <elliott> solve the problem at the root
01:29:06 <elliott> that evil troll
01:29:09 <pikhq> coppro: Your worldview disagrees with mine you suck.
01:29:16 <elliott> Verily
01:29:18 <olsner> why not just ban everyone, that should be the end of all problems in this channel
01:29:19 <zzo38> oklopol: Because I insisted? ???
01:29:24 <oklopol> :D
01:29:25 <pikhq> olsner: :)
01:29:43 <zzo38> olsner: Don't ban anyone just set your user mode to +giDRQ -w
01:29:44 <elliott> olsner: how dare you suggest that
01:29:46 <elliott> let's ban olsner
01:29:48 <elliott> and also everyone who isn't olsner
01:29:51 <elliott> that's a better solution
01:30:15 <Sgeo> elliott, how about joining ##elliott
01:30:16 <coppro> pikhq: that must have looked funny to elliott
01:30:20 <oerjan> pikhq: hey wait that _was_ a blank line, i thought you were doing something japanese i couldn't see
01:30:22 <Sgeo> And leaving #esoeric
01:30:25 <oklopol> "<zzo38> oklopol: In what areas have you done exhaustive research?" "<zzo38> What is the difference?" so i figured i'll take an example that makes you say "okay yeah i don't wanna know".
01:30:25 <zzo38> Setting the user mode like this is the best way to ignoring someone, instead.
01:30:26 <elliott> "##"elliott?
01:30:27 <oklopol> :P
01:30:33 <elliott> I think I'm an official representative for myself.
01:30:35 <elliott> I mean probably.
01:30:40 <coppro> I am also considering /ignoring zzo38
01:30:40 <elliott> So the extra # is ... not really needed ...
01:30:46 <oklopol> but you just kept asking for more
01:30:52 <coppro> on account of him never actually saying anything useful
01:30:54 <elliott> Sgeo: but, aww, you're hilarious when you're pissy
01:31:16 <zzo38> coppro: You do not need to ignore zzo38 or anyone else. If you want to ignore someone just set your user mode instead.
01:31:34 <elliott> zzo38: SHUT UP ABOUT USER MODES
01:32:09 <elliott> zzo38: unless they're programmed in enhanced cweb
01:32:13 <elliott> is your irc server programmed in enhanced cweb?
01:32:18 <elliott> can i download it with your web browser?
01:32:19 <coppro> yeah, definitely /ignoring zzo38
01:32:22 <elliott> will it run on your linux distribution?
01:32:29 <elliott> will I be able to configure it?
01:32:33 <elliott> does it have user modes?
01:32:51 <zzo38> elliott: I did not write it entirely by myself. But both of these program will run my Linux distribution, you will be able to configure it, and it does have user modes.
01:32:51 <Sgeo> Wait, Gilad Bracha actually admires Racket's module system?
01:32:52 <oerjan> zzo38: how in the world is a user mode not containing information about a nick supposed to ignore them?
01:33:02 <elliott> If it's not written in Enhanced CWEB, I don't care, zzo38.
01:33:05 <zzo38> oerjan: Try it and see how.
01:33:12 <olsner> oerjan: because it ignores everyone? or something?
01:33:19 <coppro> what olsner said
01:33:29 <zzo38> elliott: It is not written in Enhanced CWEB although maybe I can make change so that the next version is with Enhanced CWEB.
01:33:34 <oerjan> zzo38: so it's joke, ok.
01:33:37 <oerjan> *a joke
01:33:45 <coppro> it's probably a joke
01:33:51 <coppro> but zzo38 never actually says anything useful
01:33:55 <oerjan> (no i didn't try)
01:33:57 <elliott> yes, the most hilarious joke
01:34:10 <elliott> oerjan: so why do you want to ignore me, i kinda want to optimise for annoying people?
01:34:27 <coppro> +Dg will make it so you pretty much can't receive messages
01:35:23 <coppro> the rest aren't really necessary
01:36:06 <elliott> i think oerjan has me on ignore
01:36:08 <elliott> i feel kinda special
01:36:09 <oerjan> elliott: that scat thing
01:36:11 <elliott> usually he just bans people instead :D
01:36:12 <elliott> oh
01:36:17 <elliott> oerjan: oklopol was the one talking about it :P
01:36:26 <oerjan> YEAH JUST MAKE ECUSES
01:36:30 <oerjan> *EXCUSES
01:36:30 <Sgeo> coppro, define "useful"
01:37:01 <Sgeo> You don't have me on ignore. Is what I say ever actually more useful than what zzo38 says?
01:37:05 <coppro> Sgeo: yes
01:37:09 <oklopol> i was talking about it because i was asked, and i don't think i mentioned anything that explicit
01:37:13 <elliott> Sgeo: that's an exceedingly good point
01:37:16 <elliott> i think i might ignore the both of you
01:37:16 <coppro> Sgeo: because unlike you, talking to zzo38 is like talking to a brick wall
01:37:31 <coppro> he never backs his claims up; he just rambles on about dumb things
01:37:36 <coppro> you seem to have some modicum of curiosity
01:37:38 <zzo38> With some of the bricks sideways and upsidedown.
01:37:44 <elliott> what
01:37:55 <Sgeo> Thank you, I guess
01:37:56 <coppro> he just seems to get dumb ideas in his head and defend them to the death
01:38:00 <coppro> and by "to the death"
01:38:08 <coppro> I mean "by repeating them over and over with no arguments"
01:38:18 <oerjan> what is it about people losing their temper over zzo38 lately
01:38:28 <elliott> oerjan: he didn't _use_ to spend every minute talking about enhanced cweb
01:38:39 <Sgeo> coppro, it's not that he gets dumb ideas... just ideas that are of interest to him and him alone, as far as I've seen.
01:38:40 <oerjan> hm possibly
01:38:41 <elliott> and butting into random, completely unrelated comments to talk about how everything you do should be in enhanced cweb.
01:39:00 <elliott> and, also, never actually really responds to any questioning or rebuttals of anything he says.
01:39:13 <elliott> tbh the "quantum free will" crap from a few days ago is what started annoying me, i didn't really care before that
01:39:24 <zzo38> I try to respond, at least. But maybe I do not do such good response.
01:39:27 <coppro> Sgeo: there was one a few days ago
01:39:31 <coppro> I'm too lazy to dig it out
01:39:41 <coppro> oh right the metaquantumwhodunnawutzit
01:39:44 <Sgeo> elliott, ooh, sounds like a discussion I'd be interested in
01:39:58 <oklopol> zzo38 annoyed me once for a few seconds
01:40:06 <oklopol> that was long ago tho
01:40:11 <elliott> Sgeo: apparently you can understand quantum free will by inverting a wikipedia article on itself to create a causality loop and then writing down the entanglement equation
01:40:13 <zzo38> Sgeo: Then read the log file you can read everything on this channel in the past days and weeks and months and years by anyone in this channel regardless of who wrote it.
01:40:15 <elliott> Sgeo: but not assuming the other part is real or even exists.
01:40:20 <elliott> Sgeo: This is almost a direct quote by the way.
01:40:32 <elliott> Sgeo: also, life creates the universe, but the universe creates life, and you can't have only one.
01:40:40 <elliott> Sgeo: also rocks have life but not very much life so they don't create the universe much.
01:40:43 <zzo38> elliott: I mean not inverting the article itself, but based on the double inversion of the things which the article discusses!!
01:40:54 <zzo38> (The article itself is not invert)
01:40:56 <elliott> The double inversion? So ... a no operation?
01:41:11 * Sgeo contrapositives zzo38 twice
01:41:17 <zzo38> elliott: No, I mean to have both the invert and double invert together.
01:41:28 <elliott> Ah. Because contradictions prove things!
01:41:28 <zzo38> Like, combined in one piece.
01:41:32 <Sgeo> zzo38, instead of inverting the ideas, try just describing them?
01:41:42 <Sgeo> As inverted, I mean
01:41:44 <elliott> Sgeo: oh god we spent a whole day doing this, why did you go and say that
01:41:47 <zzo38> Sgeo: I try to describe them?
01:41:58 <elliott> Sgeo: his explanation is that it's not life which creates the universe, it's both and neither.
01:42:12 <oklopol> "<zzo38> elliott: I mean not inverting the article itself, but based on the double inversion of the things which the article discusses!!" <<< okay clearly elliott had misunderstood you completely
01:42:13 <elliott> Sgeo: based on an article by some random quack written about on wikipedia who says that life is necessary for the universe or some crap.
01:42:18 <zzo38> elliott: Ah, now you can understand a bit better.
01:42:23 <elliott> zzo38: not at all.
01:42:28 <Sgeo> zzo38, instead of describing ideas in terms of Wikipedia articles, describe them on their own terms, then optionally relate it to the article
01:42:30 <elliott> oklopol: well it's kind of hard to interpret nonsense
01:42:34 <elliott> `quote cosmology
01:42:38 <Sgeo> elliott, Final Anthromorphic Principle?
01:42:47 * Sgeo wants to slap whoever came up with that
01:42:48 <elliott> Sgeo: no, not that, and it's "anthropomorphic".
01:42:51 <elliott> Sgeo: and that was Penrose.
01:42:51 <HackEgo> No output.
01:42:56 <elliott> hmm i didn't add it to qdb
01:43:06 <elliott> oklopol: can it run qsort yet
01:43:26 <zzo38> Then add it (assuming HackEgo is not just broken)
01:43:26 <oklopol> well i've been busy ircing and thinking about whether i should read for that exam of mine
01:43:31 <oklopol> study
01:43:40 <zzo38> oklopol: Perhaps you should do the exam.
01:43:50 <oklopol> *study for
01:43:59 * Sgeo admires zzo38 not getting upset by the insults being hurled at him
01:44:13 <elliott> XIYO
01:44:18 <elliott> X in Y out, Y not mentioning X
01:44:31 <oklopol> i know what i should do, that doesn't necessarily mean i'll do it
01:44:32 <Sgeo> elliott, unsafeCoerce?
01:44:43 <elliott> Sgeo: no, zzo38.
01:45:03 <oklopol> is that a pure function
01:45:21 <Sgeo> So, zzo38 breaks the type system. Awesome.
01:45:28 <elliott> no.
01:45:29 <elliott> Y is fixed.
01:45:32 <elliott> f _ = 3
01:45:35 <elliott> that is basically zzo38.
01:45:38 <oklopol> :D
01:46:00 <oklopol> funniiiiiiiiiiiiiiiiiiiiiiiiiiiii
01:46:20 <elliott> lol Y is fixed
01:46:23 <elliott> hahahahahahahahaha ahem
01:46:24 <elliott> anyway
01:46:25 <elliott> oklopol
01:46:28 <elliott> does qsort run yet
01:46:36 <oklopol> well you know
01:46:38 <oklopol> does and does not
01:46:42 <elliott> what
01:46:47 <oklopol> mostly does not
01:47:29 <hagb4rd> still cluein around?
01:47:35 <elliott> yes
01:47:36 <elliott> sorta
01:47:38 <elliott> oklopol: well are you fixing it
01:47:50 <oklopol> http://www.vjn.fi/pb/p5451998242.txt
01:47:51 <oklopol> no
01:47:53 <oklopol> can you
01:47:58 <oklopol> look at the output of compilation
01:48:20 <oklopol> i mean it compiles, but as i said, runtime error, i dunno what to dooooo
01:48:31 <elliott> oklopol: um yes, but you understand that i've been asking for your latest version
01:48:34 <elliott> oklopol: because mine hangs on that
01:48:37 <elliott> oklopol: so...gimme the py files
01:49:02 * Sgeo vaguely wonders if Ioke is a bit like the only thing I like about Racket
01:50:00 <elliott> i really need to fix shutup.
01:50:09 <oklopol> http://www.vjn.fi/pb/p1815468777.txt http://www.vjn.fi/pb/p5342334176.txt
01:50:16 <oklopol> at your own safetylessness.
01:50:35 * Sgeo is more type-system-breaky than zzo38. Sometimes I'll say stuff out of the blue that has no connection to anything whatsoever, sometimes I'll say something semi-relevant, and sometimes I'll ask relevant questions
01:50:38 <oklopol> the way i debug is less than optimal :D
01:50:49 <Sgeo> elliott, what makes you think it's broken?
01:50:56 <elliott> Sgeo: what
01:51:02 <Sgeo> shutup
01:51:11 <oerjan> Sgeo: also, orange juice is nice. *slurp*
01:51:12 <elliott> Sgeo: well when i nicked to sgeo and said Factor it didn't yell at me.
01:51:18 <Sgeo> Factor
01:51:20 <zzo38> Sgeo: Sometimes anyone might do, isn't it?
01:51:20 <elliott> oerjan: especially when it's fecal matter!
01:51:23 <elliott> oklopol: what's "cool"
01:51:23 <Sgeo> It's yelling at me
01:51:33 <elliott> oklopol: oh jesus.
01:51:34 <oklopol> elliott: debugging
01:51:35 <oklopol> xD
01:51:42 <oklopol> see
01:51:43 <elliott> oklopol: you know what, remove all the debugging code and i'll make sure qsort works
01:51:46 <oklopol> glue is very general
01:51:50 <Sgeo> Gregor's apples to oranges comparision convinced me to like oranges
01:51:53 <oklopol> so
01:52:03 <oklopol> if i want to debug a specific moment of compilation
01:52:12 <oklopol> things are messy
01:52:22 <oklopol> elliott: erm, why?
01:52:27 <oklopol> they are just print statements
01:52:31 <elliott> oklopol: because i have to merge it into _my_ version
01:52:44 <elliott> oklopol: which means considering all your changes and making sure they work without conditionals
01:52:54 <elliott> oklopol: pain enough to do that when I have all this cool stuff too :P
01:53:00 <oklopol> of course they work without them, i only change glue
01:53:18 <elliott> oklopol: fine
01:53:19 <oklopol> cool stuff is just print statements, i use a global so i can trigger stuff in stuff.py as well.
01:54:12 <elliott> + if isinstance(l,list) and len(l)==0:return 1
01:54:12 <elliott> + return 0
01:54:15 <elliott> oklopol:
01:54:23 <elliott> return int(isinstance(l,list) and len(l)==0)
01:54:43 <oklopol> what a useful correction
01:54:47 <elliott> yep!
01:54:51 <oklopol> thank you
01:55:15 <elliott> oklopol: so is demolishing a failed policy?
01:55:33 <oklopol> not really, it still makes ski very fast
01:55:49 <elliott> oklopol: but you haven't made it good yet. right. :p
01:56:27 -!- hagb4rd has quit (Ping timeout: 240 seconds).
01:56:43 <oklopol> it gives a 6x improvement in one test case, so given that we currently have 2 test cases, i wouldn't exactly call it a failure
01:56:56 -!- copumpkin has quit (Ping timeout: 264 seconds).
01:57:17 <oklopol> it might be qs that's the odder one
01:57:23 <oklopol> (i doubt it)
01:57:25 -!- copumpkin has joined.
01:57:38 <elliott> oklopol: what do you use random for
01:57:40 -!- zzo38 has quit (Quit: !).
01:57:53 <oklopol> nothing atm
01:58:02 <oklopol> i added it to test random searching for fun
01:58:25 <oklopol> that... didn't go well
01:58:29 <elliott> :D
01:59:37 -!- hagb4rd has joined.
02:00:36 <hagb4rd> i hate this damn router
02:00:42 <elliott> oklopol: "death" to crash the program
02:00:43 <elliott> brilliant
02:00:45 <elliott> brilliant yet horrible
02:01:21 <oklopol> Indeed.
02:01:36 <elliott> oklopol: what why did you punctuate what
02:01:37 <elliott> what
02:01:40 <elliott> what and capital
02:01:40 <elliott> what
02:01:41 <elliott> what
02:01:42 <elliott> where is oklopol
02:01:44 <elliott> what did you
02:01:46 <elliott> where
02:01:48 <elliott> what
02:01:51 <elliott> what
02:01:56 <oerjan> SPAM!
02:01:57 -!- ChanServ has set channel mode: +o oerjan.
02:02:04 -!- oerjan has left (?).
02:02:05 <elliott> OKLOPOL JUST CAPITALISED AND PUNCTUATED A FUCKING SENTENCE
02:02:07 <oklopol> What do you mean?
02:02:07 <elliott> ...xD
02:02:12 <elliott> holy shit stop it
02:02:19 <oklopol> Stop what exactly?
02:02:21 -!- oerjan has joined.
02:02:22 <elliott> i'm vomiting
02:02:25 <elliott> I'M VOMITING!!!
02:02:34 <elliott> WHERE DID YOU PUT OKLOPOL
02:02:45 <oklopol> Can we just get back to the matter at hand, please.
02:03:01 -!- oklopol has changed nick to Oklopol.
02:03:02 <elliott> + if demolishing_done==True and first_round:break
02:03:05 <elliott> the real oklopol wrote this code
02:03:08 <elliott> he knows that you have to check booleans
02:03:11 <elliott> to see whether they're True
02:03:13 <elliott> before conditioning on them
02:03:27 <Oklopol> Okay. What does that have to do with anything?
02:03:28 * Sgeo decides to learn Io
02:03:34 <oerjan> now that was amusing, i wanted to close the chanserv window and closed #esoteric instead
02:03:36 <elliott> Oklopol: You're not the real oklopol.
02:03:39 <elliott> Sgeo: it's a bad language
02:03:49 <Sgeo> elliott, howso?
02:03:51 <elliott> Sgeo: said as someone who developed with it for months.
02:03:57 <elliott> Sgeo: and was part of the |||~~community~~|||
02:04:01 <elliott> Sgeo: for one, it has basically no stdlib.
02:04:05 <elliott> simple string and array functions are completely missing.
02:04:07 <oerjan> I'LL TAKE THAT AS A SIGN NOT TO BAN ELLIOTT YET
02:04:09 <Oklopol> elliott: I have no comment.
02:04:13 <elliott> also, there is basically no documentation
02:04:14 <elliott> Oklopol: :(
02:04:19 <elliott> oerjan: what
02:04:44 <oerjan> elliott: PAY ATTENTION. OR ELSE I'LL BAN YOU ANYWAY.
02:05:09 <Sgeo> elliott, so the concept is good, the execution is crap?
02:05:17 <elliott> Oklopol: i love how you called a variable demolishing, which stops you executing the demolishing function
02:05:22 <Oklopol> Oerjan accidentally exited #esoteric, when he tried to close the message from ChanServ when he opped himself. This meant he could not ban you.
02:05:27 <elliott> Oh my god.
02:05:31 <elliott> Sgeo: both are pretty crap. the "pass everything as a function" thing doesn't work well.
02:05:46 <elliott> foo(hello + world) <-- this could print "hello + world" to the screen even if hello=1 and world=2
02:05:54 <elliott> completely breaking basically... every invariant i can think of in programming
02:06:03 <oerjan> elliott: see Oklopol gets it. whether or not he's oklopol.
02:06:22 <Sgeo> elliott, isn't that what documentation is for?
02:06:34 <elliott> Sgeo: let's just have no rules.
02:06:40 <elliott> an arbitrary byte prefix has control over the rest of the program.
02:06:47 <elliott> string delimiters? why, functions can choose whichever ones they want.
02:06:52 <elliott> how can i use this without going insane?
02:06:55 <elliott> Isn't that what documentation is for?
02:08:28 <oerjan> elliott: i expect tomorrow we'll see in the news about how finland is the center of a new global pandemic of correct spelling, punctuation, and horrible fatal hemorrhaging.
02:08:32 <elliott> def fun(*args):
02:08:33 <elliott> return call_clue(clue,args,10)
02:08:37 <elliott> Oklopol: you changed this to 1000, why? :P
02:08:39 <elliott> oerjan: :D
02:09:03 <Oklopol> elliott: I changed it to 1000 in case quicksort actually happened to need more than 10 levels of function calls.
02:09:40 <elliott> Oklopol: oh my god you sound so...boring and sane like this
02:09:43 <Oklopol> I admit that was a much larger number than should be expected as an upper limit.
02:09:47 <elliott> Oklopol: so tell me, how do you structure your python code, usually
02:10:21 <Oklopol> Can you be more specific? "I think."
02:10:41 <elliott> Oklopol: like, what is your general coding formatting style!
02:11:07 <Oklopol> The one you see in the .py files i've given you.
02:11:47 <elliott> Oklopol: ok i hate you stop it
02:11:52 <elliott> "i've"
02:11:52 <elliott> ha
02:11:55 <elliott> I have caught you
02:11:56 <elliott> you lose
02:11:58 <elliott> go back to normal
02:11:59 <elliott> :(
02:12:26 <Oklopol> Naming varies, because I don't particularly care about names, amount of whitespace varies, but is generally little. I tend to write rather long segments of code for doing simple things, even if I know a shorter way.
02:12:39 <elliott> ...anyway, creepyklopol,
02:12:40 <elliott> clue.DepthLimitException: depth limit exceeded (cadar)
02:12:41 <Oklopol> Yeah, I had a typo.
02:12:42 <elliott> what do
02:12:48 <elliott> and also, are you going to be like this forever
02:12:48 <Oklopol> Congrats for noticing.
02:13:12 <elliott> no seriously what do
02:13:19 <Oklopol> I don't know what you are referring to. Is that from running quicksort?
02:13:22 <oerjan> elliott: only until the hemorrhages start
02:13:25 <elliott> Oklopol: no from running ski
02:13:44 <Oklopol> Oh. Heh, I guess I've broken something then.
02:13:47 <elliott> hm can demolishing_done be a non-boolean :D
02:13:54 <elliott> just looking at the differences between our codes
02:14:00 <elliott> Oklopol: yeah well... get on fixing that, freak of nature
02:14:30 <elliott> Oklopol: note this is with my non-conditional thing
02:14:35 <elliott> so maybe the branch-inferrer is taking too long
02:14:40 <oerjan> freaks of culture are even creepier
02:14:51 <elliott> Oklopol: it does the same on foo.clue
02:14:55 <elliott> depth limit exceeded for is negative
02:14:56 <elliott> ?
02:14:59 <elliott> *negative?
02:15:02 <Oklopol> Well, given that I've never had a run-time error in a Clue program, and suddenly both programs in existence are failing with the same error...
02:15:18 <elliott> :DDD
02:15:25 <elliott> excuse me, btw, but foo.clue breaks too :D
02:15:28 <elliott> which is just my set of stuff
02:15:30 <Oklopol> Ski works for me.
02:15:49 <Oklopol> At least that one example program does.
02:16:05 <Oklopol> Somehow I doubt you made another testcase.
02:16:44 <elliott> Oklopol: huh what...
02:16:51 <elliott> Oklopol: ok so it's the removal of conditionals that break it
02:17:04 <elliott> Oklopol: can we just unify on the non-conditional version to make this a whole lot easier for both of us? :P
02:17:06 <elliott> it's obviously superior
02:18:06 <Oklopol> I don't particularly want to since things work very slowly on my machine without that additional complication for the compiler.
02:19:51 <elliott> Oklopol: ehh it's actually not slow at all
02:20:01 <elliott> Oklopol: it's like, 3/4ths as fast
02:20:04 <elliott> also way purer :p
02:20:31 <Oklopol> Well, you can give me your files once you get SKI to compile.
02:20:59 <Oklopol> And quicksort, since I would very much like to see the program that was inferred for it.
02:21:20 <elliott> Oklopol: well uh
02:21:25 <elliott> Oklopol: i will try and figure out the bug
02:21:35 <elliott> Oklopol: but only if you talk okloy again
02:22:01 <elliott> Oklopol: found it.
02:22:05 <Oklopol> I have to eat something now.
02:22:08 <elliott> Oklopol: in glue(), you pass depth_lim to glue_ as True
02:22:08 <Oklopol> Okay, nice.
02:22:11 <elliott> Oklopol: which is the same as 1 as an int
02:22:15 <elliott> Oklopol: what's it meant to be, 5?
02:22:22 <elliott> and is orig_objs meant to be True?
02:22:25 <elliott> if you can just correct that call
02:22:35 <Oklopol> I pass it as 5.
02:22:44 <Oklopol> Ah.
02:23:00 <elliott> Oklopol: you do not pass it as 5 :)
02:23:09 <Oklopol> Hmm.
02:23:12 <elliott> Oklopol: but i'm not sure which way it should be rearranged, so if you could correct it... :P
02:23:39 <Oklopol> To me it looks like I pass it as 5.
02:24:30 <elliott> Oklopol: ok let's count
02:24:32 <elliott> True,5,objects)
02:24:38 <elliott> and in the signature
02:24:38 <elliott> depth_lim,orig_objs=None,objectlookup=None):
02:24:46 <elliott> depth_lim=True, orig_objs=5, objectlookup=objects.
02:25:01 <Oklopol> Yes, one argument is not passed from glue.
02:25:11 <Oklopol> The last one.
02:25:23 <elliott> oh.
02:25:24 <elliott> darn.
02:25:53 <elliott> Oklopol: i increased the depth limit and it just overflows python's stack.
02:26:00 <elliott> Oklopol: i conclude you have an infinite loop somewhere.
02:26:18 <elliott> Oklopol: ok pop quiz for you
02:26:20 <oerjan> glue is the clue to glue clue together
02:26:23 <elliott> Oklopol: where in glue_ do you ever exit?
02:26:31 <elliott> ah, there is one return
02:26:52 <Sgeo> Ur/Web takes ideas from functional reactive programming?
02:27:11 <Oklopol> elliott: The infinite loop must be in the generated code.
02:27:16 <elliott> Oklopol: right
02:27:23 <elliott> Sgeo: it's a research language with strong links to type theory that you have mistaken as some kind of industry tool.
02:27:36 <elliott> Sgeo: as i have said on numerous occasions, if you don't understand this, you will get nothing out of it.
02:27:53 <oerjan> it's the ur-idea
02:28:42 <oerjan> but it's Web, it _must_ be industrial!
02:29:26 <elliott> he should have made it Ur/DependentlyTypedSpreadsheets or something to avoid the peanut gallery
02:34:47 <elliott> Oklopol: so um er fixed the bug yet? :D
02:35:24 <Oklopol> I don't even know if there's a bug.
02:36:42 <elliott> Oklopol: well. i assume so.
02:36:49 <elliott> Oklopol: since it can't even work out "is negative?".
02:36:57 <elliott> is negative? ~ {. -1 -> 1
02:36:57 <elliott> . -2 -> 1 }
02:36:57 <elliott> is negative? ~ {. 0 -> 0 }
02:36:59 <elliott> is negative? ~ {. 1 -> 0
02:37:01 <elliott> . 2 -> 0 }
02:37:03 <elliott> is negative? ~ compare; #0; #1
02:37:07 <elliott> Oklopol: which, you know, should not overflow python's stack.
02:37:09 <elliott> because of depth limit
02:37:37 <Oklopol> It can't? Weird, since SKI and pivot work normally.
02:37:59 <elliott> nnnno ski doesn't
02:38:11 <elliott> clue.DepthLimitException: depth limit exceeded (cadar)
02:38:15 <elliott> if i increase the depth limit the stack just overflows.
02:38:28 <elliott> the only differences between our two versions is that mine hasn't got <> stuff, as i said
02:38:45 <elliott> Oklopol: unless
02:38:47 <elliott> - if demolishing_done and first_round:break
02:38:47 <elliott> + if demolishing_done==True and first_round:break
02:38:51 <elliott> demolishing_done can't be a non-bool, can it?
02:39:44 <Oklopol> It should always be a boolean.
02:40:52 <Oklopol> And I'm sure our versions are essentially identical, but I just plain cannot fix a bug my code does not have. If I've changed something that doesn't play well with your changes, sorry, but that's life.
02:41:20 <elliott> Oklopol: well considering our respective changes shouldn't even interact with glue ... :/
02:41:35 <Oklopol> Indeed they shouldn't.
02:41:39 <elliott> http://sprunge.us/HQiJ is the whole differences... - is mine, + is yours... i'm trying to figure out wtf is up
02:41:55 <elliott> are you suuuure ski works for you? :/
02:44:03 <elliott> Oklopol: heh... if i remove most of the ski functions it finally gets a non-limit errors
02:44:05 <elliott> *error
02:44:08 <elliott> (complaining about all the missing things)
02:44:49 <elliott> Oklopol: ...okay so, as little as i believe this myself
02:44:53 <Oklopol> I just compiled SKI.
02:44:55 <elliott> Oklopol: the error was a missing "import clue" in stuff.py.
02:45:00 <elliott> I am not kidding.
02:45:05 <Oklopol> What.
02:45:07 <elliott> I guess apply_to_visible failed...somehow...
02:45:11 <Oklopol> Ah.
02:45:14 <elliott> Oklopol: do you have any big "catch every error" things?
02:45:16 <elliott> that just ignore it?
02:45:20 <elliott> because that probably caused it if so
02:45:21 <elliott> but yeah, what :D
02:45:24 <Oklopol> So I suppose there was an error, which i catch somewhere.
02:45:31 <Oklopol> Sounds like something oklopol would do.
02:45:38 <elliott> yeah, but Oklopol would never do that
02:46:11 <elliott> Oklopol: so, um, i will try qsort now, can you link me to the current ver?
02:46:23 <Oklopol> It is interesting that I haven't run into that problem when debugging that.
02:46:32 <Oklopol> Sounds like something that would be a constant annoyance.
02:46:45 <Oklopol> It has not changed, but sure.
02:47:05 <Oklopol> http://www.vjn.fi/pb/p5399236149.txt
02:47:06 <Sgeo> elliott, As far as I can tell, what Ioke calls "macros" are Io-like functions
02:47:09 <elliott> Oklopol: i would have thought your code in general would be a constant annoyance when debugging :)
02:47:14 <elliott> that is, incidentally, not a complaint at all.
02:47:17 <Oklopol> Pivot should actually work, quicksort doesn't.
02:47:20 <elliott> or an insult or w/e
02:47:22 <Sgeo> Is that less bad than what Io does, since it means most functions don't do that sort of shenanigans?
02:47:27 <elliott> Oklopol: also it has changed i don't have qsort
02:47:30 <Oklopol> I don't find my code particularly hard to debug.
02:48:44 <elliott> Oklopol: qsort compiled, at least
02:48:50 <elliott> all in less than two seconds, no less
02:49:16 <elliott> but er well
02:49:19 <elliott> add(@(pivot left(car(#0) #0)) @(pivot right(car(#0) #0)))
02:49:22 <elliott> is the non-null case for qsort
02:49:29 <elliott> @ is recursion of course
02:49:40 <Oklopol> What
02:49:44 <elliott> now i'm not _certain_ but does qsort result in an integer?
02:49:46 <Oklopol> That looks pretty much right...
02:49:48 <Oklopol> Hmm.
02:49:51 <elliott> oh
02:49:53 <elliott> add is also append :D
02:50:05 <elliott> Oklopol: yes, it works fine here. also, that <2s compilation is without <> marks.
02:50:12 <elliott> i'm going to fix my pretty-AST-printer now.
02:50:20 <Oklopol> Ah.
02:50:25 <Oklopol> I see what the problem is.
02:50:56 <Oklopol> Add is just the python (+) function, yes. That is not something that should be true.
02:50:57 <elliott> Oklopol: oh?
02:51:06 <elliott> also, i'm trying qsort with demolishing now
02:51:07 <elliott> just for the fun of it
02:51:38 <Oklopol> Alright.
02:51:48 <elliott> Oklopol: can you tell me why you are talking like this :x
02:52:22 <elliott> i just
02:52:23 <elliott> want a reason
02:53:38 <elliott> Oklopol: :(
02:55:02 <Oklopol> I don't have a reason, sorry.
02:55:18 <Oklopol> "Felt like it."
02:55:35 <elliott> Oklopol: holy shit holy shit qs compiled
02:55:36 <elliott> with destructing
02:55:41 <elliott> 273.050776958
02:55:43 <elliott> :D
02:56:10 <elliott> now i'm gonna try and figure out how to fix my printer
02:56:11 <Oklopol> Heh.
02:56:26 <elliott> Oklopol: are you going to stop talking like that ever :(
02:57:27 <Oklopol> It is interesting that quicksort compiles, I don't see how it can with that bag.
02:58:12 <Oklopol> How can the element used as pivot ever get to the output?
02:58:41 <elliott> Oklopol: that's a mighty good point.
02:58:57 <elliott> ---- quicksort
02:58:57 <elliott> [#0]
02:58:57 <elliott> | [] => #0
02:58:59 <elliott> | <<<{'#0': '#0'}>>><<<{'#1': '@(pivot left(car(#0) #0))', '#0': '#0'}>>>_ => add(@(pivot left(car(#0) #0)) @(pivot right(car(#0) #0)))
02:59:01 <elliott> ignore between <<< and >>>
02:59:06 <elliott> (note how mine avoids empty automatically :D)
02:59:19 <elliott> Oklopol: that's really weird
02:59:20 <elliott> huh
02:59:45 -!- luatre has quit (Remote host closed the connection).
03:00:05 -!- luatre has joined.
03:00:06 <elliott> let's try it in luatre :)
03:00:10 <elliott> :: quicksort([])
03:00:18 <elliott> uh.
03:00:23 <elliott> ::. hello
03:00:24 <luatre> KeyError: 'hello' :(
03:00:26 <elliott> :: poop
03:00:29 <elliott> what
03:00:32 <elliott> :: []
03:00:37 <elliott> :D
03:01:18 -!- luatre has quit (Remote host closed the connection).
03:01:25 -!- luatre has joined.
03:01:31 <elliott> :: empty([])
03:01:34 <elliott> wtf.
03:01:41 <elliott> ... x
03:01:42 <luatre> ValueError: substring not found :(
03:01:47 <elliott> ohhh
03:01:49 <Oklopol> Eh, turns out it is smarter than me. It actually pivots the whole list by the first element, that that the pivot element itself goes on the right side.
03:01:57 <Oklopol> This way, it doesn't have to add it back.
03:01:58 <elliott> :. empty([])
03:01:58 <luatre> 1
03:01:59 <elliott> Oklopol: heh :D
03:02:04 <elliott> ::. quicksort
03:02:04 <luatre> quicksort: [#0] | [] => #0 | _ => add(#1 @(pivot left(car(#0) #0)))
03:02:14 <elliott> :: quicksort([4 3 2 1])
03:02:19 <elliott> :. quicksort([4 3 2 1])
03:02:20 <luatre> RuntimeError: maximum recursion depth exceeded :(
03:02:30 <elliott> Oklopol: your quicksort, it is, mighty "efficient"
03:02:33 <Oklopol> :. quicksort([1])
03:02:34 <luatre> RuntimeError: maximum recursion depth exceeded :(
03:02:39 <elliott> ...:DDDDDddd
03:02:46 <elliott> :. quicksort([])
03:02:46 <luatre> []
03:02:55 <elliott> :. pivot left(1 [])
03:02:55 <luatre> []
03:02:56 <elliott> :. pivot left(1 [1])
03:02:56 <luatre> []
03:03:01 <elliott> :. pivot right(1 [1])
03:03:01 <luatre> [1]
03:03:04 <Oklopol> Well, the one given by luatre doesn't even call pivot right.
03:03:11 <elliott> Oklopol: no no that's a bug in the printer
03:03:18 <elliott> i fixed that in my local copy
03:03:20 <elliott> ignore its output
03:03:23 <elliott> :. add(pivot left(1 [1]) pivot right(1 [1]))
03:03:23 <luatre> [1]
03:03:28 <elliott> :. quicksort([1])
03:03:29 <luatre> RuntimeError: maximum recursion depth exceeded :(
03:03:31 <elliott> what.
03:03:42 <elliott> back to fixing my printer and avoiding thinking about that
03:04:20 <Oklopol> Hmm.
03:04:22 <elliott> Oklopol: so how fast does ski compile for you
03:04:32 <Oklopol> It occurs to me that that quicksort would be an infinite loop in any language.
03:04:39 <elliott> i think i'm going to turn destructing on (nice avoidance of the common terminology there btw) to make testing this easier :D
03:04:46 <elliott> Oklopol: oh, indeed. :D
03:04:54 <elliott> Oklopol: insufficient hinting!
03:04:59 <elliott> Oklopol: often a problem with the branchless form
03:05:03 <Oklopol> Because it can never actually "use" a piece of the input.
03:05:19 <elliott> Oklopol: i'm starting to suspect the whole oklopol thing is one gigantic act
03:05:21 <Oklopol> I need to make it also return singletons directly.
03:05:23 <elliott> and you're actually a horribly
03:05:24 <elliott> horribly
03:05:25 <elliott> normal
03:05:26 <elliott> boring person
03:05:28 <elliott> :(
03:05:32 <elliott> why do you violate my life's constants
03:05:33 <elliott> ais523: make him stop
03:05:36 <Oklopol> Either that, or I'm fizzie.
03:05:43 <elliott> ...what
03:05:44 <elliott> is that true
03:05:59 <elliott> are you fizz
03:06:00 <elliott> e
03:06:01 <elliott> ie
03:06:04 <elliott> despite being in stockholm
03:06:06 <Oklopol> I don't think I've been that much like him.
03:06:12 <elliott> you've punctuated and capitalised
03:06:14 <elliott> and that's basically enough
03:06:36 <Oklopol> Anyway, let me get back to the code.
03:06:58 <elliott> the qs code or clue.py
03:08:47 <elliott> ---- depth of first
03:08:47 <elliott> Condition: ['is list?', '#0']
03:08:47 <elliott> Base branch (0)
03:08:49 <elliott> '#0'
03:08:51 <elliott> Rec branch (1)
03:08:53 <elliott> Subast(0,0):['car', '#1']
03:08:55 <elliott> Main ast: ['inc', '#2']
03:08:57 <elliott> w h a t
03:09:01 <elliott> deep first ~ {. 1 -> 1
03:09:01 <elliott> . 2 -> 2 }
03:09:03 <elliott> deep first ~ {:. [[1, 2], 3] -> 1
03:09:05 <elliott> : [1, 2] -> 1
03:09:07 <elliott> :. [1, [2, 3]] -> 1
03:09:09 <elliott> : 1 -> 1 }
03:09:11 <elliott> deep first ~ is list?; cons; car; cdr
03:09:19 <elliott> Oklopol: wtf is #1 there
03:10:03 <Oklopol> First argument, I suppose, although that's #0.
03:10:10 <elliott> Oklopol: well precisely...
03:10:15 <Oklopol> Really I don't understand how the numbering works at all.
03:10:17 <elliott> oh
03:10:21 <elliott> depth of first has the constant #0
03:10:27 <elliott> so right, yes, why haven't i handled that
03:10:40 <elliott> ah!
03:11:06 <elliott> yep
03:12:16 <elliott> ---- depth of first
03:12:16 <elliott> [is list?(#0)]
03:12:16 <elliott> | 0 => 0
03:12:18 <elliott> | 1 => inc(@(car(#0)))
03:12:20 <elliott> :D
03:13:07 <elliott> ---- quicksort
03:13:07 <elliott> [#0]
03:13:07 <elliott> | [] => #0
03:13:08 <elliott> | _ => add(@(pivot left(car(#0) #0)) @(pivot right(car(#0) #0)))
03:13:10 <elliott> Oklopol: that's definitely the quicksort code.
03:13:35 <elliott> Oklopol: hey you know what clue should be able to do
03:13:41 <elliott> Oklopol: MUTUTALLY RECURSIVE FUNCTIONS
03:15:39 <Oklopol> Yes, it should be able to do those. In fact, didn't I mention adding support for that today?
03:15:44 <Oklopol> I believe I did.
03:16:02 <elliott> do you talk like this in real life
03:16:48 <elliott> Oklopol: so, challenge: write even? in clue
03:16:50 <elliott> handling positive and negative numbers
03:18:38 <Oklopol> It seems that quicksort works fine now.
03:18:45 <Oklopol> It was my bad really.
03:18:51 <elliott> Oklopol: oh joy: [[clue.DepthLimitException: depth limit exceeded (even?)]]
03:18:56 <elliott> Oklopol: also, can i has the code?
03:18:57 -!- res_ has joined.
03:19:01 <Oklopol> By which I meant my Clue program was wrong.
03:19:22 * elliott changes the depth limit to 10 and tests :D
03:19:31 <Oklopol> Well, actually it turns out only lists of lenght 3 can be sorted.
03:19:31 <elliott> to be fair it is a _very_ complex condition i want
03:19:35 <elliott> Oklopol: what :D
03:19:40 <elliott> Oklopol: insufficient testcases, man
03:19:52 <elliott> Oklopol: Clue, the only language where not testing enough actually breaks your program.
03:20:49 <elliott> Oklopol: i'm having a bit of trouble making a program with a complex conditional
03:21:08 <elliott> Oklopol: specifically, even? is basically this: "if x<0 then (if x==-2 then 1 else 0) else even?(x-2)"
03:21:15 <elliott> and i just can't see how to do that, even with multiple functions
03:21:46 <elliott> oh wait
03:21:56 <elliott> i can do it with compare to 0
03:22:01 <elliott> specifically
03:22:45 <elliott> "[compare(#0,0)] | -1 => 0 | 0 => 1 | 1 => @(dec(dec(#0)))"
03:22:45 <Oklopol> You know what I realized?
03:22:48 <elliott> what?
03:22:55 <Oklopol> The program IS STILL CONCEPTUALLY WRONG.
03:22:58 <elliott> :DDD
03:23:16 <olsner> conceptual wrongness exists in program!
03:23:43 -!- poiuy_qwert has joined.
03:23:54 <Oklopol> You know what gave it away? Adding a third test case.
03:23:59 <Oklopol> :. [1, 2, 3] -> [1, 2, 3]
03:23:59 <Oklopol> : [] -> []
03:23:59 <Oklopol> : [1, 2, 3] -> [1, 2, 3] }
03:24:01 -!- j-invariant has quit (Quit: leaving).
03:24:16 <elliott> Oklopol: :D
03:24:18 <elliott> L O L L O L L O L L O L:
03:24:24 <elliott> so i forgot to give positive even? #1 right
03:24:26 <elliott> ---- positive even?
03:24:26 <elliott> [compare(#0 compare(#0 #0))]
03:24:26 <elliott> | -1 => 0
03:24:28 <elliott> | 0 => compare(0 dec(0))
03:24:30 <elliott> | 1 => @(dec(dec(#0)))
03:24:32 <elliott> Oklopol: compare(0 dec(0))
03:24:33 <Oklopol> I love this language.
03:24:36 <elliott> greatest way of writing 1 ever???
03:24:38 <elliott> GREATEST WAY??
03:24:57 <elliott> Oklopol: here's what happens if i don't give it 0 either:
03:24:58 <elliott> [compare(#0 compare(#0 #0))]
03:24:59 <elliott> | -1 => compare(#0 #0)
03:24:59 <elliott> | 0 => compare(#0 dec(#0))
03:25:01 <elliott> | 1 => @(dec(dec(#0)))
03:25:01 <Oklopol> Wait what?
03:25:03 <elliott> amazing
03:25:05 <elliott> Oklopol: wait what what?
03:25:13 <Oklopol> Oh.
03:25:26 <Oklopol> Yeah nm, yes, that is fun.
03:25:27 <olsner> 0 defined as a number equaling its own predecessor?
03:25:39 <Oklopol> olsner: 0 is the python number 0.
03:25:42 <elliott> olsner: no
03:25:47 <elliott> wtf i can't tab complete olsner
03:25:52 <elliott> anyway
03:25:56 <elliott> olsner: no, compare() is <=>
03:26:00 <elliott> as in, -1 if <, 0 if =, 1 if >
03:26:09 <elliott> compare(x, x-1) is always 1
03:26:14 <elliott> compare(x, x) is always 0
03:26:18 <elliott> so basically, Clue is a genius.
03:26:24 <oerjan> elliott: wait Oklopol is in stockholm? that clearly explains the change.
03:26:32 <elliott> oerjan: no, fizzie is :P
03:26:36 <oerjan> oh
03:27:20 <oerjan> osnler is so hard to tab complete
03:27:51 <elliott> no seriously, it just doesn't let me :D
03:27:54 <olsner> why would I be hard to tab complete?
03:28:05 <elliott> my client is buggy
03:28:05 <elliott> evidently
03:28:09 <oerjan> olsner: PROBABLY YOU'RE IN STOCKHOLM OR SOMETHING
03:28:18 <elliott> Oklopol: so here's a sane compilation of even?:
03:28:19 <elliott> [is negative?(#0)]
03:28:19 <elliott> | 1 => positive even?(negate(#0))
03:28:20 <oerjan> that is an explanation for _everything_
03:28:20 <elliott> | 0 => positive even?(#0)
03:28:33 <elliott> Oklopol: but say i were to withhold is negative? from this program
03:28:37 <elliott> Oklopol: what does the genius of clue come up with?
03:28:43 <elliott> [positive even?(#0)]
03:28:43 <elliott> | 0 => positive even?(negate(#0))
03:28:43 <elliott> | _ => positive even?(#0)
03:28:47 <elliott> :D
03:29:01 <olsner> oerjan: probably not, but something could arbitrarily decide that my IP is in stockholm for whatever reason
03:29:38 <Oklopol> olsner: No, oerjan attributed my weird behavior to my being in Stockholm earlier.
03:29:53 <Oklopol> I'm not in Stockholm though.
03:29:55 <elliott> Oklopol: as a member of the Clue Standardisation Board, can I humbly suggest that we both rename "empty" to "empty?".
03:29:59 <elliott> *"empty?"?
03:30:01 <elliott> it is only logical.
03:30:02 <Oklopol> elliott: is empty?
03:30:16 <elliott> Oklopol: are you sure, every predicate is getting "is" in front of it D
03:30:17 <elliott> *:D
03:30:18 * oerjan somehow read that as the Clue Scandinavisation Board
03:30:24 <Oklopol> "is this list empty?"
03:30:26 <elliott> Oklopol: i mean sure but only if you actually make the change
03:30:55 <Oklopol> elliott: I'm not making any changes before quicksort works. I don't know why.
03:30:56 <olsner> Oklopol: isn't weird behaviour just normal behaviour when it comes to you?
03:31:06 <Oklopol> olsner: I don't know.
03:31:08 <elliott> Oklopol: well, done in mine :P
03:31:16 <elliott> olsner: look at how he's fucking talking
03:31:19 <elliott> it's unbearable :(
03:31:21 <elliott> so... so wrong
03:31:33 <Oklopol> elliott: Okay, I don't exactly mind if your versions differ.
03:31:48 <elliott> Oklopol: i have a feeling you don't think much of elliottclue :)
03:31:51 <Oklopol> Maybe I'll do the change at some point.
03:31:53 <oerjan> elliott: You should just relax, I think.
03:32:13 <elliott> Oklopol: so uh, speaking of changes...constants in branchers? >_>
03:32:36 <elliott> Vorpal: http://0au.de/~apo/mario.png
03:32:41 <elliott> Vorpal: autoconverted, but still, :D
03:34:37 <hagb4rd> i'm sure you already have seen the enterprise [minecraft edition]? -- http://www.youtube.com/watch?v=kn2-d5a3r94 :>
03:34:49 <elliott> yes, like five years ago >:)
03:35:00 <elliott> Oklopol: http://www.youtube.com/watch?v=X32nuDEvw-4
03:36:58 <elliott> :. [1 2 3]
03:36:58 <luatre> [1 2 3]
03:37:52 -!- luatre has quit (Remote host closed the connection).
03:38:10 -!- luatre has joined.
03:46:02 <hagb4rd> have you ever played brabens frontier elite? probably the best game ever.. travel our galaxy with a cute spaceship, trade, fight pirates..become elite! until now the only game you can land on planets without any loading screens! pretty nice physics..all that on one single floppy(!).. a masterpiece of work.. hope that there will be a sequel some day :/
03:46:12 <elliott> Phantom_Hoover is an Elite fan.
03:46:15 <elliott> But everyone hates Frontier.
03:46:24 <hagb4rd> not true elliott
03:46:29 <hagb4rd> but anyway
03:46:29 <elliott> Also, there _was_ a sequel.
03:46:36 <elliott> Also, everyone hates Braben. :p
03:46:43 <hagb4rd> yea
03:47:06 <elliott> hagb4rd: Anyway: http://en.wikipedia.org/wiki/Frontier:_First_Encounters
03:47:09 <elliott> Sequel to Frontier.
03:47:28 <hagb4rd> i wonder if there where all the pgogrammers are gone
03:47:35 <elliott> Eh?
03:47:54 <hagb4rd> yea i know that one, but its about 15years old or sth
03:48:05 <hagb4rd> sry
03:48:10 -!- res_ has quit (Quit: Ex-Chat).
03:48:12 <hagb4rd> -if there
03:48:12 <elliott> Oklopol: so I wrote a clue repl... it lets you specify filenames on cmd line, prints all the asts at startup, lets you evaluate stuff in LuatreLang, lets you load new files, and lets you reload everything
03:48:19 <elliott> Yeah, well, Elite 4. :p
03:48:26 <hagb4rd> yes
03:48:33 <hagb4rd> that would be funn
03:48:36 -!- GreaseMonkey has joined.
03:48:37 <elliott> http://en.wikipedia.org/wiki/Elite_4
03:48:39 <elliott> Duke Nukem Elite.
03:48:42 <hagb4rd> hrhr
03:48:44 <elliott> *Duke Elite Forever.
03:48:48 <elliott> *Elite Nukem Forever.
03:48:54 <hagb4rd> wanted
03:50:10 -!- res0001 has joined.
03:50:11 <hagb4rd> how did he manage to fit all this stuff on one single floppy?
03:50:31 <hagb4rd> the old bastard should publish the code
03:50:39 <elliott> Procedural generation. Also, give more credit to Ian Bell; I imagine most of the procedural generation code Ian Bell had at least some part in.
03:50:55 <hagb4rd> agree
03:50:58 <hagb4rd> respect
03:50:59 <elliott> hagb4rd: I distinctly recall PH telling me that Braben litigated Bell into taking down the code to Elite.
03:51:11 <elliott> So a Frontier source release might happen, mm, approximately never.
03:51:21 <hagb4rd> i will code
03:51:23 <hagb4rd> it
03:51:25 <hagb4rd> :>
03:51:34 <elliott> hagb4rd: Why bother, Asteroids II is better.
03:51:46 <hagb4rd> is it? never played it
03:52:09 -!- res0001 has quit (Client Quit).
03:52:09 <Sgeo> hagb4rd, I don't think it exists yet
03:53:02 <hagb4rd> sounds reasonable then *g
03:53:05 <elliott> hagb4rd: It's a 2D Newtonian-physics-based shooter with full physics including gravity (with orbits!) and things like localised physics distortion (e.g. slow down speed of light in a bubble that enemy is approaching, circle around it quickly and fire bullets inside before they can get out).
03:53:21 <elliott> Being "worked on" very, very slowly by me and PH, whereby most time spent working on it is thumb-twiddling.
03:53:31 <elliott> I do want it to get finished, though.
03:53:43 <hagb4rd> where can i get your alpha?
03:53:50 <elliott> /dev/null
03:53:55 <Oklopol> 46 seconds to compile quicksort helper, which hopefully was the hard part of quicksort
03:54:03 <hagb4rd> hm
03:54:06 <elliott> But it's going to be a commercial game if it ever does get done, so, uh, pony up $(preorder price). :P
03:54:10 <Oklopol> Let's hope for the best.
03:54:18 <elliott> (The release will come with full source code, allowing redistribution of modifications.)
03:54:40 <hagb4rd> cmon.. let me have a look
03:54:45 <Sgeo> Is that how Minecraft works?
03:54:46 <elliott> (So modding is perfectly legal and permitted, as well as complete reworks, so long as you either don't distribute enough to reconstruct a large part of the entire game, or only distribute it to people you can reasonably verify own it.)
03:54:49 <elliott> hagb4rd: There _is no code_ right now.
03:54:51 <Sgeo> Releasing source to purchasers?
03:54:57 <elliott> Sgeo: No, Minecraft is just closed source.
03:55:01 <elliott> It's just that Java is very easy to disassemble.
03:55:05 <elliott> Well, no less.
03:55:10 <Sgeo> hagb4rd, there isn't even code for the programming language yet
03:55:15 <elliott> You get something very close to the original code minus names (and the modders are working on that).
03:55:15 <hagb4rd> lol
03:55:22 <elliott> hagb4rd: All that has been written is gravity.lisp, which does 2D Newtonian mechanics with orbits.
03:55:25 <Oklopol> Even I have disassembled some Java code.
03:55:32 <hagb4rd> y 2d?
03:55:44 <hagb4rd> lisp
03:55:48 <hagb4rd> ok
03:55:49 <elliott> hagb4rd: Because 3D Newtonian mechanics is considered rather unfun to fly in -- see Frontier ;-)
03:55:54 <elliott> hagb4rd: The actual game won't be written in Lisp probably.
03:56:05 <elliott> But it was what PH hacked up that in (it doesn't even have graphics, it just prints tables of numbers).
03:56:19 <elliott> But it's a proof that Oklopol was wrong enough, or how PH interpreted Oklopol was wrong enough, and it can work:P
03:56:20 <elliott> *work :P
03:56:21 <Sgeo> elliott, what dialect of Lisp?
03:56:22 <elliott> (orbits in 2D)
03:56:25 <elliott> Sgeo: It was Common Lisp.
03:56:33 <Oklopol> >>> funcs["quicksort"]([4, 2, 45, 2, 65, 45, 34, 34, 6 ,76])
03:56:33 <Oklopol> [2, 2, 4, 6, 34, 34, 45, 45, 65, 76]
03:56:37 <Sgeo> What was Oklopol wrong about?
03:56:47 <elliott> Sgeo: Um, Oklopol said that someone said that orbits don't form well in 2D or something.
03:56:54 <hagb4rd> must lurk into this procedural generetion stuff..
03:57:03 <elliott> Oklopol: see, with my luatre console, that's as simple as
03:57:10 <Oklopol> Can I see proof of orbits forming?
03:57:14 <elliott> Oklopol: quicksort([4 2 45 2 65 45 34 34 6 76])
03:57:14 <elliott> !
03:57:24 <elliott> Oklopol: proof, err, not really, ph isn't online and i don't have the code, but
03:57:31 <hagb4rd> then call ian and get started with elite4
03:57:32 <Oklopol> elliott: How fun, now can I try this in your bot?
03:57:32 <hagb4rd> :>
03:57:36 <elliott> Oklopol: basically the only problem was a drift over time, caused by setting dx too high
03:57:46 <Oklopol> Please make it run url-given code.
03:57:55 <elliott> Oklopol: and it would be low enough in a game
03:57:55 <Sgeo> Aren't there plenty of orbit simulators?
03:57:57 <elliott> Oklopol: ok, i will
03:57:58 <Oklopol> elliott: So can I see?
03:58:00 <Sgeo> Microsoft Encarta came with one
03:58:04 <elliott> Oklopol: as i said, i don't have the current code
03:58:12 <elliott> Sgeo: the point is getting orbits to form naturally with newtonian mechanics in 2d
03:58:32 <elliott> Oklopol: I might make luatre just an interface to the repl, tbh, but I'll hack it up right now.
03:59:02 <Oklopol> It would be nice to be able to give urls since Clue is sort of a verbose language.
03:59:12 <hagb4rd> nothin simpler then the newtonian mechanics
03:59:31 <Oklopol> http://www.vjn.fi/pb/p1926614985.txt
03:59:33 -!- luatre has quit (Remote host closed the connection).
03:59:47 -!- luatre has joined.
03:59:58 <elliott> ::: http://www.vjn.fi/pb/p1926614985.txt
03:59:59 <luatre> ValueError: substring not found :(
04:00:09 <elliott> oh wait
04:00:09 <elliott> :D
04:00:10 <elliott> nm
04:00:11 <Sgeo> What's the point of quicksort append?
04:00:14 <Oklopol> 46 seconds to compile btw
04:00:17 <elliott> that was trying to evaluate that as a luatre expr
04:00:20 <Oklopol> Sgeo: It's a helper function.
04:00:34 <Oklopol> It's the kind of appending quicksort does after recursing.
04:00:37 <hagb4rd> just no friction..
04:00:54 <Oklopol> "quicksort helper" on the other hand has no clear meaning whatsoever.
04:01:05 <Oklopol> hagb4rd: What?
04:01:10 -!- luatre has quit (Remote host closed the connection).
04:01:15 -!- luatre has joined.
04:01:23 <elliott> ::: http://www.vjn.fi/pb/p1926614985.txt
04:01:35 <elliott> ...... http://www.vjn.fi/pb/p1926614985.txt
04:01:39 <elliott> hmm
04:01:40 <elliott> OH
04:01:41 -!- luatre has quit (Remote host closed the connection).
04:01:42 <hagb4rd> inertia, no friction thats all
04:02:02 <hagb4rd> its easier then jumpnrun.. i guess
04:02:04 -!- luatre has joined.
04:02:05 <Oklopol> I don't see what friction has to do with anything.
04:02:06 <elliott> ::: http://www.vjn.fi/pb/p1926614985.txt
04:02:07 <luatre> Downloading...
04:02:07 <luatre> Compiling, just a minute...
04:02:07 <luatre> Exception: Can't compile pivot(<id>), inc twice(<id>), caaar pivot helper(<id>), make singleton(<id>), car pivot helper(<id>), quicksort helper(<id>), pivot condition 2(<id>), caaar with consed(<id>), cons to caaar(<id>), quicksort(<id>), greater than?(<id>), quicksort append(<id>), pivot left(<id>), triple(<id>), caaar(<id>), pivot right(<id>), cons to car(<id>), pivot condition(<id>), caar(<id>) :(
04:02:25 <elliott> Oklopol: your code is busy using the old busted clue 1.0 ;)
04:02:41 <elliott> Oklopol: i, uh, can't really think of a way to fix that that isn't a gigantic hack.
04:02:46 <Oklopol> Indeed! I can fix that.
04:03:05 <elliott> Oklopol: Yeah, thankfully your program is still written in an identical fashion with <id> everywhere. :p
04:03:16 <hagb4rd> friction and gravity and impulse is the only counterforce to inertia in space Oklopol
04:03:17 <Sgeo> fuck you ~ {. [1] -> [2] . [1] -> [3] }
04:03:32 <Oklopol> Is http://www.vjn.fi/pb/p2134133721.txt better?
04:03:39 <hagb4rd> no sry
04:03:39 <elliott> Oklopol: yes, try it out
04:03:42 <Sgeo> ^^I don't think that's syntactically right
04:03:47 <hagb4rd> there is no friction
04:03:51 <Sgeo> What are those raw numbers I see in the code for?
04:03:55 <Sgeo> Oh wait
04:03:56 <elliott> they're integers.
04:03:56 <hagb4rd> making things preatty simple
04:04:00 <Sgeo> Those are both arguments?
04:04:01 <elliott> everything is just an example invocation.
04:04:05 <elliott> Sgeo: yes.
04:04:08 <Sgeo> Instead of single-argument functions, ok
04:04:13 <Sgeo> So my fuck you makes sense?
04:04:13 <Oklopol> ...... http://www.vjn.fi/pb/p2134133721.txt
04:04:15 <luatre> Downloading...
04:04:15 <luatre> Compiling, just a minute...
04:04:15 <luatre> Exception: Can't compile pivot(pivot condition), quicksort helper(quicksort append), quicksort(length), quicksort append(append), pivot left(pivot), pivot right(pivot), pivot condition(empty) :(
04:04:15 <elliott> Sgeo: it is valid, but you want to drop the [] there prolly, and you need hints
04:04:34 <elliott> Oklopol: it's "is empty?" now :D
04:04:51 <Oklopol> What about it?
04:05:04 <elliott> Oklopol: you have "empty"
04:05:06 <elliott> but it's "is empty?"
04:05:08 <elliott> thus the failure
04:05:09 <elliott> :: fuck you ~ {. 1 -> 2 . 1 -> 3 } fuck you ~ inc; dec; #0; #1; compare
04:05:09 <luatre> DepthLimitException: depth limit exceeded (fuck you) :(
04:05:09 <Oklopol> Oh dear.
04:05:12 <elliott> Sgeo: ^
04:05:18 <elliott> the bot likes you not
04:05:26 <elliott> ::. quicksort
04:05:26 <luatre> KeyError: 'quicksort' :(
04:05:33 <elliott> ::. pivot
04:05:33 <luatre> KeyError: 'pivot' :(
04:05:49 <Sgeo> :: boring ~ {. 1 -> 2 . 1 -> 2 } fuck you ~ inc; dec; #0; #1; compare
04:05:49 <luatre> IndexError: list index out of range :(
04:05:52 <elliott> Oklopol: btw, why are inc/dec not called succ? also why isn't neg called negate >:)
04:06:01 <elliott> i kinda see clue as the language of the most verbose, useful names you can come up with, thanks to the spaces
04:06:06 <Sgeo> Oops
04:06:12 <Sgeo> :: boring ~ {. 1 -> 2 . 1 -> 2 } boring ~ inc; dec; #0; #1; compare
04:06:12 <luatre> boring: [#0] | _ => inc(1)
04:06:15 <elliott> Oklopol: also shouldn't your greater than? be "is greater than?"
04:06:22 <elliott> Sgeo: you just need inc to do that. obviously.
04:06:24 <Oklopol> elliott: The way around the fact it's annoying to write "is empty?" will be that some sort of type information will usually tell the system what the contents of the bag should be.
04:06:36 <elliott> Sgeo: i was just giving fuck you a fighting chance with some nice functions.
04:06:42 <elliott> Oklopol: right. so shouldn't it be "is greater than?"
04:06:51 <elliott> Oklopol: and shouldn't neg be negate and sub subtract?
04:07:01 <Oklopol> yesss
04:07:05 <Oklopol> it totl should
04:07:11 <elliott> Oklopol: you regressed thank you <3
04:07:13 -!- Oklopol has changed nick to oklopol.
04:07:15 <oklopol> what?
04:07:19 <elliott> oklopol: oh nothing.
04:07:26 <oklopol> ke, as they say in the land of the espanolas
04:07:33 <elliott> oklopol: i kinda miss Oklopol now, i have a feeling coherency is about to take a big dip :D
04:07:57 <elliott> oklopol: so um can I implement inc->succ; dec->pred in my impl sometime
04:07:58 <oklopol> i agree with all your naming stuff
04:08:01 <elliott> okay
04:08:06 <elliott> i don't have negate or subtract except in foo.clue
04:08:09 <elliott> which has them as negate and subtract
04:08:12 <elliott> maybe i should pre-load foo.clue
04:08:13 <elliott> it's pretty useful
04:08:20 <oklopol> the names of things have annoyed me forever, but it's sooooo much work changing them
04:08:44 <oklopol> .:.:http://www.vjn.fi/pb/p8579956286.txt
04:08:45 <elliott> oklopol: changed to is empty? yet?
04:08:47 <elliott> ah
04:08:48 <elliott> oklopol: you forgot space
04:08:51 <oklopol> .:.: http://www.vjn.fi/pb/p8579956286.txt
04:08:52 <luatre> Downloading...
04:08:52 <luatre> Compiling, just a minute...
04:08:52 <luatre> Exception: Can't compile pivot(<id>), inc twice(<id>), caaar pivot helper(<id>), make singleton(<id>), car pivot helper(<id>), quicksort helper(<id>), pivot condition 2(<id>), caaar with consed(<id>), cons to caaar(<id>), quicksort(<id>), greater than?(<id>), quicksort append(<id>), pivot left(<id>), triple(<id>), caaar(<id>), pivot right(<id>), cons to car(<id>), pivot condition(<id>), caar(<id>) :(
04:08:55 <oklopol> actually that was a typo
04:08:57 <elliott> :D
04:09:39 <oklopol> what now? and also, i'd prefer having negate and abs in the stdlib. i see no point not to
04:10:00 <oklopol> remember, this is not a tarpit, it's a high-level language gone really wrong
04:10:24 <oklopol> so what happened
04:10:48 <oklopol> ...
04:10:49 <oklopol> fuck
04:10:55 <oklopol> i changed all the id's back already
04:10:55 <oklopol> xD
04:11:03 <oklopol> you fix it K?
04:11:41 <elliott> oklopol: also, negate and abs _are_ in my stdlib
04:11:42 <elliott> foo.clue
04:11:45 <elliott> oklopol: also, no :P
04:11:50 <elliott> oklopol: just use python to do it
04:11:59 <elliott> oklopol: open('foo').read().replace('<id>; ','')
04:12:07 <elliott> oklopol: open('foonew').write(open('foo').read().replace('<id>; ',''))
04:12:37 <oklopol> nevahh
04:13:01 -!- azaq23 has quit (Ping timeout: 265 seconds).
04:13:11 * elliott renames foo.clue -> std.clue
04:13:15 <oklopol> :D
04:13:24 <elliott> gives you an STD on every use!
04:13:37 <oklopol> also btw
04:13:45 <elliott> oklopol: you might wanna s/dec/pred/ and inc to succ on your code while you remove <id>
04:13:50 <elliott> 'cuz i'm gonna take advantage of the moment
04:13:53 <oklopol> i added append as a primitive
04:13:55 <elliott> or would "predecessor" and "successor" be better :D
04:14:14 <oklopol> haha
04:14:15 <Sgeo> Why does id have <> around its name?
04:14:15 <elliott> nah, i'll make it pred and succ
04:14:16 <oklopol> totally
04:14:16 <oklopol> :D
04:14:21 <elliott> Sgeo: old obsolete feature
04:14:25 <elliott> oklopol: and i'll implement append in the stdlib
04:14:48 <elliott> technically i could have backwards-compat here
04:14:53 <elliott> but then you'd never change your progs :D
04:14:55 <hagb4rd> "[..]However, Mr Braben said that the pair originally had some difficulty finding a publisher, despite the game being popular with their friends.
04:14:55 <hagb4rd> He said that the game was so different from traditional coin-operated games, not least because Elite did not actually have a score, that most publishers rejected it. 'They just didn't get it, they wanted a high score and they wanted players to have three lives' ..lol
04:15:21 <hagb4rd> *sigh
04:15:35 <elliott> oklopol: btw i have greater than? in my stdlib
04:15:39 <elliott> i'll rename it "is greater than?"
04:15:45 <oklopol> go ahead
04:15:52 <elliott> oklopol: i still think this verbose naming might be a mistake :D
04:16:23 <oklopol> well there could be shorthands as well.
04:16:36 <oklopol> if it's not clear what is meant, both are added to the bag!
04:16:50 <oklopol> that's the great thing about clue
04:16:56 <oerjan> abs should be absolute value, surely
04:17:06 <elliott> oerjan: no :D
04:17:16 <oerjan> Y NO
04:17:20 <elliott> oklopol: after you get qs working can I eliminate , from arglists and lists too?
04:17:22 <elliott> since that's like
04:17:24 <elliott> clearly superior
04:17:32 <oerjan> elliott: magnitude, then?
04:17:32 <oklopol> how about "The function that returns the absolute value of the number given as a parameter."
04:17:37 <elliott> :D
04:17:47 <oerjan> ot that.
04:17:49 <oerjan> *or
04:18:07 <elliott> "A function that returns the negation (the subtraction from zero) of its argument if it is less than zero, or the argument itself if it is greater than or equal to zero."
04:18:11 <oklopol> yes, ","'s should be removed
04:18:53 <oklopol> also what were the things i was supposed to do for the sourch
04:19:01 <oklopol> (e)
04:19:14 <Sgeo> How much of the stdlib is primitives, and how much is written in Clue?
04:19:49 <elliott> Sgeo: there are a handful of both
04:19:57 <elliott> oklopol: erm
04:19:59 <oerjan> "It's clues all the way down!"
04:20:00 <elliott> oklopol: remove <id>;
04:20:02 <elliott> oklopol: turn inc->succ
04:20:06 <elliott> oklopol: turn dec->pred
04:20:08 <elliott> that should be it for now i think
04:20:11 <elliott> also empty-> is empty?
04:20:12 <oerjan> (IN AN ALTERNATE IDEAL UNIVERSE)
04:20:25 <oerjan> `quote ALTERN
04:20:26 <HackEgo> 17) IN AN ALTERNATE UNIVERSE: <pikhq> First, invent the direct mind-computer interface. <pikhq> Second, learn the rest with your NEW MIND-COMPUTER INTERFACE. \ 23) IN AN ALTERNATE UNIVERSE: <bsmntbombdood> there is plenty of room to get head twice at once \ 24) <oerjan> In an alternate universe, ehird has taste \ 25) IN AN
04:20:31 <elliott> oklopol: so anyway, my append function is taking A VERY VERY LONG TIME
04:20:33 <Sgeo> What are the ... does TC-ness imply?
04:20:42 <elliott> Sgeo: what
04:20:45 <elliott> oklopol: to compile
04:20:45 <Sgeo> Why did I just say imply? I meant.. make sense
04:21:01 <elliott> oh more hints sped it up :D
04:21:18 <elliott> ---- append
04:21:18 <elliott> [#0]
04:21:18 <elliott> | [] => #1
04:21:19 <elliott> | _ => cons(car(#0) @(cdr(#0) #0))
04:21:23 <elliott> :D
04:21:48 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
04:21:51 <luatre> Downloading...
04:21:51 <luatre> Compiling, just a minute...
04:21:51 <luatre> Exception: Can't compile quicksort helper(quicksort append), quicksort(length), quicksort append(append) :(
04:21:56 <oklopol> fucking fuck
04:22:02 <oklopol> WHAT IS WRONG NOW
04:22:05 <elliott> luatre: i added append
04:22:07 <elliott> *oklopol:
04:22:07 <elliott> just
04:22:09 <elliott> let me reload the bot
04:22:11 <elliott> kay?
04:22:17 <oklopol> well okay.....
04:22:30 -!- luatre has quit (Remote host closed the connection).
04:22:36 -!- luatre has joined.
04:22:36 <elliott> to get std.clue in
04:22:38 <elliott> ok go
04:22:54 <oerjan> Sgeo: i imagine there is some function you cannot write in clue because no matter how many sample values you give there is _always_ a candidate function that works for those values and is easier to find. (note: i don't _really_ know how clue works.)
04:23:08 <elliott> oerjan: but is that function completeable
04:23:10 <oerjan> *works only for
04:23:15 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
04:23:22 <elliott> oerjan: and remember that it only uses functions _you_ allow it to
04:23:30 <elliott> oklopol: what did you do to it.
04:23:31 <oerjan> hm.
04:23:50 <oklopol> oerjan: you can basically write imperative code
04:23:55 <luatre> Downloading...
04:23:55 <luatre> Compiling, just a minute...
04:23:55 -!- luatre has quit (Remote host closed the connection).
04:23:59 <elliott> oh heh
04:24:05 <Sgeo> MURDERERS
04:24:07 <Sgeo> THE LOT OF YOU
04:24:10 <oklopol> it takes 46 seconds on my computer
04:24:12 <elliott> missed a flush
04:24:14 -!- luatre has joined.
04:24:15 <elliott> oklopol: try when it comes back
04:24:18 <oklopol> and with your append, of course much more
04:24:21 <elliott> like, now
04:24:31 <oklopol> because the function that takes 46 seconds is slow because it uses append so much
04:24:33 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
04:24:34 <luatre> Downloading...
04:24:34 <luatre> Compiling, just a minute...
04:24:43 <elliott> if it takes 3 seconds i'll lol at your feeble computer
04:24:49 <oklopol> :P
04:25:02 <elliott> computer is heating up
04:25:12 <oklopol> consider adding append as a primitive
04:25:19 <elliott> oklopol: consider FUCK YOU
04:25:24 <elliott> clue is a language for beauty, not usefulness
04:25:26 <elliott> or ability to run at all
04:25:39 <luatre> Exception: Can't compile quicksort(length) :(
04:25:43 <oerjan> oklopol: elliott: i sincerly hope you will make a clue wiki page
04:25:45 <elliott> oklopol: :DDD
04:25:49 <oklopol> ability to run at all is not even close a design goal, no
04:25:50 <elliott> i'll add append to std.clue
04:25:50 <oerjan> *+e
04:25:53 <oklopol> *to
04:26:14 <oklopol> length?
04:26:27 <elliott> erm yes
04:26:28 <elliott> length
04:26:28 <elliott> :::.
04:26:29 <oklopol> yeah i added a length function
04:26:32 <oklopol> as primitive, do you have it?
04:26:39 <elliott> ::. length
04:26:39 <luatre> KeyError: 'length' :(
04:26:45 <elliott> hm
04:26:51 <oklopol> also make append check that its arg is not an integer
04:26:56 <oklopol> that's very important
04:27:04 <elliott> oklopol: what does it do for integers
04:27:06 <oklopol> that either of them isn't
04:27:10 <oklopol> returns none
04:27:22 <elliott> oklopol: None the python object?
04:27:24 <elliott> you are joking yes :)
04:27:26 <oklopol> sure
04:27:34 <elliott> well anyway reloading is broken SO
04:27:35 -!- luatre has quit (Remote host closed the connection).
04:27:36 <oklopol> oh it has a special meaning
04:27:42 <oklopol> it is an exception
04:27:43 <elliott> ah, i had error
04:27:57 -!- luatre has joined.
04:27:59 <elliott> oklopol: i haven't implemented that :)
04:28:02 <elliott> ::. length
04:28:02 <luatre> length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0)))
04:28:05 <elliott> ...:D
04:28:10 <elliott> SNEAKY
04:28:16 <oklopol> at some point, i'm going to add { . [1] -> ! }, that is, erroring out
04:28:22 <elliott> oklopol: excuse me ^
04:28:35 <oklopol> as a primitive type system
04:28:36 <elliott> :::.
04:28:38 <elliott> ::. length
04:28:39 <luatre> length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0)))
04:28:41 <elliott> ::. length
04:28:41 <luatre> length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0)))
04:28:42 <elliott> ::. length
04:28:42 <luatre> length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0)))
04:28:43 <elliott> ::. length
04:28:43 <luatre> length: [#0] | [] => 0 | [1 2 3] => succ(@(cdr(#0)))
04:28:43 <oerjan> `addquote <elliott> clue is a language for beauty, not usefulness <oklopol> ability to run at all is not even close to a design goal, no
04:28:44 -!- luatre has quit (Remote host closed the connection).
04:28:44 <HackEgo> 262) <elliott> clue is a language for beauty, not usefulness <oklopol> ability to run at all is not even close to a design goal, no
04:28:44 <oklopol> ...very primitive :D
04:28:50 -!- luatre has joined.
04:28:50 <elliott> ::. length
04:28:51 <luatre> length: [#0] | [] => 0 | _ => succ(@(cdr(#0)))
04:28:53 <elliott> that's better
04:28:55 <elliott> oklopol: try now
04:29:02 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
04:29:03 <luatre> Downloading...
04:29:03 <luatre> Compiling, just a minute...
04:29:03 <elliott> oerjan: I _mentioned_ ability to run before that :P
04:29:16 <oklopol> "just a minute" is funny because it actually takes about a minute.
04:29:23 <elliott> caaar ~ {. [1, 3, 4] -> 4}
04:29:24 <elliott> caaar ~ car; cdr
04:29:35 <elliott> oklopol: i suspect this will turn into "[#0] | _ => 4"
04:29:35 <oklopol> yeah it's not really caaar
04:29:37 <oklopol> :P
04:29:40 <oklopol> if that's what you mean
04:29:46 <elliott> oklopol: i suspect this will turn into "[#0] | _ => 4"
04:29:47 <elliott> is what i mean
04:29:50 <elliott> but yes, that is also true :P
04:30:00 <elliott> laptop heating up
04:30:10 <luatre> caaar pivot helper: [#0] | _ => cons to caaar(car(#0) #1)
04:30:10 <luatre> greater than?: [compare(#0 #1)] | 1 => 1 | -1 => 0 | 0 => 0
04:30:10 <luatre> car pivot helper: [#0] | _ => cons to car(car(#0) #1)
04:30:10 <luatre> pivot right: [#0] | _ => caaar(pivot(#0 #1))
04:30:10 <luatre> quicksort helper: [#0] | _ => quicksort append(#0 car(#1) #2)
04:30:11 <luatre> pivot condition 2: [greater than?(#0 car(#1))] | 0 => 2 | 1 => 3
04:30:11 <luatre> caaar: [#0] | _ => car(cdr(cdr(#0)))
04:30:12 <luatre> cons to caaar: [#0] | _ => triple(car(#1) caar(#1) caaar with consed(#0 #1))
04:30:12 <luatre> make singleton: [#0] | _ => cons(#0 [])
04:30:13 <luatre> quicksort: [length(#0)] | 0 => #0 | 1 => #0 | _ => quicksort helper(@(pivot left(car(#0) #0)) #0 @(pivot right(car(#0) cdr(#0))))
04:30:13 <luatre> quicksort append: [#0] | _ => append(#0 append(make singleton(#1) #2))
04:30:14 <luatre> pivot left: [#0] | _ => car(pivot(#0 #1))
04:30:14 <luatre> triple: [#0] | _ => cons(#0 cons(#1 make singleton(#2)))
04:30:14 <oklopol> how could it turn into that
04:30:15 <luatre> caaar with consed: [#0] | _ => cons(#0 caaar(#1))
04:30:24 <oklopol> in no way could it turn into that, #4 is not given
04:30:27 <elliott> oh right
04:30:30 <elliott> okay sure try it out
04:30:35 <oklopol> ooh
04:30:40 <elliott> :: quicksort([5 4 1 9 2])
04:30:40 <oklopol> ... quicksort (1, 2 ,3)
04:30:41 <luatre> ValueError: substring not found :(
04:30:41 <oklopol> asojuhgfiuje
04:30:47 <elliott> oklopol: fail :D
04:30:47 <elliott> now
04:30:48 <elliott> let's see
04:30:51 <elliott> :. quicksort([5 4 1 9 2])
04:30:52 <luatre> [1 2 4 5 9]
04:30:56 <oklopol> \o/
04:30:56 <myndzi> |
04:30:57 <myndzi> /`\
04:30:58 <elliott> oklopol: you are god
04:31:10 <oklopol> :. quicksort([5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245])
04:31:11 <luatre> [1 2 3 4 4 4 5 5 5 6 6 6 6 9 34 34 45 45 45 46 53 54 54 54 54 54 55 65 65 67 67 67 76 76 234 345 345 354 356 435 536 564 643 3467 5245 6356 6543 58678]
04:31:20 <elliott> it even runs in finite time!
04:31:22 <oklopol> it's great how the actual programs aren't slow at all
04:31:24 <elliott> WITHOUT blowing the stack!
04:31:37 <elliott> :. [5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245]
04:31:38 <luatre> [5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245]
04:31:43 <elliott> :. length([5 4 1 9 2 54 45 643 6 3 67 4 53 564 354 4 55 6 65 5 54 45 45 34 34 54 65 67 76 76 54 6356 345 6 3467 356 46 536 345 6543 6 435 67 58678 54 5 234 5245])
04:31:43 <luatre> 48
04:31:50 <elliott> oklopol: yeah anything that can sort a 48 second list in a second is amazing in my book :D
04:31:52 <elliott> erm
04:31:54 <elliott> *48 element
04:32:13 <oklopol> elliott: you aren't being sarcastic by any chance? :D
04:32:25 <elliott> oklopol: MAYBE
04:32:32 <elliott> you sounded very oerjan for that line
04:32:37 <elliott> /nick oerklopol
04:32:48 <elliott> oklopol: but yeah, p. amazing
04:32:52 <elliott> how come this actually works
04:32:56 <oklopol> idgi
04:32:57 <elliott> kinda...damaging my faith in languages?
04:33:01 <oklopol> maybe mergesort next
04:33:07 <oklopol> wanna do it?
04:33:16 <elliott> oklopol: isn't it the clue way that, after doing one sort, you don't need to do any more
04:33:23 <elliott> because a smart impl could just turn it into any sort it wants
04:33:30 <elliott> ergo i don't have to do that :D
04:33:33 <oklopol> oerjan: yeah probably i should write up a couple page spec
04:33:43 <elliott> oklopol: you've done fib right?
04:33:51 <oklopol> nope
04:33:54 <oklopol> go for it
04:33:56 <elliott> oklopol: oh? then I can
04:33:56 <elliott> yay
04:34:11 <elliott> oklopol: i'm very close to writing a clue mode for emacs
04:34:14 <elliott> just to do the fucking indentation for me
04:34:14 <elliott> :D
04:34:17 <elliott> well, *alignment
04:34:23 <oklopol> btw that quicksort should probably go in the stdlib.
04:34:28 <oklopol> why not make it official
04:34:41 <oklopol> although all the functions you made for it should be primitives imo :P
04:34:41 <elliott> oklopol: well. you see. i would. except the stdlib currently takes about a second to compile.
04:34:49 <elliott> yeah i might make them primitives ;x
04:34:54 <elliott> but i'll do fib first
04:35:04 <oklopol> what's wrong with stdlib taking a minute to compile? :D
04:35:36 <oklopol> oerjan: anyway with the tcness definition most people have, clue is tc because i made ski in it
04:36:02 * Sgeo goes to write a wrapper for the AW SDK in Clue
04:36:07 <elliott> ::: http://www.vjn.fi/pb/p3111652293.txt
04:36:07 <luatre> Downloading...
04:36:08 <luatre> Compiling, just a minute...
04:36:09 <luatre> DepthLimitException: depth limit exceeded (fib) :(
04:36:30 <elliott> ::: http://www.vjn.fi/pb/p7621978181.txt
04:36:30 <luatre> Downloading...
04:36:31 <luatre> Compiling, just a minute...
04:36:32 <luatre> DepthLimitException: depth limit exceeded (fib) :(
04:36:35 <elliott> what
04:36:52 <elliott> oklopol:
04:37:09 <elliott> oh
04:37:10 <elliott> duh
04:37:31 <elliott> ::: http://www.vjn.fi/pb/p8721655922.txt
04:37:31 <luatre> Downloading...
04:37:31 <luatre> Compiling, just a minute...
04:37:32 <luatre> fib: [#0] | 0 => 0 | 1 => 1 | _ => pred(#0)
04:37:33 <oklopol> kinda obvious
04:37:36 <elliott> oklopol: :DDD
04:38:16 <oklopol> what
04:38:17 <oklopol> xD
04:38:25 <oklopol> that's so fucking great
04:38:29 <elliott> i know, best fib ever
04:38:36 <oklopol> this language really makes you think
04:38:41 <elliott> oklopol: i like how i TOLD it i was going to recurse
04:38:46 <elliott> but it was like...
04:38:49 <elliott> nah man, this shit is easy
04:38:52 <oklopol> :D
04:38:52 <elliott> ::: http://www.vjn.fi/pb/p8928373356.txt
04:38:52 <luatre> Downloading...
04:38:52 <luatre> Compiling, just a minute...
04:38:52 <luatre> fib: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0))))
04:38:56 <elliott> :DDD
04:39:00 <elliott> :. fib(10)
04:39:00 <luatre> 55
04:39:01 <elliott> :. fib(100)
04:39:07 * elliott 's machine catches fire
04:39:07 <oklopol> erm
04:39:18 <elliott> oklopol: erm?
04:39:21 <oklopol> note that the problem is your algo
04:39:26 <oklopol> that's all
04:39:32 <elliott> oklopol: my algo looks right to me?
04:39:36 <oklopol> i mean
04:39:41 <oklopol> ":. fib(100)" taking forever
04:39:43 <oklopol> it would in haskell too
04:39:46 <elliott> well, right
04:39:52 <elliott> i think i might kill the bot!
04:40:03 <oklopol> i'm just very protective of clue
04:40:11 <oklopol> so i had to tell that right away
04:40:40 <oerjan> `run sed -i 's/usefulness/usefulness <elliott> or ability to run at all' quotes
04:40:42 <HackEgo> No output.
04:40:44 <elliott> i'ma internalise^Wprimitivise the functions now
04:40:47 <elliott> `quote ability to
04:40:48 <HackEgo> No output.
04:40:50 <elliott> `quote ability
04:40:53 <HackEgo> 262) <elliott> clue is a language for beauty, not usefulness <oklopol> ability to run at all is not even close to a design goal, no
04:40:59 <oerjan> eek
04:41:03 <elliott> `paste quotes
04:41:04 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.18966
04:41:07 <oklopol> maybe i'll write a real crappy page for clue now so you can then complain about it and i have to make it better
04:41:09 <elliott> oerjan: the way of the quote database is very subtle.
04:41:20 <oklopol> actually that sounds really hard
04:41:28 <elliott> oerjan: you missed the last / for instance >:)
04:41:35 <oerjan> darn
04:41:39 <oklopol> wikis are very scary
04:41:40 <elliott> oklopol: oh man my machine is churning
04:41:49 <oklopol> elliott: fib 100 will never run
04:42:01 <oerjan> `run sed -i 's/usefulness/usefulness <elliott> or ability to run at all/' quotes
04:42:03 <HackEgo> No output.
04:42:20 <elliott> oklopol: what should I make add([] []) be?
04:42:22 <elliott> i don't want an error
04:42:24 <elliott> errors are for like
04:42:25 <elliott> donkey butts
04:42:26 <elliott> oh wait
04:42:29 <elliott> do errors in testing make the test fail?
04:42:32 <elliott> if so that'd be beneficial
04:42:38 <oklopol> ?
04:42:49 <elliott> oklopol: add([1 2] [3 4]), I want to stop it working
04:42:49 <oerjan> elliott: well i knew i was tempting fate with using sed -i at all :D
04:42:57 <oklopol> stop it working in what sense
04:42:58 <elliott> will raising an exception make all tests involving add on list "fail"?
04:43:00 <elliott> without breaking things
04:43:03 <elliott> oklopol: stop it returning [1 2 3 4].
04:43:10 <oklopol> you return None, as i said
04:43:14 <oerjan> `quote ability
04:43:15 -!- luatre has quit (Ping timeout: 240 seconds).
04:43:15 <HackEgo> 262) <elliott> clue is a language for beauty, not usefulness <elliott> or ability to run at all <oklopol> ability to run at all is not even close to a design goal, no
04:43:24 <oklopol> that will not give you a None object in code
04:43:26 <oklopol> it's special.
04:43:41 <elliott> oklopol: oh-KAY
04:43:41 <oklopol> and it means test cases will fail, i guess that's what you wanna hear
04:43:56 <elliott> btw isinstance(a,int) fails for sufficiently big a
04:44:00 <elliott> and s/int/long/ works only for big a
04:44:02 <elliott> so int(a)==a is best
04:44:43 <oerjan> > let fib = 1:1:zipWith(+)fib(tail fib) in fib!!100
04:44:44 <lambdabot> 573147844013817084101
04:44:44 <elliott> oklopol: length(0), None or 1?
04:44:45 <elliott> :P
04:45:04 <oklopol> length of numbers should be None
04:45:26 <oklopol> types will play a very important in clue 1.5
04:45:28 <oklopol> *role
04:45:49 <oklopol> so let's try to separate the existing two types as much as possible
04:46:26 * elliott removes is even? from stdlib for now
04:46:27 <elliott> oklopol: okay
04:46:52 <elliott> oklopol: i'm leaving is zero?, is negative?, and is greater than? in stdlib
04:46:57 <elliott> because they're... not performance-intensive
04:47:09 -!- luatre has joined.
04:47:13 <elliott> heh luatre died due to not responding to pings due to being lagged
04:47:14 <oklopol> yeah that's good
04:47:27 <elliott> oklopol: wanna rename caaar to what it actually is and then link me to the qsort?
04:47:31 <elliott> i'll add it to my filesystem
04:47:33 <oklopol> haha
04:47:35 <oklopol> yeah maybe
04:47:36 <oerjan> is odd? should be called i don't even?
04:47:40 <elliott> oerjan: :D
04:47:45 <elliott> what is this(i don't even?(42))
04:47:57 <elliott> oklopol: have you done fact
04:49:06 <oklopol> btw god esolanging is fun, why don't we do it more often :D
04:49:18 <oklopol> http://www.vjn.fi/pb/p8325321461.txt
04:49:19 <elliott> code=reduce(lambda a,b:a+b,[i for i in code if i!=" "])
04:49:25 <elliott> oklopol: you realise that this doesn't remove newlines?
04:49:32 <elliott> or are they removed elsewher
04:49:32 <elliott> e
04:50:09 <oklopol> newlines are not the same as spaces
04:50:28 <elliott> that is true
04:50:29 <oklopol> they are the end marker of bags
04:50:33 <elliott> oh, true
04:50:51 -!- hagb4rd has quit (Ping timeout: 240 seconds).
04:50:53 <oklopol> i don't really know the syntax...
04:51:00 <oklopol> exactly i mean
04:51:13 <oklopol> "do like in these examples and it should work"
04:51:26 <elliott> oklopol: how many :s should comments be
04:51:27 <elliott> *dots
04:51:36 <oklopol> so hmm
04:51:38 <elliott> four? that's kinda nice since :: looks commenty
04:51:43 <elliott> or six, ::: looks the same
04:51:44 <oklopol> :: is used
04:51:45 <elliott> and :: might be wanted for something
04:51:46 <elliott> okay
04:51:47 <elliott> :::?
04:51:51 <elliott> or ...... :D
04:51:53 <oklopol> just not implemented
04:51:55 <elliott> or :.:.
04:51:57 <elliott> or .::.
04:52:01 <elliott> yeah i'll make it six if that's okay
04:52:07 <oklopol> erm well
04:52:13 <elliott> is that not okay :p
04:52:18 <oklopol> it would be nice if 5 was used as well then
04:52:25 <elliott> oklopol: well that's reserved for future expansion
04:52:28 <oklopol> :D
04:52:29 <oklopol> haha
04:52:31 <oklopol> yeah that's good
04:52:37 <oklopol> "reserved"
04:52:41 <elliott> yes :D
04:52:57 <oklopol> are you actually adding :::?
04:53:08 <oklopol> you can just make it cut the rest of the line
04:53:09 <elliott> yes
04:53:12 <elliott> i am going to do that
04:53:14 <oklopol> as you were going to do
04:53:16 <oklopol> just saying
04:53:19 <elliott> :P
04:54:09 <oklopol> oh god that exams gonna go baaaaaaaaaaaaaaaaaaad
04:54:20 <oerjan> caaar (l) = we need to go deeper (3 l)
04:54:31 <elliott> oerjan: xD
04:54:44 <oklopol> haha
04:55:10 <oklopol> btw once ! is added, you can pretty much exactly write the code you want
04:55:12 <oklopol> know what that means?
04:55:15 <elliott> no
04:55:29 <oklopol> well umm, hard to put it to words
04:55:40 <oklopol> but it has a similar role as a weird thing as it does in prolog
04:55:43 <oklopol> of course, completely different
04:55:54 <oklopol> but it's this sort of technical thing that can be used to guide searches
04:55:59 <elliott> right
04:56:06 <elliott> ghetto_ast is ghetto no more, incorporated into clue.py itself
04:56:10 <oklopol> it's actually very natural in clue, but i just find that fun for some reason
04:56:32 <oklopol> also the meaning is actually kinda similar, "stop this branch of search"
04:56:44 <elliott> TODO: rename the luatre functions to something nicer, put in luatre.py
04:56:50 <elliott> (I've decided that the expression language is called luatre)
04:57:14 -!- luatre has quit (Remote host closed the connection).
04:57:20 -!- luatre has joined.
04:57:26 <elliott> oklopol: put quicksort in again
04:57:38 <oerjan> ! = cut that out
04:57:39 <elliott> oklopol: while i work on a faster fib
04:58:07 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
04:58:08 <luatre> Downloading...
04:58:08 <luatre> Compiling, just a minute...
04:58:14 <variable> how do I indicate an error in Haskell ?
04:58:24 <luatre> caaar pivot helper: [#0] | _ => cons to caaar(car(#0) #1)
04:58:24 <luatre> greater than?: [compare(#0 #1)] | 1 => 1 | -1 => 0 | 0 => 0
04:58:24 <luatre> car pivot helper: [#0] | _ => cons to car(car(#0) #1)
04:58:24 <luatre> pivot right: [#0] | _ => caaar(pivot(#0 #1))
04:58:24 <luatre> quicksort helper: [#0] | _ => quicksort append(#0 car(#1) #2)
04:58:24 <luatre> pivot condition 2: [greater than?(#0 car(#1))] | 0 => 2 | 1 => 3
04:58:24 <luatre> caaar: [#0] | _ => car(cdr(cdr(#0)))
04:58:25 <luatre> cons to caaar: [#0] | _ => triple(car(#1) caar(#1) caaar with consed(#0 #1))
04:58:25 <luatre> make singleton: [#0] | _ => cons(#0 [])
04:58:26 <oklopol> oerjan: would be nice except it's not a function
04:58:26 <luatre> quicksort: [length(#0)] | 0 => #0 | 1 => #0 | _ => quicksort helper(@(pivot left(car(#0) #0)) #0 @(pivot right(car(#0) cdr(#0))))
04:58:26 <luatre> quicksort append: [#0] | _ => append(#0 append(make singleton(#1) #2))
04:58:27 <luatre> pivot left: [#0] | _ => car(pivot(#0 #1))
04:58:32 <oerjan> > error "Message here"
04:58:33 <lambdabot> *Exception: Message here
04:58:39 <elliott> variable: error "foo" for simple stuff
04:58:51 <variable> elliott, perfect - thanks
04:58:55 * Sgeo wants a jetpack
04:58:59 <elliott> variable: you might also consider returning (Maybe resulttype) instead, or having (Either SomeErrorType resulttype)
04:59:00 <oklopol> who doesn't
04:59:00 <Sgeo> http://www.martinjetpack.com/
04:59:03 <elliott> variable: for API functions
04:59:21 <variable> elliott, nah - I need Error in this case :-}
04:59:22 <elliott> "The Martin Jetpack is a experimental aircraft. Its tradename calls it a "jet pack", but is not jet- or rocket-powered."
04:59:34 <oklopol> elliott: consider printing compilation time btw, i find it very interesting at least
04:59:39 <elliott> oklopol: sure
04:59:48 <oerjan> variable: it's just that error and friends can only be caught in the IO monad
04:59:49 <oklopol> so
04:59:56 <oklopol> can someone make a disambiguation page? :P
05:00:19 <oerjan> while Either and Maybe can be analyzed by pure functions
05:00:27 -!- luatre has quit (Remote host closed the connection).
05:00:32 -!- luatre has joined.
05:00:47 <oklopol> when clue was young, i remember ais523 saying "yay, we get our first disambiguation page"
05:01:02 <oerjan> variable: also there is undefined for when you don't even want to give a message
05:01:02 <variable> oklopol, lulz
05:01:06 <elliott> oklopol: should keymaker's lang be "Clue (Keymaker)" or "Clue (2009)"
05:01:14 <elliott> the former is more disambiguous, the latter...nicer?
05:01:18 <variable> oerjan, does error exit the program? or does it continue going....
05:01:21 <elliott> in fact clue oklopol has no defined creation date i guess
05:01:22 <elliott> for sure
05:01:23 <elliott> *year
05:01:24 <elliott> so keymaker
05:02:13 <elliott> oklopol: clue was invented 2010—2011?
05:02:17 <elliott> or 2009? or 2010?
05:02:23 <oklopol> i doubt it was in 2010
05:02:30 <oklopol> maybe more like 2009
05:02:33 <elliott> okay
05:02:49 <oklopol> it's hard to say when it became a distinct language, all the ideas were there much before
05:02:59 <elliott> oklopol: http://esolangs.org/wiki/Clue
05:03:02 <oerjan> variable: it exits unless you catch it from IO
05:03:54 <oklopol> maybe i should call clue clue++, add km's clue commands, and say clue++ is an extension of clue
05:04:05 <oklopol> ...or maybe not :D
05:04:10 <oklopol> elliott: thanks
05:04:18 <oklopol> now all i need to do is actually write something
05:04:19 <elliott> oklopol: try qsort now
05:04:21 <elliott> it'll say the time
05:04:28 <oklopol> yayy
05:04:34 <oklopol> :..: http://www.vjn.fi/pb/p6825816189.txt
05:04:35 <luatre> Downloading...
05:04:35 <luatre> Compiling, just a minute...
05:04:51 <luatre> TypeError: cannot concatenate 'str' and 'float' objects :(
05:05:08 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.12/20101026210630]).
05:05:17 <variable> elliott, http://pastebin.com/PETSzuE1 --> something is obviously wrong
05:05:18 <variable> unn.hs:6:12: parse error on input `<-'
05:05:24 <Sgeo> elliott, you should have oved it
05:05:26 <Sgeo> moved
05:05:31 -!- hagb4rd has joined.
05:05:32 <Sgeo> Oh, n/m
05:05:39 <oklopol> maybe for all the syntax things, there could be a verbose command as well, but uppercase: "!" = CUT IT OUT, ":." = "RECURSION BRACH", ":" = SUBBRANCH
05:05:45 <elliott> variable: you forgot do
05:05:48 <oerjan> variable: essentially haskell has two kinds of error responses, the ones like error, undefined and throw (with more advanced exception options) that don't show up in your expression type but which exit and can only be caught in IO at most, and the other kind like Maybe and Either which show up in your expression type (usually as a monad wrapper) and don't exit but the result needs to be analyzed by the caller
05:05:55 <elliott> variable: also Maybe isn't a value
05:05:57 <elliott> it's a type
05:05:57 <Sgeo> Didn't see that the Talk page was in fact on Clue (Keymaker)
05:06:01 <elliott> so i have no clue whet you were trying to do now
05:06:08 <oklopol> HAHA CLUE
05:06:13 <oklopol> HAHAHAHAHAHA
05:06:24 <variable> elliott, I need parseUnn to return either "
05:06:34 <variable> an error or "" depending whether the file exists
05:06:49 <elliott> variable:
05:06:54 <elliott> if fileExists then error "Oh no."
05:06:59 <elliott> else return ()
05:07:01 <elliott> is probably what you want
05:07:13 <elliott> your current function would need {return ""} as well as the fix for Maybe
05:07:15 <elliott> and you'd have to putStr it
05:07:18 <elliott> but that would be exceedingly pointless
05:07:39 <variable> hrm?
05:07:40 <Sgeo> Someone should put a Network Headache server back up
05:07:42 <Sgeo> Permanently
05:08:00 <Sgeo> Or
05:08:06 -!- Zuu has quit (Ping timeout: 260 seconds).
05:08:11 <Sgeo> I wonder if Network Headache could be made to work serverlessly
05:10:14 <elliott> oklopol: wait
05:10:17 <elliott> 05:04 luatre: TypeError: cannot concatenate 'str' and 'float' objects :(
05:10:18 <elliott> what
05:10:20 <elliott> ohh
05:10:28 -!- luatre has quit (Remote host closed the connection).
05:10:33 <elliott> try _now_ when it comes back
05:10:34 -!- luatre has joined.
05:10:41 <variable> elliott, http://pastebin.com/fLwG6dzU -> now I'm getting incorrect indentation
05:11:18 <variable> { also I have new idea for a language: similar to python - except that it enforces a *horid* indentation pattern :-))
05:11:24 <coppro> :D
05:11:42 <elliott> oklopol:
05:11:52 <oerjan> variable: indent the else
05:11:55 <elliott> variable: um yes, then and else must be at the same level
05:11:58 <elliott> oerjan: better: separate the then
05:12:01 <elliott> put a new line and two spaces before then
05:12:03 <elliott> and align the else
05:12:16 <variable> elliott, ah then & else. I was aligning the if and else :-)
05:12:29 <oerjan> well then and else don't _need_ to be at the same level, but that may be best
05:12:35 <elliott> ::: http://www.vjn.fi/pb/p3599837528.txt
05:12:35 <luatre> Downloading...
05:12:36 <luatre> Compiling, just a minute...
05:12:36 <luatre> Compiled in 0.0620181560516 seconds
05:12:36 <luatre> slow fibonacci: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0))))
05:12:36 <luatre> fibonacci: [#0] | _ => fast fibonacci loop(#0 0 1)
05:12:36 <luatre> fast fibonacci loop: [#0] | 0 => #1 | _ => @(pred(#0) #2 add(#1 #2))
05:12:43 <elliott> oklopol: this fibonacci function is VERY fast
05:12:44 <variable> I put the then on a new line now :-}
05:12:45 <elliott> :. fibonacci(100)
05:12:45 <luatre> 354224848179261915075L
05:12:47 <elliott> :. fibonacci(1000)
05:12:47 <luatre> OverflowError: long int too large to convert to int :(
05:12:50 <elliott> ...:D
05:12:52 <elliott> that needs _fixing_
05:12:53 <oklopol> did you implement ::: already?
05:13:02 <elliott> oklopol: as comments, yes
05:13:03 <elliott> untested :D
05:13:17 <elliott> oklopol: i'm going to go fix all the functions to not use int() now
05:13:24 <oerjan> variable: technically it's not that else needs to be aligned with anything, but it _cannot_ be aligned with the do statements since it isn't a statement of its own
05:13:34 <elliott> oklopol: i'll use, uh, long() or something... or maybe maybeintmaybelong()
05:13:35 <oklopol> i'll put ::: on the wiki then
05:13:45 <variable> oerjan, ok - that makes sense
05:13:47 <elliott> oklopol: anyway feed it quicksort again
05:14:23 <oerjan> variable: this actually is being tweaked in the newest haskell standard i think because it trips up so many people
05:15:00 -!- luatre has quit (Remote host closed the connection).
05:15:05 -!- luatre has joined.
05:15:08 <elliott> oklopol: feed it qs again dammit :D
05:15:11 <elliott> it'll print compilation time
05:15:14 <elliott> but actually
05:15:15 <elliott> ::: http://www.vjn.fi/pb/p3599837528.txt
05:15:15 <luatre> Downloading...
05:15:16 <luatre> Compiling, just a minute...
05:15:16 <luatre> DepthLimitException: depth limit exceeded (fast fibonacci loop) :(
05:15:17 <elliott> wait until this finishes
05:15:21 <elliott> what?!
05:15:26 <elliott> :(
05:15:27 <variable> elliott, two more questions a) how do I go thru all the command line arguments b) how do I get the *number* of command line arguments
05:15:29 <elliott> oklopol: your depth limit is too low
05:15:38 <elliott> or wait
05:15:39 <elliott> maybe i have a bug
05:15:54 <elliott> ah!
05:15:55 <elliott> indeed
05:16:02 <variable> count getArgs ?
05:16:03 <oerjan> <variable> { also I have new idea for a language: similar to python - except that it enforces a *horid* indentation pattern :-)) <-- that is one of my design goals for my (mostly vaporware) language Reaper
05:16:22 -!- luatre has quit (Remote host closed the connection).
05:16:27 -!- luatre has joined.
05:16:30 <elliott> ::: http://www.vjn.fi/pb/p3599837528.txt
05:16:30 <luatre> Downloading...
05:16:31 <luatre> Compiling, just a minute...
05:16:31 <luatre> Compiled in 0.0681719779968 seconds
05:16:31 <luatre> slow fibonacci: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0))))
05:16:31 <luatre> fibonacci: [#0] | _ => fast fibonacci loop(#0 0 1)
05:16:31 <luatre> fast fibonacci loop: [#0] | 0 => #1 | _ => @(pred(#0) #2 add(#1 #2))
05:16:37 <elliott> :. fibonacci(1000)
05:16:37 <luatre> RuntimeError: maximum recursion depth exceeded in __instancecheck__ :(
05:16:44 <elliott> dude :(
05:16:53 <elliott> :. fibonacci(100)
05:16:53 <luatre> 354224848179261915075L
05:16:55 <elliott> :. fibonacci(800)
05:16:55 <luatre> RuntimeError: maximum recursion depth exceeded in __instancecheck__ :(
05:16:57 <elliott> :. fibonacci(500)
05:16:57 <luatre> RuntimeError: maximum recursion depth exceeded in __instancecheck__ :(
05:17:00 <elliott> :. fibonacci(300)
05:17:00 <luatre> 222232244629420445529739893461909967206666939096499764990979600L
05:17:08 <elliott> oklopol: apart from your impl being kinda sucky, that fibonacci is stupid fast :P
05:17:09 <variable> oerjan, , two more questions a) how do I go thru all the command line arguments b) how do I get the *number* of command line arguments
05:17:12 <elliott> and easy to write, too
05:17:21 <elliott> variable: mapM_ to go through command arguments
05:17:28 <elliott> mapM_ someFunc aList
05:17:35 <elliott> number is just (length args) obviously
05:17:36 <elliott> :)
05:17:42 <variable> args ?
05:17:50 <elliott> variable: if you've done "args <- getArgs"
05:17:53 <variable> oh right
05:17:55 * variable is an idiot
05:17:57 <elliott> :)
05:18:05 -!- azaq23 has joined.
05:18:09 <elliott> oklopol: fine I'll feed it qs
05:18:10 <variable> now - once I bind args - how do I get out of the "do"
05:18:17 <elliott> ::: http://www.vjn.fi/pb/p6825816189.txt
05:18:17 <luatre> Downloading...
05:18:17 <luatre> Compiling, just a minute...
05:18:18 <elliott> variable: what
05:18:19 <variable> I don't need to be in an IO thing anymore
05:18:26 <variable> I want to go back to pure functional
05:18:29 <elliott> variable: um, you can't, what do you mean
05:18:32 <elliott> variable: just call purely-functional functions
05:18:34 <variable> kk
05:18:37 <elliott> inside the do
05:18:39 <elliott> and do something with them
05:18:40 <elliott> e.g.
05:18:45 <elliott> print (somePurelyFunctionalThing 42)
05:18:47 <luatre> Compiled in 14.6956260204 seconds
05:18:48 <luatre> caaar pivot helper: [#0] | _ => cons to caaar(car(#0) #1)
05:18:48 <luatre> cons to car: [#0] | _ => cons(cons(#0 car(#1)) cdr(#1))
05:18:48 <luatre> triple: [#0] | _ => cons(#0 cons(#1 make singleton(#2)))
05:18:48 <luatre> quicksort helper: [#0] | _ => quicksort append(#0 car(#1) #2)
05:18:48 <luatre> pivot condition 2: [greater than?(#0 car(#1))] | 0 => 2 | 1 => 3
05:18:48 <luatre> caaar with consed: [#0] | _ => cons(#0 caaar(#1))
05:18:49 <luatre> cons to caaar: [#0] | _ => triple(car(#1) caar(#1) caaar with consed(#0 #1))
05:18:49 <luatre> make singleton: [#0] | _ => cons(#0 [])
05:18:50 <luatre> quicksort: [length(#0)] | 0 => #0 | 1 => #0 | _ => quicksort helper(@(pivot left(car(#0) #0)) #0 @(pivot right(car(#0) cdr(#0))))
05:18:50 <luatre> caar: [#0] | _ => car(cdr(#0))
05:18:51 <luatre> quicksort append: [#0] | _ => append(#0 append(make singleton(#1) #2))
05:18:51 <luatre> pivot left: [#0] | _ => car(pivot(#0 #1))
05:18:52 <luatre> car pivot helper: [#0] | _ => cons to car(car(#0) #1)
05:19:08 <variable> elliott, erm - I need to get the number of arguments **before** I do args <-
05:19:09 <elliott> oh wait, that is a slightly old one
05:19:10 <elliott> but who cares :)
05:19:17 <elliott> variable: no, you don't, and that's patently impossible
05:19:17 <variable> otherwise haskell outputs an error
05:19:27 <elliott> variable: where do you use the arguments?
05:19:28 -!- luatre has quit (Remote host closed the connection).
05:19:33 <elliott> variable: show your code
05:19:34 -!- luatre has joined.
05:19:39 <variable> elliott,hang on a sec
05:20:30 <variable> elliott, meh - I made a mistake
05:20:41 <variable> before I had (fileName:_) which caused an error with 0 arguments
05:21:00 <elliott> indeed
05:21:02 <elliott> variable: try
05:21:03 <elliott> case args of
05:21:07 <elliott> [fileName] -> ...
05:21:12 <elliott> _ -> error "you used it wrong, idiot!"
05:21:18 <elliott> rather than mucking about with length etc.
05:21:33 <variable> kk
05:22:32 <elliott> oklopol: did you die
05:22:35 <oerjan> variable: or possibly [] -> error "you used it wrong, idiot!" as the first option if you want to allow more than one filename
05:22:40 <elliott> oklopol: can you do constants for branchers already
05:22:42 <oerjan> case args of
05:22:48 <oerjan> [] -> error "you used it wrong, idiot!"
05:22:55 <oerjan> filenames -> ...
05:22:55 <elliott> _ -> mapM_ processArg args
05:23:01 <elliott> or that
05:23:04 <oklopol> elliott: will you remove the commas btw?
05:23:09 <oklopol> or did you already?
05:23:14 <oklopol> because i'll make that official if
05:23:48 <elliott> oklopol: i will now
05:23:52 <elliott> oklopol: if you remove them from qsort :P
05:24:16 <oklopol> i can remove them from quicksort and ski, sure
05:24:23 <elliott> oklopol: thanks
05:24:26 <elliott> oklopol: i'll give you my latest ski
05:24:29 <elliott> i think i modded it
05:24:52 <elliott> oklopol: http://www.vjn.fi/pb/p1739965483.txt
05:25:02 <oerjan> variable: incidentally it is generally considered bad form to use length to check whether a list is empty, since that works badly when you want computation to be as lazy as possible, especially with empty lists
05:25:12 <oerjan> er
05:25:19 <oerjan> *especially with infinite lists
05:25:40 <elliott> oklopol: oh, this might be an issue
05:25:46 <elliott> oklopol: you kinda strip spaces
05:25:49 <elliott> which become the only separators
05:25:49 <variable> oerjan, makes sense
05:26:02 <elliott> oklopol: shall i uh redesign the parser :D
05:26:25 <oerjan> in fact even using list == [] is considered bad form because that needlessly forces the element type to be comparable for equality
05:26:57 <elliott> yeah infinite cmd line args
05:26:57 <elliott> :D
05:27:18 <oerjan> elliott: well i'm just trying to prevent him from getting into bad habits
05:27:38 <elliott> yes yes :)
05:28:08 <oerjan> hm
05:28:10 <oerjan> :t null
05:28:11 <lambdabot> forall a. [a] -> Bool
05:28:18 <elliott> indeed
05:28:20 <elliott> oklopol: so uh any ideas
05:28:33 <oerjan> that's the function to use, although it's usually even better if you can use pattern matching
05:28:41 <variable> oerjan, I'm a little confused now: how do I return from a function that an error occurred? Just, Maybe ?
05:28:59 <oerjan> variable: Nothing
05:29:02 <oerjan> :t Nothing
05:29:02 <lambdabot> forall a. Maybe a
05:29:12 <elliott> oklopol: i think i fixed it
05:29:13 <oerjan> (that's a value ;D)
05:29:26 <elliott> oklopol: indeed
05:29:29 <elliott> oklopol: do you want my current interP?
05:29:31 <variable> oerjan, Nothing is an error ? I was using it to say that nothing needs be done - should I return () for that?
05:29:31 <elliott> *interp?
05:29:43 <elliott> variable: data Maybe a = Just a | Nothing
05:29:49 <elliott> variable: imagine the result of a hash table lookup
05:29:53 <elliott> if an element is there, you would return (Just value)
05:29:55 <elliott> otherwise, Nothing
05:29:57 <elliott> that's the use of it
05:30:04 <variable> ah
05:30:07 <variable> that makes sense
05:30:12 <oerjan> variable: hm if you aren't actually returning a value in either case, maybe it would better to use Bool
05:30:14 <elliott> note that obviously if you return Nothing somewhere you have to return Nothing or (Just x) everywhere
05:30:19 <elliott> otherwise you'd be stepping outside Maybe
05:30:32 <elliott> oerjan: except
05:30:35 <oklopol> i want your interp once i've written a crappy version of the spec
05:30:37 <elliott> oerjan: he's already wrapping doesFileExist
05:30:38 <variable> oerjan, the weird thing in this case is that I need to return nothing except on error
05:30:40 <elliott> which results in IO Bool
05:30:40 <elliott> :)
05:30:46 <oerjan> elliott: yeah :D
05:30:48 <elliott> variable: try this:
05:31:24 <oerjan> filterM doesFileExist
05:31:32 <oerjan> :t filterM
05:31:32 <lambdabot> forall a (m :: * -> *). (Monad m) => (a -> m Bool) -> [a] -> m [a]
05:31:35 <elliott> variable: runProg filename = do exists <- doesFileExist filename; if exists then error "Oh no!" else return (); main = do args <- getArgs; case args of [] -> error "Oh no!"; _ -> mapM_ runProg args
05:31:37 <variable> oerjan, http://www.esolangs.org/wiki/Unnecessary --> Writing a compiler for this
05:31:40 <elliott> oerjan: oh, now it's on
05:32:07 <elliott> :t any
05:32:07 <lambdabot> forall a. (a -> Bool) -> [a] -> Bool
05:32:11 <elliott> :t anyM
05:32:12 <lambdabot> Not in scope: `anyM'
05:32:15 <variable> elliott, I had that - but then the compiler exits after the first bad file name
05:32:27 <elliott> variable: ah, you do not want that?
05:32:50 <variable> elliott, no - I want it to go thru every given file name and report failure of any of them
05:32:56 <elliott> @hoogle (a -> m b) -> m a -> m b
05:32:56 <lambdabot> Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b
05:32:56 <lambdabot> Control.Monad (=<<) :: Monad m => (a -> m b) -> m a -> m b
05:32:57 <lambdabot> Prelude (>>=) :: Monad m => m a -> (a -> m b) -> m b
05:33:11 <elliott> variable: don't use error, then
05:33:19 <variable> elliott, just return a plain string?
05:33:37 <elliott> main = getArgs >>= filterM doesFileExist >>= mapM_ (\bad -> putStrLn "Oh no! " ++ bad ++ " exists!")
05:33:39 <elliott> just use that >:)
05:33:48 <elliott> variable: I would use putStrLn directly
05:33:50 <oklopol> ==...== is a section, can i make a subsection kinda thing
05:33:51 <elliott> since you're in IO already
05:33:55 <elliott> oklopol: ===foo===
05:34:07 -!- luatre has quit (Remote host closed the connection).
05:34:11 <oklopol> everything else someone else will have to fic
05:34:13 <oklopol> *fix
05:34:13 -!- luatre has joined.
05:34:14 <oklopol> thanks
05:34:16 <elliott> oklopol: commas removed, plz2be qsort and ski
05:34:20 <elliott> with that ski i gave you
05:34:50 <elliott> oklopol: so it's 5:34 am and i blame you
05:35:48 <elliott> Vorpal: oklopol: http://www.minecraftwiki.net/wiki/Ambience oh holy fucking shit i had no idea this exists
05:35:52 <elliott> *existed
05:35:53 <elliott> why does this exist
05:36:05 <oerjan> elliott: i think it would have become 5:34 am eventually regardless
05:37:06 <variable> elliott, http://pastebin.com/8SRWxGm4 this is what I have so far. If I add putStrLn before parseUnn it fails; if uncomment the commented line it fails
05:37:11 <elliott> oklopol: http://www.youtube.com/watch?v=4PA2uLm8ups jesus fucking christ this is terrifying
05:37:27 <elliott> variable: ok well, that is wrong
05:37:33 <elliott> variable: pop quiz
05:37:43 <elliott> variable: er wait i see
05:37:46 <elliott> variable: right, okay, firstly
05:37:47 <elliott> you're in IO
05:37:50 <elliott> so you need to have -> IO String
05:37:51 -!- hagb4rd has quit (Ping timeout: 240 seconds).
05:37:55 <variable> oh - right
05:38:15 <elliott> variable: "putStrLn parseUnn" fails because parseUnn isn't a string :)
05:38:34 <elliott> variable: mapM_ (\filename -> parseUnn filename >>= putStrLn) fileNames would work
05:38:36 <elliott> but is rather ugly
05:38:42 <elliott> oerjan should not respond with fancy monad operators now
05:38:45 <elliott> as it will not help :)
05:38:51 <elliott> variable: I would s/return/putStrLn/ in parseUnn
05:38:58 <variable> elliott, I'd rather not
05:39:02 <elliott> variable: and note that putStrLn "" will print a blank line -- use return () instead
05:39:03 <elliott> variable: why not?
05:39:09 <variable> cause I want to learn the functional method of doing things
05:39:18 <elliott> variable: the functional method of doing things is not done in IO :-) but okay
05:39:29 <elliott> variable: well... add \n to the end of the error string
05:39:41 <elliott> then s/putStrLn/putStr/ in the line that i said would work but is ugly
05:39:43 <elliott> that would work
05:39:47 <Sgeo> A song got stuck in my head
05:39:47 <variable> elliott, the goal of this isn't to get it done. I did it in bash, perl, ruby, etc already - its to learn the language
05:39:54 <Sgeo> It contains more than my usual amount of swearing
05:39:59 <elliott> variable: yeah :)
05:40:07 <coppro> variable: try to one-line project euler problems in haskell
05:40:10 <elliott> variable: well, the whole operation of Unnecessary is basically IO.
05:40:19 <elliott> if FILE EXISTS, ok, if not, PRINT AN ERROR
05:40:25 <elliott> variable: so it is hard to suggest a functional way to do this :)
05:40:44 -!- hagb4rd has joined.
05:40:52 <variable> elliott, heh
05:41:01 <oerjan> variable: although it _is_ possible to use higher-order monadic functions like filterM and mapM
05:41:06 <oerjan> *mapM_
05:41:07 <elliott> oerjan is right
05:41:07 <variable> coppro, I will - I've already done a few of them though
05:41:15 <variable> oerjan, explain ?
05:41:39 <oerjan> <elliott> main = getArgs >>= filterM doesFileExist >>= mapM_ (\bad -> putStrLn "Oh no! " ++ bad ++ " exists!")
05:41:55 <elliott> @hoogle (a -> b) -> (c -> m a) -> c -> m b
05:41:55 <lambdabot> Language.Haskell.TH.Quote dataToQa :: Data a => (Name -> k) -> (Lit -> Q q) -> (k -> [Q q] -> Q q) -> (b -> Maybe (Q q)) -> a -> Q q
05:41:58 <elliott> darn
05:42:00 <variable> oerjan, interesting
05:42:02 * variable has an idea
05:43:11 <elliott> oklopol: hihi are you converting
05:43:25 <elliott> oklopol: holy fucking shit
05:43:26 <elliott> oklopol: http://i.imgur.com/iJ2eG.jpg
05:43:27 <elliott> that bastard
05:43:30 <elliott> i am gonna rip his head off :D
05:45:05 <elliott> oklopol: taaalk
05:45:32 <oerjan> @more
05:45:46 <oerjan> i distinctly recall @more working once upon a time
05:45:48 <oerjan> or wait
05:45:57 <oerjan> @hoogle (a -> b) -> (c -> m a) -> c -> m b
05:45:57 <lambdabot> Language.Haskell.TH.Quote dataToQa :: Data a => (Name -> k) -> (Lit -> Q q) -> (k -> [Q q] -> Q q) -> (b -> Maybe (Q q)) -> a -> Q q
05:45:59 <oerjan> @more
05:46:06 <elliott> there is no more :P
05:46:21 <oerjan> just in case someone else had got a command in in #haskell or such
05:46:51 <oerjan> elliott: well it's fmap/liftM + <=< of course
05:47:00 <oerjan> but it may not have a single function for it
05:47:14 <oerjan> or wait
05:47:22 <elliott> oklopol oklopol oklopol oklopol oklopol oklopol
05:47:25 <elliott> oerjan: make oklopol talk
05:48:00 <oerjan> :t (\f x -> fmap f . x)
05:48:01 <lambdabot> forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f1 (f a) -> f1 (f b)
05:48:11 <oerjan> er
05:48:50 <elliott> oklopol
05:49:08 <oerjan> oh wait right
05:49:10 <oerjan> :t (.)
05:49:10 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
05:49:20 <oerjan> lambdabot still defines (.) = fmap :D
05:49:21 <elliott> oerjan: make oklopol talk
05:49:27 <oerjan> oklopol: TALK
05:49:30 <elliott> :t map
05:49:31 <lambdabot> forall a b. (a -> b) -> [a] -> [b]
05:49:33 <elliott> LAME
05:49:39 -!- hagb4rd has quit (Ping timeout: 240 seconds).
05:49:47 <elliott> oerjan: but yes, of course it defines (.) = fmap, as specified by the Caleskell Report
05:50:18 <oerjan> elliott: your function is just (.)(.) with that notation >:)
05:50:23 <elliott> :D
05:50:26 <elliott> fmap fmap fmap
05:50:27 <oerjan> :t (.)(.)
05:50:27 <lambdabot> forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Functor f1) => f1 (a -> b) -> f1 (f a -> f b)
05:50:37 <oerjan> er or is it
05:50:51 <elliott> lol
05:51:19 <oerjan> :t (.).(.)
05:51:20 <lambdabot> forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b)
05:51:26 <oerjan> that's better
05:51:43 <oerjan> indeed it _is_ fmap fmap fmap
05:52:03 <elliott> fmap fmap fmap fmap fmap fmap fmap
05:52:26 <oerjan> elliott: that reiterates after four fmaps
05:53:03 <oerjan> well eventually. i don't quite recall if it's immediately.
05:54:00 <elliott> oklopol
05:54:03 <elliott> oklo fucking pol
05:57:52 <oerjan> ais523: WIKI SPAM
05:58:15 * oerjan cackles disturbingly
06:01:15 <elliott> oerjan: make oklopol a human
06:01:54 <oerjan> a recall reading somewhere that needing to sleep is a distinctly human characteristic
06:02:10 <elliott> he was working on the wiki page
06:02:12 <elliott> clearly not sleeping
06:02:24 <elliott> but it is 8 am there :/
06:03:33 <oerjan> well he hasn't saved the page
06:04:52 <oklopol> http://esolangs.org/wiki/Clue_%28oklopol%29
06:05:07 <oerjan> OH NOES
06:05:33 <oklopol> i tried to make it roughly correct, but didn't really aim for readability or completeness.
06:05:41 <oklopol> you can fix the formatting
06:06:05 <oerjan> oklopol: you will be mercilessly haunted by graue for creating a new category. well, if he gave any sign of being alive, that is.
06:06:32 <oerjan> or perhaps not being alive would help with the haunting
06:06:37 <oklopol> :P
06:07:04 <oklopol> anyway, does that make sense to elliott after already knowing the language?
06:07:17 <oklopol> that much would be nice
06:07:19 <elliott> oklopol: have you converted qs or ski
06:07:30 <elliott> oklopol: don't call them commands
06:07:33 <elliott> that's too impure for clue
06:07:37 <oklopol> i shouldn't, true
06:07:39 <oklopol> it's just
06:07:50 <oklopol> they didn't really have a name, so i just chose a consistent naming for the purpose of writing that.
06:07:57 <oklopol> but so
06:07:59 <elliott> "betweem" :D
06:08:05 <oklopol> a clue is the set of stuff defining a single function
06:08:09 <elliott> oklopol: i'll completely rewrite that, _tomorrow_
06:08:19 <oklopol> go for it
06:08:28 <elliott> oklopol: now gimme ski and qs without commas
06:08:43 <elliott> oklopol: based on this ski http://www.vjn.fi/pb/p1739965483.txt
06:09:03 <variable> elliott, \filename what is that syntax called?
06:09:09 <oklopol> i suppose an example should actually be a single [1] -> [2] thingie
06:09:14 <elliott> variable: lambda... it's (\args -> value)
06:09:23 <oklopol> but then i need a name for { ... }
06:09:29 <oklopol> branch
06:09:31 <oklopol> i guess
06:09:37 <elliott> oklopol: i'm wondering whether removing commas is actually nice
06:09:52 <oklopol> well i haven't seen code with that, it's just something i've been wanting to have
06:10:14 <elliott> oklopol: do it to qs and a decision can be made
06:10:42 <oklopol> quicksort ~ {. [] -> [] }
06:10:42 <oklopol> quicksort ~ {. [1] -> [1] . [2] -> [2] }
06:10:42 <oklopol> quicksort ~ {:. [4 2 3 1] -> [1 2 3 4]
06:10:43 <oklopol> : [2 3 1] -> [1 2 3]
06:10:43 <oklopol> : [] -> []
06:10:43 <oklopol> :. [2 5 4 1 5] -> [1 2 4 5 5]
06:10:43 <oklopol> : [1] -> [1]
06:10:44 <oklopol> : [5 4 5] -> [4 5 5]
06:10:44 <oklopol> :. [1 2 3] -> [1 2 3]
06:10:45 <oklopol> : [] -> []
06:10:45 <oklopol> : [2 3] -> [2 3] }
06:10:46 <oklopol> quicksort ~ length; cdr; car; pivot left; pivot right; quicksort helper
06:10:47 <oklopol> you tell me that's not elegant as shit
06:10:49 <variable> Couldn't match expected type `IO b'
06:10:50 <variable> against inferred type `[String] -> IO ()'
06:10:54 <variable> _ -> mapM_ (\filename -> parseUnn filename >>= putStrLn)
06:10:56 <elliott> oklopol: well sure
06:11:07 <coppro> oklopol: what is this supposed to be?
06:11:14 <elliott> oklopol: so um just want to check, we are standardising on my impl right :p
06:11:19 <oklopol> coppro: quicksort
06:11:26 <elliott> since... it's incompatible with yours on just about every program now
06:11:28 <coppro> oklopol: well obviously
06:11:30 <elliott> due to renames and syntax
06:11:38 <coppro> but what's with the funny syntax?
06:11:54 <elliott> coppro: it's clue, if you don't understand it
06:11:54 <elliott> then
06:11:55 <variable> elliott, what am I doing wrong with that?
06:11:55 <elliott> well
06:11:59 <elliott> i guess you're mentally retarded cuz
06:12:02 <elliott> easiest language ever!
06:12:07 <oklopol> elliott: yes, removal of <> will be in clue 1.0 if that's okay by you
06:12:12 <elliott> variable: you forgot to provide the list at the end
06:12:20 <elliott> oklopol: 1.0? don't you mean 1.5
06:12:30 <oklopol> oh i forgot to credit myself, which i obviously want to do
06:12:35 <elliott> oklopol: but i also mean the renaming of funcs and stuff
06:12:45 <oklopol> coppro: the syntax isn't funny
06:12:48 <elliott> oklopol: can we call what i have clue 1.25 or at least close to it :p
06:12:51 <coppro> oklopol: what language?
06:12:55 <elliott> yeah the syntax isn't the funny part of clue
06:12:57 <variable> elliott, oh - I'm an idiot :-}
06:13:01 <oklopol> elliott: can't we just call it clue 1.0?
06:13:08 <elliott> oklopol: but what you had was clue 1.0
06:13:13 <elliott> i've been thinkin' of this as clue 1.25
06:13:15 <oklopol> but the changes are tiny :\
06:13:26 <elliott> oklopol: but it's also the OPTIMISATION
06:13:36 <elliott> oklopol: clue 1.5 is when we get constants in branches, I know that much :)
06:13:45 <elliott> oklopol: aww c'mon, let me have the 1.25 version number
06:13:46 <coppro> oklopol: link
06:13:49 <elliott> it's so shiny and cuddly?
06:13:49 <oklopol> OR the sensible branching system
06:14:13 <elliott> oklopol: what's a sensible system
06:14:48 <variable> elliott, http://pastebin.com/zVZnPNHj - final version
06:14:52 <oklopol> elliott: the one we designed with ilkka, or mostly i defined
06:14:59 <oklopol> the obvious system.
06:15:00 <elliott> oklopol: summarise?
06:15:08 <elliott> oklopol: because i like the current system a lot
06:15:12 <oklopol> instead of having one branching function, separate things one at a time.
06:15:14 <elliott> variable: yay :P
06:15:14 <coppro> variable: wut
06:15:21 <elliott> oklopol: i don't get it
06:15:24 <coppro> oh
06:15:27 <coppro> lol
06:15:34 <elliott> oklopol: that sounds like clue 2.0 to me anyway, not 1.5
06:15:40 <oklopol> if you find something that's true for a certain subset of examples, but not the other ones, first branch on that
06:16:08 <elliott> oklopol: theoretically that can be done already
06:16:12 <elliott> oklopol: if you have add in the bag
06:16:13 <variable> coppro, what is with the wut ?
06:16:20 <elliott> oklopol: since it can do addition of booleans... and also other stuff :)
06:16:24 <elliott> oklopol: like multiplication of booleans!
06:16:27 <elliott> or even
06:16:29 <elliott> just cons them into a list
06:16:29 <elliott> ofc
06:16:36 <elliott> oklopol: should improper lists be allowed
06:16:37 <elliott> i.e. cons(1 2)
06:16:38 <oklopol> i'm aware of that.
06:16:41 <elliott> i say no
06:16:49 <coppro> variable: nevermind
06:16:59 <oklopol> elliott: no, they should not
06:17:02 <elliott> rite
06:17:14 <oklopol> there can be a tree type in the stdlib tho
06:17:22 <oklopol> RTYPOE TYPES TYPES
06:17:31 <elliott> oklopol: can we ditch _? it can easily be coded in two lines
06:17:33 <elliott> and it's an ugly name
06:17:39 <elliott> and post-<>-removal it's basically never ever useful ever
06:17:42 <oklopol> certainly
06:17:44 <oklopol> hey
06:17:46 <oklopol> i just realized
06:18:04 <oklopol> you're like the secretary i've been talking about getting that does all the trivial stuff for me because i can't be assed
06:18:10 <variable> elliott, I have a new languag. You define a set of functions and set of conditionals for those functions. There is only global state and functions never make calls. instead once a function is started it goes to completion. When a functions completes the compiler chooses randomly from the set of functions whose conditionals are true
06:18:11 <oklopol> how much do you want me to pay ya
06:18:14 <cheater00> hi
06:18:15 <cheater00> sup
06:18:21 <elliott> oklopol: 0, i find this fun
06:18:24 <oerjan> cheater00: inf
06:18:26 <elliott> 's good language
06:18:28 <oklopol> well okay, i guess
06:18:33 <cheater00> elliot: do you use be?
06:18:41 <elliott> oklopol: well you can pay me £1000/day if you really want
06:18:43 <elliott> cheater00: not available here.
06:18:52 <elliott> cheater00: i'm planning on switching to bogons.net...
06:18:58 <cheater00> i wonder if i can reprogram my bebox to work with other isps
06:19:01 <cheater00> it's still dsl2
06:19:23 <elliott> are you in uk
06:19:28 <cheater00> no germany
06:19:30 <elliott> ah
06:19:33 <cheater00> i took my bebox with me :D
06:19:33 <elliott> cheater00: just buy a linksys
06:19:35 <elliott> :P
06:19:38 <cheater00> i'm cheap
06:19:39 <elliott> all other routers are shit
06:19:48 <oklopol> someone should really fix "Quicksort: http://www.vjn.fi/pb/p6825816189.txt SKI: Well I don't have the link at hand but anyway."
06:19:59 <oklopol> and add corrected qs there
06:20:00 <oklopol> and ski
06:20:03 <elliott> oklopol: well
06:20:08 <variable> new language -- define a set of functions and set of conditionals for those functions. There is only global state and functions never make calls or exit early. instead once a function is started it goes to completion. When a functions completes the compiler chooses randomly from the set of functions whose conditionals are true
06:20:09 <elliott> oklopol: i will fix qs and ski i guess
06:20:13 <elliott> variable: heh
06:20:18 <elliott> variable: it's like clue but worse! :)
06:20:22 <elliott> but then
06:20:23 <elliott> so is every language
06:20:24 <cheater00> someone should really fix """<oklopol> someone should really fix "Quicksort: http://www.vjn.fi/pb/p6825816189.txt SKI: Well I don't have the link at hand but anyway." """
06:20:25 <elliott> apart from clue
06:20:44 <oklopol> variable: it's like thue but worse
06:20:54 <elliott> :D
06:20:58 <elliott> it's like intercal but worse
06:21:06 <oklopol> no THU
06:21:42 <oklopol> "<elliott> oklopol: i will fix qs and ski i guess" <<< thank you, although i did it already
06:21:43 <elliott> oklopol: can i convert windows line endings to unix on all these files :D
06:21:48 <elliott> unless you code with notepad i guess (wordpad can do it)
06:21:49 <oklopol> assuming it was just commas
06:22:05 <elliott> also, i just did it too
06:22:07 <elliott> and it's nicer i think
06:22:12 <elliott> also re-indented ski
06:22:38 <oklopol> can you put them on the wiki AND link them here
06:22:38 <oklopol> ?
06:22:48 <elliott> sure
06:22:56 <elliott> i'll even put them on a wiki page, not vjn
06:23:22 <oklopol> k
06:23:27 <elliott> oklopol: you forgot to mention how : = ..
06:23:32 <oklopol> ohhh
06:23:36 <oklopol> that's like the most important part!
06:24:36 <cheater00> oklopol: you are the weakest link.
06:26:40 -!- lambdabot has quit (Ping timeout: 240 seconds).
06:26:43 <Sgeo> lolwat
06:26:54 <elliott> oklopol: examples added
06:26:59 <oklopol> elliott: i added that information on the page, in its rightful spot.
06:27:00 <Sgeo> There is a spammer on the wiki... posting nice but irrelevent stuff. Not a singe link
06:27:13 <Sgeo> "You certainly have some agreeable opinions and views. Your blog provides a fresh look at the subject."
06:27:13 <elliott> oklopol: :D
06:28:34 <oklopol> or maybe that should be mentioned first
06:28:40 <elliott> no :P
06:28:44 <oklopol> :d
06:28:50 <elliott> oklopol: it's approaching 7 am so i'm going to sleep soon, but yeah, clue
06:28:52 <elliott> isn't it great
06:28:57 <oklopol> it's fucking <3
06:29:16 <elliott> oklopol: possibly your crowning achievement as far as esolangs go
06:29:28 <elliott> oh sure the others have more interesting "theoretical" bases
06:29:30 <oklopol> yeah i suppose.
06:29:34 <elliott> but do they obsolete the notion of programming itself?!
06:29:38 <oklopol> :D
06:29:49 <elliott> oklopol: http://www.vjn.fi/oklopol/clue.txt oh my god what is this, Clue 0.1?
06:29:51 <elliott> it's so...retro
06:30:01 <oklopol> haha
06:30:07 <oklopol> omg i didn't remember
06:30:09 <oklopol> hahahahaa
06:30:15 <elliott> oklopol: i actually kind of like it XD
06:30:29 <elliott> oklopol: i have a suggestion
06:30:31 <elliott> you know in the bag
06:30:32 <elliott> #foo
06:30:34 <elliott> why not drop the #
06:30:35 <elliott> it's fugly.
06:30:44 <elliott> then the bag becomes like... "things you need"
06:30:50 <oklopol> yep
06:30:55 <oklopol> that's another great idea
06:30:56 <elliott> oklopol: will implement :P
06:31:03 <oklopol> yay
06:31:30 <oerjan> Sgeo: one theory is that such spammer bots are trying to put their links in some form field which doesn't actually exist
06:31:33 <oklopol> WHAT ELSE SHOULD IT HAVE TELMMETELMMEE :D
06:31:46 <oerjan> so that they don't show up in the resulting edit
06:31:55 <elliott> oklopol: BLACKJACK AND HOOKERS
06:32:13 <elliott> oklopol: stuff_to_clue what is this what what what
06:32:24 <oklopol> ?
06:32:34 <elliott> ah tknz_helper_list looks useful
06:32:52 <oklopol> split by ";" ? :D
06:33:32 -!- pikhq has quit (Ping timeout: 264 seconds).
06:33:35 <oklopol> okay it seems it does something more than that
06:34:05 <elliott> oklopol: # purged
06:34:21 <elliott> you don't even mention helper objects in the article btw
06:34:25 <oerjan> Sgeo: if you google that "You certainly have some agreeable opinions and views" phrase you will find that the spam is also in comments on some sites that are not wikis at all
06:34:33 <oklopol> indeed i don't
06:34:54 <oklopol> as i said, didn't really aim for completeness, but yeah those should certainly be mentioned
06:35:18 <Sgeo> website
06:35:24 <Sgeo> Found one.. it links to website
06:35:26 -!- pikhq has joined.
06:35:28 <elliott> examples fixed
06:35:28 <elliott> :D
06:35:29 <Sgeo> http://website/
06:35:37 <oerjan> Sgeo: huh
06:35:42 <Sgeo> http://www.knowyouaregod.com/blog/2010/03/27/13/
06:36:07 <Sgeo> Last comment
06:36:08 <elliott> oklopol: this is the greatest language
06:36:24 <oerjan> Sgeo: it could be that is also just something being put in the wrong format for a field?
06:36:26 <elliott> oklopol: i just wish, you know, coding in it didn't suck, because i'd totally use it for everything :D
06:37:03 <Sgeo> Ah, here the spammers suceeded: http://www.universities-in-europe.com/7-unconventional-ways-to-pay-for-a-college-education.html
06:37:11 <elliott> oklopol: so have you ever used emacs
06:37:30 * Sgeo falls in love with Clue
06:37:39 <oklopol> i think i've kinda used it a bit, at some point, but not really a relevant amount.
06:37:58 <elliott> oklopol: if it had it so that if you changed the name of a clue function, all the lines in the branch would automatically get re-aligned
06:38:01 <Sgeo> -shutup- Shut up about Clue!
06:38:05 <elliott> how much more perfect would your life be
06:38:06 <elliott> apart from
06:38:07 <elliott> ENTIRELY
06:38:26 <oklopol> :))))))))))))
06:38:32 <elliott> oklopol: IS THAT "ENTIRELY" I HEAR
06:38:38 <elliott> i believe i specifically forbade entirely as an answer
06:38:51 <elliott> oklopol: why does stuff.py exist btw, it's not like clue.py isn't 700 lines :D
06:39:32 <oklopol> i... dunno?
06:39:41 <oklopol> it's not like there's any kind of logical separation
06:39:45 <oklopol> :D
06:40:09 <oklopol> i just felt like things should be in multiple files because that's how adults code
06:40:18 <elliott> :D
06:40:23 <elliott> i'm a big boy now and i'm going to use multiple files
06:40:28 <oklopol> yep
06:41:41 <elliott> oklopol: should...multiplication be in the stdlib
06:41:43 <elliott> i'm thinking yes?
06:41:43 <Sgeo> I think PSOX was my only multi-file project thus far
06:41:44 <oklopol> mutual recursion is going to be a very big step, and i have no idea what the nice way to do it is
06:41:44 <Sgeo> >.>
06:41:51 <oklopol> elliott: primitive.
06:41:57 <elliott> mutual recursion is clue 1.75 isn'tit
06:41:58 <elliott> *isn't it
06:42:01 <elliott> or even 2.0
06:42:04 <Sgeo> I was almost certainly under .. wai
06:42:06 <oklopol> there's no reason to make things slow just for the sake of making them slow
06:42:13 <Sgeo> Was about to say under 18, but I must have been 18
06:42:18 <oerjan> Sgeo: in fact i vaguely recall reading that one antispam technique is to include an invisible form field which _only_ bots would fill out, as a honeypot
06:42:27 <elliott> oklopol: call it "multiply"?
06:42:33 <oklopol> yes
06:42:45 <elliott> done :)
06:42:52 <oklopol> also divide, and make it fail if result is not int! :P
06:43:01 <oklopol> i'm not sure that's very sensible
06:43:16 <Sgeo> I can efel myself barely abl to type
06:43:24 <Sgeo> just staring at the screen numbly
06:43:28 <Sgeo> I don't know wh
06:43:31 <Sgeo> y
06:43:32 <oklopol> Sgeo: being there
06:43:34 <elliott> oklopol:
06:43:35 <elliott> ---- factorial
06:43:36 <elliott> [#0]
06:43:36 <elliott> | 0 => 1
06:43:38 <elliott> | 4 => multiply(#0 @(pred(#0)))
06:43:40 <elliott> :D
06:43:42 <elliott> that's hilarious
06:43:44 <elliott> because
06:43:46 <elliott> factorial(4) doesn't even result in 24
06:43:48 <elliott> which was my testcase
06:43:51 <elliott> factorial ~ {. 0 -> 1 }
06:43:52 <elliott> factorial ~ {:. 4 -> 24
06:43:54 <elliott> : 3 -> 6
06:43:56 <elliott> : 2 -> 2 }
06:43:58 <elliott> factorial ~ multiply; pred; 1
06:44:00 <elliott> ::: factorial(10)
06:44:00 <luatre> Downloading...
06:44:00 <luatre> ValueError: unknown url type: factorial(10) :(
06:44:02 <elliott> AttributeError: 'NoneType' object has no attribute 'isbase'
06:44:04 <elliott> ::: factorial(4)
06:44:04 <luatre> Downloading...
06:44:04 <luatre> ValueError: unknown url type: factorial(4) :(
06:44:06 <elliott> AttributeError: 'NoneType' object has no attribute 'isbase'
06:44:08 <elliott> oklopol: clue.py bug?
06:44:10 <elliott> oklopol: i think definitely
06:44:20 <oklopol> :o
06:44:28 <oklopol> oh that's umm
06:44:48 <oklopol> yeah that's kinda a clue.py bug. i noticed it earlier but i didn't feel like fixing it
06:44:51 <elliott> lol
06:44:54 <elliott> well i fixed it in factorial
06:44:58 <oklopol> that means none of your branches has been chosen as the default one
06:45:00 <elliott> omg
06:45:01 <elliott> :D
06:45:08 <elliott> oklopol: guess what happens when i deprive factorial of 1
06:45:10 <oklopol> but that's an easy fix
06:45:12 <oklopol> ?
06:45:15 <elliott> ---- factorial
06:45:15 <elliott> [#0]
06:45:15 <elliott> | 0 => multiply(pred(#0) pred(#0))
06:45:16 <elliott> | _ => multiply(#0 @(pred(#0)))
06:45:18 <elliott> :DDD
06:45:20 <elliott> :DDDDDDDDDDDDDDDD
06:45:23 <elliott> clue is anti-cubic
06:46:09 <oklopol> btw your factorial definition is very weird
06:46:18 <elliott> howso
06:46:22 <oklopol> did you copy paste it from your fibonacci program
06:46:28 <elliott> no
06:46:29 <elliott> why
06:46:33 <elliott> but yeah
06:46:33 <elliott> i realise
06:46:36 <elliott> i don't need the extra :
06:46:37 <elliott> i separated it out
06:46:37 <oklopol> can i have your current version?
06:46:46 <elliott> stack-hogging factorial ~ {. 0 -> 1 }
06:46:46 <elliott> stack-hogging factorial ~ {:. 4 -> 24
06:46:46 <elliott> : 3 -> 6
06:46:48 <elliott> :. 3 -> 6
06:46:50 <elliott> : 2 -> 2 }
06:46:50 <oklopol> yeah, it should still work that way, but you need another base case
06:46:52 <elliott> stack-hogging factorial ~ multiply; pred; 0
06:46:54 <elliott> gonna do tail-recursive now
06:46:56 <elliott> AND THEN SLEEP
06:47:12 <oklopol> because it will actually do the recursion, just ignore the result :D
06:47:24 <oklopol> or... i guess it might use it as well, but then it would prolly be wrong
06:48:17 <oklopol> elliott:
06:48:19 <oklopol> if default==None:
06:48:19 <oklopol> default=clue.branches[len(clue.branches)-1]
06:48:23 <oklopol> in erm
06:48:38 <oklopol> call clue, instead of what was @ if default == None before
06:48:51 <oklopol> that should maybe fix things.
06:49:02 <oklopol> MAYBE NOT, HOWEVER.
06:49:08 <elliott> oklopol: you do that :P
06:49:12 <elliott> meanwhile cluetest.py has hung for me
06:49:15 <oklopol> i did, but my version is oooooooooold
06:49:26 <elliott> oklopol: you can fix it in mine tomorrow, double fun
06:49:29 <oklopol> can i get all your files
06:49:37 <oklopol> and i'm not here tomorro
06:49:37 <oklopol> w
06:49:43 <elliott> oklopol: well
06:49:46 <elliott> oklopol: if you promise not to like
06:49:48 <elliott> rewrite them all
06:49:49 <elliott> because i'd get sad
06:49:55 <oklopol> i won't rewrite anything
06:50:11 <oklopol> just change those two lines, and maybe test out the current version on the examples
06:50:52 <elliott> oklopol: does vjn have a file-uploady
06:51:02 <oklopol> yes, the filebin, but i doubt it actually works
06:51:06 <elliott> link :P
06:51:15 <elliott> oklopol: btw cluetest is the repl, "python cluetest.py file1 file2 file3", very useful for testing, see its source for more
06:51:26 <oklopol> and i don't know where it is, it seems
06:51:29 <elliott> oklopol: don't change cluetest or cluebot, though, I want to factor out the luatre code into a separate file rather than copypasting it
06:51:34 <elliott> before anything else changes
06:52:01 <elliott> factorial loop ~ {. 0 6 -> 6
06:52:01 <elliott> . 0 24 -> 24 }
06:52:01 <elliott> factorial loop ~ {:. 3 1 -> 6
06:52:03 <elliott> : 2 3 -> 6
06:52:04 <oklopol> i'm not going to change anything.
06:52:05 <elliott> :. 1 6 -> 6
06:52:07 <elliott> : 0 6 -> 6 }
06:52:09 <elliott> factorial loop ~ multiply; pred
06:52:11 <elliott> factorial ~ {. 0 -> 1
06:52:13 <elliott> . 3 -> 26
06:52:15 <elliott> . 4 -> 24 }
06:52:17 <elliott> factorial ~ factorial loop; 1
06:52:19 <elliott> why does this hang clue?
06:52:34 <oklopol> maybe because of . 3 -> 26
06:53:06 <elliott> uploading clue
06:53:13 <elliott> oklopol: oops :D
06:53:22 <elliott> oklopol: http://rapidshare.com/files/441572099/clue.zip
06:53:28 <cheater00> elliott: has your superdrive arrived?
06:53:31 <elliott> oklopol: feel free to correct it to 3 -> 6 locally in numplay.clue :P
06:53:34 <elliott> cheater00: no, about monday or tuesday
06:53:59 <elliott> oklopol: btw i would like it if the implementation became properly tail recursive even though python doesn't really allow that
06:54:05 -!- pikhq has quit (Ping timeout: 255 seconds).
06:54:14 <elliott> oklopol: I might make it compile to something that isn't a tangle of lambdas in a day or so
06:54:26 <elliott> because right now tail recursive code is useless :D
06:54:32 <cheater00> elliott: that's inacceptable
06:54:36 <elliott> cheater00: what is
06:54:43 <oklopol> yes, was thinking of mentioning that, but realized you aren't an idiot
06:54:46 <cheater00> this time delay
06:54:50 <elliott> cheater00: ...why?
06:55:23 <oklopol> elliott: compiling to python bytecode shouldn't be very hard
06:55:27 <oklopol> i mean directly
06:55:42 -!- pikhq has joined.
06:55:42 <elliott> oklopol: yeah but also python bytecode is kinda gross
06:55:45 <elliott> oklopol: maybe x86 asm :>
06:56:12 <oklopol> java bytecode would be nice. just because.
06:56:29 <oklopol> everyone else is doing it!
06:56:37 <elliott> oklopol: well it would certainly be fast.
06:56:39 <elliott> probably
06:56:44 <cheater00> elliott: because i want you to finally stop using macintosh operating system
06:56:53 <elliott> cheater00: i've used debian for the past months and ubuntu before that...
06:56:57 <elliott> i haven't touched os x in like a year
06:57:06 <elliott> oklopol: python bytecode has the advantage of being able to do reply stuff easy
06:57:08 <elliott> *easier
06:57:08 <cheater00> YOU HAVE BECOME UNPURE
06:57:13 <elliott> oklopol: and it's like... fast enough :P
06:57:33 <cheater00> what are you doing with python?
06:58:06 <elliott> cheater00: Clue
06:58:12 <cheater00> what's that?
06:58:12 <elliott> the most intuitive language possible
06:58:17 <cheater00> why?
06:58:32 <oklopol> just give the results, and the compiler infers all the code!
06:58:35 <elliott> cheater00: because you write your programs by simply listing a few example inputs and outputs, and show how they recurse
06:58:35 <oklopol> it's THAT simple!
06:58:40 <elliott> then there's sortofatinylineofhintsbutwhocaresaboutthat
06:58:44 <elliott> and it gives you your function!
06:58:49 <cheater00> so it's tdd?
06:58:54 <elliott> quicksort: oklopol: python
06:58:55 <oklopol> what's tddddd
06:58:56 <elliott> ...
06:58:59 <elliott> quicksort: http://esolangs.org/wiki/Clue_%28oklopol%29/Quicksort
06:59:00 <elliott> cheater00: edd
06:59:04 <elliott> cheater00: example driven despair
06:59:10 <elliott> oklopol: test driven dragon
06:59:22 <cheater00> elliott: how does it know what to infer
06:59:26 <elliott> oklopol: i'ma remove greater than? from quicksort and use is greater than? elsewhere 'cuz it's in stdlib
06:59:27 <elliott> cheater00: cleverly!
06:59:40 <cheater00> every finite sequence has an infinity of possible continuations
07:00:00 <oklopol> i don't know what test driven development is, but i assume it's something totally gay
07:00:07 <elliott> done
07:00:22 <elliott> cheater00: just read http://esolangs.org/wiki/Clue_%28oklopol%29/Quicksort and absorb the simple
07:00:43 <oklopol> yeah it's not really even an esolang, we should be talking in #serious_programming
07:00:48 <elliott> Vorpal: http://www.minecraftforum.net/viewtopic.php?f=1021&t=124541 very nice!!
07:00:51 <cheater00> elliott: this sounds like one of those mysteries
07:00:53 <elliott> oklopol: absolutely
07:01:16 <cheater00> like, how does science putty stay hard yet always able to become malleable
07:01:28 <elliott> Vorpal: this is nicer than painterly
07:01:41 <cheater00> or, how do rice krispies keep crackling and popping??
07:01:47 <elliott> Vorpal: winner of the texture pack compo :P
07:01:59 <elliott> Vorpal: also nice: http://www.eldpack.com/
07:02:24 <elliott> oklopol: so, clue self-interp
07:03:17 <elliott> oklopol: you will like this http://www.minecraftforum.net/viewtopic.php?f=25&t=98896 but i don't think it'll work on smp
07:03:26 <cheater00> the quicksort in clue is really truly the best quicksort ever
07:03:48 <cheater00> in fact i know someone who might be very interested in doing something like this with python bytecode
07:03:53 <cheater00> or even make it generate python
07:04:08 <oklopol> elliott: wanna make me a texture pack where all the blocks are just drawn a thick border
07:04:21 <cheater00> oklopol: how does clue know what to infer
07:04:24 <elliott> oklopol: i did a almost-all-solid-colour pack but it was beyond fugly
07:04:27 <oklopol> and maybe slightly different hues of black
07:04:29 <elliott> cheater00: cleverly
07:04:32 <elliott> cheater00: and it does generate python
07:04:34 <elliott> well, sorta
07:04:36 <cheater00> that does not answer my question
07:04:47 <elliott> anyway people sounds like other people sounds scary, they'd probably want to add a way to call functions too
07:04:49 <cheater00> explain to me the procedure
07:05:03 <elliott> cheater00: http://www.vjn.fi/clue.rar see clue.py
07:05:03 <cheater00> please thanks
07:05:07 <elliott> glue function in particular
07:05:10 <elliott> has kinda changed but mostly optimisations
07:05:12 <oklopol> well i can explain the procedure i use in my implementation
07:05:13 <elliott> that'll give you a good idea
07:05:17 -!- hagb4rd has joined.
07:05:18 <cheater00> argh rar
07:05:28 <cheater00> why must i execute non-gpl code for this
07:05:42 <cheater00> page no find eror 404!
07:05:42 <cheater00> A pages you tried to acess does no exist on this servers.
07:05:42 <cheater00> Copyright 2007 by VJN. All Rights deserted. v: 0.9
07:05:49 <elliott> cheater00: that's because you're bad
07:05:56 <cheater00> at least i can stay gpl for another couple of minutes
07:06:00 <elliott> cheater00: http://rapidshare.com/files/441572099/clue.zip
07:06:00 <oklopol> cheater00: it just brute forces
07:06:02 <elliott> code isn't gpl'd :P
07:06:05 <elliott> oklopol: well sorta.
07:06:13 <elliott> if it literally just brute forced it'd never work.
07:06:14 <cheater00> elliott: neither is rar
07:06:21 <elliott> cheater00: http://rapidshare.com/files/441572099/clue.zip
07:06:26 <elliott> cheater00: dos line endings because oklopol
07:06:32 <cheater00> can't you use something sane like dropbox?
07:06:41 <elliott> cheater00: i would just host it myself except my web server is sort of not on.
07:06:46 <elliott> i normally use filebin.ca
07:06:47 <elliott> but it's down
07:06:47 <elliott> again
07:06:58 <elliott> dropbox requires an account and is bullshit software i don't need irritating me...like all software
07:06:58 <cheater00> dropboxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy
07:07:02 <elliott> oklopol: do you edit with notepad or wordpad, can't really imagine you using anything else
07:07:04 <cheater00> it's actually pretty nifty
07:07:15 <oklopol> elliott: sorry, idle
07:07:17 <cheater00> i like the tools they provide and they're under steady maintenance
07:07:29 <elliott> oklopol: ah good, i can convert to unix file endings
07:07:32 <elliott> cheater00: also non-gpl
07:07:32 <cheater00> oklopol: you're not using vim??????????????
07:07:40 <elliott> cheater00: fuck you, oklopol can do what the fuck he wants
07:08:01 <cheater00> elliott: i run it inside a VM so that i don't get infected with non-gpl-aids
07:08:11 <cheater00> elliott: no, oklopol cannot do anything.
07:08:20 <elliott> oklopol: thing i wanted to type: rm *.pyc
07:08:20 * cheater00 casts a spell of non-doing on oklopol
07:08:24 <elliott> oklopol: thing i typed: rm *.py
07:08:28 <cheater00> :D
07:08:40 <oklopol> cheater00: it's really hard to just quickly summarize how exactly clue works
07:08:45 * elliott downloads his own zip
07:08:50 * elliott hyperventilates
07:08:51 <oklopol> i guess it's a good illustration if i explain how recursion is done
07:09:11 -!- luatre has quit (Remote host closed the connection).
07:09:16 <elliott> phew, it still runs
07:09:18 -!- luatre has joined.
07:09:19 <cheater00> oklopol: so you give clue some basic rules and some data and infers some rule that fits the data?
07:09:48 <oklopol> you give is an input -> output pair, and you tell it all the subinputs and suboutputs, which would be done recursively, then subinputs are computed from input, and output from suboutputs. this gives you a rule for computing recursive cases
07:09:53 <oklopol> cheater00: yes
07:09:58 <oklopol> that's the idea
07:10:12 <oklopol> it's the details that are interesting, since they make that feasible
07:10:20 <oklopol> "feasible"
07:10:24 <elliott> ::: http://www.vjn.fi/pb/p3593752799.txt
07:10:24 <luatre> Downloading...
07:10:25 <luatre> Compiling, just a minute...
07:10:25 <luatre> DepthLimitException: depth limit exceeded (pivot condition 2) :(
07:10:28 <cheater00> given two different implementations of clue, how do they ensure they infer the same rule?
07:10:31 <elliott> oklopol
07:10:32 <elliott> what
07:10:42 <oklopol> cheater00: add more examples, and they'll probably have the same rule
07:10:45 <oklopol> no way really
07:10:55 <cheater00> oklopol: you can do it
07:11:00 <Sgeo> Why haven't I heard of Fantom before?
07:11:05 <oklopol> do what?
07:11:08 <elliott> Sgeo: you have, it was called Fan then
07:11:16 <Sgeo> elliott, I haven't heard of Fan either
07:11:18 <cheater00> oklopol: you just need to make a canonical way of traversing the space of rules.
07:11:26 <oklopol> eh
07:11:29 -!- luatre has quit (Remote host closed the connection).
07:11:30 <oklopol> of course i can do that
07:11:34 -!- luatre has joined.
07:11:36 <elliott> ::: http://www.vjn.fi/pb/p3593752799.txt
07:11:36 <luatre> Downloading...
07:11:36 <luatre> Compiling, just a minute...
07:11:36 <luatre> DepthLimitException: depth limit exceeded (pivot condition 2) :(
07:11:38 <oklopol> why would i do that
07:12:02 <oklopol> that's silly
07:12:04 <elliott> try:
07:12:04 <elliott> newobj=applier(fun,subsetobjs)
07:12:04 <elliott> if newobj==None:continue
07:12:05 <elliott> except:
07:12:07 <elliott> continue
07:12:09 <elliott> oklopol: this. this is the worst.
07:12:11 <elliott> can i remove that
07:12:17 <cheater00> oklopol: to have causality
07:12:21 -!- luatre has quit (Remote host closed the connection).
07:12:26 -!- luatre has joined.
07:12:27 <elliott> ::: http://www.vjn.fi/pb/p3593752799.txt
07:12:27 <luatre> Downloading...
07:12:28 <luatre> Compiling, just a minute...
07:12:28 <luatre> TypeError: 'int' object is unsubscriptable :(
07:12:34 <elliott> whatttt
07:13:02 <elliott> File "/Users/ehird/clue/stuff.py", line 47, in car
07:13:02 <elliott> def car(l):return l[0]
07:13:02 <elliott> TypeError: 'int' object is unsubscriptable
07:13:04 <elliott> oklopol: aha
07:13:06 <elliott> need to return none
07:13:37 <Sgeo> Duration literals?
07:13:47 <elliott> oklopol: should isempty 3 be None
07:14:01 <oklopol> cheater00: i don't really care what you think, it's a stupid idea to order the search in the spec, because then compilers would have to check that whole path, and in general that's impossible.
07:14:02 <Sgeo> Never seen anything like those before, although due to Factor's "syntax", factor may as well
07:14:04 <oklopol> i mean
07:14:07 <oklopol> impossible to shortcut
07:14:15 <oklopol> it's easier to let people compile however they want
07:14:19 <elliott> oklopol: yes? re isempty
07:14:51 <cheater00> oklopol: not order the search, but canonicize the traversal
07:14:56 <oklopol> cheater00: it's not even specified that the same program should work the same way when compiled twice on the same compiler
07:15:07 <oklopol> cheater00: what's the difference?
07:15:12 <elliott> oklopol: what should cdr([]) be?
07:15:14 <elliott> error again?
07:15:17 <oklopol> elliott: error
07:15:23 <cheater00> for example if you have a labirynth and you're traversing it, one way to canonicize it is to say "turn right first"
07:15:33 <Sgeo> Fantom is failing to turn me on
07:15:34 <cheater00> you do NOT have to search all paths to do that
07:15:36 <elliott> oklopol: you will be glad to know, making stuff that should be errors into errors makes clue break the stack
07:15:37 <oklopol> yeah, that's what i meant by ordering the search
07:15:40 <Sgeo> It's not turning me off, but it's... boring
07:15:49 <elliott> Sgeo thinks about languages with his penis
07:16:06 <cheater00> oklopol: you don't have to pre-compute the complete space for that.
07:16:13 <oklopol> cheater00: no, but you can't use another strategy then, and it's not the spec's job to contain the best strategy.
07:16:15 <cheater00> oklopol: it's insane to think that
07:16:22 <cheater00> oklopol: you can
07:16:29 <cheater00> oklopol: just have a specifier
07:16:38 <Sgeo> Fantom : C# :: C# : Java
07:16:41 <Sgeo> From what I can tell
07:16:43 <oklopol> no you can't, you'd have to prove that it's the first thing you'd've found with the strategy given in the spec.
07:16:59 <cheater00> oklopol: you can input your own strategies.
07:17:11 <cheater00> oklopol: otherwise the language is really infertile
07:17:18 <elliott> oklopol: well... remind me to fix what i broke in the zip impl tomorrow. dunno what. :(. also: remind me to make that auto-realigning emacs mode. in fact just copy this to a file and restate it to me.
07:17:23 <elliott> oklopol: additionally, please hold on to your old code
07:17:27 <oklopol> cheater00: you are infertile
07:17:27 <elliott> so i can correct the current code with it tomorrow
07:17:30 <elliott> oklopol: okay?
07:17:35 <cheater00> oklopol: i am very fertile
07:17:40 <elliott> cheater00: you do not understand clue
07:17:46 <cheater00> elliott: i do
07:17:52 <elliott> you do not
07:17:56 <Sgeo> "This means non-nullable is the default unless otherwise specified:"
07:17:59 <cheater00> elliott: you do not understand what i understand about clue
07:17:59 <cheater00> !
07:18:00 <Sgeo> That's.. good
07:18:04 <Sgeo> That's a good thing
07:18:06 <oklopol> elliott: sure
07:18:12 <elliott> oklopol: thx
07:18:13 <elliott> bai
07:18:15 -!- elliott has quit (Remote host closed the connection).
07:18:18 <oklopol> bye
07:18:23 <Sgeo> It's like "Improve this here, improve that there"
07:19:13 <cheater00> oklopol: i think being able to input your own strategies would really be the best eva
07:19:24 -!- luatre has quit (Remote host closed the connection).
07:20:27 <oklopol> cheater00: it would be nice, yes, although possibly the topic of another language. what would be retarded is to write "if there is an implementation of function f with these properties in the ball of size k, then this implementation should be chosen".
07:20:55 <oklopol> or having in the spec that you always follow the right hand wall
07:21:05 <oerjan> <cheater00> for example if you have a labirynth and you're traversing it, one way to canonicize it is to say "turn right first" <-- except this will cause you to miss parts for most labyrinths. which might be analogously relevant for clue as well...
07:21:05 <cheater00> well you define your strategies and put em in a lib
07:21:14 <cheater00> and just say "use X"
07:21:16 <cheater00> or "use Y"
07:21:24 <cheater00> or "use-search-manhattan"
07:21:24 <oklopol> as i said, if you added a whole strategy concept to the language, yes, that would be nice.
07:22:02 <cheater00> oerjan: no, you would not miss them, unless they're unimportant.
07:22:13 <cheater00> oerjan: the idea is simply to get to the other side.
07:22:26 <cheater00> oerjan: backtracking is implied.
07:22:35 <oklopol> huh
07:22:49 <oklopol> what does that mean, the right hand algo doesn't have backtracking
07:22:55 <cheater00> oerjan: it is not a goal to visit every square.
07:23:10 <cheater00> oklopol: imagine two labirynths, one is to your right, one is to your left
07:23:17 <cheater00> oklopol: the one to the right has no exit.
07:23:36 <cheater00> and it has a loop.
07:23:44 <oerjan> cheater00: sorry i somehow read that as "turn right always" :D
07:23:49 <cheater00> you have to backtrack
07:25:15 <oklopol> that's not part of the right hand algo, but yes, you're right, the right hand algorithm doesn't solve all labyrinth related problems. just like it doesn't solve the knapsack problem.
07:25:54 <oerjan> oklopol: i misread him, he didn't actually say the right hand algorithm
07:26:05 <oklopol> indeed he didn't
07:26:08 <oklopol> i misread him too
07:26:14 <oklopol> was wondering what that comment of yours was about
07:26:27 <oklopol> cheater00: i'm sorry as well
07:27:28 <oklopol> anyway it's a good thing that programs work differently on different compilers
07:27:45 <oklopol> the point is to put in enough examples that that doesn't happen, which isn't all that many.
07:28:31 <oklopol> this is meant to be a *practical* language, for your everyday programming needs.
07:28:49 <oklopol> it compiles quicksort in less time than it'd take you to eat a sandwich
07:29:23 <oklopol> and if you compile your programs to ski, you can write ANY PROGRAM POSSIBLE
07:29:23 <cheater00> oklopol: you haven't been paying attention in maths class have you
07:29:29 <oklopol> how so?
07:29:42 <cheater00> <cheater00> every finite sequence has an infinity of possible continuations
07:29:43 <oklopol> didn't you insult my math skills once before?
07:29:51 <cheater00> quite possible :p
07:29:51 <oklopol> yeah that's the most retarded comment i've ever heard
07:29:58 <cheater00> um
07:30:00 <oklopol> seriously
07:30:05 <cheater00> it's mathematically proven
07:30:20 * Sgeo learns of the existence of Noop
07:30:20 <cheater00> so the only thingi i'll answer is NO U
07:30:22 <oklopol> i'm going to stop talking to you now
07:30:29 <cheater00> no u.
07:32:02 <oklopol> but anyway it's clear that you can't continue the sequence 7 5 3 2 1 in anyway for instance, since the next one would have to be a prime number smaller than 1, and one doesn't exist
07:32:04 <Sgeo> ARGH
07:32:05 <oklopol> q.e.d.
07:32:12 <oklopol> *any way
07:32:14 <Sgeo> SO MANY AWESOME SEEMING LANGUAGES OUT THERE
07:32:25 <oklopol> it can be mathematically proven that there are no prime numbers smaller than 1
07:32:32 <oklopol> let me prove that rigorously:
07:32:51 <oklopol> let p be a prime number that's smaller than 1; then, it must be 0, but 0 is not a prime number
07:33:13 <oklopol> also it could be negative, but then it's not a natural number, and the sequence must be over natural numbers
07:33:16 <oklopol> q.e.d.
07:33:41 <oklopol> so i guess you should take your crazy theories elsewhere
07:34:05 <hagb4rd> riddle time: imagine there are 2 doors..one leads to heaven (actually the place you want to go), the other leads to hell.. in front of each stands a guardian, one is telling the truth, and the other one lies (you don't know who lies).. u have only one(!) question to find out which door leads leads to paradise; what question would you ask? (if you already know the answer, be nice and let the others take a chance) hf!
07:34:07 <oerjan> oklopol: 1 IS NOT A PRIME NUMBER
07:34:11 <oklopol> oerjan: oh shit
07:34:20 <oklopol> so actually even THAT sequence doesn't exist?
07:34:26 <oerjan> INDEED
07:34:27 <oklopol> damn......
07:34:31 <oklopol> this is kinda creepy
07:34:32 <oklopol> i mean
07:34:34 <oklopol> you can see it there
07:34:40 <oklopol> but it... doesn't exist
07:34:44 <oklopol> 8|
07:34:56 <oklopol> math can be pretty counter-intuitive sometimes
07:35:00 <oerjan> oklopol: you could also drop the 2
07:35:19 <oklopol> have you heard that theorem that if you take a ball, and an infinite amount of boxes, then you can build another ball by making the correct choice?
07:35:21 <oerjan> but that would be an odd thing to do
07:35:33 <oklopol> :D
07:35:56 <oklopol> or was it 5 balls
07:36:24 <oklopol> cheater00: how did it go again, i'm a bit rusty on my advanced complex measure theory?
07:36:35 <oerjan> oklopol: it rings a bell. do you know what's an anagram of banach-tarski?
07:36:47 <oklopol> well?
07:36:59 <oerjan> banach-tarski banach-tarski
07:37:08 <oklopol> :D
07:37:14 <oklopol> that's awesome
07:38:42 <oerjan> hagb4rd: sorry, but if there is anyone here who _doesn't_ know the answer, we'll have to ban him for being insufficiently geeky.
07:38:53 <hagb4rd> lol
07:39:04 <hagb4rd> nevermind
07:39:44 * oklopol just went "oh that simple thing" and went on with his life, now wonders if he could actually do it
07:41:19 <oklopol> okay yeah i got it
07:41:30 <oklopol> was slightly deeper than i expected
07:41:47 <oklopol> i didn't know it though
07:43:07 <oklopol> hmm right, there actually is a trivial solution
07:43:09 <oerjan> http://xkcd.com/246/ and http://www.giantitp.com/comics/oots0327.html
07:43:11 <oklopol> was kinda wondering
07:43:36 <oerjan> (also http://tvtropes.org/pmwiki/pmwiki.php/Main/KnightsAndKnaves with the usual warning)
07:43:40 <oklopol> "true?"
07:43:47 <oklopol> "yep" vs "nope"
07:43:53 <oklopol> sorry for spoiler
07:43:59 <hagb4rd> oerjan, you havent just gooled the answer, did you?^^
07:44:05 <hagb4rd> bad bad oerjan
07:44:11 <oklopol> hagb4rd: i ruined it
07:44:19 <oklopol> gave away the whole answer
07:44:21 <oerjan> hagb4rd: of course not, i was trying to find that oots comic from before
07:44:38 <hagb4rd> i liked it
07:44:49 <oklopol> ahh
07:45:06 <oklopol> but you also don't know which one stands at which door :D
07:45:28 <oklopol> :DDDDD
07:45:34 <hagb4rd> no you dont :>
07:45:46 <oklopol> so fun, let's try again
07:46:37 <oerjan> btw the tvtropes page _does_ contain spoilers. in fact several options.
07:46:54 <Sgeo> http://emerginglangs.com/speakers/
07:46:58 <Sgeo> I want to learn all of these
07:46:59 <Sgeo> Right now
07:47:12 <Sgeo> Well, not all of them
07:47:20 <oklopol> okay so just use the fact both operations are involutions
07:47:32 <oklopol> i mean id and not
07:47:33 <Sgeo> Dalvik isn't even a lang.. well, I guess it kind of ... huh?
07:47:40 <oklopol> "if you asked yourself, ...."
07:49:12 <oklopol> or, route through both gates
07:49:29 <oerjan> hagb4rd: i am currently mind-boggling at oklopol apparently being _two_ geeky to find a simple solution :D
07:49:31 <oklopol> really it's a trivial problem once you put it down formally
07:49:35 <oerjan> *_too_
07:49:54 <oklopol> oerjan: my solutions are g^2 and gh
07:50:02 <oklopol> can you get away with just one operation?
07:50:04 <Sgeo> Now I'm looking at ooc
07:50:06 <oerjan> that's a danger of geekiness, you see too many options
07:50:23 <hagb4rd> its not that simple.. to be honest.. i spent hours on it
07:50:26 <oklopol> tell me in pm if you can't tell here
07:51:19 <oerjan> to be honest i've known this puzzle for so long that i cannot even remember if i solved it before reading the answer or not (probably not, to be honest)
07:51:36 <oklopol> i mean it's likely those aren't the simplest solutions when you actually translate them to english, but i don't think that's a very interesting problem.
07:56:56 <Sgeo> I think ooc has more marketers than program language designers
07:57:30 <oerjan> "Another is set in Transylvania, where people can be either sane or insane (insane people believe untruths) and either a human or a vampire. Humans speak the truth and vampires lie all the time, so an insane human speaks untruths he believes while an insane vampire speaks truths he does not believe in."
07:57:48 <Sgeo> Maybe I'm wrong
07:57:59 <Sgeo> But the documentation is so... obtuse
07:58:08 <Sgeo> I'll look at it agian later I gues
07:58:54 <oklopol> oerjan: doesn't a true mathematician forget all problems, and solve them from scratch every time
07:59:09 <oklopol> i hear neumann started all his proofs from epsilons
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:05 <oerjan> COULD BE
08:00:32 <oklopol> it would be nice if that was a characteristic of a true mathematician, because i still keep proving equivalences between definitions of continuity daily
08:00:50 <oerjan> oklopol: i certainly used to do such things
08:00:56 <oerjan> not so much these days
08:01:09 <oklopol> well, i'm working on finite things now, but usually
08:02:08 <oklopol> were you just like me at 21?
08:02:53 <oklopol> exam in 24 hours, fuckfuckfuck
08:02:55 <oerjan> reproving theorems in my head? yes.
08:03:03 <oklopol> i meant in every way
08:03:25 <oklopol> being paid to do math has made me a really lazy studier, i feel like i'm above taking courses
08:03:28 <oklopol> :D
08:03:48 <oklopol> NOTHING YOU CAN TEACH ME.
08:03:49 <oerjan> i have the impression you're considerably more extroverted than me. but that might not be something which shows perfectly over irc.
08:04:16 <oklopol> i was recently told by a professor that i might enjoy the master's thesis seminar because i'm so extroverted
08:04:39 <hagb4rd> *g
08:06:29 <oklopol> and once a guy was really surprised i was a mathematician because i actually talked to people
08:06:53 <oklopol> so i wonder what kinda mathematicians he's met because i mostly played the guitar when he visited afair
08:06:55 <oerjan> oklopol: i certainly started dropping a number of lectures after a few years. especially early morning ones.
08:07:44 <hagb4rd> master in maths, social engineerer, star-author and sex-symbol :>
08:07:48 <oklopol> i've started not doing homework, and improvising a solution if asked (they choose a random dude to present their solution)
08:08:33 <oklopol> sex-symbol? :D
08:08:45 <hagb4rd> yea
08:08:54 <oklopol> lemme draw you one
08:09:01 <oerjan> oklopol: i think he deduces that from the fact you seem to actually get laid
08:09:12 <hagb4rd> another translation bug??
08:09:14 <oklopol> 8=====D (|)
08:09:21 <oerjan> if we are to believe you
08:09:24 <oklopol> hagb4rd: no i don't think so
08:09:28 <hagb4rd> k
08:09:34 <oklopol> oerjan: ah, the nerd definition
08:10:28 <oklopol> actually not so much lately, since i broke up with the gf, although we've been talking about being sex-buddies with an ex
08:11:22 <oklopol> (we broke up because of artistic differences)
08:11:32 <oerjan> i _guess_ all the porn talk could be a factor as well
08:12:01 <oklopol> :D
08:12:12 <oerjan> oklopol: you mean she didn't want to make a porn movie with you? how unartistic.
08:12:24 <oklopol> yes!
08:12:38 <oklopol> actually she didn't, although i'm not entirely sure that was a factor
08:13:17 <oklopol> so now that elliott is gone
08:13:31 <oklopol> there's really NOTHING for me here, i wonder if i should actually start studying soon.
08:13:46 <oklopol> it's just there's a fuckload of theorems : d
08:13:53 <oklopol> i mean a true and serious fuckload
08:14:05 <oklopol> and it's scary.
08:14:07 <oerjan> hundreds of thousands, i hear
08:14:20 <hagb4rd> lol
08:14:47 <oklopol> do you know green's theorem
08:14:51 <oklopol> erm
08:14:58 <oklopol> in semigroup theory :P
08:15:08 <oerjan> no i'm a bit green on that
08:15:44 <hagb4rd> maybe we should kick&ban oklopol, until he mad the grade :p
08:15:50 <oerjan> (i thought you meant in analysis, and was going to complain that i missed a pun opportunity)
08:16:21 <oklopol> :D
08:16:28 <hagb4rd> 23hours and a hald
08:16:31 <oerjan> hagb4rd: tried that with Sgeo, didn't work
08:16:53 <oklopol> hagb4rd: also i need to sleep some part of that :D
08:17:14 <oklopol> 10 am now, the exam is actually at 9 am tomorrow prolly
08:17:37 <oerjan> it turned out eventually that he only got to doing his homework once he got back on the channel. well i guess the swiftly approaching extended deadline might have had a part as well.
08:17:43 <oklopol> there's maybe 10 pages that contain stuff i couldn't just crap out of my wrist in the exam
08:18:35 <oklopol> oerjan: green's is when you define xLy <=> Sx = Sy and xRy symmetrically
08:18:44 <oklopol> and then H = intersection of those
08:19:16 <oklopol> then a H class is a group iff it contains an identity iff it is closed under multiplication of at least two of its elements
08:19:32 <oklopol> crazy shit huh?
08:19:40 <oklopol> there's a lot more where that came from
08:21:03 <oklopol> well aren't you gonna say "woooooooooow"
08:21:20 <oklopol> oh god, i'm so tired.
08:21:35 <hagb4rd> wooow
08:21:42 <oklopol> if i go to sleep now, and sleep my usual 10-12 hours, i'll still have like 12 hours left
08:21:43 <oerjan> not really, it doesn't precisely sound surprising
08:22:41 <oerjan> oklopol: in my case i would be more worried about actually being able to be awake tomorrow...
08:23:02 <oklopol> there are many examples of complicated proofs in the literature which prove a small subcase of that
08:23:14 <oerjan> but i guess your sleeping rhythm isn't quite as fragile as mine
08:23:19 <oklopol> why is it not surprising, maybe i don't understand it?
08:23:42 <oklopol> i don't have a sleeping rhythm.
08:23:52 <oklopol> i just sleep when ever i happen to
08:23:55 <oerjan> oklopol: well i guess it could be harder to prove than i think
08:24:03 <oklopol> *whenever
08:24:23 <oklopol> thank god for saying that, i actually took the papers here
08:24:34 <oklopol> *you said taht
08:24:36 <oklopol> *that
08:25:29 <oerjan> the first iff looks like it should be nearly trivial, at least
08:25:35 <oklopol> hmm
08:25:58 <oklopol> hmm indeed
08:26:10 <oklopol> don't spoil it, i'm sure you're faster than me
08:26:25 <oerjan> hm wait is that an identity for H or for the whole semigroup?
08:26:32 <oklopol> for H
08:28:15 <oerjan> yeah then that is trivial
08:28:43 <oklopol> right to left, why does tehre need to be an inverse in H?
08:28:46 <oklopol> *there
08:29:08 <oerjan> because ee = e, so Sx and xS both contain e
08:29:27 <oerjan> or wait hm
08:29:35 <Vorpal> <elliott> Vorpal: http://www.minecraftforum.net/viewtopic.php?f=1021&t=124541 very nice!! <-- quite, but the inventory screen looks weird.
08:29:36 <oerjan> darn
08:29:40 <oklopol> xS and Sx of course contain e, because they are that H class
08:29:53 <oklopol> so? that "inverse" might not be in H
08:30:00 <oerjan> just realized that :D
08:30:46 <oklopol> alrighty, it's possible that there's a very simple proof, and that it's on three pages just for clarity, there's a very nice lemma that clarifies how things jump between these classes
08:30:58 <oklopol> before this
08:31:01 <oerjan> XD
08:31:15 <oklopol> was i too formal?
08:31:20 -!- hagb4rd has changed nick to hagb4rd|afk.
08:31:24 <oerjan> too sarcastic rather
08:31:46 <oklopol> i was being serious :D
08:32:38 <oerjan> deducing something from "closed under multiplication of at least two of its elements" looks somewhat harder anyway
08:32:41 <oklopol> anyway it's inverse semigroups that are the main point of this course, do you remember that semigroup problem we tried to solve in the fall?
08:32:51 <oerjan> vaguely
08:33:14 <oklopol> inverse semigroups are that kinda stuff
08:33:25 <oklopol> you define inverses without an identity
08:33:33 <oerjan> ah yeah
08:33:36 <oklopol> like forallx, x = xyx for unique x
08:33:41 <oklopol> *for all x,
08:33:42 <oerjan> xx'x = x and x'xx' = x'
08:34:00 <oklopol> err right, that for unique is inverse semigroup i think
08:34:24 <oklopol> they turn out to have all kinds of crazy properties
08:34:39 <oklopol> ...which i don't understand at all
08:34:44 <oklopol> :(
08:35:00 <oklopol> i suppose i did at some point, but now i don't even remember what the trace is
08:35:31 <oerjan> we were fooling around with idempotents and proving there was only one and thus it was a group under some condition
08:36:27 * oerjan doesn't recall any trace either
08:36:36 -!- marcules has joined.
08:36:42 <Sgeo> What worked for me was not sleeping for 48 hours
08:36:49 * marcules schaut zu hagb4rd|afk :>
08:36:54 <oklopol> S is a group <=> forall x exactly one y: x = x x'x
08:37:00 <oklopol> was it that one?
08:37:05 <hagb4rd|afk> ;)
08:37:14 <Sgeo> The effects of which are still with me
08:37:16 <oklopol> then also exactly one y: x x' idempotent
08:37:26 <Sgeo> In the form of staying up and night and sleeping during the day
08:37:33 <oklopol> *x = xyx
08:37:41 <oklopol> *xy idempotent
08:38:13 <oerjan> oklopol: your spelling seems to imply you need sleep
08:38:16 <oklopol> i'm sure it was the first one
08:38:20 <oklopol> oerjan: yeah.
08:38:46 <oklopol> when reading these proofs, the most important thing is being able to retain the about 10 things they name, and remember exactly what equations were proved sofar
08:39:05 <oklopol> and that's like the exact opposite of the being able to do nothing with my brain state that i'm in atm
08:39:28 <oklopol> heeey shoppe is open, maybe i should go buy some pizza, and watch the cleveland show
08:39:32 <oklopol> :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
08:39:51 <oerjan> this early on a sunday?
08:39:56 -!- dilapan has joined.
08:40:01 <oklopol> i think it's 10-10 every day
08:40:09 -!- Sgeo_ has joined.
08:40:12 <dilapan> hi
08:40:15 <oklopol> it's a kinda special shoppe
08:40:25 <Sgeo_> BTW, elliott really was trying to login as me
08:40:29 <oklopol> because it's *the* shoppe of the student village i'm living in
08:40:29 <Sgeo_> -NickServ- 3 failed logins since last login.
08:40:31 <Sgeo_> -NickServ- Last failed attempt from: elliott!~elliott@unaffiliated/elliott on Jan 08 23:26:33 2011.
08:40:35 <oerjan> most shops in norway don't keep open on sundays, by law
08:40:48 <oklopol> ones under 400m^2 can stay open here
08:40:52 <oerjan> small ones are exempted
08:40:53 <hagb4rd|afk> hey dilapan :>
08:41:01 <oklopol> and can in general stay open whenever they want
08:41:10 <oerjan> sounds similar
08:42:40 <oerjan> oklopol: there was a great battle here in the early 90s between shops and gasoline stations where the former had to obey closing restrictions but not the latter and the latter started getting more and more shop-like groceries and the like
08:42:40 -!- Sgeo has quit (Ping timeout: 246 seconds).
08:43:48 <Sgeo_> Ok, the ANI tutorial reads like an esolang spec
08:43:51 <oerjan> after trying for a while to distinguish based on what they sold the politicians eventually gave up and changed it to being based on shop area instead
08:43:57 <oklopol> lol and then shops started selling gasoline
08:44:09 <oerjan> oklopol: well some tried
08:44:13 <oklopol> really? :D
08:44:17 <oklopol> fun
08:44:24 <oerjan> although not for that reason i think
08:45:13 <oerjan> there was a grocery chain (rema 1000) who tried adding gasoline outlets. this was after what i described above though.
08:45:27 <oerjan> s/outlets/pumps/
08:45:56 <oerjan> i think they sold them off after a while
08:46:30 <oerjan> anyway here in norway 7/eleven tends to be open 24/7
08:47:32 <oerjan> (they're actually franchised by the rema 1000 people)
08:48:03 <oerjan> well here in trondheim at least, don't know if it's true in smaller places
08:48:28 <Sgeo_> How is ANI not an esolang?
08:48:31 * Sgeo_ mindboggles
08:49:16 <oerjan> i don't know about ANI but we used to require some _intent_ to be esoteric
08:49:36 -!- ais523 has quit (Remote host closed the connection).
08:50:04 <Sgeo_> I'm sure ANI is perfectly usable for ordinary applications
08:50:05 <oerjan> there was this BancStar thing which was completely insane but which wasn't considered esoteric since it was actually used in some industry
08:50:23 <oerjan> or something like that
08:50:38 <Sgeo_> It's just.. now I know what it feels like for an imperative programmer to jump headfirst into functional programming
08:50:43 <Sgeo_> Utterly, utterly bizarre
08:51:00 <Sgeo_> oerjan, do you know any dataflow languages?
08:51:04 <Sgeo_> Because that's what ANI is
08:52:04 <oklopol> oerjan: multiplication from left preserves H classes, so if two things have their product in a H-class, you also know their H-classes go into that H-class
08:52:14 <oerjan> hm i don't _know_ any, but i've heard something. sisal rings a bell.
08:52:14 <oklopol> this property of H is easy to prove, although a bit verbose
08:52:35 <oklopol> that's xy \in H => H group
08:52:38 <oklopol> which is the hard part i think
08:52:57 <oklopol> or wait
08:53:17 <Sgeo_> Oh, I think it's called anic
08:54:17 <oklopol> maybe it's not that simple bleh
08:54:33 <oerjan> um H classes are sort of left-right symmetric aren't they
08:55:02 <oklopol> sure
08:55:22 <oklopol> i specified left because at that precise moment i wasn't sure i wouldn't need to talk about right as well
08:55:33 <oklopol> but now it looks kinda useless, yes
08:55:51 <oerjan> i certainly don't see why multiplication from left preserves H classes
08:59:18 <oklopol> not actually true: what's true is if x, y \in S, xLy, and sx=y, s'y=x, then 1) (s*) : R_x -> R_y is bij., (s'*) : R_y -> R_x is bij 2) (s*) and (s'*) are inverses 3) zLsz for all z \in R_x 4) u, v \in R_x => (uHv <=> suHsv)
08:59:22 <oklopol> :D
08:59:36 <oerjan> argh
08:59:43 <oklopol> the last one
08:59:45 <oklopol> says
08:59:48 <oklopol> wait
09:00:12 <Sgeo_> ANIC gives me a headache
09:00:17 <Sgeo_> It looks awesome, but
09:01:08 <oerjan> oklopol: um but S is not necessary a monoid so how do you know there is an s such that sx=y? or is that an assumption?
09:01:12 <oklopol> if xLy, and sx = y, then multiplication by s from left is actually a bijection from R_x to R_y
09:01:14 <oklopol> that's the first one
09:01:30 <oklopol> and that's easy because s' is its inverse
09:01:42 <oklopol> oerjan: oh shit sorry
09:01:45 <oklopol> i have the wrong definition
09:02:04 -!- azaq23 has quit (Quit: Leaving.).
09:02:05 <oklopol> xLy <=> S^1 x = S^1 y
09:02:15 <oklopol> where S^1 is guess
09:02:29 <oerjan> S or identity?
09:02:41 <oklopol> it's S + identity
09:02:51 <oklopol> that's a monoid
09:03:00 <oerjan> hm
09:03:15 <oklopol> if there already is an identity, then S^1 = S
09:03:15 <oklopol> :D
09:03:22 <oklopol> crazy i know!
09:03:37 <oerjan> that's i think equivalent to x \in S y and y \in S x, no?
09:03:58 <oklopol> yes, therefore i could implement this relation with s and s'
09:04:04 <Sgeo_> I don't even know the name of the thing
09:04:06 <oklopol> so yeah that was implicit up there
09:04:08 <Sgeo_> Is it ANI or ANIC?
09:04:46 <oerjan> hm except... if S x does not contain x what then
09:05:00 <oklopol> doesn't matter, L is defined using S^1
09:05:11 <oklopol> which is S + identity
09:05:11 <oerjan> it's necessary to use S^1 for that
09:05:33 <oklopol> err, what do you mean
09:05:54 <oklopol> yes, it's necessary to define that particular definition the way it's defined, if you want to define it the way it's defined.
09:06:07 <oklopol> :D
09:06:21 <oklopol> i just gave the wrong definition for relation L, originally
09:06:29 <oklopol> which would've made the theorems impossible to prove
09:06:30 <oklopol> probabl
09:06:31 <oklopol> y
09:06:34 <oerjan> well if S x doesn't contain x then only x is in its class
09:06:52 <oklopol> true
09:07:05 <oklopol> err
09:07:26 <oklopol> in its what class, L class with the correct def?
09:07:33 <oerjan> yes
09:08:16 <oerjan> because S^1 y cannot contain x if S^1 x contains y and x is not y
09:08:42 <oklopol> what?
09:08:53 <oklopol> on in that case
09:08:53 <oerjan> assuming S x does not contain x
09:08:56 <oklopol> okay
09:09:16 <oklopol> why?
09:09:34 <oklopol> i can't think at all right now :\
09:10:14 <oklopol> really don't see it
09:10:50 -!- GreaseMonkey has quit (Quit: ilua).
09:11:00 <oerjan> assume S x does not contain x, and xLy, x != y. then S^1 x = S^1 y.
09:11:42 <oerjan> since x!=y, y \in S x. also x \in S y. but then x \in S x, contradiction.
09:12:30 <oklopol> you're using the wrong def of L there or?
09:12:37 <oerjan> no, the right one.
09:12:53 <oerjan> since x!=y you cannot have 1 x = y or x = 1 y
09:12:53 <oklopol> so... you assume xLy, and prove S^1 x = S^1 y?
09:13:00 <Sgeo_> Maybe I should stick with Mozart/Oz instead
09:13:11 <oklopol> that's the definition of L
09:13:13 <oerjan> oklopol: um that's not proving, that's using the definition
09:13:18 <oklopol> opkay
09:13:25 <oklopol> ohh lol
09:13:26 <oklopol> yeah okay
09:13:49 <oklopol> yeah okay you're right
09:14:20 <oklopol> does that give us something interesting?
09:14:33 <oklopol> it seems like it could be the gist of ...something
09:14:46 <oerjan> only a way to rephrase xLy without using S^1
09:14:46 <Sgeo_> locks
09:14:48 <Sgeo_> Oz has locks
09:14:58 * Sgeo_ goes back to trying to understand ANIC
09:15:27 <oklopol> hmm err right
09:15:28 <oklopol> :P
09:15:38 <Sgeo_> Oz is tempting me though in every other way
09:15:42 <oklopol> i suppose it's something i'd normally consider trivial
09:16:14 <oerjan> well i'm tired too
09:20:49 <oklopol> my head hurts
09:21:14 <oklopol> i'll prolly go to the shoppe, eat a pizza, and try to sleep only till like 18
09:21:31 <oklopol> and hope i can stay awake all night and then do the exam :D
09:21:36 <oklopol> hahahahaaaaaaaaaaaaaaaaaa
09:22:09 <oklopol> i've been trying to flip my sleep rhythm all week, but it just keeps around, and i mostly sleep during the day
09:23:11 -!- oerjan has set topic: The fucked up sleep channel | http://esolangs.org/wiki/Main_Page | logs: http://tunes.org/~nef/logs/esoteric/?C=M;O=D or (hg) http://codu.org/projects/esotericlogs/hg/.
09:23:23 <oklopol> anyway see ya, might actually be useful to talk about this stuff with you if i was even close to my usual self, but currently i'm just durrrr xS durrrr what did that mean again
09:23:50 <oerjan> see ya
09:24:58 <oklopol> ...actually that's exactly what i did because i defined R using xS and then assumed x was automatically there
09:25:08 <oklopol> but yewah <>-ewaf<->
09:31:57 <Sgeo_> skip
09:32:04 <Sgeo_> Yay, I wrote an Oz program!
09:32:44 <Sgeo_> All sorts of languages have bizarre ways of saying NOP
09:32:50 <oerjan> i could write an Oz program, if i only had a brain
09:33:01 <Sgeo_> COBOL's continue, Oz's skip, Python's pass
09:33:03 <Sgeo_> lol oerjan
09:34:22 -!- kokkoloko has joined.
09:35:12 <Sgeo_> http://pastie.org/1442161
09:35:24 <Sgeo_> Hey, this code from the tutorial is comprehendible!
09:35:55 <Sgeo_> I just realized something, I think
09:36:25 <Sgeo_> {Max 3 4 X} would bind 4 to X. But {Max 3 4 3} would raise an exception, and {Max 3 4 4} doesn't
09:36:31 <Sgeo_> That's interesting to think about
09:38:57 <Sgeo_> There's def. a Prolog vibe here
09:44:14 -!- kokkoloko has left (?).
09:54:18 -!- j-invariant has joined.
10:03:03 * Sgeo_ wonders what Alice is lie
10:03:20 <j-invariant> Alice ML?
10:03:26 <Sgeo_> Grah, don't want to learn SML first
10:03:46 <j-invariant> I think it's a sort of toned down version of Oz, but with Types
10:04:09 <Sgeo_> Is Oz still actively worked on?
10:09:50 <Vorpal> ineiros, there is a hole in my mines that I did not blow. I have not been on for a few days but I suspect ehird or PH. It looks like TNT
10:09:59 <Vorpal> they were in that area when I last disconnected
10:10:50 <Vorpal> ineiros, a lot of damage
10:16:36 <Vorpal> ineiros, see /msg for further detailks
10:16:38 <Vorpal> details*
10:19:43 <j-invariant> http://superuser.com/questions/230871/is-it-possible-to-code-on-two-different-computers-simultaneously
10:19:45 * oerjan predicts this will instigate a violent minecraft civil war which will lasts for months and only peter out when it turns out these explosions are just caused by a somewhat rare interaction of bugs
10:19:51 <j-invariant> "Is it possible to code on two different computers simultaenously"
10:19:55 <oerjan> *last
10:26:36 <fizzie> oerjan: Sometimes it feels as if we're in a permanent civil war already.
10:32:39 * Sgeo_ wants to see servers based on war
10:32:51 * Sgeo_ imagines extensive Obsidian mining campaigns
10:33:13 <Sgeo_> http://en.wikipedia.org/wiki/List_of_programming_languages
10:33:21 <Sgeo_> Well, there goes any chance of me sleeping ever again
10:33:58 <Sgeo_> Actually, I have no way of determining which are interesting and which aren;t
10:34:25 <fizzie> All that have odd SHA hashes are interesting. (A scientific fact.)
10:35:31 <j-invariant> Sgeo_: you could make something that picks a random one each week and tells you to learn about it
10:35:47 <j-invariant> unless it has "Visual" in the name
10:41:53 -!- MigoMipo has joined.
10:54:16 -!- Phantom_Hoover has joined.
10:54:16 -!- Phantom_Hoover has quit (Changing host).
10:54:16 -!- Phantom_Hoover has joined.
10:54:36 -!- dilapan has left (?).
10:58:04 <Vorpal> Phantom_Hoover, perhaps you can explain why there is an obvious TNT hole in my mines. You and ehird were the people most recently seen near that place.
10:58:47 <Phantom_Hoover> I want my lawyer.
10:58:57 <Vorpal> ...
10:59:41 <Vorpal> Phantom_Hoover, in other words, you did it?
10:59:55 <Phantom_Hoover> No, I mean that I want my lawyer.
11:01:38 <Vorpal> Phantom_Hoover, that sounds absurd in this situation. Anyway someone blew up stuff there. One chest with mined obsidian and diamond (about 15 of each) was in the destroyed area. So I want to know who did it
11:01:56 <Phantom_Hoover> Erm.
11:02:17 <Phantom_Hoover> elliott placed the TNT, and I set it off unintentionally.
11:02:31 <Phantom_Hoover> Ridiculous as that sounds, I have a touchpad with tap-to-click enabled.
11:03:09 <Sgeo_> So TNT is unremovable?
11:03:29 <Vorpal> Phantom_Hoover, ...
11:03:30 <Phantom_Hoover> Sgeo_, you can safely detonate it if you pour water over it.
11:03:40 <Vorpal> Phantom_Hoover, speaking of compensation...
11:04:08 <Sgeo_> How much obsidian can you mine with 3 diamonds (= 1 diamond pick-axe)?
11:04:23 <Phantom_Hoover> Vorpal, you have far more obsidian than 15 blocks.
11:04:40 <Phantom_Hoover> You've stated yourself that you have storerooms full of it.
11:04:54 <Vorpal> yes quite. But it is work restoring the area
11:05:01 -!- FireFly has joined.
11:05:14 <Vorpal> Phantom_Hoover, you could have told me right away so ineiros could have used a backup to restore that chunk
11:05:43 <Phantom_Hoover> Well, I can help patching over the hole.
11:06:14 <Vorpal> Phantom_Hoover, also compensation doesn't work that way. If you burn down a small garden shed in real life of someone who has a large house and a lot of money there will still be consequences
11:06:36 <Phantom_Hoover> Vorpal, take it up with elliott.
11:07:03 <Vorpal> Phantom_Hoover, I leave it up to you two how to split the compensation between you
11:07:26 <Phantom_Hoover> Vorpal, that will come to "nothing/2" then.
11:08:04 <Vorpal> Phantom_Hoover, very well. I will speak with ineiros when he comes on
11:10:22 <Phantom_Hoover> Vorpal, I did offer to help repair the damage.
11:10:23 <Phantom_Hoover> But if you think elliott is going to do anything like help with "compensation", you are being astoundingly naïve.
11:10:26 -!- pingveno has quit (*.net *.split).
11:10:30 -!- coppro has quit (*.net *.split).
11:10:35 -!- Leonidas has quit (*.net *.split).
11:10:45 -!- dbc has quit (*.net *.split).
11:10:49 -!- hagb4rd|afk has quit (Quit: hagb4rd|afk).
11:11:07 <Vorpal> Phantom_Hoover, I wonder what he would do in real life in case he messed up for someone else
11:11:31 <fizzie> Sgeo_: With one diamond pickaxe, you can mine 1025 blocks of obsidian, assuming you have the patience (about 4 hours, 22 minutes of solid mining) for it.
11:12:25 -!- dbc has joined.
11:12:39 -!- pingveno has joined.
11:12:39 -!- coppro has joined.
11:12:39 -!- Leonidas has joined.
11:12:57 <Sgeo_> Minecraft is serious business.
11:13:26 * oerjan distinctly recall someone said obsidian should be made with lava and water, not mined
11:13:30 <oerjan> *recalls
11:13:37 <Phantom_Hoover> oerjan, yes, it should.
11:13:54 <Phantom_Hoover> Well, if you don't want to spend ages getting the blocks.
11:17:31 <Sgeo_> How long does it take to transport all the lava to where you need it?
11:17:53 <fizzie> Sgeo_: Depends on how many buckets you want to make.
11:18:16 <Sgeo_> Enough to have large stockpiles of lava
11:18:55 <fizzie> If you use all the non-hand slots for buckets, you could carry 27 bucketfuls of lava each trip to your lava sea.
11:25:55 -!- oerjan has quit (Quit: leaving).
11:26:46 <Phantom_Hoover> fizzie, incidentally, why is the hillside in front of the wooden house scoured of dirt?
11:29:29 <fizzie> Is this a new development or something?
11:30:13 -!- Phantom__Hoover has joined.
11:30:13 -!- Phantom__Hoover has quit (Changing host).
11:30:13 -!- Phantom__Hoover has joined.
11:30:38 <Phantom__Hoover> 03:29:29 <fizzie> Is this a new development or something?
11:30:53 <Phantom__Hoover> No, just wondering why it was like that in the first place.
11:31:01 <fizzie> Oh. Well, that was before my time.
11:31:30 <Vorpal> Phantom__Hoover, to answer your in game question: 26
11:33:15 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
12:20:14 <Sgeo_> I think I like Atomo more than Slate, but.. I'm wondering if Slate syntax weirdness is there for a very good reason
12:20:49 <Sgeo_> And how, in Atomo, you'd go about pattern matching such that a family of objects might receive etc,'
12:21:00 <Sgeo_> The way in Slate, you'd use Someclass traits in the thingy
12:21:25 <Sgeo_> I'm assuming elliott knows the answer to this. He's known almost every language I have ever looked at
12:21:26 <Sgeo_> .
12:22:33 <j-invariant> does wood have any use? or should it all be turned into planks?
12:22:39 -!- dangerouslyfluff has joined.
12:22:47 -!- dangerouslyfluff has left (?).
12:24:01 <Sgeo_> "For wood to be destroyed by fire it must have several sides simultaneously burning. If only one side is burning, the fire and wood block will last forever. This is probably a bug but makes for nice fireplaces. Now, Netherrack can be used instead, as it burns forever without any tricks."
12:26:05 <Phantom__Hoover> <j-invariant> does wood have any use? or should it all be turned into planks? ← basically, yes.
12:26:18 <Phantom__Hoover> It's good for decoration, but not much else.
12:26:36 <j-invariant> also how does the algorithm for culling leaves work?
12:26:47 <j-invariant> when you chop some wood away there is some kind of CA that culls leaves
12:27:16 <Vorpal> <j-invariant> does wood have any use? or should it all be turned into planks? <-- it is useful to carry as logs in inventory, takes less space for the same amount of wood
12:28:35 <j-invariant> Is this list exaustive? http://www.minecraftwiki.net/wiki/Crafting
12:28:40 <Vorpal> j-invariant, lets say you are exploring a cave and want to carry torches with you. Carrying 64 logs will be equiv of 256 wood, which can be used for§ 512 torches (with 128 coal).
12:29:08 <Vorpal> and this can be done in inventory screen crafting slots
12:30:18 <Sgeo_> Atomo blocks are the prettiest of them all
12:30:45 <Vorpal> j-invariant, think so. But I haven't checked.
12:30:54 <Vorpal> but at a quick glance I see nothing missing
12:31:34 <Vorpal> j-invariant, though it does combine some where the material varies but the shape does not (various types of armour, the ore blocks)
12:31:40 <Vorpal> (and tools)
12:35:28 -!- sebbu2 has joined.
12:37:27 -!- sebbu has quit (Ping timeout: 240 seconds).
12:41:02 -!- sebbu2 has changed nick to sebbu.
12:48:04 * Sgeo_ wants a list of all domain names that end with -lang
13:01:09 <Vorpal> Sgeo_, unsure if you can enumerate an entire TLD. Probably not
13:01:56 <Sgeo_> Vorpal, I am aware that my fantasy is unrealistic
13:02:03 <Sgeo_> Good thing too. It would be like crack
13:02:15 <Sgeo_> Any list of new and interesting languages is crack to me
13:06:10 <Phantom__Hoover> Sgeo_, http://en.wikipedia.org/wiki/Category:Programming_language
13:06:33 <Sgeo_> Phantom__Hoover, there's no filter on that
13:06:43 <Sgeo_> I have some idea of what fascinates me and what doesn't
13:06:56 <Sgeo_> ...
13:06:57 <Sgeo_> Oh
13:07:00 <Sgeo_> Oh shit
13:08:43 <cheater00> oklopol: the ball paradox.
13:09:06 <cheater00> it is based on the axiom of choice and uses rotations in 4 dimensions.
13:09:19 <Phantom__Hoover> Sgeo_ will not be seen alive again.
13:09:53 <Sgeo_> But there's so many awesome languages not on the wiki!
13:13:14 -!- ELEMENTO has joined.
13:14:15 <Vorpal> <Sgeo_> Vorpal, I am aware that my fantasy is unrealistic <Sgeo_> Good thing too. It would be like crack <-- what, is it a fantasy to list all domains ending in -lang?
13:14:19 <Sgeo_> I just searched Freenode for channels tha mention lang
13:14:24 <Vorpal> I mean what the hell
13:15:00 <Sgeo_> I'm screwed
13:15:40 <Vorpal> personally I seldom check out new languages unless someone I know mentions it
13:17:03 <Vorpal> I found a good set of usable languages that cover my daily needs (haskell, C, erlang, scheme, plus a handful of shell like languages for trivial tasks).
13:18:43 <j-invariant> what good -lang channels are there?
13:18:48 <j-invariant> Sgeo
13:19:00 <Vorpal> I don't know of any that uses such a suffix
13:19:14 <Vorpal> I mean, it's #haskell, not #haskell-lang for example
13:19:18 <Sgeo_> Some have lang in the topic
13:19:33 <Sgeo_> #euphoria #mirah #haxe #grml #BitC
13:19:35 <Sgeo_> #arc
13:19:46 <Vorpal> the only one I heard of in that list is BitC
13:19:58 <Vorpal> which looks somewhat interesting. Might be dead though. Not sure
13:20:02 <Sgeo_> #atomo
13:20:12 <Sgeo_> #fancy
13:20:18 <Vorpal> oh wait, I heard of arc too
13:20:20 <Sgeo_> #fantom doesn't mention lang in the topic
13:20:22 <Vorpal> do not try arc
13:20:24 <Vorpal> ever
13:20:34 <Sgeo_> Oh?
13:21:03 <Vorpal> Sgeo_, it's a very very bad lisp. The PHP of LISPs basically.
13:21:25 <Vorpal> Sgeo_, Paul Graham, need I say more.
13:21:36 -!- ELEMENTO has quit (Quit: Linkinus - http://linkinus.com).
13:21:44 <Sgeo_> "The PHP of LISPs" was more informative than "Paul Graham"
13:23:31 <Sgeo_> grml is not a language, apparently
13:23:59 <Sgeo_> It got caught because of "Official language: en" in the topic
13:24:30 <Phantom__Hoover> Vorpal, Arc?
13:25:13 <Sgeo_> #hugin
13:25:23 <Sgeo_> Is not a language
13:27:18 <Vorpal> Phantom__Hoover, err. Are you asking if I'm talking about arc or are you asking what arc is?
13:27:27 <Phantom__Hoover> What is itt?
13:27:30 <Phantom__Hoover> *it
13:28:20 <Vorpal> Phantom__Hoover, the PHP of lisps. I expect elliott hates it too (not sure if it has been mentioned in the channel before).
13:28:46 <Phantom__Hoover> Yes, but that's just telling me your opinion of it, not what it is or why you think that.
13:29:45 <Vorpal> Phantom__Hoover, do you know of Paul Graham at all?
13:29:51 <Phantom__Hoover> No.
13:30:03 <Phantom__Hoover> Well, I associate his name with Lisp vaguely.
13:30:31 <Vorpal> Phantom__Hoover, hm, you should ask elliott when he comes on. I'm a bit busy today. Water leak and that means calling insurance company and so on.
13:41:08 -!- sebbu2 has joined.
13:41:49 <Phantom__Hoover> http://i.imgur.com/h5Mjg.jpg
13:41:53 <Phantom__Hoover> Goddamn it.
13:42:07 <Vorpal> Phantom__Hoover, looks awesome
13:42:22 <Vorpal> Phantom__Hoover, is it Hindenburg?
13:42:27 <Phantom__Hoover> Yes, but it's bigger than the ROU and much cooler!
13:42:43 <Vorpal> Phantom__Hoover, quite. How many blocks it it from end to end?
13:42:51 <Phantom__Hoover> Dunno.
13:43:01 <Phantom__Hoover> Definitely more than the ROU, though.
13:43:04 -!- sebbu has quit (Ping timeout: 255 seconds).
13:43:13 <Vorpal> Phantom__Hoover, less I think. But it is much thicker near the middle
13:43:33 <Vorpal> Phantom__Hoover, and it is a lot more complete
13:43:43 <Vorpal> Phantom__Hoover, what server is it on?
13:44:03 <Phantom__Hoover> I don't know.
13:47:40 <Vorpal> Phantom__Hoover, nice large ocean in that screenshot too, behind the zeppelin or blimp
13:47:40 <Sgeo_> I'm going to play some more MC
13:47:48 <Sgeo_> I just wish I didn't have to do it fullscreen
13:47:53 <Vorpal> oh wait
13:47:58 <Vorpal> that is end of world is it?
13:48:02 <Phantom__Hoover> Did I mention that it's logically possible to penetrate 1-metre-thick layers of anything?
13:48:04 <Vorpal> (rendered world)
13:48:31 <Vorpal> Phantom__Hoover, of anything?
13:48:39 <Phantom__Hoover> Yep.
13:48:47 <Vorpal> Phantom__Hoover, well sure with the right tools
13:50:33 <Vorpal> Phantom__Hoover, but MC seems to match there except for bedrock. And bedrock can be explained by suspension of disbelief. And also that falling through bottom of world is annoying.
13:57:19 -!- Zuu has joined.
14:20:13 <Phantom__Hoover> Vorpal, erm, no, I mean without breaking it.
14:20:19 <Phantom__Hoover> i.e. including bedrock.
14:22:09 <Vorpal> Phantom__Hoover, are you saying you can wall through a wall of steel 1 m thick without making a hole?
14:22:49 <Phantom__Hoover> Erm, I meant in MC.
14:23:00 <Phantom__Hoover> And only horizontal layers.
14:23:04 <Vorpal> Phantom__Hoover, oh I thought this was a "look how unrealistic MC is" rant
14:23:25 <Phantom__Hoover> And only in SMP.
14:23:31 <Vorpal> hm how?
14:24:46 <Phantom__Hoover> Place track on top of layer. Place minecart on top of track. Climb into minecart. Destroy minecart.
14:26:41 <Vorpal> Phantom__Hoover, ah
14:27:10 <Vorpal> Phantom__Hoover, where does the minecart end up?
14:27:57 <Phantom__Hoover> I assume you pick it up while falling into the top-secret enemy base.
14:29:47 <Vorpal> Phantom__Hoover, what happens if the layer is 2 or 3 thick?
14:30:23 <Phantom__Hoover> Vorpal, then it doesn't work, obviously.
14:33:21 <j-invariant> Is there a channel on here for music?
14:34:57 <Phantom__Hoover> I doubt there's a decent one.
14:35:46 <j-invariant> http://www.youtube.com/watch?v=S219XUm18LA <-- This particular break is called the AMEN
14:42:13 <Phantom__Hoover> There should really be a language that compiles into a TM.
14:42:26 <j-invariant> TM?
14:42:44 <Phantom__Hoover> Turing machine?
14:44:13 <Phantom__Hoover> (I still think that http://www.youtube.com/watch?v=E3keLeMwfHY is the coolest thing ever.)
14:44:30 <j-invariant> I think it's silly
14:44:59 <j-invariant> you need a computer to build that computer
14:46:25 <j-invariant> very attractive machine though
14:47:28 <Phantom__Hoover> Yes, but to be fair an analogue control mechanism would be nigh impossible to build.
14:50:52 <Vorpal> Phantom__Hoover, analogue computers do exist though.
14:54:35 <Phantom__Hoover> Vorpal, any sophisticated enough for a TM's control mechanism?
14:54:57 <Vorpal> Phantom__Hoover, no expert on them
14:55:10 <j-invariant> what do you mean Phantom__Hoover?
14:55:15 <j-invariant> a TM control mechanism?
14:55:31 <Phantom__Hoover> The state machine?
14:55:57 <Phantom__Hoover> The bit which controls the tape?
14:56:22 <Vorpal> Phantom__Hoover, isn't that just an FSA basically?
14:56:24 <j-invariant> I don't understand. What's that to do with analogue?
14:57:02 <Phantom__Hoover> Erm. I had a point but I've forgotten it.
14:57:48 <j-invariant> "Analogue" is an absurd notation anyway
14:57:59 <j-invariant> nothing in reality is analogue
15:03:05 <oklopol> j-invariant: you'd rather explain the idea at length every time you need it rather than give it a name?
15:03:20 <j-invariant> oklopol: really?
15:03:35 <oklopol> i don't think it's at all absurd
15:03:44 <j-invariant> why not?
15:04:14 <oklopol> anyway Vorpal, a tm is nothing but an FSA with moving, reading and writing
15:05:27 <oklopol> j-invariant: digital is when we use two-valued electrical signals and no moving parts, analogue is else.
15:05:48 <j-invariant> okay, I thought it meant something else
15:06:12 <oklopol> well that's a horrible oversimplification.
15:07:02 <oklopol> the significance of the term is that almost everything happens to be digital
15:07:26 <oklopol> so just knowing the vague fact of analogueness is more than enough in many cases
15:07:58 <oklopol> but really i'm not sure what you mean by that nothing in reality is analogue
15:08:48 <oklopol> i hope your point wasn't that the universe is discrete or anything
15:09:07 <j-invariant> I meant analogue as in Newtonian physics or exact real numbers (which can hold an infinite amount of information)
15:09:42 <j-invariant> if you take these things seriously you get stupid consequences like planetary systems which reach infinity in finite time etc.
15:10:50 <oklopol> i don't know what that means. but analogue is a very concrete concept, and it refers to the kind of continuous scales the universe allows, not to computation with reals.
15:11:01 <j-invariant> yeah
15:11:03 <oklopol> what does "reach infinity" mean
15:12:11 <j-invariant> http://www.ams.org/notices/199505/saari-2.pdf
15:15:31 <oklopol> ah
15:15:43 <oklopol> so reach infinity in the obvious sense
15:16:50 <Vorpal> <oklopol> anyway Vorpal, a tm is nothing but an FSA with moving, reading and writing <-- indeed. Wasn't that what I said?
15:17:01 <oklopol> Vorpal: i was confirming that
15:17:32 <oklopol> *yes, a tm is ...
15:35:52 <Sgeo_> YouTube comment: "omfg thats diamond i picked that yeter day and thoguht it was a snowball so i threw it into the lava xD"
15:35:57 <Sgeo_> http://www.youtube.com/watch?v=NaZ6wtes58M&feature=related
15:36:14 <Phantom__Hoover> Minecraft spells "chestplate" as "chesplate".
15:36:15 <Phantom__Hoover> I despair.
15:36:40 <j-invariant> xD
15:44:27 <Phantom__Hoover> Jesus, what was that.
15:44:49 <Phantom__Hoover> Like a screech or some... oh, it's that terrifying ambience.
15:56:12 -!- Sgeo_ has changed nick to Sgeo.
15:58:48 -!- elliott has joined.
15:59:52 <Phantom__Hoover> elliott, Vorpal told me to ask you why Arc is the PHP of Lisps.
16:00:18 <elliott> Tell Vorpal I just woke up.
16:00:25 <Vorpal> I'm here
16:00:50 <elliott> Phantom__Hoover: Tell Vorpal I just woke up.
16:01:11 <elliott> 23:34:05 <hagb4rd> riddle time: imagine there are 2 doors..one leads to heaven (actually the place you want to go), the other leads to hell.. in front of each stands a guardian, one is telling the truth, and the other one lies (you don't know who lies).. u have only one(!) question to find out which door leads leads to paradise; what question would you ask? (if you already know the answer, be nice and let the others take a chance) hf
16:01:11 <elliott> !
16:01:15 <elliott> hahahahaahahahah
16:01:15 <cheater00> j-invariant: real numbers do not hold an infinite amount of information.
16:01:16 <Phantom__Hoover> Vorpal, he just woke up, apparently
16:01:18 <elliott> ahhahahahhahahahaha
16:01:21 <elliott> Phantom__Hoover: thanks
16:01:25 <elliott> cheater00: yes they do
16:01:36 <cheater00> no
16:01:38 <elliott> cheater00: consider Chaitin's omega
16:01:49 <Phantom__Hoover> cheater00, they do.
16:01:50 <Vorpal> elliott, uh, you are not on ignore. Why go through Phantom__Hoover?
16:01:54 <Phantom__Hoover> It's obvious.
16:01:58 <cheater00> every real number can be encoded by a single point on an axis.
16:02:03 <elliott> Vorpal: because i felt like it!
16:02:08 <Vorpal> ah
16:02:10 <elliott> cheater00: that single point is describable only by a real.
16:02:20 <cheater00> yes!
16:02:21 <Sgeo> It can take an infinite number of digits to, say, describe the real in binary
16:02:22 <Vorpal> elliott, you are aiming for being awake the same time as oerjan is?
16:02:27 <Phantom__Hoover> They can be represented by an infinite array of bits; ergo, they represent an infinite amount of information.
16:02:35 <cheater00> but that real is just one piece of information.
16:02:43 <elliott> Vorpal: clearly.
16:02:46 <elliott> cheater00: you do not understand information theory.
16:02:51 <Sgeo> cheater00, I have a file on my hard drive
16:02:54 <Phantom__Hoover> cheater00, do please shut up, then.
16:02:56 <cheater00> it cannot be described by a finite amount of binary data
16:02:56 <Sgeo> It's Infinity GB
16:03:02 <cheater00> Phantom__Hoover: gfy
16:03:09 <Sgeo> It does not store an infinite amount of information, as it's just one file.
16:03:21 <elliott> cheater00: you do not know what the formal definition of "information" is. accordingly, your arguments have no basis.
16:03:26 <cheater00> Sgeo: you misunderstood my point
16:03:32 <elliott> a real _does_ convey an infinite amount of information.
16:03:51 <cheater00> elliott: my point is, "finite" depends on what algebraic system you are working on
16:04:14 <Sgeo> That's "infinity" that has a tendency to vary, I think
16:04:15 <elliott> cheater00: http://en.wikipedia.org/wiki/Information_theory
16:04:16 <elliott> cheater00: thank you
16:04:18 <Vorpal> elliott, but how compressible is that real. That is also interesting (though a different issue).
16:04:23 <Sgeo> I think "finite" is usually the same, I may be wrong
16:04:33 <Vorpal> not sure I'm using the right words for it here
16:04:35 <elliott> Vorpal: well it's equivalent to a unique infinite stream of naturals.
16:04:41 <elliott> so it's exactly as compressable as that :)
16:04:44 <cheater00> in Z, you can only encode +oo with an infinite amount of numbers which tend to +oo
16:04:45 <elliott> (more or less)
16:05:04 <cheater00> in Z u {+oo} you can encode +oo in a finite amount of information
16:05:15 <elliott> cheater00: question, what makes you say that you know more mathematics than other people and act condescending towards them when clearly you have no idea at all?
16:05:26 <cheater00> i act condescending?
16:05:51 <elliott> yes
16:05:54 <cheater00> i'm just explaining myself.
16:05:56 <Sgeo> I don't think you act condescendingly. Just wrongly.
16:06:00 <cheater00> elliott: question, what makes you say that you know more mathematics than other people and act condescending towards them when clearly you have no idea at all?
16:06:01 <elliott> 23:29:42 <cheater00> <cheater00> every finite sequence has an infinity of possible continuations
16:06:01 <elliott> 23:29:43 <oklopol> didn't you insult my math skills once before?
16:06:01 <elliott> 23:29:51 <cheater00> quite possible :p
16:06:02 <Vorpal> elliott, what I was thinking of was that you can some reals, such as pi or e as a simple algorithm that can calculate it to any given precision.
16:06:02 <elliott> 23:29:51 <oklopol> yeah that's the most retarded comment i've ever heard
16:06:04 <elliott> 23:29:58 <cheater00> um
16:06:06 <elliott> 23:30:00 <oklopol> seriously
16:06:08 <elliott> 23:30:05 <cheater00> it's mathematically proven
16:06:10 <elliott> ^ this is idiotic and condescending towards oklopol
16:06:13 <elliott> enjoy /ignore
16:06:18 <j-invariant> 16:05 < elliott> 23:29:42 <cheater00> <cheater00> every finite sequence has an infinity of possible continuations
16:06:19 <cheater00> how cute
16:06:21 <j-invariant> that is correct
16:06:24 <elliott> j-invariant: indeed it is
16:06:36 <elliott> j-invariant: however, cheater00 was repeating it over and over, acting like oklopol didn't know it,
16:06:39 <cheater00> someone's got a chip on their shoulder
16:06:41 <elliott> j-invariant: and trying to use it to "disprove" that Clue works
16:06:47 <j-invariant> what LOL
16:06:53 <cheater00> i wasn't disproving anything.
16:06:58 <elliott> the fact is that that theorem has basically NO relevance ...ever...
16:07:01 <elliott> it's not some great truth
16:07:16 <cheater00> we're back to elliott making up bs
16:07:31 <cheater00> as usual when he's pissed off at something in his life and wants to channel it onto *someone*
16:07:54 <j-invariant> how is that not an attempt to make things worse?
16:08:08 <cheater00> my conversation with oklopol was fairly relaxed.
16:08:22 <cheater00> j-invariant: what i just said about elliott?
16:08:27 <elliott> lol @ logs, cheater00, always the psychoanalyst
16:08:44 <cheater00> j-invariant: how can it possibly get worse when i address the immediate problem at hand?
16:08:49 <elliott> i wonder what kind of person it takes to be a persistent troll without actually actively trying to _troll_, and then acting really stupid whenever anyone treats him like a troll
16:08:53 <j-invariant> llol at putting someone onn ignore then just reading what they say anyway X)
16:09:14 <cheater00> yeah, whatevs elliott
16:09:15 <elliott> j-invariant: it's great because i can just ignore 90% of it and yell at them for the remaining 10%
16:09:25 <j-invariant> I found masses of coal
16:09:32 <Sgeo> elliott, Atomo: Nice language or piece of crap? Same question for Slate
16:09:53 <j-invariant> What's atomo and isn't slate that copycat thing
16:09:54 <Vorpal> <elliott> lol @ logs, cheater00, always the psychoanalyst <-- what exactly is the point of /ignore then :P
16:09:56 <elliott> Sgeo: try deciding yourself...unless you're going through like 498543795345794354354 languages and need a reply
16:10:07 <cheater00> Vorpal: i'm asking myself.
16:10:08 <j-invariant> elliott: he is going through the whole list
16:10:12 <elliott> Vorpal: gets him angry, lets me ignore 90% of what he says without my irc client beeping
16:10:21 <Sgeo> It's just that Atomo and Slate are... similar
16:10:24 <Vorpal> elliott, oh you have it beep your speakers?
16:10:27 <elliott> not really. not at all in fact.
16:10:32 <elliott> Vorpal: when someone highlights me, yes. i find it useful.
16:10:35 <j-invariant> atomo: Hey guys, guys check this out: What if we took scheme right.. and then ... changed the syntax to look like ruby!
16:10:55 <cheater00> elliott: being on ignore doesn't make me angry, you making up bs and getting angry at me for no reason like a hormonal 13 year old girl on a rag makes me angry
16:10:56 <elliott> Sgeo: atomo i don't...care about... at all... it's just...not interesting in the slightest and doesn't innovate at all really
16:11:05 <Vorpal> elliott, i just make it flash the emacs "button" in the taskbar.
16:11:18 <j-invariant> I don't know anything about slate
16:11:23 <elliott> Sgeo: slate is interesting! i have talked to the people behind it. it's prototype-based but with multiple-dispatch.
16:11:32 <elliott> but...it's still a mutable, imperative OO language
16:11:40 <elliott> and i'm completely sick of them.
16:11:42 <Sgeo> Isn't Atomo also prototype-based with multiple-dispatch?
16:11:46 <elliott> they are very much not the way forward.
16:11:48 <elliott> Sgeo: i don't know nor care
16:12:03 <elliott> okay, looks like it. but it's irrelevant.
16:12:07 <elliott> firstly, it's just a toy language.
16:12:14 <elliott> secondly, Erlang's concurrency model sucks.
16:12:21 <elliott> thirdlyi t's just ... how can you even get interested in it
16:12:22 <elliott> it's shit
16:12:30 <elliott> it is impossible to care about
16:12:54 <elliott> also it has macros, which are anti-features.
16:12:59 <j-invariant> anti-features
16:13:00 <j-invariant> ?
16:13:01 <Sgeo> It's like a prettier Slate.. missing some Slate stuff
16:13:10 <elliott> slate is pretty.
16:13:16 <elliott> j-invariant: "features" that make a language worse
16:13:19 <Sgeo> @ is not pretty
16:13:21 <elliott> j-invariant: example: mutability
16:13:24 <j-invariant> I like macros in Scheme
16:13:26 <Sgeo> The rest of it is, @ is not.
16:13:33 <elliott> Sgeo: good to know we're still extremely superficial
16:13:53 <Sgeo> Although.. it might be easier to understand than whatever magic Atomo does
16:14:12 <elliott> atomo also has bad concurrency and macros, as i said. two points against it.
16:14:18 <elliott> also, slate is an actual project, atomo is a toy language.
16:14:27 <Phantom__Hoover> <elliott> also it has macros, which are anti-features. ← even the Lispy ones?
16:14:32 <Sgeo> Slate seems to have taken a hiatus, and is just now waking up
16:14:40 <elliott> Phantom__Hoover: pretty much.
16:14:47 <elliott> Sgeo: it has been going since the 90s. their irc channel is relatively active.
16:14:58 <elliott> Sgeo: it still works fine. :p
16:14:59 <Sgeo> The huge manual is supposedly obsolete, there are no up-to-date binaries
16:15:06 <Phantom__Hoover> elliott, how do they make the language worse?
16:15:09 <elliott> Downloads
16:15:09 <elliott> slate.little.32.2011-01-01.image.bz2
16:15:09 <elliott> slate.little.64.2010-04-01.image.bz2
16:15:10 <elliott> Show all »
16:15:12 <elliott> Sgeo: no up to date binaries?
16:15:20 <Sgeo> I stand corrected
16:15:29 <Sgeo> "Release Overview (Currently Old Releases Only)"
16:15:29 <elliott> Phantom__Hoover: (f (g hello) (h))
16:15:31 <elliott> Phantom__Hoover: this can't be the same as
16:15:37 <Sgeo> Why do they say "old releases only" then?
16:15:43 <elliott> Phantom__Hoover: (let ((hello 2)) (f (g hello) (h))
16:15:44 <Sgeo> Wait
16:15:46 <elliott> Sgeo: those are snapshots, I believe
16:15:55 <elliott> Phantom__Hoover: basically... you can't rely on anything with function applications
16:15:58 <elliott> Phantom__Hoover: every invariant breaks
16:16:07 <Phantom__Hoover> Ah, right.
16:16:09 <Sgeo> Ah, got it
16:16:47 <elliott> Phantom__Hoover: it is possible to manage this but i'm gradually and gradually getting more pissed off that the computer doesn't tell me when i did something stupid
16:16:56 <elliott> Phantom__Hoover: also, 60% of what you want macros for can be done with lazy evaluation.
16:17:30 <Sgeo> Ioke differentiates between macros and functions such that macros are just functions that are call-by-name, Io style
16:17:43 <elliott> the remaining 40% can be either reworked to be slightly different and not require a macro somehow, or can be done with something like Template Haskell that, yes, is big and ugly to use, but you get signs in your code yelling "HEY I AM CALLING A MACRO HERE", and besides, you shouldn't use it much anyway
16:17:45 <elliott> *anyway.
16:18:01 <elliott> Phantom__Hoover: also: macros introduce more of a "compile time"
16:18:05 <elliott> semantically
16:18:08 <elliott> whereas lazy evaluation doesn'
16:18:08 <elliott> t
16:18:52 <Sgeo> elliott, how out of date is http://files.slatelanguage.com/progman/ ?
16:19:27 <elliott> Sgeo: #slate
16:19:43 <elliott> clog-logged, I would add.
16:19:48 <elliott> TUNES represent :)
16:20:51 <Sgeo> "their irc channel is relatively active."
16:20:52 <Sgeo> LIES
16:21:19 <elliott> Sgeo: perhaps because they haven't had a sgeo to irritate them.
16:27:17 <j-invariant> so I have to somehow aquire like a million iron ingots
16:27:23 <elliott> j-invariant: why?
16:27:35 <j-invariant> so I can make a track from the spawnpoint to somewhre interesting
16:27:52 <elliott> j-invariant: make sure to make it underground :P
16:27:57 <Sgeo> Ugh
16:27:58 <j-invariant> why?
16:27:58 <elliott> or high in the air would probably be ok
16:28:01 <elliott> j-invariant: mobs will walk on it
16:28:05 <Sgeo> Also need to install git
16:28:05 <elliott> and you'll bash into them
16:28:09 <j-invariant> hmm
16:28:10 <elliott> and your booster energy will go
16:28:15 <elliott> j-invariant: make sure to use boosters, not powered minecrats
16:28:17 <elliott> *minecarts
16:28:21 <elliott> unless you want a really slow ride
16:28:25 <j-invariant> I want a very fast :P
16:28:31 <elliott> j-invariant: impossible :) but boosters are close
16:28:37 <elliott> j-invariant: http://www.minecraftwiki.net/wiki/Minecart_booster
16:28:57 <elliott> j-invariant: it's a "bug" but although some people it's being fixed i'm not sure it will be in the short term at all, everyone uses them
16:29:03 <elliott> and it's SO MUCH FASTER than powered carts
16:29:27 <j-invariant> it is being fixed? :(
16:29:41 <elliott> j-invariant: well. some people say it is but i haven't actually seen evidence
16:29:50 <Sgeo> Hmm
16:29:52 <elliott> j-invariant: anyway, easy enough to convert to whatever it gets replaced with when that happens.
16:29:58 <elliott> just removing them would be a joke, powered carts are useless
16:29:58 <Sgeo> Actually, I think I understand @ a bit better
16:30:02 -!- Mathnerd314 has joined.
16:30:05 <elliott> use a minecart enhancement mod if that happens :P
16:30:20 <j-invariant> wow http://www.youtube.com/watch?v=0v5cAFYouWY#t=4m52s cool
16:30:25 <elliott> j-invariant: anyway one booster can keep you going for hundreds of blocks
16:30:29 <elliott> so you only really need...one
16:31:53 <elliott> j-invariant: btw, an "easy" way to make a resetting booster is to make it go upwarda fater the cart leaves and hit a wall :D
16:31:54 <elliott> *upwards after
16:31:59 <elliott> but using the south-west rule is more reliable
16:35:09 <j-invariant> http://www.youtube.com/watch?v=19PZA1tnKtg cool
16:36:37 <Sgeo> elliott, Slate has macros
16:36:47 <elliott> antifeature indeed
16:36:58 <j-invariant> why?
16:37:17 <elliott> j-invariant: http://www.youtube.com/watch?v=4PA2uLm8ups enjoy being crepeed out
16:37:18 <elliott> why what?
16:37:38 <j-invariant> you're against macros?
16:37:44 <elliott> j-invariant: pretty much :)
16:37:54 <j-invariant> why!
16:38:13 <elliott> j-invariant:
16:38:15 <elliott> 16:15 elliott: Phantom__Hoover: (f (g hello) (h))
16:38:15 <elliott> 16:15 elliott: Phantom__Hoover: this can't be the same as
16:38:15 <elliott> 16:15 Sgeo: Why do they say "old releases only" then?
16:38:17 <elliott> 16:15 elliott: Phantom__Hoover: (let ((hello 2)) (f (g hello) (h))
16:38:19 <elliott> 16:15 Sgeo: Wait
16:38:21 <elliott> 16:15 elliott: Sgeo: those are snapshots, I believe
16:38:23 <elliott> 16:15 elliott: Phantom__Hoover: basically... you can't rely on anything with function applications
16:38:25 <elliott> 16:15 elliott: Phantom__Hoover: every invariant breaks
16:38:27 <elliott> 16:16 elliott: Phantom__Hoover: it is possible to manage this but i'm gradually and gradually getting more pissed off that the computer doesn't tell me when i did something stupid
16:38:29 <elliott> 16:16 elliott: Phantom__Hoover: also, 60% of what you want macros for can be done with lazy evaluation.
16:38:31 <elliott> 16:17 Sgeo: Ioke differentiates between macros and functions such that macros are just functions that are call-by-name, Io style
16:38:33 <elliott> 16:17 elliott: the remaining 40% can be either reworked to be slightly different and not require a macro somehow, or can be done with something like Template Haskell that, yes, is big and ugly to use, but you get signs in your code yelling "HEY I AM CALLING A MACRO HERE", and besides, you shouldn't use it much anyway
16:39:03 <Sgeo> Slate's macros require knowing that you're calling a macro, I think
16:40:30 <elliott> j-invariant: http://www.minecraftwiki.net/wiki/Minecart_booster has all kinds of boosters
16:40:56 <elliott> j-invariant: lol http://www.minecraftwiki.net/images/f/fa/Minecart-booster-door-1.jpg "well it's not like i haven't used 3485739845 iron anyway, i'll make some blocks of it"
16:43:35 <Sgeo> I don't like the idea that, in a message send, a clone of a clone of a clone of an object (essentially, a child) is not necessarily the same as the object itself in choosing what's dispatched
16:43:45 <Sgeo> Maybe I'm misunderstanding it
16:46:17 <elliott> Vorpal: house built on top of ice: best idea?
16:47:33 <oklopol> <elliott> oklopol: well... remind me to fix what i broke in the zip impl tomorrow. dunno what. :(. also: remind me to make that auto-realigning emacs mode. in fact just copy this to a file and restate it to me.
16:47:55 <elliott> Vorpal: oh wait bad idea, can't build underground
16:47:56 <elliott> oklopol: yess indeed i will do that in 2 min
16:47:56 <elliott> s
16:49:57 <Vorpal> elliott, eh. house on top of ice sounds cool, and cold. And dark since you can't use torches
16:50:49 <Vorpal> <elliott> j-invariant: lol http://www.minecraftwiki.net/images/f/fa/Minecart-booster-door-1.jpg "well it's not like i haven't used 3485739845 iron anyway, i'll make some blocks of it" <-- ignoring the iron blocks the idea is still very neat
16:51:29 <Vorpal> elliott, btw tried out the two winner texturepacks (well, not the second place one, that candy one). Both are way too dark in colours for me.
16:51:46 <Vorpal> eldpack is somewhat better when it comes to that, but still too dark
16:52:07 <Vorpal> http://www.minecraftwiki.net/wiki/File:Minecart-booster-door-2.jpg <-- why!?
16:52:43 <Vorpal> oh I guess it can't go into the block fully
16:52:45 <Vorpal> that must be why
16:55:20 <elliott> OK. I built a path from spawn to my new house (out of wood markers). It's in a nice area. I have a sword.
16:55:26 <elliott> But I need coal!
16:55:37 <elliott> And there are no mountains to speak of nearby.
16:55:40 <Vorpal> elliott, oh where is that house?
16:55:43 <Vorpal> it sounds fun
16:55:48 <Vorpal> elliott, you finally getting a house I mean
16:55:54 <elliott> Vorpal: Er, on my single-player game.
16:55:58 <Vorpal> elliott, oh okay
16:57:21 <elliott> "As opposed to PostScript?
16:57:21 <elliott> I learned Japanese well after I learned PostScript. It turned out to my delight that Japanese and PostScript grammar have quite a lot in common. I don't know why it hasn't made the Japanese masters at writing clever PostScript though.
16:57:21 <elliott> Oh wait."
16:57:26 <elliott> (oh wait is link to obfuscated raytracer in postscript)
16:57:30 <elliott> so that's why anagolf is full of postscript ;)
16:57:31 <elliott> *:)
16:57:42 <elliott> oklopol: ok i'ma code now
16:58:13 <elliott> File "/Users/ehird/clue/clue.py", line 425, in call_clue
16:58:13 <elliott> return call_branch(clue,default,args,depth_lim)
16:58:13 <elliott> File "/Users/ehird/clue/clue.py", line 411, in call_branch
16:58:15 <elliott> suboutputs.append(call_clue(clue,subinputs,depth_lim-1))
16:58:17 <elliott> File "/Users/ehird/clue/clue.py", line 425, in call_clue
16:58:19 <elliott> return call_branch(clue,default,args,depth_lim)
16:58:20 <elliott> File "/Users/ehird/clue/clue.py", line 411, in call_branch
16:58:23 <elliott> suboutputs.append(call_clue(clue,subinputs,depth_lim-1))
16:58:24 <elliott> File "/Users/ehird/clue/clue.py", line 425, in call_clue
16:58:27 <elliott> return call_branch(clue,default,args,depth_lim)
16:58:29 <elliott> oklopol: that's bad, isn't it
17:02:08 <elliott> oklopol: can i er
17:02:10 <Vorpal> elliott, in /general/ backtraces probably are bad.
17:02:11 <elliott> have your files
17:02:14 <elliott> to figure out what i broke
17:02:21 <Vorpal> elliott, though iirc there is some esolang based on error handling?
17:02:33 <elliott> Vorpal: no this is example based programming, the most powerful paradigm
17:02:38 <elliott> and i lost all my py files and my release doesn't work
17:02:44 <Vorpal> elliott, I didn't say that one was based on errors
17:02:50 <Vorpal> elliott, please read what I said :)
17:02:58 <elliott> i did
17:02:59 <elliott> i discarded it
17:03:09 <elliott> oklopol: oh wait... it actually works, just depth limit errors turn into stack overflows
17:03:12 <elliott> oklopol: is that...right?
17:03:16 <Vorpal> elliott, <Vorpal> elliott, though iirc there is some esolang based on error handling? <elliott> Vorpal: no this is example based programming, the most powerful paradigm <-- this exchange makes no sense
17:03:52 <Vorpal> <elliott> and i lost all my py files and my release doesn't work <-- how?
17:04:10 <elliott> rm *.pyc ----> rm *.py, and no, i'm not going to alias it into rm -i, i'm just going to be more careful
17:04:26 <elliott> now i'm just trying to figure out why the zip i made doesn't work the same
17:04:27 <Vorpal> elliott, a decent compromise might be rm -I ?
17:04:39 <elliott> my rm does not have that option :)
17:05:03 <Vorpal> elliott, oh okay. For being a GNU extension (I assume) it is damn useful
17:07:03 <elliott> http://sprunge.us/EAUF didn't quite realise how tiny the Luatre implementation is
17:07:07 <elliott> cool :D
17:07:32 <Vorpal> elliott, Luatre?
17:07:44 <elliott> a language for calling Clue programs, basically.
17:07:48 <Vorpal> ah
17:07:49 <elliott> luatre, the clue bot, uses it.
17:07:52 <elliott> and also the clue repl i wrote.
17:08:13 <Vorpal> elliott, the function names...?
17:08:45 <elliott> Vorpal: well "eval" is python's.
17:08:49 <elliott> "run" is another thing.
17:08:55 <Vorpal> elliott, also where is "cabinetoflaughter" called apart from inside itself?
17:09:02 <elliott> Vorpal: um that's a module
17:09:04 <elliott> other things call it
17:09:06 <elliott> for instance the repl and the bot
17:09:11 <elliott> cabinetoflaughter is just your eval func, obviously
17:09:12 <Vorpal> elliott, oh so it isn't the whole thing then
17:09:15 <elliott> yes it is
17:09:17 <elliott> it's the whole language impl
17:09:22 <elliott> cabinetoflaughter(park(code)[0]) is what other things do
17:09:25 <elliott> to provide a UI
17:09:31 <Vorpal> ah right
17:10:10 <Vorpal> elliott, are the other functions part of the public API too?
17:10:20 <Vorpal> (doesn't python use some special naming convention for private?)
17:10:31 <oklopol> nothing is public, clue and all tools related to it are closed source
17:10:34 <oklopol> that you have to pay for
17:10:45 <Vorpal> oklopol, a very different sense of public :P
17:10:59 <oklopol> unless you really want to distribute them and download them for free
17:11:25 <oklopol> oh indeed, i didn't read context at all
17:11:26 <elliott> oklopol: is it ok if the interp stack overflows sometimes rather than, say, raising a depth overflow thingy
17:11:51 <oklopol> not really, if that means the program crashes
17:11:58 <oklopol> i don't care what error messages say tho
17:12:07 <oklopol> also, it's your interpreter, what does my opinion matter
17:12:19 <elliott> oklopol: it's your interp that i'm modifying :p
17:12:25 <elliott> oklopol: in call branch,
17:12:26 <elliott> suboutputs.append(call_clue(clue,subinputs,depth_lim-1))
17:12:26 <oklopol> oh indeed it is
17:12:31 <oklopol> i figured you were just asking
17:12:34 <elliott> shouldn't that immediately return None if that returns none?
17:12:37 <oklopol> what luatre should print out or something
17:12:41 -!- lambdabot has joined.
17:12:43 <elliott> yeah?
17:13:05 <oklopol> well i don't care what luatre prints out
17:13:17 <elliott> it's not luatre
17:13:20 <elliott> it's the damn clue.py
17:13:27 <oklopol> i thought
17:13:42 <oklopol> "<elliott> yeah?" meant "yes, it's luatre whose output we're talking about"
17:13:50 <elliott> :D
17:13:50 <oklopol> which i don't care about, as such
17:14:08 <elliott> i'll work it out later
17:14:16 <elliott> if depth_lim==0:
17:14:16 <elliott> return ["nothing here"]
17:14:16 <oklopol> yeah you can make it immediately return none
17:14:16 <elliott> that should be return None right..?
17:14:24 <elliott> also, i tried that, but it didn't stop the stack overflow, so nm :)
17:14:27 <oklopol> erm...
17:14:32 <elliott> but yeah shouldn't nothing here be None...
17:14:41 <oklopol> right runtime errors are currently "nothing here" :D
17:14:50 <oklopol> but yeah you should totally change all those to None
17:14:58 <Vorpal> elliott, btw if you use version control rm *.py will be non-fatal (sure, changes since last commit would be lost)
17:15:08 <Vorpal> (but that is much less of a problem)
17:15:08 <elliott> Vorpal: it's oklopol. so no
17:15:11 <oklopol> because failed runs will also return "nothing here"'s when you use them for inference
17:15:16 <elliott> oklopol: except i think it's a compile time error too
17:15:17 <elliott> right
17:15:17 <elliott> yeah
17:15:23 <oklopol> i've used a version control system once!
17:15:29 <oklopol> for an actual project
17:15:30 <Vorpal> oklopol, which one?
17:15:43 <oklopol> the program was called tortoisesvn
17:15:51 <fizzie> Vorpal: Incidentally, turns out the N900 default camera app also has a manual white-balance knob nowadays (added by one of the firmware updates, I think); it still doesn't really have any other manual controls (like exposure/focus), but at least that's something.
17:16:01 <fizzie> That's a Windows Subversion client.
17:16:02 <elliott> oklopol: i changed all one instance and nothing changed :D
17:16:18 <oklopol> why would anything happen
17:16:18 -!- cheater- has joined.
17:16:57 <oklopol> if there's a stack overflow, then clearly the "nothing here" thing is not reached, as that cuts the search.
17:17:04 <elliott> oklopol: because i'm getting a stack overflow when given a wrong program and depth_lim should be catching it!!
17:17:16 -!- cheater00 has quit (Ping timeout: 240 seconds).
17:17:20 <elliott> also, i'm not sure it does, there's no checks for nothing here :D
17:17:21 <elliott> anywhere
17:17:21 <oklopol> if your depth_lim is small enough, then sure
17:17:31 <elliott> it's 5...
17:17:49 <oklopol> but the search should never be able to continue more than depth lim deep
17:17:50 <elliott> def unvararg(f,n):
17:17:51 <elliott> vrs=",".join(["n"+str(i) for i in xrange(n)])
17:17:51 <elliott> l="lambda "+vrs+" : f("+vrs+")"
17:17:52 <elliott> return eval(l,{"f":f})
17:17:54 <elliott> genius
17:18:09 <oklopol> is depth lim always decremented when you recurse in the interp?
17:18:19 <elliott> oklopol: it's YOUR interp :D
17:18:33 <elliott> oklopol: but uh
17:18:34 <elliott> if not demolishing_done or not first_round:
17:18:34 <elliott> new_depth_lim=depth_lim-1
17:18:35 <elliott> else:
17:18:37 <elliott> new_depth_lim=depth_lim
17:18:40 <elliott> not sure what that's about, you added it
17:18:40 <oklopol> note that it's possible that there's a huge stack of functions calls that were inferred, and can't be caught by the interp
17:18:48 <oklopol> that's during compilation
17:20:09 <elliott> should that stay?
17:20:21 <elliott> i guess so, changing it doesn't do anything
17:20:29 <elliott> lesson: don't write invalid programs
17:20:36 <Vorpal> fizzie, nice
17:21:01 <Sgeo> elliott, ANIC. Worth learning or illegible mess?
17:21:02 <oklopol> :D
17:21:11 <Sgeo> Dataflow programming sounds fun
17:21:17 <j-invariant> Sgeo: what's special about it?
17:21:20 <oklopol> have you tried example-driven programming?
17:21:26 <oklopol> i hear it's the new c++!
17:21:41 -!- luatre has joined.
17:21:50 <fizzie> Vorpal: Tried it out on the boat (they have that "promenade" walking-thing) but unfortunately it has randomly cycling coloured lighting, which pretty much does the same thing as a randomly fluctuating white-balance.
17:22:10 <elliott> ::: http://www.vjn.fi/pb/p6237641484.txt
17:22:10 <luatre> Downloading...
17:22:11 <luatre> Compiling, just a minute...
17:22:11 <luatre> Compiled in 0.0759010314941 seconds
17:22:11 <luatre> factorial: [#0] | _ => factorial loop(#0 1)
17:22:11 <luatre> stack-hogging factorial: [#0] | 0 => multiply(pred(0) pred(0)) | _ => multiply(#0 @(pred(#0)))
17:22:11 <luatre> factorial loop: [#0] | 0 => #1 | _ => @(pred(#0) multiply(#0 #1))
17:22:11 <luatre> fibonacci: [#0] | _ => fast fibonacci loop(#0 0 1)
17:22:12 <luatre> fast fibonacci loop: [#0] | 0 => #1 | _ => @(pred(#0) #2 add(#1 #2))
17:22:12 <luatre> slow fibonacci: [#0] | 0 => 0 | 1 => 1 | _ => add(@(pred(#0)) @(pred(pred(#0))))
17:22:17 <Vorpal> fizzie, oh right you are in Sweden now?
17:22:20 <elliott> :. factorial(100)
17:22:20 <luatre> 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000L
17:22:28 <fizzie> Vorpal: No, I was on Saturday; we're home now.
17:22:32 <Vorpal> fizzie, ah
17:22:40 <elliott> oklopol: how hard would it be to make the interp tail-recursive? i'm guessing very
17:25:09 <oklopol> easiest way would be to notice tail rcursion at runtime, and just hack up a tail recursive python call
17:25:22 <oklopol> but, i'd just compile to bytecode, in which case it's eay
17:25:25 <oklopol> *easy
17:26:09 <oklopol> or actually
17:27:40 <elliott> there are no tail recursive python calls really :)
17:27:44 <oklopol> hmm, yeah i don't know if there's a way to easily make a while loop out of that, it would get messy with functions that can branch in multiple ways
17:27:45 <elliott> oklopol: def name(n):return map(chr,range(97,123))[n%26]+"'"*(n/26)
17:27:49 <oklopol> that's why hack up
17:27:51 <elliott> oklopol: thought you might enjoy that function
17:27:58 <oklopol> it's not that hard to change the contents of the stack
17:28:11 <elliott> it gives a,b,c,...,z,a',b',..,z',a'',b'',...,...,f''''
17:29:28 <oklopol> i just love that function
17:30:26 <elliott> hmm
17:30:49 <elliott> >>> dict(enumerate([1,2,3]))
17:30:49 <elliott> {0: 1, 1: 2, 2: 3}
17:30:50 <elliott> yess :D
17:31:00 <elliott> r='('+', '.join(names)+') => ['+past(clue.condast,dict(enumerate(names)))+'] '
17:31:24 <elliott> oh wait i need # in front
17:31:35 <elliott> oklopol: so have you added constants to branchers yet :D
17:31:44 -!- augur has changed nick to augur[afk].
17:32:07 <fizzie> map(chr,range(97,123))[n%26] looks far more sensibly written as chr(97+n%26).
17:32:17 <elliott> fizzie: GOOD POINT
17:32:21 <elliott> and even uglier too
17:32:23 <elliott> well
17:32:24 <elliott> less comprehensible
17:34:29 <elliott> RuntimeError: maximum recursion depth exceeded while calling a Python object
17:34:30 <elliott> what
17:34:33 <elliott> oklopol: i broke qsort:DDDD
17:34:40 <oklopol> fizzie's is better
17:34:48 <elliott> yeah id id
17:34:49 <oklopol> well that happens
17:34:57 <oklopol> life is like thate
17:34:58 <oklopol> *that
17:35:00 <elliott> Exception: Syntax error: ,[2]]]]
17:35:00 <elliott> wtf
17:35:03 <oklopol> sometimes things go well
17:35:04 <elliott> there is no , in the source
17:35:05 <oklopol> and then suddenly
17:35:15 <elliott> nowait i broke ski did i
17:35:16 <oklopol> recursion depth is exceeded
17:35:22 <oklopol> probably both
17:35:45 <elliott> ski seems to work
17:35:51 <elliott> i will fix qsort soon
17:35:58 <elliott> oklopol: DONE CONSTANTS IN BRANCHERS YET?
17:36:11 <oklopol> no.
17:37:20 <elliott> oklopol: will you ever or do i have to SLAVE over the code.
17:38:21 <oklopol> well i might even do it today, it's like two lines of code
17:38:25 <elliott> omg the output is almost beautiful :DD
17:38:32 <oklopol> but i should really try to read these couple of pages i have left
17:39:02 <elliott> btw you know that your compare function is just python's cmp? :D
17:40:12 <oklopol> it's really not
17:40:20 <elliott> howso
17:40:27 <oklopol> try changing it to cmp
17:40:31 <elliott> oh, it's reversed
17:40:32 <elliott> -cmp then
17:40:45 <oklopol> no but cmp is a builtin
17:40:52 <oklopol> so my function check fails
17:40:53 <oklopol> ;D
17:40:57 <elliott> oklopol: nono i just mean
17:41:00 <elliott> the body can be replaced :P
17:41:03 <oklopol> ohh
17:41:04 <elliott> oklopol: so wait is it cmp or -cmp
17:41:09 <oklopol> well that is of course true
17:41:10 <elliott> i've turned it into
17:41:10 <oklopol> umm
17:41:12 <elliott> def compare(a,b):
17:41:12 <elliott> if not isint(a,b):return None
17:41:12 <elliott> return cmp(a,b)
17:41:12 <oklopol> what does that matter?
17:41:18 <oklopol> those are the same thing in clue
17:41:19 <elliott> because it changes the behaviour? :D
17:41:20 <elliott> oh wait
17:41:20 <elliott> haha
17:41:22 <elliott> omg i love clue
17:41:43 <oklopol> yeah, that's probably the awesomest thing about the language
17:41:52 <oklopol> you can change even the interface of functions
17:41:57 <oklopol> without telling anyone
17:41:57 <elliott> | 3 => @(pair(#1 #2))
17:41:59 <elliott> waaait what...
17:42:02 <elliott> ski apply only has one parameter
17:42:04 <elliott> ??
17:42:13 <oklopol> yeah, the current string
17:42:17 <oklopol> that's being rewritten
17:42:20 <Sgeo> I think I just had an effect on the evolution of Slate and Atomo
17:42:27 <elliott> oklopol: yes, but
17:42:34 <elliott> oklopol: the param is #0
17:42:39 <elliott> so wtf are #1 and #2 :D
17:42:42 <elliott> i already replace helper objs
17:43:03 <oklopol> Sgeo: did you hear that in example-driven programming, you can change the sign of the output of your api function, and no one using that function will have to change their code. well, usually anyway.
17:43:19 <oklopol> that's the latest buzz of the example-driven programming community
17:43:30 <oklopol> btw is there such a term already, i didn't actualyl check :D
17:43:32 <oklopol> *actually
17:43:36 <Sgeo> oklopol, um... what? How does that happen?
17:43:37 <elliott> i doubtit :P
17:43:40 <elliott> *doubt it
17:43:42 <elliott> Sgeo: cleverly
17:43:48 <oklopol> elliott: no idea what #1 and #2 are.
17:43:57 <elliott> oklopol: :DDD
17:44:03 <elliott> i like how printing this is fucking hard
17:44:03 <oklopol> :D
17:44:20 -!- VelcroMan has joined.
17:44:21 <oklopol> i should probably try to find out how that numbering thing works at some point
17:44:33 <oklopol> or better yet, you should :D
17:44:35 <elliott> i have a feeling it's like
17:44:37 <elliott> totally broken
17:44:54 <oklopol> wellllll
17:44:58 <oklopol> that happens
17:44:59 <elliott> oklopol: what i'm doing if you can't tell, is naming the arguments
17:44:59 <oklopol> that's life
17:45:07 <elliott> in the printout
17:45:09 <oklopol> well i could've guessed that
17:45:12 <oklopol> didn't tho
17:45:14 <elliott> just because it WASN'T READABLE ENOUGH
17:45:34 <elliott> okay...deep first's compilation is...very very wrong :D
17:45:42 <elliott> oklopol: you should see this:
17:45:49 <elliott> ---- deep first
17:45:49 <elliott> (a) => [car(a)]
17:45:49 <elliott> | _ => a
17:45:51 <elliott> | _ => @(car(a))
17:45:56 <elliott> :DDDD
17:46:33 <oklopol> one idea that i had was that 5x"."'d be used for these sort of clue lambdas, where you give an example of a subcomputation; unfortunately this would mean you could just show it the whole computation
17:46:43 <elliott> oklopol: ^^
17:46:48 <Sgeo> elliott, is Mozart/Oz dead?
17:46:52 <elliott> oklopol: what...it works
17:46:57 <elliott> oklopol: how
17:47:06 <oklopol> what?
17:47:08 <oklopol> two _'s?
17:47:11 <elliott> oklopol: oH
17:47:17 <elliott> oklopol: clue has figured out that if car returns None
17:47:21 <elliott> then it's not a list
17:47:27 <elliott> and so it can return the element directly
17:47:27 <elliott> i.e.
17:47:40 <elliott> deep first([[1] 2]) -> deep first([1]) -> deep first(1) -> car returns None -> 1
17:47:41 <elliott> oklopol: BUT
17:47:44 <elliott> oklopol: it also has a default branch
17:47:49 <elliott> and both are represented in the ast by None :D
17:47:57 <elliott> oklopol: tl;dr your code doesn't give up on None for some reason
17:47:58 <elliott> or my code :P
17:48:04 <elliott> so it's actually matching on None itself
17:48:07 <elliott> to use car to do is list?
17:48:24 <oklopol> it's very possible that that's true
17:48:30 <oklopol> i haven't thought about failing at all
17:48:41 <elliott> oklopol: so what functions actually call to test things :P
17:48:55 <elliott> oklopol: ALSO surely raising some special exception would be more reliable than None
17:49:00 <elliott> since...
17:49:02 <elliott> things like this
17:49:03 <elliott> not handling it
17:49:16 <oklopol> the compiler makes sure that all computation is legal, and no Nones are seen
17:49:31 <elliott> oklopol: well it...doesn't :)
17:49:35 <elliott> otherwise this func would never be generated
17:49:54 <oklopol> there's no condition?
17:49:55 <oklopol> just a?
17:50:05 <elliott> umm the [] bit is the condition
17:50:09 <elliott> oklopol: a is the param
17:50:12 <oklopol> oh alright
17:50:14 <elliott> ---- deep first
17:50:15 <elliott> (a) => [car(a)]
17:50:15 <elliott> | _ => a
17:50:16 <elliott> | _ => @(car(a))
17:50:18 <elliott> so this is actually
17:50:28 <elliott> case car(a) of None -> a; _ -> recurse(car(a))
17:50:31 <elliott> which should never be generated, of course
17:50:35 <elliott> ever
17:50:41 <elliott> i.e., it's doing
17:50:42 <oklopol> lemme look at code...
17:50:47 <elliott> case is list?(a) of 0 -> a; 1 -> recurse(car(a))
17:50:53 <elliott> oklopol: do you want my current files :P
17:51:12 <oklopol> not really
17:51:23 <oklopol> as stupid as that is.
17:52:41 -!- VelcroMan has quit (Ping timeout: 246 seconds).
17:53:17 <oklopol> oh shit
17:53:33 <oklopol> wait no
17:53:54 <oklopol> car should throw an exception if it's called with illegal input during search
17:54:04 <elliott> oklopol: well.......
17:54:06 <oklopol> and in that case, the resulting object is not added to the list of available objects
17:54:10 <elliott> oklopol: where do you call functions in a search?
17:54:13 <elliott> I'll make it handle None
17:54:17 <oklopol> try:
17:54:17 <oklopol> newobj=applier(fun,subsetobjs)
17:54:17 <oklopol> if newobj==None:continue
17:54:17 <oklopol> except:
17:54:17 <oklopol> continue
17:54:22 <elliott> oklopol: yeah no i removed that :D
17:54:30 <elliott> it's now
17:54:31 <elliott> newobj=applier(fun,subsetobjs)
17:54:31 <elliott> if newobj==None:continue
17:54:33 <elliott> oklopol: but note ==None:
17:54:37 <elliott> car DOES return None given illgeal input
17:54:38 <elliott> in my version
17:54:39 <elliott> *illegal
17:54:42 <oklopol> well obviously it doesn't work if you break it
17:54:47 <elliott> def car(l):
17:54:47 <elliott> if not isinstance(l,list) or not l:return None
17:54:47 <elliott> return l[0]
17:54:48 <elliott> see above
17:54:50 <elliott> i didn't break it
17:54:53 <elliott> it returns None
17:54:57 <elliott> so it gives exactly the same results
17:55:03 <elliott> because you do the same on newobj==None and <exception raised>
17:55:13 <elliott> mhm?
17:55:16 <oklopol> i do, so what, it doesn't work after that correction?
17:55:26 <oklopol> *i do;
17:55:46 <elliott> oklopol: i'd like to point out that i removed it so that i got useful exceptions rather than "depth limit" for all of them :)
17:55:53 <elliott> considering the way of failure is to return None
17:56:03 <oklopol> yeah yeah it was a good change, if you fixed functins appropriately
17:56:05 <oklopol> *functions
17:56:07 <elliott> oklopol: anyway, i have no idea why it wouldn't work in my version, since it's functionally equivalent, are you sure your version doesn't produce the same output?
17:56:12 <elliott> and yeah i did
17:56:28 <oklopol> i'm not sure my version doesn't produce the same output, no
17:56:34 <oklopol> i don't have a good way to check
17:56:38 <elliott> oklopol: cluetest.py
17:56:42 <elliott> python cluetest.py numplay.clue
17:56:48 <elliott> remember to fix the 3 -> 6 example in factorial first
17:56:50 <elliott> it's 3 -> something else
17:56:54 <elliott> in the version you have
17:57:47 -!- VelcroMan has joined.
17:58:34 -!- Behold has joined.
17:59:11 <elliott> hmm this person must be an esolanger...
17:59:27 <Sgeo> elliott, you must tell me your thoughts on Oz. I'll tell you my thoughts: It's large, but... fascinating. Just wish I was more confident that it was actively worked on
18:00:18 <oklopol> erm, can i give parameters to the program from the IDE, adding python to my command line path sounds like a chore, and the default python is 3.1 so i can't drag and drop; you don't use the same IDE tho
18:00:33 <elliott> oklopol: erm...maybe
18:00:50 <elliott> oklopol: import sys; sys.argv=['','numplay.clue']; import cluetest
18:02:29 <oklopol> a fucking million useless settings for permissions, but you can't make python.exe not fucking close the terminal after running
18:02:32 <oklopol> i fucking hate this os
18:02:33 <oklopol> i fucking hate it
18:02:34 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
18:02:51 <oklopol> arghh
18:02:52 <elliott> oklopol: trying it from the cmd line instead? :p
18:02:55 <oklopol> i hate command line arguments
18:03:02 <elliott> oklopol: just do it in cmd.exe and write out the full path to python or something
18:03:05 <oklopol> i dragged-and-dropped
18:03:06 <elliott> or
18:03:09 <elliott> it might actually be in the path
18:03:10 <elliott> i think python adds it
18:03:10 <oklopol> changed default python
18:03:16 <elliott> ah.
18:04:20 <oklopol> no module named readline
18:04:37 <elliott> oklopol: :DD
18:04:39 <oklopol> python is not in the path even though i have three versions of it installed.
18:04:41 <elliott> comment out the import readline in cluetest.py
18:04:48 <elliott> it's ... sort of not windows-tuned, thsi
18:04:49 <elliott> *this
18:05:24 <oklopol> yay, works.
18:05:34 <oklopol> wait why am i running numplay?
18:05:40 <oklopol> what was the function
18:05:41 <elliott> oklopol: ...good question!
18:05:43 <oklopol> deep first
18:05:45 <elliott> yeah
18:05:49 <elliott> might wanna turn on demolishing
18:06:13 <oklopol> so now parsing fails
18:06:18 <oklopol> with the same error you pasted
18:06:24 <oklopol> ,[2]
18:06:29 <elliott> oklopol: yeah it's a bug in ski.clue
18:06:30 <elliott> remove the comma
18:07:38 <oklopol> now it just plain old can't compile
18:07:49 <elliott> oklopol: what howso
18:08:45 <oklopol> what the fuck, YOU CAN'T COPYPASTE FROM THE COMMAND LINE WINDOW IN WINDOWS 7
18:08:49 <oklopol> WHAT THE FUCKING HELL
18:08:50 <oklopol> WHY?!?!?!?
18:08:51 <elliott> oklopol: um
18:08:52 <elliott> are you sure
18:08:55 <oklopol> you can.
18:08:57 <elliott> you have to right click the title bar and click mark
18:08:58 <elliott> :P
18:08:58 <oklopol> not using mouse tho
18:09:02 <elliott> see above
18:09:05 <elliott> you've always had to do that
18:09:06 <oklopol> i know
18:09:10 <elliott> yeah
18:09:13 <oklopol> yes, and you STILL have to do it
18:09:16 <oklopol> WHAETHGAIYUIAGGVKLJEUG
18:09:18 <elliott> oklopol: dude, use it from idle, it'd be nicer prolly
18:09:20 <oklopol> i'm going to destroy
18:09:58 -!- VelcroMan has left (?).
18:10:28 <oklopol> okay what, now it seems it's compiling
18:10:30 <elliott> oklopol: yeah you can just remove the readline line and then do
18:10:32 <elliott> import cluetest
18:10:34 <elliott> in idle
18:10:36 <elliott> and it works great
18:10:40 <elliott> then .load ski.clue
18:11:47 <oklopol> might be nice if you got some sort of sensible output from the compiler if you asked
18:12:03 <elliott> oklopol: eh?
18:12:09 <elliott> .load printso ut all the compiled ASTs
18:12:10 <elliott> *prints out
18:12:12 <elliott> in the repl
18:12:16 <oklopol> i mean during compilation
18:12:19 <oklopol> ski is still compiling
18:12:20 <elliott> .show foo is also useful
18:12:21 <elliott> oklopol: right
18:12:29 <elliott> oklopol: i might add that, once I can figure out whether the breakage is yours or mine :>
18:12:32 <elliott> and then fix it
18:12:33 <oklopol> actually it's taking so long i doubt it'll actually happen
18:12:42 <elliott> oklopol: did you enable destructing
18:12:58 <elliott> demolishing i mena
18:12:59 <elliott> mean
18:13:15 <oklopol> no, but when i enable it, it gives the compile error, it seems
18:13:22 <elliott> oklopol: what error?
18:13:27 <oklopol> Traceback (most recent call last):
18:13:28 <oklopol> File "<pyshell#0>", line 1, in <module>
18:13:28 <oklopol> import cluetest
18:13:28 <oklopol> File "C:\stuff\clue\cluetest.py", line 55, in <module>
18:13:28 <oklopol> refresh()
18:13:28 <oklopol> File "C:\stuff\clue\cluetest.py", line 48, in refresh
18:13:28 <oklopol> funcs,asts=clue.compile_all(open(filename).read(),stuff.funcs)
18:13:29 <oklopol> File "C:\stuff\clue\clue.py", line 708, in compile_all
18:13:29 <oklopol> [i+"("+unfounds[i]+")" for i in compilees if not compilees[i].iscompiled]))
18:13:30 <oklopol> Exception: Can't compile deep first with cutoff(depth of first), depth of first(inc), ski type?(depth of first), ski apply(ski type?)
18:13:35 <elliott> oklopol: change inc to succ
18:13:36 <elliott> in ski
18:13:38 <elliott> it's another bug
18:13:38 <elliott> :p
18:13:41 <elliott> (fixed in mine)
18:13:41 <oklopol> oh hah
18:14:00 <oklopol> what a clear error message
18:14:07 <oklopol> "i can't compile!"
18:14:11 <elliott> yeah it should probably be topographically sorted or sth
18:14:16 <elliott> :p
18:14:17 <oklopol> it is
18:14:25 <elliott> it is?
18:14:32 <oklopol> yes
18:14:32 <elliott> inc would be last, if that were so
18:14:36 <oklopol> oh umm
18:14:39 <elliott> :P
18:14:41 <elliott> or first
18:14:53 <oklopol> yeah not sorted in that message, but compilation of course sorts
18:15:07 <oklopol> because you can't compile if there's an uncompiled function in your bag
18:15:16 <elliott> rigght
18:15:17 <elliott> *right
18:15:55 <oklopol> ---- depth of first
18:15:55 <oklopol> [is list?(#0)]
18:15:55 <oklopol> | 0 => 0
18:15:55 <oklopol> | 1 => succ(@(car(#0)))
18:15:59 <oklopol> was it this one?
18:16:29 <elliott> oklopol: no, deep first
18:17:20 <oklopol> lemme look
18:17:31 <oklopol> ---- deep first
18:17:31 <oklopol> [is list?(#0)]
18:17:31 <oklopol> | 0 => #0
18:17:31 <oklopol> | 1 => @(car(#0))
18:17:35 <oklopol> sry
18:17:40 <elliott> oklopol: ff
18:17:43 <elliott> ok so i added a bug in
18:17:44 <elliott> will fix soon
18:17:47 <elliott> writing a clue editor first
18:17:49 <elliott> (emacs mode = too hard)
18:17:53 <oklopol> :)
18:17:57 <elliott> it's gonna be schwoot
18:19:21 <oklopol> lambdas would not only allow cheating, they would also make functions significantly uglier, because you'd have your clue cluttered with completely meaningless snippets of dataflow
18:19:42 <elliott> cheating :D
18:19:49 <elliott> best user-hostile language veer
18:19:54 <oklopol> :D
18:20:40 <oklopol> you wouldn't lose stuff like being able to flip the sign of compare tho
18:20:45 <oklopol> hey actually
18:21:08 <oklopol> what about like [1, 2, 3] -> [2, 3] -> [3] for cddr for instance
18:21:40 <oklopol> with the meaning that the middle objects are just hints, "this object is useful!"
18:21:41 <elliott> oklopol: for recursion you mean?
18:21:47 <elliott> oklopol: oh, i see
18:21:53 <elliott> oklopol: that owuld be nice but what semantics would it have
18:21:54 <elliott> *would
18:22:03 <oklopol> no semantics.
18:22:06 <elliott> :D
18:22:09 <oklopol> i mean
18:22:16 <oklopol> at the level of what functions compile to
18:22:35 <oklopol> more like standardized compiler directive
18:22:49 <j-invariant> $class = 'Database' . ucfirst($wgDBtype);
18:22:49 <j-invariant> $db = new $class( $this->backupServer(), $wgDBadminuser, $wgDBadminpassword, $wgDBname, false, $flags );
18:22:57 <elliott> j-invariant: OH GOD STOP IT
18:23:03 <elliott> AAAAAAAAH
18:23:06 <j-invariant> $wgDBtype is something like 'SQL' or 'PGSQL'
18:23:10 <elliott> STOP
18:23:12 <elliott> STOPSTOPSTPOSTSPTJSPOTJSOPTJOPSTJOPSJTPOSJTPESRJGOIDKLFGMLKHFGJ
18:23:17 <j-invariant> and there are classes DatabaseSQL and DatabasePGSQL
18:23:19 * elliott vomits
18:23:21 * elliott vomtvomtvoimtits
18:23:24 <oklopol> basically, my idea was that in a_1 -> ... -> a_n, first a_2 would be found using a_1, then all state would be dropped, and another search would be started for a_3 from a_1 and a_2
18:24:05 <oklopol> which sounds really stupid of course, dropping state essentially means you'll make the same objects again :D
18:24:37 <oklopol> but, you would've sort of reached a milestone
18:25:04 <oklopol> also, btw, it should definitely be possible to ask the compiler that the bottleneck is
18:25:09 -!- asiekierka has joined.
18:25:27 <asiekierka> ey
18:25:27 <oklopol> i mean, there are a fixed number of searches, you could just make them store compilation times automatically
18:26:37 <oklopol> elliott: you removed the check for default==None between
18:26:37 <oklopol> if i.value==None:
18:26:38 <oklopol> default=i
18:26:38 <oklopol> return call_branch(clue,default,args,depth_lim)
18:27:04 <elliott> for i in clue.branches:
18:27:04 <elliott> if i.istest():continue
18:27:04 <elliott> if i.value==value:
18:27:05 <elliott> return call_branch(clue,i,args,depth_lim)
18:27:07 <elliott> if i.value==None:
18:27:09 <elliott> default=i
18:27:11 <elliott> return call_branch(clue,default,args,depth_lim)
18:27:13 <elliott> did I
18:27:21 <oklopol> i think so
18:27:33 <elliott> oklopol: well that's my clue.py
18:27:36 <elliott> so i don't see how :P
18:27:50 <oklopol> i have
18:27:51 <oklopol> if default==None:
18:27:51 <oklopol> default=clue.branches[len(clue.branches)-1]
18:27:51 <oklopol> return call_branch(clue,default,args,depth_lim)
18:28:06 <oklopol> i think i mentioned this to you, but it may have been a change after you last got my code
18:28:17 <oklopol> i know, i know
18:28:23 <oklopol> that [-1] thing you're gonna mention
18:28:49 <oklopol> that change means that all functions are total.
18:28:59 <oklopol> currently, it's possible they are inferred non-total
18:29:19 <oklopol> that is, it's possible that there is actually no default branch, now the default branch is the last one
18:29:36 <oklopol> ! should be used for failure explicitly, should be easy to add
18:32:32 <oklopol> one way is that ! is just added as a separate object in the clue object parser, and it simply evaluates to a None.
18:32:44 <oklopol> i believe that'd do the trick
18:32:46 <elliott> oklopol: i'm pretty confused now
18:33:06 <oklopol> about what
18:33:11 <elliott> everything :D
18:33:16 <Vorpal> Phantom__Hoover, how many blocks would ROU be now again when finished. Approx?
18:33:18 <oklopol> okay
18:33:24 <elliott> oklopol: can i have your .pys
18:33:36 <Phantom__Hoover> Vorpal, IIRC it was 10,000 or so for the hull.
18:33:48 <oklopol> the important thing: add "if default==None:default=clue.branches[len(clue.branches)-1]"
18:33:50 <Vorpal> Phantom__Hoover, ah and why didn't movecraft work for this?
18:34:15 <oklopol> i haven't done any changes to my old files, or your files, but you can have my old files if you really want to.
18:34:28 <Phantom__Hoover> Vorpal, it has a built-in threshold of 1000 blocks; this is changeable, apparently, but I have a suspicion it'd clobber the memory and CPU to actually move something that big.
18:35:10 <Vorpal> Phantom__Hoover, right. So making that castle I'm building on my local test server (because single player is horribly laggy since beta) fly is not realistic then
18:35:28 <Vorpal> Phantom__Hoover, it has over 60000 obsidian alone :)
18:35:37 <Phantom__Hoover> Vorpal, probably not.
18:36:05 <Phantom__Hoover> Also, the algorithm for separating the ship from everything else would probably mess it up.
18:36:19 * Sgeo gets a headache trying to talk to someone
18:36:29 <Vorpal> Phantom__Hoover, and iirc over 500 000 stone (though hard to measure with such tools, the terrain below it is very uneven.
18:36:30 <Sgeo> [Not Alluded-To]
18:36:54 <Vorpal> (I guess anything between 150 000 and 400 000 is part of the proper castle)
18:36:59 <Phantom__Hoover> Vorpal, stone and dirt aren't incorporated into ships.
18:37:08 <Vorpal> Phantom__Hoover, oh well.
18:37:15 <oklopol> elliott: so where is the printing of the compiler output done?
18:37:27 <elliott> oklopol: cluetest.py
18:37:28 <elliott> oklopol: but er
18:37:33 <elliott> oklopol: i've kinda rewritten that in my version
18:37:38 <elliott> if you're going to change it thennn :P
18:37:42 <Vorpal> Phantom__Hoover, wait, I'm testing it right now and I could place a stone block on top o my none-stone and it worked
18:37:50 <oklopol> i just want to know where the #x's come from
18:38:01 <oklopol> clearly your output lacks their origin
18:38:04 <Vorpal> Phantom__Hoover, however, stone below or to the sides were not included
18:38:07 <Phantom__Hoover> Vorpal, was the stone moved with it?
18:38:08 -!- BMG has joined.
18:38:10 <Vorpal> Phantom__Hoover, yes
18:38:13 <oklopol> probably because neither of us knows what they even are
18:38:15 <Phantom__Hoover> Huh.
18:38:17 -!- BMG has quit (Changing host).
18:38:17 -!- BMG has joined.
18:38:19 <Vorpal> Phantom__Hoover, but only if placed more or less inside the craft
18:38:20 -!- BMG has changed nick to BeholdMyGlory.
18:38:24 <Vorpal> Phantom__Hoover, (it was a ship)
18:38:37 <elliott> what's a none-stone
18:38:42 -!- drakhan has quit (Quit: Wychodzi).
18:39:13 <Vorpal> elliott, any block that is not a stone (and implicitly in this context: not air or a fluid either)
18:39:39 <Sgeo> I think this person's text messaging stuff is delayed by a few messages
18:39:53 <Sgeo> And for some reason, her texts include my text.
18:40:51 <Phantom__Hoover> Vorpal, the other reason a flying castle is impractical: MoveCraft empties chests.
18:40:59 <Vorpal> elliott, what is the largest structure known to have been done in MC so far? Largest as in most blocks placed.
18:41:08 -!- drakhan has joined.
18:41:15 <Vorpal> Phantom__Hoover, ah yes that is indeed a known bug
18:41:19 -!- Behold has quit (Ping timeout: 246 seconds).
18:41:23 <Vorpal> Phantom__Hoover, at least it is on the todo-list
18:41:53 <Vorpal> Phantom__Hoover, also it doesn't rotate crafts yet. Meaning you better make it rotationally symmetric for now
18:42:06 <elliott> Vorpal: dunno
18:42:24 <elliott> oklopol: my clue editor is a total nazi
18:42:30 <elliott> oklopol: it reformats your code every time you do anything :D
18:42:45 * Sgeo fantasizes about war on a MoveCraft server
18:42:59 <Phantom__Hoover> Sgeo, it screws up TNT cannons as well.
18:43:00 <Sgeo> -shutup- Shut up about your fantasies!
18:43:02 <Vorpal> elliott, what about largest bounding box (in a single direction)
18:43:07 <Sgeo> Phantom__Hoover, aww, darn
18:43:40 <Sgeo> Although I was thinking more of dropping TNT from ships than cannons on.. no, I was thinking cannons on ships too, more for defense
18:43:43 <Phantom__Hoover> What is it with the people who act like playing MC on peaceful is a personal insult?
18:43:45 <Vorpal> elliott, considering something like a 1x1x4000 cobbblestone thingy
18:43:48 <Vorpal> bb*
18:44:29 <Vorpal> <Sgeo> -shutup- Shut up about your fantasies! <-- just ignore it, that /me you did above was perfectly okay IMO
18:44:49 <Phantom__Hoover> http://www.minecraftwiki.net/wiki/Difficulty
18:44:58 <Phantom__Hoover> [[ * Notch made a tweet on October 22nd 2010, stating that "I'm changing "difficulty" to "realism". Lowest setting = creative. Highest setting = starve" ]]
18:45:08 -!- cheater00 has joined.
18:45:10 <Phantom__Hoover> 'Cos obviously difficulty == realism!
18:45:17 <Vorpal> Phantom__Hoover, haven't happened so far yeah
18:45:32 <Sgeo> Notch is just like me1
18:45:34 <oklopol> Phantom__Hoover: that's the one thing i'd change about mc
18:45:40 <Sgeo> [In the always taking hiatuses aspect]
18:45:41 <oklopol> thank god notch noticed it
18:46:08 <oklopol> elliott: so umm the #'s are just helper objects + inputs + subrec outputs, as one might imagine
18:46:15 <oklopol> it says so quite clearly in your code
18:46:20 <elliott> oklopol: sure but there's more than there should be :D
18:46:25 <Vorpal> Phantom__Hoover, btw craftbook is cool
18:46:27 <elliott> oklopol: for instance #1 and #2 in ski apply
18:46:31 <Phantom__Hoover> Because it's completely unrealistic not to have malicious creatures unrelentingly stalk you during the night
18:46:33 <elliott> ski apply has no helpers
18:46:33 <Phantom__Hoover> *!
18:46:39 <elliott> and those are _inside_ the subrec _inputs_
18:47:03 <Vorpal> Phantom__Hoover, I have portcullises that can open and such now
18:47:11 <oklopol> well subrec inputs can be calculated from outputs of previous subrecs
18:47:15 -!- cheater- has quit (Ping timeout: 240 seconds).
18:47:16 <oklopol> so i don't see what the problem is
18:48:10 <oklopol> in ski apply, when #1 and #2 are used, they refer to the outputs of the first and second subrec, and they are first used in the third case
18:48:53 <oklopol> wait what
18:48:55 <elliott> oklopol: right! but #1 and #2 should get inlined
18:49:01 <elliott> to be @(...) things
18:49:05 <elliott> but they're not??
18:49:08 <elliott> OH
18:49:14 <oklopol> rrrrrrright i was being a retard
18:49:19 <elliott> nrpls['#'+str(i.get_arity()+len(clue.helper_objs)+sub)] = past(rrgs,rpls)
18:49:21 <oklopol> i mean
18:49:23 <elliott> notice the lack of using nrpls there
18:49:28 <oklopol> i was thinking like of a completely different thing
18:49:49 <oklopol> :P
18:50:46 <oklopol> why do you rename to nrpls midway?
18:51:08 <oklopol> hmm
18:51:13 <elliott> because
18:51:15 <elliott> it only applies for that one branch
18:51:25 <elliott> (a) => [ski type?(a)]
18:51:25 <elliott> | 0 => a
18:51:25 <elliott> | 1 => @(car(cdr(a)))
18:51:27 <elliott> | 2 => @(cadar(a))
18:51:28 <elliott> | 3 => @(pair(#1 #2))
18:51:30 <elliott> | 4 => @(pair(#1 ski type?(cdr(a))))
18:51:32 <elliott> bugger, still doesn't work
18:52:07 <oklopol> oh right
18:52:27 <Vorpal> Phantom__Hoover, movecraft fails at shadows. There is a shadow matching my aircraft on ground. Far from where the aircraft actually is currently
18:52:45 <oklopol> rrgs.append(past(i.getsubast(sub,ar),rpls)) should use nrpls
18:52:48 <Phantom__Hoover> Vorpal, that's probably MC failing, actually.
18:52:59 <Vorpal> hm could be
18:53:27 -!- impomatic has joined.
18:53:30 <impomatic> Hi :-)
18:53:37 <elliott> hi
18:54:34 <oklopol> elliott: well, did you fix it?
18:54:54 <elliott> oklopol: done
18:55:02 <elliott> testing now
18:55:05 <Vorpal> Phantom__Hoover, also why does lightstone give shadows on ground
18:55:16 <Vorpal> since it is as bright as the sun...
18:55:30 <Phantom__Hoover> Vorpal, yes, but it has z-axis attenuation, while the sun doesn't.
18:55:41 <Vorpal> Phantom__Hoover, good point
18:57:08 <elliott> | 3 => @(pair(@(pair(cadaar(a) ski type?(cdr(a)))) @(pair(cadar(a) ski type?(cdr(a))))))
18:57:09 <Vorpal> Phantom__Hoover, hm flying minecart. That should be possible to make smooth
18:57:09 <elliott> oklopol: hooray
18:57:21 <oklopol> :S
18:57:24 <oklopol> oh
18:57:26 <elliott> ---- deep first
18:57:27 <elliott> (a) => [is list?(a)]
18:57:27 <elliott> | 0 => a
18:57:29 <elliott> | 1 => @(car(a))
18:57:29 <elliott> oklopol: what...
18:57:33 * Sgeo imagines huge Obsidian bunkers, for things such as mining flint from gravel
18:57:34 <Vorpal> Phantom__Hoover, or flying boat (boat as in boat-crafted-in-workbench)
18:57:34 <oklopol> wait what, it actually infers that whole thing?
18:57:36 <elliott> oklopol: turning on destructing makes it do the bad version, I think
18:57:37 <Phantom__Hoover> Vorpal, did you try to move a craft with a minecart on it?
18:58:01 <Vorpal> Phantom__Hoover, I haven't
18:58:09 <Sgeo> In theory, with time+patience, all gravel can be turned into flint?
18:58:17 <Phantom__Hoover> I doubt it'll work.
18:58:19 <Phantom__Hoover> Sgeo, yes.
18:58:21 <Vorpal> Phantom__Hoover, but I wonder. if you could not make smooth movements instead of the one block at a time thing
18:58:21 <oklopol> elliott: no it doesn't, at least in mine
18:58:23 <Vorpal> using one of those
18:58:25 <Vorpal> Phantom__Hoover, with a mod
18:58:29 <oklopol> i can't even compile ski without demolishing
18:58:33 <elliott> if default is None:
18:58:33 <elliott> default=clue.branches[len(clue.branches)-1]
18:58:33 <elliott> ^^ so do I want to add this in?
18:58:49 <elliott> done, let's see if it does anything
18:58:51 <Phantom__Hoover> Vorpal, not without radical alterations to MC, which is outside the scope of hMod's plugin architecture.
18:58:53 <Vorpal> Phantom__Hoover, you can get flying boat when you time out and are in a boat and falling down. So clearly it will work on the client side
18:59:04 <impomatic> Hmmm... does anyone know how I can work out the position of the rightmost 1 bit without using bitwise operations? (n & -n normally does the trick)
18:59:15 <elliott> ---- deep first
18:59:15 <elliott> (a) => [car(a)]
18:59:15 <elliott> | _ => a
18:59:16 <elliott> | _ => @(car(a))
18:59:20 <elliott> oklopol: that's WITH your fix, can i have your clue.py and stuff.py?
18:59:21 <oklopol> elliott: after adding that, the order of examples matters, which i'm not sure i like
18:59:23 <elliott> to see where ours differ
18:59:28 <oklopol> but it's better than not having it, still
18:59:31 <elliott> ew no, i don't like tht
18:59:31 <elliott> that
18:59:33 <elliott> i'm removing it :D
18:59:57 -!- copumpkin has quit (Ping timeout: 260 seconds).
19:00:11 <Vorpal> impomatic, n & -n assumes two-complement doesn't it?
19:00:37 -!- copumpkin has joined.
19:00:56 <impomatic> Vorpal: yes, that's one of the problems.
19:01:15 <Vorpal> impomatic, hah! And here I was trying to make a silly remark :P
19:01:17 <oklopol> elliott: okay, in that case make it return None, otherwise it'll be order-dependent anyway
19:01:31 <Vorpal> impomatic, now I'm interested, what language or platform are you targeting here?
19:01:36 <elliott> oklopol: oaky
19:01:39 <oklopol> if you make it return None, you basically have an implicit default branch that fails.
19:01:46 <impomatic> vorpal: redcode :-)
19:01:49 <oklopol> hmm
19:01:52 <elliott> ---- deep first
19:01:52 <elliott> (a) => [car(a)]
19:01:52 <elliott> | _ => a
19:01:53 <elliott> | _ => @(car(a))
19:01:54 <Vorpal> impomatic, hm
19:01:55 <elliott> oklopol: still does it though :)
19:02:33 <oklopol> i really think you should have that order-dependence thing, actually, it just makes everything so much simpler.
19:03:09 <impomatic> Vorpal: I'm optimizing a non-recursive program to draw this: http://twitpic.com/3nt74q
19:03:11 <oklopol> elliott: well i dunno, why didn't you save your old code so i don't have to up it
19:03:20 <elliott> oklopol: oh i did
19:03:24 <elliott> oklopol: but you've evidently changed it :>
19:04:00 <Vorpal> impomatic, why not make it recursive
19:04:00 <oklopol> i haven't
19:04:02 <impomatic> Hmmm... pastebin.ca has been inaccessible here for a couple of days :-(
19:04:10 <elliott> oklopol: well i didn't remove that defaulting thing
19:04:11 <Vorpal> impomatic, also what sort of signed integers does redcode use?
19:04:17 <elliott> oklopol: so you must have added it? :/
19:04:44 <Vorpal> impomatic, use sprunge.us
19:04:49 <Vorpal> impomatic, it is good, and loads faster
19:05:50 <impomatic> Vorpal: I have a recursive program too... Redcode only has positive numbers. -x is represented as CORESIZE-x. In a normal core -1 is 7999
19:06:00 <oklopol> elliott: i haven't touched it
19:06:04 <Vorpal> impomatic, that's so wtf
19:06:16 <oklopol> well i may have, but it's unlikely that i have, more likely that the universe has a bug
19:06:34 <impomatic> :-)
19:06:43 <elliott> oklopol: :D
19:06:56 <Vorpal> impomatic, why is it not a power of 2? Everything is better as a power of 2. No exceptions except for the exception that ternary is awesome.
19:07:16 <elliott> oklopol: should i make the editor automatically turn .. into :
19:07:24 <oklopol> upon my files says roughly so: http://www.vjn.fi/pb/p5657189962.txt http://www.vjn.fi/pb/p9156561368.txt
19:07:24 <elliott> oklopol: you type .., it becomes :, type a ., it becomes :., type a dot, it becomes ::
19:07:45 <impomatic> Vorpal: coresize can be any value, but historically it's been 8000.
19:07:46 <oklopol> ...what? :D
19:07:50 <elliott> oklopol: in the editor1
19:07:51 <elliott> *editor!
19:07:52 <Vorpal> <elliott> oklopol: should i make the editor automatically turn .. into :<elliott> oklopol: should i make the editor automatically turn .. into : <-- what for?
19:07:52 <elliott> cled
19:07:59 <elliott> Vorpal: they are equivalent in clue
19:08:00 <oklopol> so... how do you get a dot then? :D
19:08:12 <elliott> oklopol: don't type an even number of them, duh!
19:08:22 <oklopol> oh lol
19:08:25 <elliott> oklopol: it's keeping your code to the Clue Standardisation Board's recommendations for colon and dot entry
19:08:27 <oklopol> yeah i well whatev
19:08:32 <elliott> THIS IS IMPORTANT DUDE
19:08:44 <oklopol> sure
19:08:45 <Vorpal> elliott, yes but why do you want to enforce using one them rather than the other
19:08:57 <elliott> - if default is None:
19:08:57 <elliott> - return None
19:08:57 <elliott> + if default==None:default=clue.branches[-1]
19:09:00 <elliott> hehe
19:09:17 <oklopol> well yeah obviously i added that one
19:09:26 <elliott> mine is so much better
19:09:28 <elliott> order is so impure
19:09:34 <Vorpal> elliott, wait, are you using a VCS now?
19:09:48 <elliott> no
19:09:52 <elliott> i'm using diff
19:09:57 <Vorpal> ah
19:10:10 <oklopol> well, see, yours has the slight disadvantage that you can't write *any* functions with just one example in each hint
19:10:13 <elliott> oklopol: okay our versions have no notable differences to speak of other than the exception-catching :D
19:10:14 <oklopol> erm
19:10:18 <oklopol> in each branch
19:10:31 <elliott> oklopol: well... come up with an algo that isn't order-based, any algo
19:10:32 <elliott> (not random :P)
19:10:34 <elliott> and i'll use it
19:10:46 <Sgeo> Hmm
19:10:59 <Sgeo> Water spouts are apparently quite resistent to explosions
19:11:01 <oklopol> there is no way
19:11:11 <Vorpal> elliott, order for what?
19:11:13 <oklopol> no simple way at least
19:11:17 <elliott> things
19:11:19 <elliott> oklopol: are you sure
19:11:26 <elliott> oklopol: maybe default branches need syntax :/
19:11:32 <oklopol> one way would be to have *drumroll* conditions
19:11:36 <elliott> or maybe, you know, man up and add another case
19:11:39 <Vorpal> elliott, are you trying to decide which order to try things in?
19:11:42 <elliott> because...
19:11:44 <elliott> i mean
19:11:46 <elliott> if you only have one case
19:11:49 <elliott> stuff breaks a lot anyway :P
19:11:54 <elliott> 'cuz it likes to hardcode
19:11:54 <oklopol> that was actually one of the reasons i had conditions, i just forgot about it
19:12:02 <elliott> oklopol: who cares, SO IMPURE
19:12:06 <oklopol> yeah syntax for defaults is very much okay
19:12:50 <Vorpal> elliott, what are conditions in this context and why are they impure?
19:12:55 <elliott> things
19:12:57 <elliott> and because lame
19:13:07 <elliott> oklopol: ofc it breaks down when you have complex conditions nayway
19:13:12 <Vorpal> gee, being unhelpful
19:13:14 <elliott> oklopol: i don't see what's wrong with needing two example cases
19:13:15 <elliott> oklopol: i mean
19:13:20 <elliott> oklopol: if you just do
19:13:22 <oklopol> Vorpal: a condition is a function used as the parameter of the switch statement that is the body of each function.
19:13:22 <elliott> . 0 1 -> 1
19:13:28 <elliott> oklopol: it'll probably hardcode the 1 or something stupid like that
19:13:30 <Vorpal> oklopol, thank you
19:13:31 <elliott> in a lot of cases
19:13:54 <Vorpal> oklopol, why would they be impure though?
19:14:01 <oklopol> they were removed in the form they existed in the first version of clue, and were replaced with something else, but this is slightly technical.
19:14:11 <Vorpal> oklopol, can they have side effects?
19:14:12 <Sgeo> If you have a bunch of TNT together, does it make a stronger explosion or not?
19:14:35 <oklopol> basically, you used to be able to give the toplevel function, like you could say you switch on the value of f, switch(f(...)), but ... may be guessed by the compiler in any way
19:14:40 <oklopol> Vorpal: no.
19:14:52 <Vorpal> oklopol, so in what sense are they impure?
19:15:10 <oklopol> subjective
19:15:20 <Vorpal> oklopol, ah
19:15:25 <oklopol> they are code written by the programmer
19:15:31 <Vorpal> hah
19:15:36 <Gregor> Jan 08 20:51:23 <Sgeo> Gregor's apples to oranges comparision convinced me to like oranges // I win forever? :P
19:15:44 <Vorpal> oklopol, but in a sense the examples is code written by the programmer.
19:15:46 <oklopol> for instance, if the output format of that function f was changed, it's possible that it can't directly be used to branch anymore.
19:16:01 <oklopol> so the compiler should be allowed to do post-processing on the value of f
19:16:06 -!- asiekierka has quit (Ping timeout: 240 seconds).
19:16:12 <oklopol> so it's impure in a very precise sense.
19:16:57 <Vorpal> hm okay
19:17:00 <oklopol> Vorpal: examples are code written by the programmer in a sense, sure. but the sense i'm referring to is the one that breaks the ability to change output and input protocol.
19:17:10 <oklopol> which is one of the points of clue
19:17:25 <oklopol> you don't even have to read the api, as long as you know what the functions do on an intuitive level
19:17:38 <oklopol> of course this would only be true if the compiler was 100 times faster than mine
19:19:14 <oklopol> elliott: nothing wrong with needing two example cases i guess
19:19:16 <oklopol> :P
19:19:48 <elliott> oklopol: my editor is... so nazi
19:19:54 <elliott> it's actually kinda scary
19:19:55 <oklopol> would it be wrong if 1) if there's only one branch, it's always default 2) if there's exactly one recursion, it's default if no one else is
19:20:01 <elliott> you can't insert more than one space in a row
19:20:06 <elliott> oklopol: yeah that sounds ok
19:20:12 <elliott> oklopol: since... you can't get base case recursion :D
19:20:16 <oklopol> that would be nice and practical, but kind of impure.
19:20:22 <elliott> oklopol: would it?
19:20:27 <elliott> oklopol: recursion to me basically IMPLIES some defaultness
19:20:30 <Vorpal> oklopol, hm okay
19:20:34 <elliott> oklopol: and one branch is default by basically definition
19:20:45 <oklopol> yeah
19:20:52 <oklopol> those are *very* natural, in actual programs
19:20:53 <elliott> i'll impl that after cled works :D
19:21:08 <elliott> oklopol: well i even think "random" functions obey that too
19:21:10 <oklopol> people would basically just assume them anyway.
19:21:12 <elliott> base cases don't recurse, by definition
19:21:18 <elliott> and recursion is walking towards a base case
19:21:23 <elliott> anything that isn't a base case, covers a range of values
19:21:25 <elliott> and is thus a default
19:21:31 <oklopol> yeah but
19:21:36 <Vorpal> <elliott> you can't insert more than one space in a row <-- how do you indent then?
19:21:40 <oklopol> you could have some function used for branching
19:21:45 <Vorpal> elliott, also what editor is this? leaden?
19:21:50 <elliott> Vorpal: no, cled
19:21:52 <elliott> also, it indents for you
19:21:55 <elliott> everything is automatic
19:21:56 <elliott> EVERYTHING
19:21:56 <Vorpal> elliott, cled being?
19:21:57 <oklopol> and you could have an infinite number of base cases, say all the cases where that function gives a positive number
19:22:08 <elliott> CLuEDitor
19:22:09 <oklopol> and if the function gives you a 0, it means you haven't found the result yet, and have to recurse
19:22:19 <Vorpal> elliott, is it an emacs mode?
19:22:24 <oklopol> in that case it'd be the base case that's defaul
19:22:25 <elliott> oklopol: so add more than one example :>
19:22:25 <oklopol> t
19:22:31 <elliott> Vorpal: no, i decided it would be way too hard like that
19:22:49 <oklopol> sure sure, i'm just saying it's technically possible to have a base case be the natural default
19:23:01 <oklopol> but then you'd just need to tell the compiler that by having two examples.
19:23:04 <elliott> oklopol: it's more pure than assuming the last is default, let's put it that way.
19:23:12 <Vorpal> elliott, hm, Is it ncurses-based?
19:23:15 <oklopol> about 42 times purer.
19:23:18 <elliott> Vorpal: no, tk(inter)
19:23:21 <oklopol> but it's not total! :D
19:23:21 <Vorpal> elliott, ah
19:23:24 <elliott> because it's convenient in python
19:23:28 <elliott> and not _hideously_ ugly on os x / windows
19:23:38 <elliott> the whole UI is a text box with a scrollbar to the right anyway
19:23:44 <elliott> so it won't even be too horrid on x11 :)
19:23:46 <Vorpal> elliott, it is rather ugly on linux though
19:23:49 <elliott> *x11
19:24:05 <Vorpal> elliott, Tk scrollbars are ugly on linux
19:24:18 <Vorpal> elliott, do you use that theme thingy whatever it was called
19:24:22 <elliott> Vorpal: no
19:24:27 <Vorpal> elliott, why not
19:24:33 <elliott> don't think tkinter can do that.
19:24:35 <elliott> i don't really care how ugly a single scrollbar is anyway :P
19:24:50 <Vorpal> elliott, wait, you don't care about aesthetics?
19:25:00 <elliott> not for cled
19:25:00 <elliott> !
19:25:07 <Vorpal> elliott, how unlike you!
19:27:51 <Vorpal> elliott, last xkcd is so sad, but the title text was actually quite funny.
19:29:20 <j-invariant> "If you look at these languages in order, Java, Perl, Python, you notice an interesting pattern. At least, you notice this pattern if you are a Lisp hacker. Each one is progressively more like Lisp. Python copies even features that many Lisp hackers consider to be mistakes. You could translate simple Lisp programs into Python line for line. It's 2002, and programming languages have almost caught up with 1958."
19:29:32 <Phantom__Hoover> [[Nevertheless, some historians still consider it was Hilliard who won that dude battle.]]
19:29:37 <Phantom__Hoover> BEST WIKIPEDIA QUOTE EVER
19:29:42 <Phantom__Hoover> No, wait, it isn't
19:29:54 <Vorpal> j-invariant, where is that quote from?
19:30:05 <Phantom__Hoover> [[Fukutsuru died in 2005 but his frozen sperm lived on for people’s benefit.]]
19:30:14 <Phantom__Hoover> THAT is the best Wikipedia quote ever.
19:32:34 <elliott> TypeError: cannot concatenate 'str' and 'int' objects
19:32:36 <elliott> wait,what...
19:32:54 <elliott> *wait, what
19:33:02 -!- TLUL has joined.
19:33:18 <elliott> j-invariant: you could translate simple haskell programs into dofigj line for line. it's 2032, and programming languages have almost caught up with 1994.
19:34:30 <Vorpal> elliott, I wish I lived in such a world
19:34:53 <elliott> text.delete("1.0+%dc" % idx+1, "1.0+%dc" % spc)
19:34:53 <elliott> TypeError: cannot concatenate 'str' and 'int' objects
19:34:54 <elliott> wtfff.
19:34:55 <elliott> idx is an int.
19:38:42 <elliott> A good argument for Better Grass: http://i.imgur.com/82ndJ.jpg
19:39:17 <elliott> Vorpal: have you tried http://www.largames.com/lartexture?
19:39:25 <j-invariant> hey the graphics look different
19:39:36 <Vorpal> j-invariant, <Vorpal> j-invariant, where is that quote from?
19:39:48 <elliott> j-invariant: different texture pack
19:39:49 <elliott> also a mod
19:40:37 <Vorpal> elliott, it looks rather flat somehow. I prefer something suggesting a real world rather than something suggestion a flat mario64-like world. But sure I'll try it some day.
19:40:50 <elliott> but it is flat.
19:41:23 <Vorpal> elliott, uh and? I don't want the texture to make it look flatter than the default texture pack does
19:41:38 <elliott> It doesn't ...
19:41:46 <Vorpal> elliott, to me it looks that way
19:41:55 <Vorpal> from the screenshots
19:42:16 <elliott> oklopol:
19:42:17 <elliott> text.delete("1.0+%dc" % idx+1, "1.0+%dc" % spc)
19:42:17 <elliott> TypeError: cannot concatenate 'str' and 'int' objects
19:42:18 <elliott> seriously wtf
19:42:21 <elliott> idx is an int
19:42:36 <elliott> ohhh
19:42:38 <elliott> need parens
19:45:42 <elliott> oklopol: it would be nice if compilations could be written to a file
19:45:46 <elliott> even if just with pickle
19:45:48 <elliott> or marshal
19:46:02 <oklopol> obviously
19:46:30 <oklopol> it could even check that the compilation is correct
19:46:38 <elliott> oklopol: :P
19:46:39 <oklopol> FOR FUN
19:46:59 <j-invariant> I thought it was correct by construction
19:47:06 <elliott> oklopol: i think i'm gonna make cled hold the program as a structure in memory and just write it as a string all the time...
19:47:12 <elliott> and respond to keypresses :P
19:47:13 <elliott> it'd be simpler
19:47:37 <oklopol> i have to go shoppe
19:52:37 -!- cheater- has joined.
19:55:16 -!- cheater00 has quit (Ping timeout: 240 seconds).
19:55:53 <elliott> oklopol: i just realised that if i make it hold it as an object i get to make a terrible terrible semantic ui for it
19:55:58 <elliott> oklopol: you are gonna use this to write all your programs right :D
19:57:09 <elliott> hey Vorpal how do you make an emacs mode
19:57:27 <Vorpal> elliott, by writing elisp and reading docs.
19:57:39 <j-invariant> are you making an emacs mode for Clue?
19:57:40 <Vorpal> elliott, I haven't done it. I have tweaked existing ones however
19:57:43 <elliott> Vorpal: yes, but, without the second thing
19:57:50 <elliott> j-invariant: well. i'm writing an editor program BUT
19:57:51 <Vorpal> j-invariant, you never answered: <Vorpal> j-invariant, <Vorpal> j-invariant, where is that quote from?
19:57:55 <elliott> it might be easier to do it as an emacs mode :D
19:57:58 <elliott> Vorpal: pg.
19:58:06 <Vorpal> elliott, "pg"?
19:58:09 <elliott> pg.
19:58:21 <Vorpal> elliott, as in postgresql command binary prefix?
19:58:26 <Vorpal> elliott, that is all I know it as :P
19:58:30 <j-invariant> emacs modes tend to have a certain format: They have a syntax hilighter table and such
19:58:35 <Vorpal> elliott, so what do you mean by pg
19:58:46 <elliott> paul g
19:58:46 <j-invariant> pol grayam
19:58:50 <Vorpal> elliott, ah
19:58:54 <elliott> pearly graham crackers
19:59:13 <elliott> j-invariant: yeah but in this case I want auto-indentation which is less than trivial for clue
19:59:16 <elliott> because it depends on the first line of the block
19:59:18 <elliott> specifically the length of the name
19:59:54 <Vorpal> elliott, I believe some modes manage such auto indention
19:59:59 <Vorpal> I can't remember which ones
20:00:26 <elliott> well yeah but i want to do it easily :D
20:01:48 <oklopol> you lazy
20:01:57 <elliott> oklopol: question!
20:01:58 <Vorpal> elliott, insert fitting can-only-have-2-out-of-3 statement here
20:02:04 <elliott> eh actually i have no question really
20:02:07 <Vorpal> (I can be lazy too)
20:02:18 <elliott> oklopol: ok question
20:02:26 <elliott> oklopol: what's the max number of examples you'd put on one line
20:02:26 <oklopol> kebab place was the complement of a set containing an open ball arouns each of its points :(
20:02:27 <elliott> two?
20:02:44 <oklopol> two or three
20:02:50 <oklopol> i mean
20:03:11 <oklopol> i can imagine something like . number -> number more than twice on one line
20:04:31 <elliott> yeah
20:04:38 <elliott> i'll make it
20:04:42 <elliott> less than five, so long as the result is less than 50 chars
20:04:49 <oklopol> why limit it?
20:04:49 <elliott> or actually 40
20:04:49 -!- impomatic has left (?).
20:04:56 <elliott> oklopol: because really long lines are ugly
20:04:59 <elliott> oklopol: this is the auto-formatter
20:05:09 <oklopol> oh right because ur editor hates jews
20:05:10 <elliott> oklopol: cled has kinda morphed into this thing where you edit the bags and branches and stuff as actual objects
20:05:15 <elliott> oklopol: and it just reads and writes to the files
20:05:19 <elliott> in the background
20:05:23 <elliott> oklopol: you know... like oklOS :D
20:05:32 <oklopol> :)))))))))))))))))))))))))))))))))))))))))))))
20:05:37 -!- Wamanuz has quit (Remote host closed the connection).
20:09:19 <elliott> oklopol: should i make it impossible to put a function that doesn't exist into the bag :D
20:09:23 <elliott> nah, that's excessive. probably
20:09:34 -!- Wamanuz has joined.
20:10:54 -!- ais523 has joined.
20:15:12 <pikhq> Mmm, snow.
20:16:54 <elliott> oklopol:
20:16:56 <elliott> more than 3 ~ {. 0 -> 0 }
20:16:56 <elliott> more than 3 ~ {. 1 -> 0 }
20:16:56 <elliott> more than 3 ~ {. 2 -> 0 }
20:16:59 <elliott> more than 3 ~ {. 3 -> 0 }
20:17:01 <elliott> more than 3 ~ {. 4 -> 1 . 5 -> 1 }
20:17:03 <elliott> more than 3 ~ 0; 1
20:17:05 <elliott> oklopol: written by a program :D
20:19:18 <oklopol> now add a feature where you can write a function, and it's compiled into examples
20:19:20 <oklopol> :D
20:19:24 <elliott> oklopol: :D
20:19:37 <elliott> oklopol: that would officially be the most pointless combination of programs in existence
20:19:41 <oklopol> haha
20:19:50 <elliott> oklopol: i'm considering never putting more than one example on a line...
20:19:53 <elliott> it's... always kinda ugly
20:22:39 <elliott> depth of first ~ {. 0 -> 0 . 5 -> 0 }
20:22:39 <elliott> depth of first ~ {:. [[1 2] [3 4]] -> 2
20:22:39 <elliott> : [1 2] -> 1
20:22:41 <elliott> :. [[[1 2 3] 4] 5] -> 3
20:22:43 <elliott> : [[1 2 3] 4] -> 2 }
20:22:45 <elliott> depth of first ~ is list?; cons; car; cdr; succ; 0
20:22:47 <elliott> oklopol: written by a program :D
20:24:40 <oklopol> nice
20:25:21 <elliott> oklopol: i think we should just make this the new official syntax for clue: http://sprunge.us/HXGG
20:25:26 <elliott> also by written, I mean turned into text, obviously
20:25:29 <elliott> it didn't actually write the program
20:25:32 <elliott> although that would be nice
20:25:51 <elliott> oklopol: ooh i'ma make the bag into a set.
20:28:31 <oklopol> in what sense?
20:30:36 <elliott> oklopol: um in that it's a python set :D
20:30:41 <elliott> and ordered when it gets turned into a string
20:31:10 <oklopol> err okay, that sounds like a reeeeally useful change
20:31:35 <oklopol> but i suppose it means you can't use order for optimization, which is good because the order shouldn't be meaningful.
20:31:55 <elliott> oklopol: oh no no i don't mean in clue.py
20:31:57 <elliott> i mean in cled
20:32:05 <elliott> the semantic CluEDitor!
20:32:19 <elliott> oklopol: you have to tell me now that you're gonna use this thing to write all your clue programs, even though it's crazy :D
20:32:26 <oklopol> oh heeh go for it.
20:32:27 <Vorpal> TI-83+ is weird, it has orthogonal persistence when turning off due to no key being pressed after a number of minutes. But if you manually turn it off you get back to the basic "shell screen" (for lack of better name) next time you turn it on.
20:32:30 <pikhq> There's a film adaptation of Asimov's Foundation series coming.
20:32:32 <oklopol> i'll consider it.
20:32:32 <pikhq> :'(
20:32:46 <j-invariant> I could not get into that book at all
20:32:48 <Vorpal> elliott, ^
20:32:54 <elliott> Vorpal: heh
20:32:58 <j-invariant> the first bit was cool but it started dragging and dragging.....
20:33:11 <elliott> pikhq: I want to be a filmmaker for the sole purpose of making Ed stories and Fine Structure into films.
20:33:23 <pikhq> To be directed by Roland Emmerich.
20:33:27 <elliott> (Yes, I have considered how to depict Unbelievable Scenes.)
20:33:47 <elliott> pikhq: 2012: It's a Disaster!
20:33:57 <pikhq> You may know him for really, really *stupid* films, such as Independence Day and The Day After Tomorrow.
20:34:08 <pikhq> And, yes, 2012.
20:34:20 <elliott> pikhq: http://www.youtube.com/watch?v=ZW2qxFkcLM0
20:35:50 <pikhq> So, if this adaptation is any good at all, it will be a miracle that psychohistory could not predict at all.
20:35:55 <Phantom__Hoover> <pikhq> To be directed by Roland Emmerich. ← NOOOOOOOOOOOOOOOO
20:36:30 <pikhq> Phantom__Hoover: At least it's not Uwe Boll.
20:36:48 <Phantom__Hoover> pikhq, that wouldn't be much worse!
20:36:53 <elliott> pikhq: http://www.youtube.com/watch?v=HSZhBParVjo
20:36:59 <pikhq> Phantom__Hoover: Yes it would.
20:36:59 <elliott> erm
20:37:00 <Phantom__Hoover> At least with Uwe Boll we would know everyone would hate it!
20:37:00 <elliott> wrong link
20:37:02 <pikhq> Yes it would.
20:37:05 <elliott> pikhq: http://www.youtube.com/watch?v=ZW2qxFkcLM0
20:37:15 <pikhq> elliott: Hah.
20:37:18 <Phantom__Hoover> pikhq, Emmerich is a major director.
20:37:28 <Phantom__Hoover> His film will be well-funded and widely promoted.
20:37:29 <elliott> SO IS UWE BOLL
20:37:36 <Phantom__Hoover> People will *see* it.
20:37:40 <Phantom__Hoover> People I know IRL.
20:37:58 <Phantom__Hoover> People who will not have read the book and will not see the film for the dross it will inevitably be.
20:38:19 <elliott> Phantom__Hoover: THIS IS EXACTLY WHY I HAVE TO FILM ED STORIES AND FINE STRUCTURE.
20:38:32 <Phantom__Hoover> elliott, you haven't read the latter!
20:38:32 <elliott> OTHERWISE SOMEBODY, SOMETIME IN THE FUTURE, WHEN SAM HUGHES IS DEAD BUT INCREDIBLY POPULAR, SOMEONE WILL MAKE A FILM OF THEM
20:38:34 <elliott> AND IT WILL _SUCK_
20:38:40 <elliott> Phantom__Hoover: I've read, like, over half of it!
20:38:46 <pikhq> Shame we can't resurrect Kubrick and have him do it.
20:38:54 <elliott> Phantom__Hoover: Really though it'd be a worthy film even just with Unbelievable Scenes and 1970—.
20:38:58 <Phantom__Hoover> Ed would really be better as an episodic miniseries thing.
20:39:10 <elliott> Phantom__Hoover: At the start... but not Be Here Now onwards.
20:39:12 <Phantom__Hoover> And FS would not compress into an average-length film.
20:39:17 <Phantom__Hoover> At all.
20:39:28 <pikhq> Phantom__Hoover: Who said anything about "average-length"?
20:39:37 <Sgeo> How would you even go about turning FS into a film/
20:39:40 <elliott> Phantom__Hoover: Up to The Story So Far fits into my head-film with plenty of space left.
20:39:41 <Phantom__Hoover> pikhq, there is an upper limit on film length.
20:39:42 <pikhq> It'll be a 12 hour cinematic experience, I'm sure.
20:39:53 <pikhq> Phantom__Hoover: People watch LotR in a single sitting.
20:39:55 <elliott> Phantom__Hoover: 3 hours, maybe?
20:39:57 <pikhq> Any further questions?
20:39:59 <elliott> To three and a half.
20:40:04 <elliott> That's not unheard of.
20:40:06 <Phantom__Hoover> pikhq, that is two hours longer than the total length of LoTR.
20:40:10 <elliott> And it's epic enough.
20:40:15 <pikhq> Phantom__Hoover: Not the extended editions.
20:40:32 <elliott> Phantom__Hoover: If you can tell me why FS can't fit into three and a half hours without spoiling past The Story So Far, go ahead.
20:40:33 <Phantom__Hoover> LoTR actually compresses pretty well into a film; the large amount of description becomes unnecessary.
20:40:58 <pikhq> LotR would compress pretty well into a book; the large amount of description *is* unnecessary.
20:41:02 <pikhq> >:D
20:41:34 <elliott> Anyway, with enough rejiggling of the starting bits (adding filler/transitions), Ed Stories could work as a film, I think.
20:41:35 <coppro> `addquote <Phatom__Hovver> LoTR actually compresses pretty well into a film; the large amount of description becomes unnecessary. <pikh> LotR would compress pretty well into a book; the large amount of description *is* unnecessary.
20:41:43 <elliott> Or maybe it could be in medias res.
20:41:52 <elliott> Starting with that moment where Ed calls up and says "hey, what did I ever invent that could work".
20:42:05 <elliott> Each invention leading to a flashback of the relevant short story. And then work Be Here Now into there somehow.
20:42:09 <HackEgo> 263) <Phatom__Hovver> LoTR actually compresses pretty well into a film; the large amount of description becomes unnecessary. <pikh> LotR would compress pretty well into a book; the large amount of description *is* unnecessary.
20:42:23 <coppro> I'm too lazy to fix it
20:42:25 <elliott> what.
20:42:31 <elliott> Gregor: what manner of witchery is this.
20:42:34 <elliott> also, "pikh"
20:42:37 <elliott> try delquote
20:42:47 <Phantom__Hoover> pikhq, I actually found the Silmarillion less dreary than LoTR because of that.
20:43:09 <elliott> I tried to read Fellowship once, and decided that Tolkien was fucking with me about 100 to 200 pages in.
20:43:10 <pikhq> Phantom__Hoover: You found the Silmarillion *less* dreary.
20:43:12 <pikhq> *Less*.
20:43:20 <elliott> Then I gave up.
20:43:23 <pikhq> elliott: The series is worth reading. Once.
20:43:24 <Phantom__Hoover> It confuses me.
20:43:27 <j-invariant> does anyoen know what I'm talking about??
20:43:31 <elliott> j-invariant: what did you say
20:43:38 <Phantom__Hoover> (That I found it easier.)
20:43:39 <elliott> pikhq: The movies themselves were fairly slow too, but fun.
20:43:47 <Phantom__Hoover> pikhq, I was *dragging* myself through Return.
20:44:03 <pikhq> I wish it were public domain, so it would be legal to edit out the unneeded content.
20:44:23 <j-invariant> regarding Foundation: the first bit was cool but it started dragging and dragging.....
20:44:26 <elliott> ah
20:44:27 <elliott> i haven't read it
20:44:31 <pikhq> And leave the poetry as an appendix, or a seperate volume, rather than IN THE FREAKING STORY.
20:44:32 <j-invariant> I didn't make it into the good bits, I guess
20:44:33 <elliott> oklopol: this is going to be soooo much of a semantic editor
20:44:37 <j-invariant> because everyone loves that book...
20:44:39 <elliott> oklopol: it's gonna be RIDICULOUS
20:44:42 <pikhq> j-invariant: What was the last bit you got to?
20:44:43 <Phantom__Hoover> The movies are actually way better.
20:44:54 <j-invariant> pikhq: I can't remember, they were making wikipedia
20:44:57 <elliott> pikhq: Lord of the Rings in 500 Pages would be a great book.
20:45:14 <pikhq> I have some issues with the movies, but they do demonstrate that, dammit, Tolkien would be much improved with editing.
20:45:30 <pikhq> Though The Hobbit does this, as well.
20:45:31 <Phantom__Hoover> elliott, until pretentious literary types start badmouthing it.
20:45:51 <pikhq> Phantom__Hoover: Oh, they can go to hell. They badmouthed the books until recently anyways.
20:46:14 <elliott> http://tolkien.slimy.com/etext/EtextChps.html what is this.
20:46:21 -!- oerjan has joined.
20:46:21 <Phantom__Hoover> Because it wasn't ~deep and meaningful analysis of the human condition~?
20:47:48 <pikhq> Phantom__Hoover: The pretentious literary types really seem to like terrible fiction. About 50 years after it's been published.
20:48:01 <Phantom__Hoover> Examples?
20:48:04 <pikhq> On occasion they like good fiction as well, but I suspect this is a fluke.
20:48:29 <elliott> oklopol: this editor is going to be pretty horrible :D
20:48:36 <elliott> oklopol: it's basically going to be a shitload of boxes inside other boxes
20:49:41 <pikhq> Phantom__Hoover: "The Grapes of Wrath", by Steinbeck.
20:50:02 <Phantom__Hoover> That's terrible? (I wouldn't know.)
20:50:06 <pikhq> Phantom__Hoover: This book earned Steinbeck a Pulitzer and a Nobel Prize.
20:50:08 <elliott> oklopol:
20:50:09 <elliott> if default is None:
20:50:09 <elliott> if len(clue.branches)==1:
20:50:10 <elliott> default=clue.branches[0]
20:50:12 <elliott> else:
20:50:14 <elliott> recs=filter(lambda i:i.isrec(),clue.branches)
20:50:16 <elliott> if len(recs)==1:
20:50:17 <pikhq> Every *other* chapter has plot.
20:50:18 <elliott> default=recs[0]
20:50:20 <elliott> else:
20:50:22 <elliott> return None
20:50:24 <elliott> return call_branch(clue,default,args,depth_lim)
20:50:49 <pikhq> The plotless chapters are pretentious mental wanking put on a page, in the form of allegory.
20:51:25 <coppro> We only have 12 years to wait
20:51:27 <coppro> except for you
20:51:30 <coppro> you have 42
20:51:35 <coppro> lolsonnybono
20:51:56 <pikhq> copumpkin: By "12" or "42" you mean "infinity".
20:52:00 <pikhq> coppro: 6
20:52:00 <Vorpal> elliott, other random info: a goto based loop in TI-BASIC is about 5 times slower than a for-based one. A for is about 20% faster than a while loop.
20:52:02 <pikhq> coppro: ^
20:52:08 <coppro> pikhq: what
20:52:12 <elliott> copumpkin: YOU MEAN INFINITY DAMMIT
20:52:34 <Gregor> elliott: Pooppy witchery.
20:52:36 <pikhq> coppro: Retroactive copyright extensions happen every time Mickey Mouse is about to hit public domain.
20:52:39 <coppro> pikhq: I have no clue what you meant to say there
20:52:41 <Vorpal> who is copumpkin?
20:52:42 <elliott> Gregor: Oh.
20:52:42 <coppro> pikhq: oh, not here
20:52:48 <elliott> Vorpal: An evil witch.
20:52:53 <elliott> coppro: Correct pikh -> pikhq.
20:53:10 <coppro> maybe you guys
20:53:14 <coppro> we have 12 years
20:53:14 <copumpkin> Vorpal: who is Vorpal?
20:53:35 <copumpkin> (once I get an indication of what information you're looking for in an answer to that kind of question, I can answer yours :P)
20:53:36 <pikhq> coppro: This tends to be enforced by WIPO.
20:53:41 <Vorpal> I can't find what "<elliott> copumpkin: YOU MEAN INFINITY DAMMIT" was a reply to
20:53:42 <coppro> pikhq: uh what
20:54:00 <elliott> yet more proof you have no scrollback
20:54:24 <copumpkin> I think they both meant coppro
20:54:25 <pikhq> Every 20 years or so they get a stick up their ass, become convinced copyright needs to be 20 years longer, and strongarms most of the world into compliance.
20:54:28 <Vorpal> copumpkin, "someone new here" "someone who changed nick", "sometime who been away for many years but used to be a regular"
20:54:32 <copumpkin> both pikhq and elliott
20:54:32 <elliott> copumpkin: no
20:54:33 <Vorpal> copumpkin, that kind of stuff
20:54:34 <copumpkin> oh
20:54:36 <elliott> copumpkin: stop lying
20:54:39 <elliott> copumpkin: you mean infinit
20:54:40 <elliott> y
20:54:42 <elliott> and you know it's true
20:54:43 <coppro> pikhq: not Canada
20:54:47 <elliott> Vorpal: he's a #haskell informant.
20:54:52 <copumpkin> Vorpal: someone who's been here for about a week or two now I think, but yeah, relatively new :P
20:55:04 <pikhq> coppro: Member of WIPO, as well.
20:55:10 <Vorpal> elliott, aha
20:55:20 <elliott> yeah copumpkin is a member of wipo
20:55:23 <elliott> i agree
20:55:34 <copumpkin> wipo?
20:55:38 <elliott> absolutely
20:55:40 <copumpkin> oh okay
20:56:46 <Vorpal> copumpkin, are you the codomain of pumpkins or?
20:57:00 <copumpkin> I'm a pumpkin in the opposite category
20:57:05 <Vorpal> ah
20:57:54 <pikhq> coppro: Well I'll be. You guys haven't gone beyond the international-treaty-required-minimum of *life plus 50*.
20:58:01 <coppro> pikhq: nope
20:58:03 -!- Behold has joined.
20:58:20 <pikhq> Which is still bullshit.
20:58:20 <j-invariant> are we doing category theory
20:58:21 <elliott> j-invariant: implement copumpkin in your category theory
20:58:23 <coppro> pikhq: agreed
20:58:24 <coppro> j-invariant: no
20:58:27 <elliott> lol
20:58:30 <j-invariant> I'll go back to sleep them
20:58:55 <coppro> pikhq: in fact, Mickey Mouse has 6 more years here.
20:59:33 <elliott> 00:10:28 <oklopol> actually not so much lately, since i broke up with the gf, although we've been talking about being sex-buddies with an ex
20:59:33 <elliott> 00:11:22 <oklopol> (we broke up because of artistic differences)
20:59:37 <pikhq> More so under US copyright law, where Congress only has the power to enact copyright law for the purpose of increasing the works produced...
20:59:39 <oklopol> movies are ridiculously short when you get used to watching seasons of a tv series in one go
20:59:45 <elliott> oklopol: *phew* i still couldn't quite see you as being in a stable, long-term relationship
20:59:50 <elliott> you seem less..conflicting now
21:00:01 <coppro> ^
21:00:09 <Phantom__Hoover> "Artistic differences"?
21:00:21 <Phantom__Hoover> Did you disagree with her views on interior decoration?
21:00:47 <pikhq> (that is to say, under a strict interpretation of the US constitution, Congress *does not have the power* to create a copyright law that does not increase the amount of artistic expression.)
21:01:06 <j-invariant> elliott: Consider this http://pastebin.com/raw.php?i=VBavHxpt
21:01:06 <Vorpal> Phantom__Hoover, artistic difference could mean so very very much when oklopol says it.
21:01:07 <coppro> pikhq: have fun with that one
21:01:13 <coppro> pikhq: you should sue the government
21:01:17 <j-invariant> elliott: the problem is to write init in terms of foldr
21:01:20 <pikhq> (of course, under a strict interpretation of the US constitution, Congress doesn't have the power to do almost everything it does, so hey!)
21:01:25 <Vorpal> Phantom__Hoover, consider yesterday's discussion between him and zzo for example
21:01:29 <coppro> pikhq: yep
21:01:43 <elliott> j-invariant: i've written functions in terms of foldr all the time
21:01:45 <j-invariant> elliott: Maybe the methods here could be incorperated into Clue
21:01:51 <elliott> lol :)
21:01:55 <elliott> j-invariant: since i think that data should be represented as its foldr
21:01:55 <j-invariant> elliott: I am pointing out that the derivation is systematic
21:01:59 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
21:01:59 <elliott> as in, instead of church representation etc.
21:02:02 <elliott> j-invariant: yes, indeedy
21:02:14 <pikhq> Hmm. Of things it commonly does, it has the power to: run the military, fund roads, run the postal service, and tax.
21:02:16 <j-invariant> elliott: I have been watching some videos about the difference between the encodings data = ... and folds
21:02:47 <elliott> j-invariant: people have already encoded data as its fold as an implementation technique?
21:02:53 <elliott> and made pattern matching and recursion compile to that?
21:02:55 <elliott> slitting wrists brb
21:03:00 <Vorpal> pikhq, isn't the postal service private in US? If so that surprises me
21:03:04 <j-invariant> what?
21:03:09 <elliott> j-invariant: ?
21:03:14 <oklopol> elliott: it was rather stable and long-term imo
21:03:32 <pikhq> Vorpal: The postal service is very much public.
21:03:38 <elliott> oklopol: yeah but it isn't any more, which is the good thing. also if you're somehow normal enough to get offended by me saying this, just say
21:03:44 -!- KingOfKarlsruhe has joined.
21:03:45 <oklopol> well right
21:03:54 <oklopol> i get offended if you tell me i suck at math
21:03:58 <j-invariant> elliott: You should learn uAgda: In this language we define data types by their elimination behavior and theen program with them using parametricity
21:03:58 <oklopol> that's it
21:04:03 <Vorpal> pikhq, I don't know if the word exists (it probably doesn't) but that is an geochronism
21:04:09 <Vorpal> (or whatever)
21:04:11 <elliott> j-invariant: :D
21:04:14 <elliott> oklopol: you suck at math
21:04:18 <Vorpal> (probably chron has to do with time)
21:04:20 <oklopol> fuck you
21:04:26 <elliott> oklopol: i'm jokin i'm jokin
21:04:26 <Vorpal> (so it should be anageonism or something)
21:04:29 <elliott> oklopol: u r math god
21:04:36 <j-invariant> oklopol: do you actually do any math
21:04:47 <j-invariant> which one?
21:04:56 <pikhq> Vorpal: It functions independentally, does not receive any money *from* the federal government, but it's a government agency nevertheless.
21:05:00 <oklopol> j-invariant: yes
21:05:01 <elliott> he does all the maths j-invariant
21:05:05 <oklopol> "which one?"
21:05:11 <elliott> he's a BACHELOR! he even got a plaque, saying he's a bachelor
21:05:12 <Vorpal> pikhq, uh...
21:05:14 <elliott> i think this is how degrees work
21:05:14 <j-invariant> I hate trying to help people in IR
21:05:16 <j-invariant> IRC
21:05:18 <j-invariant> they never listen to me
21:05:36 <Vorpal> j-invariant, I know the feeling
21:05:38 <pikhq> Vorpal: The functioning independentally is just a matter of how the bureaucracy works.
21:05:43 <j-invariant> do I just come across as some sort of liar that wants to trick people or what
21:05:46 <Vorpal> pikhq, hm
21:05:48 <elliott> j-invariant: i listened to you :<
21:06:24 <pikhq> Vorpal: It's part of the executive branch, and technically the President could just start bossing people around.
21:06:33 <Vorpal> pikhq, hah
21:07:41 <elliott> oklopol: have you ever used tkinter
21:07:47 <pikhq> Also, it predates the US, and was founded by Ben Franklin.
21:07:48 * j-invariant listens to HAPPY SONG
21:07:52 <oklopol> elliott: yes
21:07:52 <elliott> j-invariant: wat
21:07:58 <elliott> oklopol: can i like
21:08:11 <j-invariant> elliott: http://www.youtube.com/watch?v=JwmU9kQTv4U
21:08:12 <elliott> oklopol: recursively transform an object structure into a gui widget, different widget type per class
21:08:16 <elliott> oklopol: and have it sort of automatically update?
21:08:34 <oklopol> i haven't used it enough to tell you more than any tutorial could
21:08:38 <elliott> j-invariant: i thought you just had a song that you referred to as HAPPY SONG for no reason :D
21:08:43 <oklopol> i've mostly just made basic interfaces with it
21:08:47 <j-invariant> :P
21:08:52 <oklopol> like you know text box + button
21:09:03 <elliott> oklopol: i'm tempted to just do this with sdl :D
21:09:07 <elliott> or whatever
21:09:09 <elliott> pygame or sth
21:10:45 <j-invariant> what a waste of tiem geez
21:11:15 <elliott> j-invariant: ?
21:11:26 <Vorpal> elliott, what are you doing then?
21:11:31 <j-invariant> elliott: this guy wanted to know how to write init as foldr, I tried to help him but he just ignored me
21:11:32 <Vorpal> j-invariant, har har
21:11:37 <elliott> oklopol: like i can't figure out how to do this, do i have to reconstruct every object constantly
21:11:41 <Vorpal> (wrt games)
21:11:41 <j-invariant> Vorpal: what is har har/
21:11:47 <elliott> j-invariant: do you mean me >_>
21:11:53 <elliott> i don't recall wanting to know that
21:11:55 <j-invariant> elliott: ?? no
21:11:57 <elliott> oh
21:12:11 <j-invariant> lol
21:12:11 <elliott> it's possible he just didn't see your message...
21:12:22 <Vorpal> j-invariant, wait nvm. I read "geez" as "games" somehow (and sorted out the grammar without noticing it)
21:12:46 <Vorpal> I think I need to sleep
21:12:52 <j-invariant> Vorpal: well I /have/ spent about 60% of the last few days playing minecraft
21:13:05 <Vorpal> j-invariant, that was why I went "har har" :P
21:14:45 <elliott> oklopol: i think i need... zippers... in python :D
21:14:51 <elliott> or just
21:14:52 <elliott> omg
21:14:53 <elliott> mutable integers :D
21:14:57 <elliott> BEST IDEA
21:20:14 <elliott> oklopol: oh wow it's actually working.
21:21:04 <elliott> oklopol: dude.
21:21:09 <elliott> it's
21:21:10 <elliott> WORKING
21:23:36 <Vorpal> <elliott> mutable integers :D <-- what exactly do you mean?
21:23:38 <Vorpal> something like
21:23:41 <Vorpal> 1 = 5?
21:23:48 <elliott> Vorpal: x = IntHolder(5)
21:23:51 <elliott> x.value = 6
21:24:05 <Phantom__Hoover> <elliott> oklopol: i think i need... zippers... in python :D ← Well, someone already did monads...
21:24:10 <Vorpal> elliott, uh. so it is inc() ?
21:24:11 <elliott> hmm possibly these objects should know their parents
21:24:16 <Vorpal> elliott, or wait
21:24:17 <elliott> Vorpal: what
21:24:22 <Vorpal> elliott, you mean x = 5; x = 6 ?
21:24:23 <elliott> Vorpal: the point is that it's (int *)
21:24:24 <elliott> basically
21:24:26 <elliott> no
21:24:26 <Vorpal> elliott, but boxed?
21:24:32 <elliott> well yes
21:24:38 <elliott> x = Holder(5); f(x); x ==> Holder(6)
21:24:40 <elliott> if f is
21:24:43 <Vorpal> elliott, so you need boxed mutable variables. Okay
21:24:44 <elliott> x.value += 1
21:24:54 <elliott> Phantom__Hoover: http://imgur.com/JybuB
21:25:59 <elliott> oklopol: current state of cled: http://i.imgur.com/931qc.png
21:26:05 <elliott> oklopol: those buttons are actually going to be like text boxes
21:26:06 <elliott> but whatever
21:26:32 <elliott> oklopol: the idea is basically that everything is a list: e.g. a branch is a list of examples
21:26:37 <j-invariant> what's cled?
21:26:42 <elliott> oklopol: you can go up and down a list, "descend" into a list, and ascend back up
21:26:54 <elliott> oklopol: so for instance, the list shown there is 1, 2 and 3
21:26:54 <Phantom__Hoover> elliott, AAAAAAAAAARRRRRGGGGGHHHH
21:27:11 <elliott> oklopol: if you are over, e.g. an integer, then you can type a new one to replace it
21:27:27 <elliott> oklopol: bags are obviously an auto-sorted unique list (set) of their elements
21:27:31 <elliott> oklopol: lists are of course lists of their elements
21:27:39 <elliott> oklopol: and the whole program is an auto-sorted unique list (set) of the functions
21:27:49 <elliott> and there's one extra key, /
21:27:53 <elliott> /foo jumps to the function foo
21:28:05 <elliott> oh, and there's also "insert element to list here" and "delete element"
21:28:13 <elliott> you create a function by inserting an element in the program, typing the name, and going from there
21:28:15 <elliott> Phantom__Hoover: what's aaargh
21:28:27 <Phantom__Hoover> elliott, that creeper
21:28:31 <elliott> Phantom__Hoover: Ah.
21:28:51 <elliott> oklopol: the keys to create "more than 3" look something like this:
21:29:00 <j-invariant> elliott: what is it!
21:29:04 <Vorpal> <elliott> Phantom__Hoover: http://imgur.com/JybuB <-- that looks like a cross between a creeper, a duck and some blobby creature from generic scifi that can shape shift.
21:29:07 <elliott> j-invariant: an editor for Clue trees
21:29:11 <j-invariant> oh
21:29:17 <Vorpal> elliott, end result is not scary but just laughable
21:29:23 <elliott> it is terrifying.
21:29:27 <Phantom__Hoover> Vorpal, the moooouuuuuutttthhhh
21:29:42 <Vorpal> Phantom__Hoover, yes it just looks silly
21:29:54 <Vorpal> Phantom__Hoover, a mouth that shape, how would it close it?
21:30:07 <elliott> it doesn't
21:30:08 <elliott> duh
21:30:12 <elliott> ever seen a creeper with its mouth closed?
21:30:20 <Vorpal> elliott, no and I blame notch for that
21:30:22 <elliott> oklopol: +emore than 3<up><down>+e+e0<up><right>e0<up>... and more
21:30:29 <elliott> oklopol: i swear this is easy to use :D
21:30:41 -!- BMG has joined.
21:30:53 -!- BMG has quit (Changing host).
21:30:53 -!- BMG has joined.
21:30:58 -!- BMG has changed nick to BeholdMyGlory.
21:31:07 <elliott> Vorpal: so anyway, water flows upwards now http://i.imgur.com/4mx3X.png
21:31:21 <elliott> oh
21:31:22 <elliott> just visual
21:31:23 <elliott> :(
21:31:33 <elliott> http://www.minecraftforum.net/viewtopic.php?f=35&t=99048
21:33:56 <elliott> oklopol: i get the feeling you don't think this editor is brilliant :
21:33:57 <elliott> :D
21:34:32 -!- Behold has quit (Ping timeout: 260 seconds).
21:39:15 -!- GreaseMonkey has joined.
21:46:03 <oklopol> http://imgur.com/JybuB = awesome
21:47:55 <oklopol> someone should totally make mc with those graphics
21:48:30 <j-invariant> haha this guy shows how to make a memory cell using boats and doors
21:55:30 <elliott> oklopol: making this is so hard :D
21:55:36 -!- augur[afk] has changed nick to augur.
21:56:06 -!- sebbu has joined.
21:56:15 -!- KingOfKarlsruhe has quit (Remote host closed the connection).
21:56:46 <elliott> http://imgur.com/nlL89 hd textures :D
21:57:00 <oklopol> sleeeeeeeep
21:58:04 -!- sebbu2 has quit (Ping timeout: 240 seconds).
21:59:17 <elliott> oklopol: what, why
22:00:09 <elliott> pikhq: I dare you to retell Lord of the Rings in 10 sentences.
22:00:17 <elliott> pikhq: (Not ten chapter-long sentences.)
22:02:45 <pikhq> elliott: Frodo Baggins must destroy the Ring of Power, so that ultimate evil cannot use it! He does so.
22:02:50 <pikhq> 2.
22:02:52 <pikhq> There.
22:03:26 <elliott> pikhq: That leaves out almost all details. Try and pack all the important details into 10 sentences.
22:03:30 <elliott> This is going somewhere.
22:06:11 <j-invariant> "First Wikileaks, then their followers. Next will be the follower's followers. Eventually the US will get their real target: Kevin Bacon
22:06:30 <elliott> :D
22:06:47 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:06:53 <Phantom__Hoover> Like my conspiracy to conspire to commit fraud.
22:09:50 -!- azaq23 has joined.
22:11:39 -!- j-invariant has quit (Quit: leaving).
22:12:30 <elliott> Vorpal: tile would probably work with this actually
22:12:31 <elliott> but whatever
22:13:28 <oerjan> <elliott> oklopol: what, why <-- he has an exam tomorrow, remember?
22:13:32 <elliott> oerjan: so?
22:13:53 <Vorpal> <elliott> Vorpal: so anyway, water flows upwards now http://i.imgur.com/4mx3X.png <--- old, happens all the time with diagonals like that. It can go down if you have a 2x2 basin without the corners for example
22:13:53 * oerjan swats elliott -----###
22:14:09 <Vorpal> <elliott> Vorpal: tile would probably work with this actually <-- this made no sense
22:14:17 <elliott> pikhq: i have a tk question
22:14:17 <Vorpal> I do not know the context
22:14:22 <elliott> Vorpal: tk themeable widgets
22:14:28 <Vorpal> oh right
22:14:30 <Vorpal> well okay
22:14:31 <Vorpal> night
22:14:36 <pikhq> elliott: I don't know Tk well, but k.
22:14:45 <elliott> pikhq: what event do I bind to on an entry (single-line text input field) such that it triggers whenever an extra char gets inserted?
22:14:48 <elliott> <Key> doesn't work
22:14:54 <elliott> it calls even for things like tab, cursor keys, etc.
22:14:56 <pikhq> Hell if I know.
22:15:03 <elliott> pikhq: :(
22:17:33 <elliott> pikhq: MAKE IT WORK
22:19:45 -!- Behold has joined.
22:22:08 <Phantom__Hoover> fizzie, mcmap feature request?
22:22:56 -!- BeholdMyGlory has quit (Ping timeout: 250 seconds).
22:23:00 <Phantom__Hoover> Could it copy the block data it receives to an SSP-compatible world file?
22:25:52 <elliott> Phantom__Hoover: fizzie already has that planned.
22:26:06 <elliott> Maybe I could plan how to blow up Mount Vorpal locally.
22:29:50 <elliott> pikhq: Do you know of a tcl wiki link listing tk events?
22:32:52 -!- pikhq has quit (Ping timeout: 240 seconds).
22:37:18 -!- FireFly has quit (Quit: swatted to death).
22:48:14 <ais523> hmm, that was a bizarre spambot on Esolang
22:48:23 <ais523> it's replacing arbitrary links with piped links to its own website
22:49:32 <coppro> sounds like one that might be effective
22:49:35 <elliott> ais523: hi!
22:49:57 <Phantom__Hoover> ais523, looks like it was just programmed to s/[.*/<linkname> /
22:50:57 <ais523> Phantom__Hoover: indeed
22:52:41 <ais523> it really screwed up the syntax
22:53:06 <elliott> ais523: have you ever used a semantic editing tool?
22:53:18 <Phantom__Hoover> ais523, not too badly.
22:53:30 <Phantom__Hoover> It actually worked perfectly.
22:53:52 <Phantom__Hoover> Links become links to the spammer's site, but with a single ] at the end.
22:56:16 <Phantom__Hoover> What happened to voxelperfect, BtW?
22:56:32 <elliott> Phantom__Hoover: Expired.
22:56:45 <Phantom__Hoover> The domain?
22:57:40 <elliott> Yes.
22:57:42 <elliott> ais523: yes/no? :p
22:59:19 <Phantom__Hoover> What's a semantic editing tool?
23:08:39 <elliott> Phantom__Hoover: I'LL GET TO THAT LATER
23:08:59 <Phantom__Hoover> elliott, my Complaining About People Not Liking The Show entry on TV Tropes' MC article has been bumped to the YMMV tab.
23:09:12 <elliott> Phantom__Hoover: Haa.
23:09:27 <Phantom__Hoover> Other things in that tab are "Demonic Spiders".
23:09:34 <Phantom__Hoover> This isn't even marked as subjective.
23:09:39 <Phantom__Hoover> I despair.
23:10:54 <elliott> "Creepers are of the same species as the Slender Man."
23:10:55 <elliott> Oh dear god
23:11:14 <Phantom__Hoover> DON'T MENTION THAT
23:12:40 <elliott> Phantom__Hoover: Meanwhile, http://www.youtube.com/watch?v=RiJh5fpWPAo
23:13:16 <Phantom__Hoover> :)
23:14:12 <elliott> Phantom__Hoover: Incidentally, with the kind of rates he gets there, HHI could double its TNT supply in days.
23:14:42 <Phantom__Hoover> Roll on creeper Wednesdays!
23:19:11 -!- TLUL has changed nick to TLUL|afk.
23:26:31 <Phantom__Hoover> http://www.minecraftforum.net/viewtopic.php?f=1016&t=71196
23:26:33 <Phantom__Hoover> SCIENCE!
23:26:40 <Phantom__Hoover> Pigman science!
23:30:23 <Phantom__Hoover> elliott, Notch fanboy stupidity of the week:
23:30:48 <Phantom__Hoover> Someone on TV Tropes said that you'd be mocked relentlessly for appreciating the things Notch does FOR FREE!
23:30:51 -!- fizzie has quit (Read error: Operation timed out).
23:31:07 <Phantom__Hoover> Free.... except for the €15 charge for the beta.
23:31:33 <elliott> Bahaaha.
23:32:49 <elliott> what, voxelperfect works again
23:32:54 <elliott> ais523: ^
23:32:55 <elliott> oerjan: ^
23:33:02 -!- fizzie has joined.
23:33:13 -!- ais523 has quit (Remote host closed the connection).
23:34:45 <elliott> oklopol: hey it's actually working :D
23:37:32 -!- pikhq has joined.
23:37:41 <oerjan> elliott: woohoo!
23:39:25 <elliott> :: foo ~ { -> 3 }; foo ~ 3
23:39:26 <luatre> IndexError: list index out of range :(
23:39:29 <elliott> :: foo ~ { -> 3 } foo ~ 3
23:39:29 <luatre> IndexError: list index out of range :(
23:39:31 <elliott> hmm
23:39:36 <elliott> i should complain to oklopol about that :D
23:39:39 <Phantom__Hoover> http://www.youtube.com/watch?v=EylMIwGLRBg
23:39:42 <Phantom__Hoover> How...
23:39:53 <Phantom__Hoover> How did he get FPS that high on the Reddit creative server?
23:39:59 <elliott> WITH SCIENCE!!!!!!!!!!!!!!!!!!!!!!!
23:41:11 <Phantom__Hoover> Y'know, CS isn't really a science...
23:41:16 <elliott> Phantom__Hoover: Obviously.
23:41:17 <Phantom__Hoover> It's more of a whatever mathematics is.
23:41:25 <elliott> Phantom__Hoover: It *is* a field of mathematics.
23:41:26 <elliott> Phantom__Hoover: "Computing theory".
23:41:29 <elliott> Or "Computation theory". etc.
23:41:37 <elliott> CS is neither a science nor related to computers.
23:41:39 <pikhq> People who claim otherwise are ignorant.
23:42:14 <Phantom__Hoover> pikhq, any other novels which are awful and loved by the pretentious?
23:42:29 <pikhq> Phantom__Hoover: Lemme find some.
23:43:20 <pikhq> Phantom__Hoover: Alternately, I could cut the work and just say "Look at a literature cirriculum."
23:43:21 <elliott> Phantom__Hoover: Iain M. Banks
23:43:21 * elliott OHHHHHHHH
23:43:44 <Phantom__Hoover> elliott, M.?
23:43:47 <Phantom__Hoover> Not loved by the pretentious.
23:43:52 <elliott> Phantom__Hoover: T'was joke.
23:44:01 <elliott> But yeah, I should have said just Iain Banks.
23:44:02 <elliott> Iain Banksy.
23:44:10 <pikhq> http://en.wikipedia.org/wiki/Pulitzer_Prize_for_Fiction Here's a list.
23:44:28 <Phantom__Hoover> SF in general isn't loved by the pretentious, since you need to have a modicum of intelligence to appreciate it.
23:44:33 -!- Behold has quit (Remote host closed the connection).
23:44:36 <pikhq> (note: some omissions required. Namely: Hemingway is a good author.)
23:45:00 <pikhq> (whose writing style is most notable for lacking any bullshit at all.)
23:46:43 <Phantom__Hoover> "Bullshit" here meaning "all forms of punctuation higher than the full stop."
23:46:48 <Phantom__Hoover> Er, *".
23:47:22 <elliott> I want to like Vonnegut but can't because he hates semicolons. It is a wretched state of existence I find myself in.
23:47:28 <pikhq> Actually, it's more that he's completely unpretentious.
23:47:36 <Phantom__Hoover> The Road is meant to be good.
23:47:41 <Phantom__Hoover> elliott, I like semicolons!
23:47:46 <elliott> SO DO I
23:47:54 <pikhq> Of course, this is natural, considering that he's also quite legitimately a badass. :P
23:47:57 <Phantom__Hoover> Oh, pissmarsed.
23:48:06 <elliott> "First rule: Do not use semicolons. They are transvestite hermaphrodites representing absolutely nothing. All they do is show you've been to college."
23:48:08 <elliott> —Vonnegut
23:48:11 <Phantom__Hoover> The Road is also speculative fiction.
23:48:15 <Phantom__Hoover> COINCIDENCE
23:48:28 <Phantom__Hoover> elliott, I learnt it in my first year of senior school"!
23:48:32 <Phantom__Hoover> s/"//
23:48:41 <pikhq> I don't recall *not* knowing proper use of the semicolon!
23:48:48 <Phantom__Hoover> Turns out that the guys who wrote the Oxford Latin Course love semicolons.
23:49:23 <elliott> I used to never use the semicolon, then I did, and used it excessively to the point of insanity in here; then I decided to stop entirely for a few months, which I did, and my writing became a bit less silly; and then I started again, but more moderately.
23:49:31 <elliott> Of course, "moderately" here means "a few times per sentence".
23:50:22 <Phantom__Hoover> Remember my Comic Sans essay?
23:50:34 <Phantom__Hoover> The teacher scolded me for "semicolon splicing".
23:51:01 <Phantom__Hoover> When I pointed out to her that that was the ENTIRE POINT of the semicolon, she said I still wasn't using it properly.
23:51:10 * Phantom__Hoover wonders if he still has that essay handy.
23:52:00 <Phantom__Hoover> Yes, I do, but it's in LyX.
23:52:09 <Phantom__Hoover> Might as well convert it to LaTeX.
23:52:15 <elliott> Semicolon splicing.
23:52:15 <elliott> <3
23:52:32 <pikhq> Phantom__Hoover: Next up, write an essay on the proper use of semicolons.
23:52:38 <pikhq> Cite every major style guide.
23:52:49 <pikhq> (they're not likely to disagree on major points.)
23:53:32 <Phantom__Hoover> pikhq, well, her quibble was more that I had used it between sentences that weren't very logically connected.
23:54:06 <pikhq> Phantom__Hoover: Define "logically connected".
23:54:23 <Phantom__Hoover> Dunno.
23:54:41 <Phantom__Hoover> I could put the text of the essay up, if you want, but it's not terribly good.
23:54:52 <pikhq> I've probably seen worse.
23:54:55 <Phantom__Hoover> I knocked it together in about 2 hours on the day before it was due.
23:55:10 <Phantom__Hoover> And I was then scolded *again* for formatting it wrongly.
23:55:23 <elliott> Phantom__Hoover: Wrongly = with LaTeX? :D
23:55:25 <Phantom__Hoover> (To be fair, I did use sections and a couple of footnotes.)
23:55:36 <Phantom__Hoover> elliott, naw.
23:55:55 <Phantom__Hoover> Although lots of people made the oh-so-clever suggestion to typeset it in Comic Sans.
23:56:24 <Phantom__Hoover> GODDAMN IT APTITUDE I DON'T CARE IF THERE'S AN UNMET DEPENDENCY IN A COMPLETELY DIFFERENT PACKAGE TO THE ONE I WANT TO INSALL
23:56:27 <Phantom__Hoover> *INSTALL
←2011-01-08 2011-01-09 2011-01-10→ ↑2011 ↑all