00:05:02 -!- sebbu2 has joined.
00:05:05 -!- sebbu has quit (Ping timeout: 245 seconds).
00:05:23 -!- sebbu2 has changed nick to sebbu.
00:12:12 -!- sebbu has quit (Ping timeout: 240 seconds).
00:12:35 -!- werdan7_ has changed nick to werdan7.
00:22:19 -!- sebbu has joined.
00:44:29 -!- sshc has joined.
01:19:09 -!- Asztal has quit (Ping timeout: 260 seconds).
01:21:09 -!- dev_squid has quit (Ping timeout: 264 seconds).
01:22:37 -!- cheater2 has quit (Ping timeout: 240 seconds).
01:33:18 -!- oklofok has quit (Read error: Connection reset by peer).
01:33:41 -!- oklopol has joined.
01:34:13 -!- dev_squid has joined.
01:57:14 -!- sebbu2 has joined.
01:57:55 -!- sebbu has quit (Ping timeout: 268 seconds).
01:57:58 -!- sebbu2 has changed nick to sebbu.
02:00:32 -!- oerjan has quit (Quit: Good night).
02:08:39 -!- dev_squid has quit (Ping timeout: 258 seconds).
03:16:52 -!- dev_squid has joined.
03:19:08 -!- augur has joined.
03:31:29 -!- Oranjer has left (?).
04:24:53 -!- augur has quit (Ping timeout: 260 seconds).
04:26:29 -!- augur has joined.
04:52:30 -!- dev_squid has quit.
06:34:37 -!- augur has quit (Ping timeout: 252 seconds).
06:38:37 -!- MizardX has quit (Ping timeout: 240 seconds).
06:39:15 -!- augur has joined.
06:46:07 -!- FireFly has joined.
07:04:04 -!- tombom has joined.
07:06:47 -!- bsmntbombdood has quit (Read error: Operation timed out).
07:50:06 -!- tombom has quit (Quit: Leaving).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:18 -!- kar8nga has joined.
08:26:13 -!- FireFly has quit (Quit: Leaving).
09:06:24 -!- coppro has quit (Ping timeout: 248 seconds).
09:46:03 -!- cheater2 has joined.
09:57:08 -!- adam_d has joined.
09:57:46 -!- cheater3 has joined.
10:00:03 -!- cheater2 has quit (Ping timeout: 260 seconds).
10:02:17 -!- oerjan has joined.
10:15:50 -!- oklopol has quit (Read error: Connection reset by peer).
10:16:06 -!- oklopol has joined.
10:26:45 -!- lereah_ has joined.
10:35:03 -!- kar8nga has quit (Ping timeout: 260 seconds).
10:36:38 -!- oerjan has quit (Quit: leaving).
11:01:50 -!- adam_d has quit (Ping timeout: 240 seconds).
11:15:09 -!- oklofok has joined.
11:15:11 -!- oklopol has quit (Read error: Connection reset by peer).
11:21:26 -!- BeholdMyGlory has joined.
12:29:16 -!- kar8nga has joined.
12:32:22 -!- Tritonio_GR has joined.
12:42:12 -!- kar8nga has quit (Remote host closed the connection).
13:05:09 -!- MigoMipo has joined.
13:08:17 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
13:09:21 -!- adam_d has joined.
13:12:09 -!- ais523 has joined.
13:54:23 -!- lereah_ has quit (Remote host closed the connection).
13:58:17 -!- adam_d has quit (Ping timeout: 276 seconds).
13:59:09 -!- lereah_ has joined.
14:29:50 -!- MizardX has joined.
14:40:09 -!- MizardX has quit (Ping timeout: 276 seconds).
14:42:03 -!- BeholdMyGlory has joined.
14:57:14 -!- adam_d has joined.
15:08:36 -!- MigoMipo has quit (Quit: Page closed).
15:17:22 -!- oerjan has joined.
15:21:52 <fizzie> I didn't hear anything, the join-quit noise is so loud.
15:23:32 <oerjan> and there's such a terrible lasting echo
15:23:45 <ais523> hmm, can anyone here think of a decent way to parse reverse-polish using Parsec?
15:24:04 <ais523> at the moment, I'm reversing the input string then parsing the resulting forward-polish, but the resulting error messages are ridiculous
15:25:30 <ais523> oerjan: or Confloddle, which is what I'm trying to implement atm
15:25:34 <ais523> Forth isn't really parsed
15:26:03 <oerjan> hm that does sound weird to do without a stack
15:26:04 <ais523> (incidentally, Confloddle can be cut down from 5 to 4 characters trivially; it turns out that you can deduce the location of every < in the program even if it's not stated)
15:27:29 <oerjan> i suppose you'd like to detect stack underflows at the spot?
15:27:47 <ais523> (so I'm considering making the character set just re@: where @ is > and the location of the < is implied)
15:28:08 <ais523> both bottom-up parsers and LR(1) parsers don't have a problem with this sort of thing, although they both use stacks internally
15:30:07 <oerjan> yes this is a left-recursion problem isn't it
15:30:24 <ais523> the obvious way to write it in Parsec gives you an infinite loop
15:30:34 <ais523> I've been considering just writing a parser by hand
15:35:50 <oerjan> you can do the reversing while parsing instead of before at least, maybe that gives better messages?
15:37:04 -!- FireFly has joined.
15:40:56 <oerjan> parseRest l = do (t <- token; let a = noArgs t; guard (length l >= a); parseRest (apply t (take a) l : drop a l)) <|> ...finished...
15:42:12 <oerjan> you just pass in what's parsed so far, and apply to arguments immediately
15:42:42 <oerjan> *(reverse $ take a), probably
15:42:59 <oerjan> *(reverse $ take a l), probably
15:43:32 <oerjan> that l should have been inside the parentheses to start with
15:44:04 <oerjan> it might be a good idea to split on whether t takes arguments or not
15:44:46 <oerjan> oh and noArgs is numberOfArgs, not absense
15:45:42 <oerjan> is it still confusing?
15:46:17 <ais523> I'm trying to figure out why you care about the number of args of the first token
15:46:49 <oerjan> ais523: it's not the first token, parseRest l is applied recursively to get each token
15:47:07 <oerjan> (well it's the first token too, called as parseRest )
15:47:14 -!- Asztal has joined.
15:47:16 <ais523> oerjan: hmm, l is the list of tokens you've seen so far?
15:47:27 <ais523> I'm starting to see how that works now, but it's still really unintuitive to me
15:47:36 <oerjan> not just tokens, collected expressions
15:48:59 <oerjan> it essentially does a parsing using a stack, just inside parsec
15:49:35 <ais523> in which case you may as well write it by hand and make it clearer
15:50:13 <oerjan> yes, it's just to get parsec's error messages (and it's just a sketch)
15:51:22 <oerjan> that guard should be replaced with something with a proper underflow error message
15:52:03 <oerjan> "t applied to too few arguments" and i suppose parsec provides the position
15:52:24 <ais523> hmm, perhaps you could just use fail?
15:54:50 <oerjan> yes, that looks like the right thing for user-generated ones
15:56:55 -!- ais523 has quit (Remote host closed the connection).
16:03:24 -!- Tritonio_GR has quit (Quit: Leaving.).
16:13:06 -!- cheater2 has joined.
16:14:40 -!- cheater3 has quit (Ping timeout: 245 seconds).
16:18:16 -!- MizardX has joined.
16:29:16 -!- lereah_ has quit (Remote host closed the connection).
17:08:56 -!- ais523 has joined.
17:10:10 -!- tombom has joined.
17:20:55 -!- oerjan has quit (Quit: leaving).
17:57:37 -!- augur has quit (Ping timeout: 240 seconds).
18:08:25 -!- charlls has joined.
18:27:36 -!- augur has joined.
18:31:57 -!- hiato has joined.
18:51:31 -!- ehirdiphone has joined.
18:52:55 <Sgeo> Hi ehirdiphone
18:53:19 <Sgeo> What do you mean by half a dispatch?
18:54:44 <ehirdiphone> But impermanent as are all such things; I'm not of the sort required to keep such a thing hidden.
18:55:17 <ehirdiphone> The iPhone encorages verbosity... It is easier than a multitude of error correction.
18:56:08 <ehirdiphone> If anyone asks it is my company's: and I am using it to play games.
18:56:46 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
18:57:09 -!- ehirdiphone has joined.
18:57:29 <ais523> ehirdiphone: turns out you can remove < from confloddle
18:57:35 <ais523> as the location of the < is implied by the location of the >
18:57:39 <Sgeo> Oh, so that wasn't someone walking by? Although I guess if someone walked by, it would be easier to abruptly hide it than close out of IRC
18:58:11 <Sgeo> Link to Confloodle?
18:58:17 <Sgeo> I don't see it on the wiki
18:58:19 <ais523> there isn't one, check logs
18:58:21 <pikhq> I presume that you're not that well monitored at night?
18:58:43 <ais523> basically, it's a tarpit based on foldl and cons
19:01:28 <pikhq> ehirdiphone: Well: evening times.
19:01:53 <ehirdiphone> Actually for a while, at the start, they checked on me every five minutes through the night: apparently I was considered at risk of attempting suicide.
19:02:18 <ehirdiphone> Ridiculous: if I was of that disposition I'd have done it so much earlier.
19:02:42 <ehirdiphone> But yeah; my room is the one place I am mostly alone.
19:02:59 <pikhq> Or at least have been much more creative about it.
19:03:30 <ehirdiphone> Rubber chicken with a pully in the middle.
19:04:11 <ehirdiphone> A reference to the Secret of Monkey Island, actually.
19:08:44 <ais523> don't rubber chickens turn things to stone?
19:09:24 -!- ehirdiphone has quit (Ping timeout: 264 seconds).
19:15:52 -!- ehirdiphone has joined.
19:16:49 <Sgeo> <ais523> don't rubber chickens turn things to stone?
19:17:04 <ais523> Sgeo: NetHack reference
19:17:09 <Sgeo> ais523, I know
19:17:12 <Sgeo> <ehirdiphone> Since brb said?
19:18:05 * Sgeo dons gloves and throws a c at ais523
19:18:14 -!- ehirdiphone has quit (Client Quit).
19:18:18 * ais523 dodges, on the basis that c corpses have a 0% hit chance
19:18:37 -!- ehirdiphone has joined.
19:19:05 * Sgeo throws some c eggs at ais523
19:19:16 <ais523> Sgeo: are you wearing gloves?
19:19:22 <ais523> anyway, /me eats a lizard corpse
19:19:38 <Sgeo> I don't think lizard corpses help against instant petrification
19:19:39 <ais523> eggs cause slow stoning, not instastoning
19:19:43 <Sgeo> Just against his.. oh
19:25:11 <ehirdiphone> Oerjan:http://www.reddit.com/r/pics/comments/bk6s0/norwegian_life/c0n6q13
19:28:54 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
19:29:13 -!- ehirdiphone has joined.
19:29:34 -!- adam_d_ has joined.
19:32:07 -!- adam_d has quit (Ping timeout: 246 seconds).
19:39:37 -!- oklofok has quit (Ping timeout: 240 seconds).
19:41:47 <ais523> why do you need syntax for that?
19:45:54 * Sgeo loves how right-clicking can make explorer.exe crash
19:47:51 <ais523> confloddle has time travel?
19:48:18 * Sgeo should probably read the logs at some point
19:48:41 <ais523> hmm, no, you can just dedcude the location of the opener
19:48:48 <ais523> by looking at arities going bacwards from the >
19:51:16 -!- charlesq__ has joined.
19:52:25 -!- charlls has quit (Read error: Connection reset by peer).
19:53:53 <ehirdiphone> Goodbye but I this week will return ...Thursday!
19:54:23 <ais523> don't worry, we'll manage somehow
19:55:09 <pikhq> Gx's l' r'v'd', m' 'm'k'.
19:55:13 * uorygl loves how refreshing can make Safari crash
19:55:45 <ehirdiphone> --alise; in the land of Mordor where the Shadows lie.
19:56:20 -!- ehirdiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
19:56:36 <uorygl> pikhq: Esperapostropho?
19:56:52 <pikhq> Now let's talk about how we hate ehird and ought to flay him alive.
19:57:15 <uorygl> Unfortunately, I don't know enough Esperanto to construct a meaningful response.
19:57:40 <uorygl> So let me just acknowledge that you said "jes", which means "yes".
20:03:50 <pikhq> Also, a meaningful response would just be "Mi komprenas".
20:04:25 <pikhq> Or perhaps even 'Mi komprenas ke "j's" estas "jes"'.
20:04:57 <pikhq> Alternately, you could just speak English, as such is the typical language for this room.
20:05:25 <lament> translation: "my shits sprint"
20:06:39 <pikhq> Sナtqゐエpbヴ葉Sペりうじゃギアpcvkx偽PツQ件がspd
20:06:57 <pikhq> Translation: fuck if I know, I just hit Ctrl-Space and pounded on the keyboard for a bit.
20:12:12 -!- adam_d_ has changed nick to adam_d.
20:15:36 <Sgeo> So, he committed without a test build, and left an infinite loop somewhere in there
20:15:47 <Sgeo> I'm just going to shove it to the side while I try to make the deadline
20:15:55 <Sgeo> His code is not deadline related in any way
20:28:58 -!- oklopol has joined.
20:31:12 -!- charlesq__ has quit (Quit: Saliendo).
20:31:20 -!- charlls has joined.
20:34:04 -!- werdan7 has quit (Ping timeout: 615 seconds).
20:37:39 -!- MigoMipo has joined.
21:03:26 -!- hiato has quit (Ping timeout: 246 seconds).
21:04:02 -!- hiato has joined.
21:20:56 -!- adam_d has quit (Ping timeout: 246 seconds).
21:34:05 -!- Oranjer has joined.
21:43:55 <lament> this rihanna song seemed a lot nicer before i read the lyrics
21:49:20 -!- coppro has joined.
21:55:40 -!- atrapado has quit (Ping timeout: 276 seconds).
22:04:06 -!- cheater2 has quit (Ping timeout: 276 seconds).
22:05:19 -!- MigoMipo has quit (Remote host closed the connection).
22:05:22 -!- gigo has joined.
22:05:49 <gigo> I am using L for lambda. I represent 1 = Ls.s, 2 = Ls.ss, 3 = Ls.sss and so on. I want a way to express addition operation in lambda calculus.
22:06:02 <gigo> I mean, I want some function S such that 2S3 or S23 results in 5 = Ls.sssss
22:06:12 <gigo> i'm a complete newbie in lambda calculus. the book had some good definitions of successor, addition, etc. but I modified the definition of 1 from Lsz.s(z) to Ls.s and now I am trying to make my own successor, addition, etc.
22:07:12 -!- mblondin has joined.
22:07:23 -!- mblondin has left (?).
22:07:31 <lament> i mean isn't your S just the S from SKI
22:08:06 <lament> S23f = (2f)(3f) = (ff)(fff) = (fffff)
22:10:52 <pikhq> gigo: SKI is the SKI combinator calculus. It's Turing complete by way of equivalence with lambda calculus.
22:11:23 <pikhq> It can be defined as follows: S:=\xyz.xz(yz);K:=\xy.x;I:=\x.x
22:11:25 <gigo> is there any way to do lambda calculus on computers?
22:11:45 <gigo> I use Debian Linux. any suggestions?
22:11:47 <pikhq> Are you familiar with functional programming languages?
22:11:54 <gigo> yes, I know Scheme.
22:12:05 <pikhq> Scheme is a superset of lambda calculus.
22:12:28 <pikhq> So, you already possess an interpreter. ;)
22:13:14 <ais523> (define s (lambda (x) (lambda (y) (lambda (z) ((x z) (y z)))))
22:20:42 <gigo> So, if S = \xyz.xz(yz) can I say that S23 = \z.(2z (3z)) = \z.( (\s.ss z)(\s.sss z) ) = \z.zzzzz = 5 ?
22:24:09 <ais523> the last-but-one step is wrong
22:24:16 <ais523> hmm, I think, not sure
22:24:19 <ais523> how are 2 and 3 defined?
22:27:15 <gigo> 2 = \s.ss and 3 = \s.sss
22:30:47 <gigo> ais523, i answered your question about how 2 and 3 are defined
22:30:57 <ais523> just didn't have anything more to say
22:31:09 <gigo> so, why is the last-but-one step wrong?
22:31:13 <ais523> I don't see how \z.(2z)(3z) = 5
22:31:35 -!- cheater2 has joined.
22:31:45 <gigo> 2z = \s.ss z = zz
22:31:54 <gigo> similarly, 3z = zzz
22:31:58 <ais523> yep, and (zz)(zzz) != (zzzzz)
22:32:28 -!- hiato has quit (Quit: underflow).
22:32:31 <ais523> the usual definition of 2, btw, is \f.\x.f(fx)
22:32:59 <gigo> and that of 3?
22:33:20 <gigo> why do you write the inner most thing as fx and not f(x)
22:33:29 <gigo> how about 2 as \f.\x.f(f(x)) ?
22:33:37 <ais523> it's a standard abbreviation
22:34:30 <ais523> and langs like haskell actually let you write that
22:34:36 <ais523> rather than having to put all the parens in
22:35:43 <gigo> so, abcd = ((a(b))(c))(d) ?
22:36:16 <gigo> can i wrte abc = (ab)c as well?
22:36:20 <ais523> and in a lang that uses currying, that's the standard way to pass three args to a function
22:36:25 <ais523> (ab)c is fine, if you want to disambiguate
22:36:36 <ais523> but with a(bc) you can't remove the parens
22:36:55 <gigo> so a(bc) = a((b)c)
22:37:09 <ais523> ok, that looks weird, but yes I suppose
22:37:22 <ais523> (b)c is less usual than b(c), and bc is more common than either when talking in combinator calculus
22:38:00 <ais523> the same trick happens with data types; Int -> Int -> Int means Int -> (Int -> Int)
22:40:53 <gigo> so for my definitions of 2, 3, etc. can I make a sum function S?
22:41:14 <gigo> 2 = \s.ss, 3 = \s.sss, 4 = \s.ssss, 5 = \s.sssss, etc.
22:42:27 -!- tombom has quit (Quit: Leaving).
22:43:10 -!- coppro has quit (Ping timeout: 246 seconds).
22:56:20 <Slereah> Numbers in lambda calculus are defined via 0 and the successor function
22:57:22 -!- coppro has joined.
22:57:30 -!- jcp has joined.
23:00:23 <ais523> hmm, that's the first rangeblock I've done on Esolang
23:00:29 <ais523> hopefully that should stop much of the recent untargeted spam
23:00:39 -!- augur has quit (Ping timeout: 276 seconds).
23:02:41 <ais523> goodbye 184.108.40.206/23
23:04:23 <ais523> also, jury finds for Novell in SCO v. Novell
23:04:40 <ais523> this is a momentous day, in that nobody can think of a plausible way for SCO to weasel its way out of /that/ one
23:04:51 <ais523> although I'm looking forward to what implausible ways they try
23:06:27 -!- augur has joined.
23:08:41 <coppro> it can still be appealed on procedural grounds
23:09:18 <coppro> but that seems unlikely to succeed
23:09:36 -!- oerjan has joined.
23:12:33 <ais523> yep, I can't think of a procedural ground where SCO would have a leg to stand on
23:12:47 <ais523> unless something happened that isn't generally known
23:15:34 <coppro> I wonder if they're stupid enough to try appealing the verdict directly
23:16:13 <ais523> they're running out of money pretty quickly, though
23:17:16 <coppro> and it's not like appealing a jury verdict works that well in any case
23:18:40 <fizzie> Our "law in network society" course requires a two-page case note on some related case; I was thinking of writing something about the SCO mess, but it's such a great mess you can't even get started in two pages; I may need to focus on some particular submess of it.
23:19:18 -!- Tritonio_GR has joined.
23:19:58 <ais523> news from SCO is that they plan to sue IBM for breach of contract, because they can do that even without the copyrights
23:20:13 <ais523> that doesn't mean they can /win/, ofc
23:20:16 <oerjan> <lament> S23f = (2f)(3f) = (ff)(fff) = (fffff)
23:20:22 <oerjan> the final equation is wrong
23:21:09 <oerjan> application is not associative
23:25:02 <oerjan> <gigo> 2 = \s.ss, 3 = \s.sss, 4 = \s.ssss, 5 = \s.sssss, etc.
23:25:14 <oerjan> i can see how to increment those, but addition looks tricky
23:26:23 <oerjan> in fact to use it i would probably want to convert into the usual \fx.f(f(...(fx)...)) form first
23:26:57 <oerjan> if that is possible, then it's easy to do addition afterwards
23:28:07 -!- charlls has quit (Quit: Saliendo).
23:28:18 <oerjan> the tricky thing about your definition is that it is not obvious how to make an s that can be usefully used with an arbitrary number
23:28:35 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
23:28:39 -!- FireFly has quit (Quit: Leaving).
23:28:55 <ais523> also, how do you define 0?
23:29:18 <ais523> the usual definition \x.\y.y doesn't seem to map at all to the fffff version
23:29:41 <oerjan> \s.i probably works for that, actually
23:30:18 <oerjan> since (inc n) = \s.(ns)s
23:30:31 <ais523> heh, that's the same definition as normal, isn't it?
23:31:07 <oerjan> (or in pure lambda, \s.\t.\x.x)
23:31:45 <ais523> I was considering making that a constant in the underlambda standard library
23:31:50 <ais523> as an "absence of value" constant
23:31:56 <ais523> unlike `ki, which is just 0 which is a value
23:32:47 <ais523> why are we using s as a lambda variable anyway?
23:32:49 <ais523> it has a different meaning
23:33:09 -!- augur has quit (Ping timeout: 276 seconds).
23:33:17 <oerjan> and didn't seem to have heard of combinators before
23:35:52 <oerjan> now an s to pass in usefully has to be appliable to itself, and somehow construct an "incremented" version of itself when doing so
23:36:42 <oerjan> and to be useful, there has to be something else that it can be applied to in order to stop the gobbling up of indefinite arguments
23:37:58 <oerjan> oklopol: that's a lot to get out of the word "conspiracy"
23:44:11 -!- augur has joined.
23:45:32 <Sgeo> My sliding blocks puzzle has a bug where you can click a piece diagonally adjacent, and it will go in
23:50:23 <Sgeo> What's the easiest way to scramble a sliding blocks puzzle? Simulating random valid moves?
23:50:52 <ais523> Sgeo: yep, to ensure it's solvable
23:51:04 <ais523> IIRC there's a parity rule on those things
23:51:20 <Sgeo> I think the original 14-15 was unsolvable
23:51:57 <ais523> hmm, what if you turn the 6 and 9 upside-down?
23:52:09 * Sgeo feels cheap for having used a 1 indexed [multidimensional] array, but it turned out to be handy
23:52:29 <Sgeo> The individual blocks have MoveTo() methods, that null out where the block came from
23:52:39 <Sgeo> So when starting up, I just say they came from 0,0
23:53:10 <ais523> couldn't you use a dedicated null value?
23:53:13 <ais523> like Haskell's Nothing?
23:53:23 <ais523> rather than forcing an absurd use of 0 in?
23:53:37 <ais523> this is as bad as Underlambda's adding 1 to all character codes so it can use 0 for EOF
23:53:46 <ais523> and it's an esolang, and so can get away with that sort of thing
23:53:59 <Sgeo> I happened to be using 1-based indexing anyway, to ease pain on my brain
23:54:10 <Sgeo> Although it occurs to me that it wasn't that helpful
23:54:15 <fizzie> Speaking of blocks, to follow-up on llbf (LLVM-targeting brainfuck translator), I wrote a Piet compiler that targets LLVM too.
23:57:19 <Sgeo> Well, it did, a little
23:57:39 <Sgeo> In-world, in a way that would be difficult to change, there was already a 1-indexed numbering scheme
23:58:07 <Sgeo> But that would just turn into a -1 in ONE place in my code, if I went with 0-indexed
23:58:18 <Sgeo> I'm already switching x and y