00:41:54 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
00:42:15 -!- LKoen has quit (Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.”).
01:03:59 -!- arseniiv has quit (Ping timeout: 246 seconds).
01:19:01 -!- sprocklem has quit (Ping timeout: 250 seconds).
01:19:23 <zzo38> Pokemon Card GB2 has a stupid AI; they attacked level 67 Machamp even though they got knocked out by doing so (and I needed to knock out only one more of their cards to win). They also draw too many cards and then complain of losing due to running out of cards, and many other stupid things too.
01:20:55 -!- sprocklem has joined.
01:35:16 <b_jonas> zzo38: well, it's a game console with low resources, so it's understandable that it doesn't have a very good AI
01:35:33 <b_jonas> you can try to play more modern games if you want to play against a better AI
01:35:53 <zzo38> Yes, I suppose that is what it is.
01:37:19 <zzo38> (There are also problems in the text entry screen, such as they misspelled "hiragana", and some punctuations that you might want to use are not available. Also, you cannot delete your only deck, requiring you to remove each card individually instead if you want to make up a new deck.)
01:37:26 <zzo38> Have you played this game?
01:38:19 <b_jonas> no, I haven't played GBA Pokemon TCG, but I've seen videos of it
01:38:51 <zzo38> It is not GBA, it is for Color GameBoy.
01:40:02 <b_jonas> though GBC does already have a better cpu than GB
01:40:19 <b_jonas> I don't know if it has more memory
01:40:37 <b_jonas> and I don't know how much rom cartridge sizes got cheaper by then
01:41:40 <zzo38> GBC has a double speed mode.
02:01:56 <int-e> hmm, goomba block chaining
02:59:44 -!- xkapastel has quit (Quit: Connection closed for inactivity).
03:10:08 -!- Phantom_Hoover has joined.
03:15:38 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
03:55:32 <zzo38> (The power of level 67 Machamp causes any opponent's card that attacks it to be damaged (even if this knocks out Machamp).)
05:02:22 -!- Sgeo__ has quit (Read error: Connection reset by peer).
05:05:58 -!- Sgeo has joined.
05:17:29 -!- Uristqwerty has joined.
05:33:56 -!- Lord_of_Life has quit (Read error: Connection reset by peer).
05:37:09 -!- Lord_of_Life has joined.
05:45:39 <Uristqwerty> Hi! I recently read about a language called Larabee, of which google can find little discussion. Unless google's index is spotty on the matter, it appears to have been mentioned here a handful of times total over the years, and the internet is otherwise silent on the subject outside the language repo itself. Contrary to what I've read, I believe there's a way to make it Turing Complete with an arbitrarily-high probability
05:54:21 <int-e> Reading https://github.com/catseye/Larabee
05:55:52 <int-e> Oh, the point is that (input) is the only nullary operation.
05:59:02 <Uristqwerty> It looks like comparison operators could reduce a pair of inputs to 0 or 1, and an arbitrary long series of such values multiplied together could make a value that is arbitrarily-likely to be zero. With that construction, memory locations 0 and 1 could be set to both contain the same value, and from then on, the constant 1 can be guaranteed using (op = (fetch (op = (input) (input)) (fetch (op = (input) (input))).
06:00:37 <int-e> Also we're usually happy to say something is TC with pretty constrained input conventions... e.g. if (input) always returns 0.
06:01:20 <Uristqwerty> From that, you could easily ensure the BPR is always positive and construct any constant you want, though looking again I don't see the example code using memory index 0.
06:01:46 -!- longname has quit (Read error: Connection reset by peer).
06:04:42 -!- longname has joined.
06:11:46 <int-e> pretty sure address 0 is okay to use
06:12:03 <int-e> negative addresses probably cause an error
06:45:31 -!- xelxebar has joined.
06:47:37 -!- Cale has quit (Ping timeout: 246 seconds).
06:52:21 -!- CaraDeLevi has joined.
06:55:43 -!- CaraDeLevi has quit (Client Quit).
07:01:14 -!- Cale has joined.
07:19:32 -!- atslash has joined.
07:31:27 -!- Uristqwerty has quit (Quit: Uristqwerty).
08:05:06 -!- imode has quit (Ping timeout: 256 seconds).
08:27:38 -!- sftp has quit (Ping timeout: 250 seconds).
08:30:07 -!- LKoen has joined.
08:53:50 -!- sprocklem has quit (Ping timeout: 256 seconds).
08:55:32 -!- sprocklem has joined.
08:56:59 -!- kspalaiologos has joined.
09:10:00 -!- Lord_of_Life_ has joined.
09:10:14 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
09:11:18 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
09:46:27 <esowiki> [[Special:Log/newusers]] create * Remisa * New user account
10:33:21 -!- Cale has quit (Remote host closed the connection).
11:11:18 -!- xkapastel has joined.
12:42:21 -!- Cale has joined.
12:45:49 -!- rain1 has joined.
12:46:08 -!- rain1 has quit (Changing host).
12:46:08 -!- rain1 has joined.
12:46:11 -!- arseniiv has joined.
12:52:12 -!- sftp has joined.
13:34:16 -!- vivax has joined.
14:01:15 -!- Phantom_Hoover has joined.
14:11:04 -!- kritixilithos has joined.
14:14:02 <kritixilithos> chat mini challenge: shortest total non primitive recursive function in binary lambda calculus
14:38:35 -!- diverger has quit (Read error: Connection reset by peer).
14:40:32 -!- diverger has joined.
15:46:12 -!- rain1 has quit (Quit: Lost terminal).
15:52:11 -!- Lord_of_Life has quit (Ping timeout: 250 seconds).
15:53:19 -!- Lord_of_Life has joined.
16:01:27 -!- stux has quit (Remote host closed the connection).
16:06:03 -!- kritixilithos has quit (Ping timeout: 240 seconds).
16:09:05 -!- kritixilithos has joined.
16:24:23 -!- kritixilithos has quit (Ping timeout: 240 seconds).
16:25:34 -!- kritixilithos has joined.
17:09:13 -!- imode has joined.
17:55:43 -!- kritixilithos has quit (Ping timeout: 240 seconds).
17:58:10 -!- stux has joined.
18:00:02 <esowiki> [[User:Hakerh400]] M https://esolangs.org/w/index.php?diff=70449&oldid=70424 * Hakerh400 * (+20) Separate brainfuck derivatives into a new section
18:13:15 <b_jonas> kritixilithos: how do you define total in lambda calculus?
18:28:23 -!- eja0 has joined.
18:31:49 -!- eja00 has joined.
18:33:36 -!- eja_ has joined.
18:33:59 -!- eja0 has quit (Ping timeout: 246 seconds).
18:34:57 -!- eja_ has quit (Read error: Connection reset by peer).
18:46:32 <tromp> kritixilithos: at most 43 bits
19:06:20 -!- Phantom_Hoover has quit (Ping timeout: 256 seconds).
19:25:56 -!- mniip has quit (Ping timeout: 606 seconds).
19:28:52 <int-e> 35 bits for a function from Church numerals to Church numerals?
19:30:20 -!- mniip has joined.
19:30:44 <int-e> (Of which 4 bits are used to duplicate the argument; this is a variation on the Ackermann function.)
19:32:02 <int-e> (spoiler http://paste.debian.net/1136020/ )
19:34:44 <int-e> b_jonas: "total" probably only makes sense if you restrict the input(s) to some encoding of natural numbers; in this context, Church numerals seem to be the most sensible choice...
19:37:56 -!- KateUpton has joined.
19:39:05 <b_jonas> int-e: do you need the Ackermann function? wouldn't just a tetration function like {n |> 2***n} be enough?
19:39:35 <int-e> b_jonas: no, tetration is primitive recursive.
19:39:43 <int-e> any fixed-width up-arrow is.
19:40:21 <int-e> Ackermann is basically a variable-width up-arrow, and that's what makes it non-primitive recursive.
19:40:52 <int-e> b_jonas: the basic primitive recursion building block is iterating a function you already have a given number of times.
19:41:28 <int-e> that's exactly what you need to construct multiplication from addition, exponentiation from multiplication, tetration from exponentiation, or generally to increase the width of an up-arrow by one.
19:41:40 -!- KateUpton has quit (Client Quit).
19:41:55 <b_jonas> I'm confusing something here then
19:42:28 <b_jonas> because I thought primitive recursion can do {n |> n***c} for any constant c, but not tetration
19:43:34 -!- mniip has quit (Ping timeout: 600 seconds).
19:43:41 <int-e> (I read it as a triangle, which messes up my brain)
19:44:21 <b_jonas> makes a pair connecting the function input and output
19:44:30 <int-e> b_jonas: I really think you're confusing this with the variable-width up-arrow.
19:44:47 <int-e> some variation on n \uparrow^c n
19:44:56 <b_jonas> I'm probably just not clear about how primitive recursion works. I don't think I ever really understood it.
19:47:57 <b_jonas> I guess it can do tetration (or any other fixed width up arrow) I just never realized that it can do that
19:48:20 <b_jonas> and it was probably never important for any proof that I needed to really understand its limits
19:48:35 <int-e> If you can express it in https://en.wikipedia.org/wiki/BlooP it's primitive recursive... so you can have nested loops, as long as the number of iterations of each loop is known before the loop is entered.
19:48:39 <zzo38> The "BlooP" described in the "Godel, Escher, Bach" book is using primitive recursive.
19:49:31 <b_jonas> zzo38: yes, that's one of the equivalent descriptions
19:49:46 <zzo38> (Although I have shown that IF is not actually needed; you can still implement any primitive recursive functions even without it.)
19:51:04 <int-e> tetrate(a,n): r = 1; for (i = 1 to n) r = a^r; return r;
19:51:44 -!- mniip has joined.
19:52:23 <int-e> (Where ^ is exponentiation, of course.)
20:04:19 -!- eja00 has quit (Quit: Leaving).
20:11:17 <tromp> int-e: i think your old gAckerman.lam has a bug
20:11:41 <tromp> it should have g = \n.n G succ n ?!
20:13:35 <int-e> that was 5 years ago... how am I supposed to remember :P
20:14:20 <tromp> i didn't realize you had such a file until I wrote a similar version independently:)
20:15:58 <int-e> Well it's a binary function as written, evidently
20:17:06 <int-e> is that even mine, hmm.
20:17:21 <int-e> Honestly, the style suggest it's your, and so does the file log.
20:17:35 <int-e> (style: I put spaces after the dots)
20:18:05 <tromp> Oops! you're right. it's mine!
20:18:21 <int-e> However, it still looks like a binary function to me and that would make it okay.
20:18:34 <tromp> sorry to suspect you of writing bugs:(
20:19:29 <int-e> And I've certainly thought about a generalized ackermann function before, but that was a ternary function. So the contents of the file caused some dissonance.
20:20:54 <tromp> that gAckerman is obsoleted by the new ackermann, so I can just remove it
20:21:05 <int-e> (and the file log is not always conclusive... this wouldn't have been the first time that you committed a file I wrote)
20:23:12 <tromp> pls let me know if there's any missing attribution
20:24:22 <int-e> No worries, if I felt I needed attribution I'd leave an authorship note it in the file.
20:24:46 <int-e> (I can't even name a specific example right now)
20:26:40 <int-e> Well, except BLC.hs which I just felt wasn't finished, but which does have an authorship comment.
20:28:51 <int-e> surprisingly it still compiles with ghc-8.8, even though I last updated it for ghc-8.4
20:29:28 <int-e> and it still works, too
20:29:28 <tromp> i'd forgotten there is such a thing. that does look very interesting
20:29:44 <b_jonas> int-e: did untyped lambda calculus change between those ghc versions?
20:29:49 <int-e> somebody (tm) should do this properly.
20:30:09 <int-e> b_jonas: But ghc's internals are in flux.
20:30:30 <tromp> on what example Haskell file did you test it?
20:30:33 -!- kspalaiologos has quit (Quit: Leaving).
20:30:33 <int-e> b_jonas: https://github.com/tromp/AIT/blob/master/BLC.hs
20:30:46 <int-e> tromp: Sample.hs. See the comments at the top.
20:31:09 <b_jonas> that explains why you think it would bitrot
20:31:50 <int-e> b_jonas: Yeah I realized that this information was missing from the discussion here :)
20:32:48 -!- Phantom_Hoover has joined.
20:33:03 <tromp> Johns-iMac:AIT tromp$ ghc -package ghc -dynamic -c -fplugin=BLC Sample.hs
20:33:03 <tromp> Bad interface file: ./BLC.hi
20:33:03 <tromp> mismatched interface file versions (wanted "8063", got "8022")
20:34:28 <int-e> tromp: did you re-compile the plugin?
20:34:45 <int-e> because that seems to say that the plugin is compiled with ghc 8.2.2
20:34:50 <int-e> but you're using 8.6.3
20:35:11 <tromp> ah, yes, that fixes it
20:38:32 <zzo38> I managed to beat the red Imakuni? while sleeping. (He ran out of cards to draw, while I still have twenty-eight cards remaining.)
20:38:53 <int-e> tromp: This is basically a proof of concept that never went beyond that stage. It does Scott encoding, it supports let and case, and it doesn't optimize anything.
20:40:33 <tromp> the blc list representation is hard to reconcile with Haskell due to it's odd notion of []
20:40:38 <int-e> tromp: But you can have Church numerals because Haskell can have Church numerals by virtue of having RankNTypes.
20:41:36 <int-e> tromp: Yeah I didn't even try. The sample is a stream for a reason.
20:48:21 -!- pierre_robes169 has joined.
20:53:17 -!- pierre_robes_169 has joined.
20:55:49 -!- pierre_robes_169 has quit (Client Quit).
20:56:14 -!- pierre_robes169 has quit (Ping timeout: 258 seconds).
20:56:25 -!- Filippo has joined.
21:01:13 -!- Filippo has left.
21:12:08 -!- Lord_of_Life_ has joined.
21:12:34 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
21:13:30 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
21:16:29 <int-e> . o O ( Yay, another security alert arrived in my mailbox, 33 hours after the event? That's the 7th or 8th for sending a single email. )
21:17:40 <zzo38> What event is that?
21:18:54 <int-e> (Sure, it's several events from Google's perspective. 1) send emal. 2) sign in from "unknown device". 3) change "less secure apps" setting. Now they're sending alerts to both the google email and the linked email account (which is my primary email account so I really don't care all that much about the security of the google one))
21:19:17 <int-e> 3) is "critical" for some reason.
21:20:03 <int-e> Oh and one of the alert said the blocked a "login from a non-Google app" as if that's a bad thing.
21:20:17 <int-e> (I've deleted them all though.)
21:21:16 <int-e> I guess the next time it happens I should archive them for later amusement.
21:23:50 <int-e> The 33 hours irritate me though. And the delay was incurred inside of Google according to the Received headers.
21:25:43 <int-e> The annoying bit is really that this *will* happen again, because I rarely send emails from the google account and that's the only occasion where I authenticate with them at all.
21:26:08 <int-e> (received email just gets forwarded to my primary account)
21:27:00 <int-e> So Google *will* decide that I don't need that "less secure apps" setting because I'm not using it. And then when I send another email I'll jump through all the hoops again.
21:30:36 -!- xkapastel has quit (Quit: Connection closed for inactivity).
22:03:38 -!- vivax has quit (Remote host closed the connection).
22:45:58 -!- Cale has quit (Remote host closed the connection).
22:49:15 -!- Cale has joined.
23:02:34 -!- Cale has quit (Remote host closed the connection).
23:30:59 -!- LKoen has quit (Remote host closed the connection).
23:31:49 -!- LKoen has joined.
23:38:59 <int-e> tromp: Ah I found the generalized ackermann functions I toyed with... but not where they came from. They looked like this: http://paste.debian.net/1136059/
23:39:32 <int-e> Pretty weird stuff.
23:42:06 <int-e> I forgot what the point of this was. Probably something like that ack3 cannot be bounded in terms of ack2 + primitive recursion, and so on.
23:45:37 -!- Cale has joined.