←2023-12-08 2023-12-09 2023-12-10→ ↑2023 ↑all
00:00:53 -!- rodgort has joined.
00:01:22 <fizzie> Approaching perilously solutions that are too long to fit in a single IRC message.
00:01:46 <fizzie> Part 2 today was: lng_zicys0[-S1{WD-]}m[{[~'A==}f[{g0j+]{}j{J2.+x/j+]jg_{~!}j+]g1jfejg_[~**5.%x/:rd3coj!!+]}{2.+~[n!}w!2.+jsas9Jx/Fi+.Jg9j.-_+j{-][~'Z==}fig9-.j.-[+}m[J)[-)-]>]S9jJ)[~x/?-j)-]jz[{J2.+<>p^p^{.+}j+]x/{.%!=}z[\[w!jJ2.-j2.+)-]p^l_x/_++]}{L[2>=}w![~[~g9.+
00:04:13 <fizzie> Also, there was an interesting thing. Burlesque is supposedly lazy, so I constructed the infinite list 0, 1, 2, ..., then coerce-multiplied it with scalar M and coerce-added to it the scalar k (to get {k k+M k+2*M k+3*M ...}), and then used `fe` builtin to pick one of them. And it worked fine on its own.
00:05:13 <fizzie> But when I tried to use `g9` to access a variable stored with `s9` earlier in the program, it went into an infinite loop. So I'm guessing it somehow forced it to try being strict instead.
00:07:41 <fizzie> `blsq 123s90R@123?*456?+{1000.>}fe " works fine "vv
00:07:42 <HackEso> 1071
00:07:51 <fizzie> `blsq 123s90R@123?*456?+{1000.>}feg9 " fails "vv
00:08:03 <HackEso> blsq: out of memory (requested 1048576 bytes)
00:08:26 <fizzie> `blsq 999s90R@{1000.>}feg9 " but okay if I don't try to modify the range "vv
00:08:28 <HackEso> 999 \ 1001
00:08:36 <fizzie> Shrug emoji.
00:26:40 -!- user3456 has quit (Quit: I use ZNC - https://znc.in).
00:27:00 -!- user3456 has joined.
00:56:27 -!- ais523 has joined.
01:56:14 <esolangs> [[+]] https://esolangs.org/w/index.php?diff=120338&oldid=105579 * Squidmanescape * (-32) Damn, this isn't even an FSA apparently.
02:14:10 <int-e> fizzie: hmm I wish I could estimate from that code whether it exploits the special property of the input
02:15:55 <int-e> Day 8 part 2 was the first time in AoC (that I remember) where I submitted a solution based on a brain fart and it worked... and 5 minutes later I began wondering why it worked.
02:16:21 <int-e> And then I spent like 2 hours solving the task as stated without relying on special properties. :P
02:17:21 <int-e> And I still don't know whether it's NP-hard or not.
02:18:13 <int-e> Though tbf I haven't really tried very hard to figure that out.
02:24:31 -!- ais523 has quit (Remote host closed the connection).
02:25:36 <fizzie> It exploits one thing I feel counts as a special property of the input (gurer'f whfg bar M abqr va rnpu plpyr) but not another thing that I feel is even more special (gur M abqr frrzf gb or va n 'svkrq' cbfvgvba).
02:25:45 -!- ais523 has joined.
02:25:48 <fizzie> (It's also quite possible there's some bugs in it masked by the input being what it is.)
02:27:30 <fizzie> Also if I'm going to keep doing Burlesque for AoC, I should probably write a list of things that are particularly useful for AoC, because I keep (re)discovering things I probably learned in previous years and then forgot.
02:29:35 <fizzie> Such as the `pa` builtin, which combines the "create all prefixes" and a map.
02:29:40 <fizzie> `blsq {1 2 3 4}iT[-)++
02:29:41 <HackEso> ​{1 3 6 10}
02:29:45 <fizzie> `blsq {1 2 3 4}{++}pa " only saves one character, but looks a lot neater "vv
02:29:46 <HackEso> ​{1 3 6 10}
02:32:06 <int-e> fizzie: right, those are the two properties I meant
02:32:34 <fizzie> There's a bunch of builtins that have a "logical" name for doing one thing, but then do a mostly unrelated thing when applied to some type where that one thing doesn't make much sense. Like, .+ and .- are the basic binary operators for addition and subtraction, and also concatenate strings and blocks (fair enough), but if you apply them to a block/string and an integer, .+ becomes `take` and .-
02:32:36 <fizzie> becomes `drop`.
02:34:30 <fizzie> And the `sa` builtin ("SetAt"), which normally applies to (list, item, index) and sets the value at a given index, but if top of stack is a list, does dup + length.
02:35:44 <int-e> Yeah, I do recall vaguely that is has quite a few weirdly overloaded primitives.
02:42:23 <fizzie> Another slightly weird one is `rd`, which is identity for doubles, parses a string into a double, but for a character returns 1 if it's a letter (A-Z). And for blocks auto-broadcasts, which most Burlesque things don't do.
02:43:30 <fizzie> `blsq "ABC = (DEF, GHI)" :rd3co " using rd for parsing today "vv
02:43:31 <HackEso> ​{"ABC" "DEF" "GHI"}
02:45:12 <int-e> weird
02:45:35 <int-e> I did resort to the trick of mapping elements of "=(,)" to spaces for parsing this one
02:46:08 <int-e> > words . map (\c -> if c `elem` "=(,)" then ' ' else c) $ "ABC = (DEF, GHI)"
02:46:24 <lambdabot> ["ABC","DEF","GHI"]
02:46:28 <int-e> that was... slow
02:49:04 <fizzie> `blsq "ABCD = (EF, GHIJK)" {rd}gB-.2en " a Burlesque option that doesn't assume fixed-and-equal-length names "vv
02:49:05 <HackEso> ​{"ABCD" "EF" "GHIJK"}
02:49:36 <fizzie> (There might be something better than -.2en to do "keep every other element except starting from first rather than second".)
02:50:43 <fizzie> Kind of fell behind with the Z80 thing, I've only got days 1-4 and now 8p1 done in it.
02:50:55 <esolangs> [[Deadfish]] https://esolangs.org/w/index.php?diff=120339&oldid=119196 * Squidmanescape * (-35) It's not computationally equivalent to an FSM because it can't recognize any languages at all.
02:50:58 <fizzie> (Got sidetracked to start writing a Z80 assembler instead.)
03:10:25 <esolangs> [[(top, height)]] https://esolangs.org/w/index.php?diff=120340&oldid=120290 * Squidmanescape * (+483) /* Complexity */
03:16:59 <esolangs> [[(top, height)]] https://esolangs.org/w/index.php?diff=120341&oldid=120340 * Squidmanescape * (+305) /* Code Examples */
03:17:34 <esolangs> [[(top, height)]] https://esolangs.org/w/index.php?diff=120342&oldid=120341 * Squidmanescape * (+16) /* Parenthesis Checker */
03:49:01 <Hooloovoo> fizzie, what do you need a z80 assembler for?
03:49:08 <Hooloovoo> there's lots of good ones already
03:50:17 <Hooloovoo> https://github.com/alberthdev/spasm-ng is my favorite for ti ez80 stuff but I've used lots of other acceptable ones
05:22:17 -!- sprock has quit (Ping timeout: 268 seconds).
05:23:39 -!- sprock has joined.
05:36:34 <int-e> I wonder whether today's twistiness will go up over time.
05:48:56 <int-e> (it's starting out very low, and for a good reason too)
05:51:54 <esolangs> [[Dbfi]] https://esolangs.org/w/index.php?diff=120343&oldid=117446 * CatIsFluffy * (-2) remove `1`s from cgbfi
06:10:39 <esolangs> [[Talk:Quell]] https://esolangs.org/w/index.php?diff=120344&oldid=120317 * ChuckEsoteric08 * (+219)
06:17:33 <esolangs> [[8-Bit]] https://esolangs.org/w/index.php?diff=120345&oldid=118092 * ChuckEsoteric08 * (+15)
06:19:05 <esolangs> [[8-Bit]] https://esolangs.org/w/index.php?diff=120346&oldid=120345 * ChuckEsoteric08 * (+24)
06:35:12 <esolangs> [[X strike]] https://esolangs.org/w/index.php?diff=120347&oldid=117774 * ChuckEsoteric08 * (+449)
06:36:57 <esolangs> [[X strike]] https://esolangs.org/w/index.php?diff=120348&oldid=120347 * ChuckEsoteric08 * (+0) /* Computational class */
06:38:26 <esolangs> [[User:ChuckEsoteric08]] https://esolangs.org/w/index.php?diff=120349&oldid=120038 * ChuckEsoteric08 * (+15) /* Turing-completness Proofs */
06:48:44 -!- iovoid has quit (Read error: Connection reset by peer).
06:48:45 -!- ais523 has quit (*.net *.split).
06:48:45 -!- Sgeo has quit (*.net *.split).
06:48:47 -!- JAA has quit (*.net *.split).
06:48:54 -!- JAA has joined.
06:49:01 -!- iovoid has joined.
06:49:37 -!- Sgeo has joined.
06:50:05 -!- ais523 has joined.
06:56:05 -!- ais523 has quit (Quit: quit).
07:16:11 <esolangs> [[Talk:Beta]] N https://esolangs.org/w/index.php?oldid=120350 * ChuckEsoteric08 * (+174) Created page with "Both decrement and NOT command use ! character. Is it intentional?--~~~~"
07:31:26 <esolangs> [[Unary Stack]] N https://esolangs.org/w/index.php?oldid=120351 * ChuckEsoteric08 * (+541) Created page with "'''Unary Stack''' is a attempt at creating syntax for 1-symbol [[Push-down automaton]] by [[User:ChuckEsoteric08]] ==Syntax== Each state is represented like that: s1: commands s2 (s3) Where s1 is the current state, followed by commands, next state, and if la
07:40:10 <esolangs> [[Quell]] https://esolangs.org/w/index.php?diff=120352&oldid=120046 * ChuckEsoteric08 * (+177)
07:50:36 <esolangs> [[Quell]] https://esolangs.org/w/index.php?diff=120353&oldid=120352 * ChuckEsoteric08 * (+0)
08:09:20 -!- tromp has joined.
08:33:05 -!- ais523 has joined.
09:04:52 <esolangs> [[FlipJump]] M https://esolangs.org/w/index.php?diff=120354&oldid=119867 * Tomhe * (+387) update the hex/bit mul/div macros
09:20:13 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
10:17:28 -!- Lord_of_Life_ has joined.
10:18:05 -!- Lord_of_Life has quit (Ping timeout: 252 seconds).
10:18:50 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
10:59:17 -!- tromp has joined.
11:06:45 -!- Koen_ has joined.
11:35:20 <fizzie> Today was the first time this year (and maybe ever?) that I did the Burlesque solutions first.
11:41:25 <fizzie> And I don't *need* a Z80 assembler, I just want one that behaves just the way I want it to. In particular, I want it to track "library" dependencies automatically, and support something a little like C++ templates where I can do `call foo(iy,4)` and it'll make sure there's a copy of `foo` with some parameter substitutions instantiated into the output.
11:43:03 <fizzie> Something with a macro system could get pretty close, but all I've seen would only let me either inline the code, or have to write `call foo_iy_4` ... `foo_iy_4: foo(iy, 4)` manually if I wanted it as a function.
11:43:07 <fizzie> Also if it's written in Go it can integrate with other tools (say, a debugger) without having to parse listing files like some kind of a caveman.
11:44:40 <b_jonas> well just put some esoteric templating language behind it
11:45:54 <b_jonas> like https://esolangs.org/wiki/SIMPLE_(preprocessor) :-P
11:47:14 <b_jonas> though of course you have to be careful, you can just inline everything, as in solve the AoC problem in the preprocessor and Z80 program will just have an answer hard-coded in it
11:47:40 <b_jonas> I guess you can avoid that by giving the input only to the Z80 program, not your preprocessor
11:51:27 <fizzie> Yeah. The way I have it wired up currently is, the Z80 programs run on a sort of platonic ideal of a Z80 machine, which just has 64K of RAM and I/O port 1 wired so that reading a byte from it reads the next byte of puzzle input, and then the program's expected to write the answer to it. No interrupts or anything else.
11:52:03 -!- Sgeo has quit (Read error: Connection reset by peer).
11:52:21 <fizzie> Not sure what I'll end up doing if I continue to write more of them and there comes a problem that just fundamentally requires more than 64K of memory. Maybe make I/O port 2 an infinite tape or something.
11:57:43 <b_jonas> how do you know when to stop the machine?
11:58:30 <b_jonas> and isn't there a z80 variant with a 24-bit memory address space?
11:58:57 <b_jonas> of you can just add banking to some of the 16-bit address space like normal machines do
12:02:34 <b_jonas> just make sure to add banking that extends the address space only to 224K or so, and then when you run out of that, add a second layer of banking that works completely differently, to be both esoteric and realistic
12:02:58 <b_jonas> s/address space only/available memory only/
12:07:53 <b_jonas> have you added a debug port to the machine or are you inspecting its RAM and CPU state directly?
12:27:08 -!- _256 has joined.
12:28:09 <fizzie> Right, I guess I forgot to mention that bit, there's a `halt` opcode, I just made it stop on the first halt.
12:28:57 <fizzie> And so far I'm not really doing either, I've just been "printf debugging".
12:30:14 <fizzie> But I think if I'm going to do any of the more involved puzzles, I'll need a debugging solution.
12:31:51 <fizzie> I did briefly look at https://github.com/maziac/DeZog and it looked like it's internal Z80 simulator would probably work for this purpose, if it wasn't for NIH syndrome.
12:32:40 <b_jonas> printf debugging is what I meant by a debugging port (I guess you could use the debugging port for input too, not just output)
12:33:35 <fizzie> Right. Well, I've just used the same port as for outputting the solution. Did a `z80run` program that just connects it to stdin/stdout.
12:35:35 <fizzie> On an unrelated note, here's something I appreciate about Go: you can run the built-in profiler for any benchmark test with just one extra flag. Did this for the first draft of day 4 where it was amusing how much time it spent on parsing the input vs. actually solving the problem: https://zem.fi/tmp/2023-04-prof.png
12:36:54 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
12:41:40 <fizzie> Similar story today, except not quite as pronounced: https://zem.fi/tmp/2023-09-prof.png
12:46:22 <_256> Does anyone want to see a couple of programs I wrote in dc to calculate the golden ratio?
12:47:00 <_256> The first one is a binary search. The second uses some weird linear interpolation idea that didn't turn out to work very well.
12:47:14 <ais523> I find dc programs so hard to read
12:47:26 <_256> That makes them fun to write.
12:48:01 <_256> I also once wrote a Game of Life simulator in dc, as well as a bitmap triangle renderer (took 3 x,y points).
12:49:11 <esolangs> [[Special:Log/newusers]] create * Kiken * New user account
12:50:52 <_256> The function used to test a number's closeness to the golden ratio is [lb1lb/1+/].
12:51:15 <_256> Where b is the argument.
12:51:54 -!- ais523 has quit (Remote host closed the connection).
12:52:04 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=120355&oldid=120282 * Kiken * (+151) /* Introductions */
12:52:45 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=120356&oldid=120355 * Kiken * (+77)
12:53:07 -!- ais523 has joined.
12:53:25 <esolangs> [[User:Kiken]] N https://esolangs.org/w/index.php?oldid=120357 * Kiken * (+31) Created page with "{{lowercase}} I'm '''kiken'''."
12:53:56 -!- ais523 has quit (Client Quit).
12:54:09 -!- ais523 has joined.
12:54:36 <ais523> dc was apparently the first programming language they got working on the computer that was used to develop UNIX
12:55:28 <_256> Yeah. It's probably the eso-est lang that was never made to be an esolang.
12:56:24 <ais523> I think it may have stemmed from a desire to golf the interpreter
12:56:44 -!- tromp has joined.
12:57:33 <_256> I don't know, maybe it was just a product of its time. Like when you compare it to ed commands, it doesn't seem that out of place.
12:57:52 <ais523> ed was infamous for having "?" as its only (or at least primary) error message
12:58:10 <_256> Also, this was in the days of physical paper teletypes, rather than CRT displays.
12:58:21 <ais523> which possibly is also an indicator of sizecoding…
12:58:32 <b_jonas> I think there's a BASIC dialect with only three error messages, one for out of memory, one for I don't remember what, and one for everything else
12:59:16 <ais523> I used to use a BASIC dialect whose error message for a syntax error was "Mistake" (but its error messages in other cases were sensible)
12:59:33 <b_jonas> wait a moment, dc and golden ratio? don't I have something for that already?
12:59:41 -!- Thelie has joined.
13:00:01 <_256> Do you? That'd be a weird coincidence.
13:00:23 <_256> I mean, there's only so much you can do with arbitrary precision numbers in an esolang.
13:00:31 <b_jonas> https://www.perlmonks.com/?node_id=796712
13:00:41 <b_jonas> no wait, sorry
13:00:42 <b_jonas> wrong one
13:01:42 <ais523> _256: if you have a couple of arbitrary precision numbers you don't need anything else
13:01:50 <ais523> you can just store all your program's data in the numbers
13:02:09 <_256> That reminds me of a pascal's triangle program I also wrote in dc.
13:02:18 <ais523> and this principle underlies about half the simplest known programming languages (the other half use queues)
13:02:38 <_256> I realised that multiplying a number by 11 actually produces pascal's triangle in the digits, until you get past the number 9.
13:02:55 <ais523> try doing it in base x rather than base 10
13:02:56 <_256> So I made it basically multiply a number by 11 in base 10000 and then print the digits.
13:03:00 <ais523> right
13:03:10 <b_jonas> I'm sure I have a fibonacci in dc thing up there
13:03:52 <b_jonas> here it is https://www.perlmonks.com/?node_id=584111
13:04:05 <b_jonas> `dc -e1d[pdsd+ldrlxx]dsxx
13:04:07 <HackEso> 1 \ 2 \ 3 \ 5 \ 8 \ 13 \ 21 \ 34 \ 55 \ 89 \ 144 \ 233 \ 377 \ 610 \ 987 \ 1597 \ 2584 \ 4181 \ 6765 \ 10946 \ 17711 \ 28657 \ 46368 \ 75025 \ 121393 \ 196418 \ 317811 \ 514229 \ 832040 \ 1346269 \ 2178309 \ 3524578 \ 5702887 \ 9227465 \ 14930352 \ 24157817 \ 39088169 \ 63245986 \ 102334155 \ 165580141 \ 267914296 \ 433494437 \ 701408733 \ 1134903170 \ 1836311903 \ 2971215073 \ 4807526976 \ 7778742049 \ 12586269025 \ 20365011074 \ 32951280099 \ 53316291173
13:04:48 <b_jonas> https://www.perlmonks.com/?node_id=490532 has more
13:04:57 <b_jonas> `dc -e1d[pdk+Krlxx]dsxx
13:04:58 <HackEso> 1 \ 2 \ 3 \ 5 \ 8 \ 13 \ 21 \ 34 \ 55 \ 89 \ 144 \ 233 \ 377 \ 610 \ 987 \ 1597 \ 2584 \ 4181 \ 6765 \ 10946 \ 17711 \ 28657 \ 46368 \ 75025 \ 121393 \ 196418 \ 317811 \ 514229 \ 832040 \ 1346269 \ 2178309 \ 3524578 \ 5702887 \ 9227465 \ 14930352 \ 24157817 \ 39088169 \ 63245986 \ 102334155 \ 165580141 \ 267914296 \ 433494437 \ 701408733 \ 1134903170 \ 1836311903 \ 2971215073 \ dc: value overflows simple integer; punting... \ dc: scale must be a nonnegativ
13:05:19 -!- Thelie has quit (Ping timeout: 276 seconds).
13:06:52 <_256> Storing the value in the precision?
13:07:40 <b_jonas> I don't remember how dc works anymore so I'm not going to edit these, but if you just stop after a while and divde the last two values you should get something close to the golden ratio
13:08:00 <b_jonas> of course it's much easier with the built-in square root, as the fourth command in that node shows
13:08:52 <b_jonas> that said, none of these is an efficient way to get the golden ratio
13:09:34 <_256> How many digits per iteration would you get from dividing subsequent Fibonacci numbers? Is it phi itself?
13:11:28 <b_jonas> just as many digits as those fibonacci numbers have. they're the fractions that get closest to the golden ratio. that part isn't the problem, the problem is that these are golfed solutions that print every fibonacci numbers rather than efficient ones to compute later ones
13:12:55 <_256> Hmm. I remember implementing a logarithmic-time(?) algorithm for computing Fibonacci numbers that I read about in SICP.
13:14:24 <_256> What's division, like O(N^2), where N is number of digits? And generating those numbers in the first place is O(N log N?) I don't remember.
13:14:44 <_256> It'd probably be faster than my binary search.
13:15:23 <b_jonas> I don't think you even need fibonacci numbers directly
13:15:46 <b_jonas> I know I computed square root three with an iterative method, so you should be able to do it with the golden ratio as well
13:15:48 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:16:55 <b_jonas> `perl -e$x=2;for(1..50){$x=1+1/$x}print$x # this works but it's slow
13:16:56 <HackEso> 1.61803398874989
13:22:50 <_256> Huh, that actually seems to produce the same intermediary values as the second version of my dc phi script, but with a much simpler expression.
13:25:53 <_256> My idea was that the graph of my test function, which is <0 if the input if <phi, and >0 if it's >phi, is basically a straight line over the precise value of phi, so I just needed to figure out the slope based on 2 points and extrapolate to where the precise value of phi is. I thought it would generate digits much more quickly than it did. I'm not very good at mathematics.
13:26:02 <_256> I mean, <1 and >1.
13:26:57 <b_jonas> `dc -e20k5v1+2/p [let's try the square root too]
13:26:58 <HackEso> 1.61803398874989484820
13:28:10 -!- tromp has joined.
13:45:03 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
13:50:43 <fizzie> `blsq 2.0{JJJJ1j./.-1.-jJ.*1j./1.+./.-}10E! " Newton's method "vv
13:50:44 <HackEso> 1.618033988749895 \ 1.618033988749895 \ 1.618033988749895 \ 1.618033988749895 \ 1.618033988749895 \ 1.618033988749895 \ 1.618033988749895 \ 1.618033988205325 \ 1.6179775280898876 \ 1.6 \ 2.0
13:53:29 <fizzie> `blsq 0 2.0 {JJJJ1j./.-1.-jJ.*1j./1.+./.-}{!=}w! CL~] " or iterated until convergence "vv
13:53:30 <HackEso> ​{1.618033988749895 1.618033988749895 1.618033988205325 1.6179775280898876 1.6 2.0}
13:53:52 <fizzie> Sadly, no arbitrary-precision arithmetic other than on integers with Burlesque.
13:54:24 -!- tromp has joined.
13:54:59 <b_jonas> fizzie: if you're golfing you'd probably just use a hard-coded number of iterations rather than until convergence
13:56:07 <int-e> . o O ( Newton's *other* method. https://en.wikipedia.org/wiki/Newton_series#Newton's_series came up earlier... )
14:00:32 <esolangs> [[IBSA]] M https://esolangs.org/w/index.php?diff=120358&oldid=120172 * Simple9371 * (-1)
14:02:34 <fizzie> Probably.
14:02:37 <fizzie> `dc -e30k0 2[pdddd1r/-1-rd*1r/1+/-rd3Rd4R!=a]salax
14:02:38 <HackEso> 2 \ 1.600000000000000000000000000000 \ 1.617977528089887640449438202247 \ 1.618033988205325051470844819764 \ 1.618033988749894848153928976786 \ 1.618033988749894848204586834365
14:04:26 <fizzie> Oh, that extra 0 is unnecessary since now the test is only after each iteration, unlike Burlesque's w!.
14:04:34 <fizzie> `dc -e30k2[pdddd1r/-1-rd*1r/1+/-rd3Rd4R!=a]salax
14:04:35 <HackEso> 2 \ 1.600000000000000000000000000000 \ 1.617977528089887640449438202247 \ 1.618033988205325051470844819764 \ 1.618033988749894848153928976786 \ 1.618033988749894848204586834365
14:04:51 <fizzie> Much better with no unsightly blank spaces.
14:07:01 <int-e> > let step k x = 2*x - k*x^2 in iterate (step 3) 0.5 -- Newton iteration for f(x) = 1/x - k, so for computing the multiplicative inverse of k.
14:07:02 <lambdabot> [0.5,0.25,0.3125,0.33203125,0.3333282470703125,0.3333333332557231,0.33333333...
14:07:03 <b_jonas> you can always use Sss instead of a blank space
14:07:08 <b_jonas> no wait
14:07:12 <b_jonas> use Ass instead of a blank space
14:07:34 <b_jonas> no that doesn't work either
14:07:38 <ais523> does dc have a pop-and-discard? you could use a duplicate-pop sequence
14:07:40 <b_jonas> use []sv instead of a blank space
14:07:52 <b_jonas> ais523: d duplicates, sv pops and discards
14:08:00 <b_jonas> there's no single-character pop and discard
14:08:29 <ais523> now I'm wondering what s and v are individually
14:08:51 <ais523> it seems like a hard operation to split in half
14:09:04 <b_jonas> s stores to a register, v is the name of the regsiter you're storing into
14:09:15 <b_jonas> it's one operation, s takes an argument
14:09:21 <ais523> ah, I see
14:09:32 <fizzie> I kind of unnecessarily kept the "keep old values on stack" behavior of the Burlesque version in the dc one, which complicated the looping.
14:09:37 <fizzie> `dc -e30k2[pdddd1r/-1-rd*1r/1+/-d3R!=a]salax
14:09:38 <HackEso> 2 \ 1.600000000000000000000000000000 \ 1.617977528089887640449438202247 \ 1.618033988205325051470844819764 \ 1.618033988749894848153928976786 \ 1.618033988749894848204586834365
14:10:31 <fizzie> (That's one thing that was harder in dc, because Burlesque's w! conveniently has evaluating the conditional not affect the actual stack.)
14:11:38 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:15:55 <_256> I normally use s0 or s_ to discard a value. 'v' seems arbitrary and harder to read.
14:16:39 <int-e> today's twist continues to look super low
14:17:14 <fizzie> https://zem.fi/misc/aoc/stats.aligned.ratio.html <- it's in line with day6, which possibly just means that most people didn't do day 6 "properly".
14:21:18 -!- tromp has joined.
14:21:39 <int-e> I guess today's just very untwisty even if you don't recognize that it's cbylabzvny rkgencbyngvba.
14:23:33 <ais523> hmm, I am not sure whether learning to read rot-13 was a good or bad idea
14:23:54 <ais523> probably good, I'm very slow at it so I can choose not to decode if I want to
14:24:49 <int-e> fblyrag terra vf znqr bs crbcyr
14:26:01 <int-e> Hmm there was https://xkcd.com/109/ which was actually funny... but maybe only for one particular generation :)
14:26:29 <ais523> "green" rot13ing into "terra" is actually kind-of a great coincidence
14:26:54 <ais523> I think there are other pairs of words which rot-13 into each other, but maybe harder to use in the same context
14:27:03 <int-e> we should ask shachaf about rot13
14:27:25 <fizzie> I think there's a rot13 extension in my terminal emulator (urxvt), but I can never remember how to invoke it so I just tr a-z n-za-m.
14:27:45 <int-e> same
14:28:13 <int-e> well, minus the urxvt thing
14:32:26 -!- Thelie has joined.
14:36:41 <b_jonas> _256 v is for void and the almost-useless unlambda builtin
14:37:06 <ais523> well, the unlambda builtin is named after void
14:37:35 <b_jonas> ais523: it's a bad idea to learn rot13, it just leads to accidentally spoiling yourself. it's a similar bad idea to learning the numbers on the eye chart that starts with 42.
14:37:41 <ais523> I think it only exists as a builtin to clarify its role in I/O, and only exists in I/O specifically to be as awkward to use as possible
14:37:55 -!- Thelie has quit (Ping timeout: 260 seconds).
14:38:02 <b_jonas> I mean if you were stuck on a desert island with no computers then sure, learn rot13, but we aren't
14:38:36 <_256> How do you know it's not for voluminous? Or is this a standard in esolang-land?
14:38:42 <b_jonas> or on like a dystopian future where all computers are locked down so they're only computers inside but you as a normal person can't program them
14:39:24 <b_jonas> _256: http://www.madore.org/~david/programs/unlambda/#ref explicitly calls it void
14:57:01 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
14:59:09 -!- ais523 has quit (Quit: sorry about my connection).
14:59:24 -!- ais523 has joined.
15:02:55 -!- tromp has joined.
15:25:06 <fizzie> For the record, the derivation (no pun intended) of dddd1r/-1-rd*1r/1+/- was: 1 + 1/x = x <=> x - 1/x - 1 = 0; f(x) = x - 1/x - 1, f'(x) = 1/x^2 + 1; x_{n+1} = x_n - f(x_n) / f'(x_n).
15:40:56 -!- ais523 has quit (Quit: quit).
15:41:36 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
15:41:54 -!- _256 has quit (Quit: leaving).
15:59:06 <esolangs> [[Rrr]] https://esolangs.org/w/index.php?diff=120359&oldid=120211 * Ttulka * (+693) add more examples: busy beavers
16:05:18 <esolangs> [[Rrr]] M https://esolangs.org/w/index.php?diff=120360&oldid=120359 * Ttulka * (-42) fix code formatting
16:06:14 -!- tromp has joined.
16:06:33 <esolangs> [[Hello world program in esoteric languages (N-Z)]] https://esolangs.org/w/index.php?diff=120361&oldid=118649 * Ttulka * (+310) Rrr
16:13:54 <fizzie> Actually, looking at that and doing some simplification, since x - f(x) / f'(x) = x - (x - 1/x - 1) / (1/x^2 + 1) = (2/x + 1) / (1/x^2 + 1), the dddd1r/-1-rd*1r/1+/- can also be just dd2r/1+rd*1r/1+/ instead.
16:14:01 <fizzie> `dc -e30k2[pdd2r/1+rd*1r/1+/d3R!=a]salax
16:14:03 <HackEso> 2 \ 1.600000000000000000000000000000 \ 1.617977528089887640449438202247 \ 1.618033988205325051470844819764 \ 1.618033988749894848153928976786 \ 1.618033988749894848204586834365
16:14:08 <fizzie> Checks out.
16:17:11 -!- Thelie has joined.
16:44:44 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
16:52:10 <esolangs> [[OISC]] https://esolangs.org/w/index.php?diff=120362&oldid=118958 * ChuckEsoteric08 * (+77) /* List of OISCs */
16:55:17 -!- tromp has joined.
17:05:35 <esolangs> [[Decleq]] https://esolangs.org/w/index.php?diff=120363&oldid=108916 * ChuckEsoteric08 * (+143)
17:17:10 -!- Koen_ has quit (Quit: Leaving...).
17:27:41 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:41:26 <esolangs> [[Unary Stack]] M https://esolangs.org/w/index.php?diff=120364&oldid=120351 * PythonshellDebugwindow * (+55) Categories
17:46:56 -!- simcop2387 has quit (Read error: Connection reset by peer).
17:46:56 -!- perlbot has quit (Read error: Connection reset by peer).
17:49:29 -!- perlbot has joined.
17:52:34 -!- simcop2387 has joined.
18:00:38 -!- perlbot has quit (Ping timeout: 252 seconds).
18:02:37 -!- simcop2387 has quit (Ping timeout: 246 seconds).
18:03:33 <esolangs> [[Decimal]] M https://esolangs.org/w/index.php?diff=120365&oldid=53656 * PythonshellDebugwindow * (+49) Categories
18:04:33 -!- simcop2387 has joined.
18:04:53 -!- perlbot has joined.
18:06:04 <esolangs> [[Dead]] M https://esolangs.org/w/index.php?diff=120366&oldid=102833 * PythonshellDebugwindow * (+57) /* Interpreter */ Categories
18:07:32 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=120367&oldid=120291 * PythonshellDebugwindow * (+56) add
18:10:54 <esolangs> [[Chickenfoot]] N https://esolangs.org/w/index.php?oldid=120368 * Ttulka * (+6144)
18:15:29 <esolangs> [[Chickenfoot]] M https://esolangs.org/w/index.php?diff=120369&oldid=120368 * Ttulka * (-33) /* Addition of two numbers */ simplify code
18:16:39 -!- tromp has joined.
19:01:48 <esolangs> [[Category:High-level]] M https://esolangs.org/w/index.php?diff=120370&oldid=22536 * CreeperBomb * (+6)
19:06:17 -!- __monty__ has joined.
19:21:24 -!- chiselfuse has quit (Remote host closed the connection).
19:21:46 -!- chiselfuse has joined.
19:27:07 <esolangs> [[Expressive]] M https://esolangs.org/w/index.php?diff=120371&oldid=120337 * CreeperBomb * (+341)
19:42:09 <esolangs> [[Special:Log/newusers]] create * Szevin * New user account
20:04:57 <esolangs> [[Expressive]] M https://esolangs.org/w/index.php?diff=120372&oldid=120371 * CreeperBomb * (+0) /* Examples */
20:06:49 <esolangs> [[Expressive]] M https://esolangs.org/w/index.php?diff=120373&oldid=120372 * CreeperBomb * (+62) /* Turing completeness */
20:09:41 <esolangs> [[Oifi]] M https://esolangs.org/w/index.php?diff=120374&oldid=117909 * CreeperBomb * (-3) /* Mild trollage */
20:11:43 <esolangs> [[User:Ttulka]] https://esolangs.org/w/index.php?diff=120375&oldid=120190 * Ttulka * (+23) add chickenfoot
20:16:26 <esolangs> [[Oifi]] M https://esolangs.org/w/index.php?diff=120376&oldid=120374 * CreeperBomb * (+173)
20:21:54 <esolangs> [[Snak]] M https://esolangs.org/w/index.php?diff=120377&oldid=91123 * CreeperBomb * (-1)
20:36:43 <esolangs> [[Talk:]] N https://esolangs.org/w/index.php?oldid=120378 * CreeperBomb * (+488) Created page with "== Super--complete == Is it possible for a language to be super--complete? Or perhaps even weak outside super--completeness? Or am I letting my imagination run too wild, and/or I'm misinterpreting something? ~~~~"
20:46:40 -!- FreeFull has quit (Remote host closed the connection).
21:46:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:58:24 -!- tromp has joined.
22:01:57 <fizzie> I've never understood what the point of the Burlesque "DupSwap" builtin ^/ is. Once you've done a dup, the top two stack elements are equal, so the swap does nothing.
22:03:19 <fizzie> I guess it's there just to trick you to accidentally use it instead of "SwapDup" /^ which can be useful (though usually isn't because there are one-letter shortcuts for both, so jJ is the same as /^).
22:25:25 <b_jonas> aren't those one-letter shortcuts newer though, and the old stuff kept for compatibility?
22:31:46 <fizzie> Mm, could be. Doesn't really make DupSwap any more useful.
22:51:46 -!- Sgeo has joined.
23:16:05 <esolangs> [[Oifi]] M https://esolangs.org/w/index.php?diff=120379&oldid=120376 * PythonshellDebugwindow * (+51) Categories
23:19:01 <int-e> Yay, I figured out that the Day 8 part 2 problem is NP-hard (NP-complete if you change it into a decision problem asking whether you ever reach a simultaneous final state.)
23:24:10 -!- ais523 has joined.
23:25:48 <int-e> (For hardness, you can reduce from 3-SAT based on the idea that you associate each literal with a prime p and encode it as n = 1 (mod p) and its negation as n = 0 (mod p). So a three-clause with literals p q r becomes up to 7 possibilities modulo lcm(p,q,r), and we can construct a corresponding cycle in the input transition system with accepting states at the right positions, always going left.)
23:28:16 <int-e> (And for membership in NP you can decompose into a prefix and a cycling part, and, if there's no solution in the prefix, for each cycle, *guess* which one is the relevant final state, and then do the CRT computation or an equivalent consistency check.)
23:29:54 <int-e> All this is probably a known result somewhere in automata theory. But not one I knew about :)
23:38:40 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
23:45:16 -!- __monty__ has quit (Quit: leaving).
23:55:21 -!- Thelie has quit (Read error: Connection reset by peer).
23:55:23 -!- Thelie1 has joined.
←2023-12-08 2023-12-09 2023-12-10→ ↑2023 ↑all