←2019-10-18 2019-10-19 2019-10-20→ ↑2019 ↑all
00:05:41 -!- FreeFull has quit.
01:13:09 -!- imode has quit (Ping timeout: 265 seconds).
01:25:01 -!- imode has joined.
01:28:02 -!- zzo38 has quit (Ping timeout: 240 seconds).
01:30:23 -!- Hooloovo0 has quit (Quit: Temporarily refracted into a free-standing prism.).
01:31:42 -!- Hooloovo0 has joined.
01:45:15 -!- zzo38 has joined.
02:15:14 <shachaf> `5 w
02:15:16 <HackEso> 1/2:`1//`1 <cmd> is equivalent to `` <cmd>, except that it splits the output into irc-sized pieces. The next pieces can be viewed with `spam. See also `2. Confusingly the obvious generalization of `4. \ dragon//Dragons are fractal creatures of magic, capable of shrinking or expanding to any size. Taneb invented them to live inside his string diagrams, but they prefer to hover around pinheads and feed on angels. \ dinosaur//Dinosaurs are
02:15:24 <shachaf> `? piet
02:15:26 <HackEso> Piet is a really colourful programming language.
02:15:48 <shachaf> oerjan: That's interesting. Why did it get truncated above without a second page?
03:22:37 -!- APic has quit (Ping timeout: 240 seconds).
03:49:49 -!- arseniiv has joined.
03:52:17 -!- Lord_of_Life has quit (Ping timeout: 240 seconds).
03:52:26 -!- Lord_of_Life_ has joined.
03:53:48 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
04:06:30 -!- MDead has joined.
04:07:57 -!- MDude has quit (Ping timeout: 240 seconds).
04:08:06 -!- MDead has changed nick to MDude.
04:35:57 -!- imode has quit (Ping timeout: 240 seconds).
05:06:10 <zzo38> They are adding support for generated columns into SQLite. That doesn't seem so useful to me, unless that feature can be used with virtual tables.
05:06:27 <zzo38> (Another feature that doesn't seems so useful to me is the EXCLUDE clause for window functions.)
05:23:34 -!- APic has joined.
05:28:22 <zzo38> I invented a card game called "Curse of Scotland", with four players, either with or without teams. Give 13 cards to each player, and then whoever holds the nine of diamonds must reveal it so that everyone knows who holds it. He may either keep it, or give it to another player and ask for a card in exchange; he can specify the suit but not the rank of that card. Initially there is no trumps.
05:30:20 <zzo38> Tricks are then played as in whist, but you cannot play the nine of diamonds unless it is the only card you have or if you already have a trick (if you are required to play a diamond but have only the nine of diamonds and are not allowed to play it, then you must ignore the requirement to follow suit).
05:31:47 <zzo38> Once the nine of diamonds is won in a trick, then all players other than the player who won that trick scores one point per trick, and the player who won the trick with the nine of diamonds scores nothing. And then, reset trick counts to zero, gather all cards already played and redistribute them to all players.
05:32:56 <zzo38> Now the player who won the nine of diamonds, after examining his own cards, selects a new trump suit, or no trumps; it is not allowed to be the same as it just was. And then do the same with the nine of diamonds as at the start of the game, and the trump namer leads to the next trick.
05:33:59 <zzo38> (Note that many times, the players will keep many of the cards they were initially dealt while the other cards get mixed up and redistributed.)
05:36:56 <Hooloovo0> this sounds pretty similar to hearts, with the queen of spades
05:37:24 <Hooloovo0> though the knowledge of who has the important card isn't in hearts
05:38:04 <Hooloovo0> redistribution of cards could get... interesting
05:42:29 <zzo38> Some other clarifications: If you ask a card of a suit that they have none of, then they tell you and you must ask for a different suit. If you decide to keep the nine of diamonds, then you must name a suit that you have at least one card of (not counting the nine of diamonds); if teams are played, you might try to communicate information to your partner.
05:43:12 <zzo38> If teams are being played, only the tricks won by the player who has won the nine of diamonds don't count; his partner's tricks still do count toward the team's score.
05:50:10 <zzo38> Hooloovo0: I am not so sure that it is similar to hearts, although hearts is also played with each player thirteen cards and then playing tricks similar to whist, but with no trumps. In hearts, the hearts also count, but tricks not containing hearts or the queen of spades, do not count any points.
05:59:49 <Hooloovo0> a lot of the strategy in hearts, while keeping score, is to not get stuck with the queen
06:00:15 <Hooloovo0> though I agree that it is a very different game with trumps
06:08:52 <zzo38> Yes, that is true (unless you try to collect all of the hearts and queen of spades). (Also, I have seen a variant of scoring in hearts where the queen of spades is worth six instead of thirteen.)
06:10:47 <Hooloovo0> six points seems interesting since it makes the game less about the queen and more about the hearts
06:11:27 <Hooloovo0> I'll definitely suggest that next time I play hearts
06:14:57 -!- Guest1 has joined.
06:41:19 <esowiki> [[Talk:Or]] https://esolangs.org/w/index.php?diff=66700&oldid=66678 * JonoCode9374 * (+287)
06:47:53 <esowiki> [[Talk:Or]] https://esolangs.org/w/index.php?diff=66701&oldid=66700 * JonoCode9374 * (+334)
06:48:24 <esowiki> [[Talk:Or]] https://esolangs.org/w/index.php?diff=66702&oldid=66701 * JonoCode9374 * (+128) I forgot my signature
07:06:48 -!- tromp_ has joined.
07:10:05 -!- tromp has quit (Ping timeout: 246 seconds).
07:44:16 -!- atslash has quit (Quit: This computer has gone to sleep).
10:00:56 <b_jonas> wait what? how does that work?
10:02:00 <b_jonas> ah I see
10:41:54 -!- FreeFull has joined.
13:44:32 -!- xkapastel has joined.
14:56:38 <b_jonas> `ftoc 98.6
14:56:39 <HackEso> 98.60°F = 37.00°C
15:35:58 <b_jonas> `perl -eprint(175 * ($lb = 0.4536))
15:35:59 <HackEso> 79.38
15:52:53 -!- Lord_of_Life_ has joined.
15:54:49 -!- Lord_of_Life has quit (Ping timeout: 250 seconds).
15:54:50 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
16:30:22 -!- LKoen has joined.
16:51:09 -!- arseniiv has quit (Ping timeout: 250 seconds).
17:04:18 -!- xkapastel has quit (Quit: Connection closed for inactivity).
17:14:22 -!- imode has joined.
17:32:59 -!- imode has quit (Ping timeout: 268 seconds).
18:22:45 -!- kspalaiologos has joined.
18:22:57 -!- imode has joined.
18:23:12 <kspalaiologos> I'm working on solving Project Euler challenges in Brainfuck
18:23:13 <kspalaiologos> and I gotta say
18:23:17 <kspalaiologos> it's quite amusing
18:29:56 <kmc> lol
18:29:57 <kmc> nice
18:31:22 <b_jonas> why?
18:31:27 <b_jonas> why in brainfuck?
18:31:41 <b_jonas> that sounds terrible
18:31:52 <kmc> b_jonas: um, you realize what channel you're in?
18:34:15 <kspalaiologos> btw
18:34:19 <kspalaiologos> if somebody feels brave enough
18:34:28 <kspalaiologos> for challenge #4, please send me a PR
18:34:28 <kspalaiologos> https://github.com/KrzysztofSzewczyk/euler
18:34:59 <kspalaiologos> 6 already done, we're really close to 600!
18:36:30 <int-e> b_jonas: itym insane
18:36:43 <int-e> or possibly terrifying
18:42:28 -!- imode has quit (Ping timeout: 265 seconds).
19:07:05 -!- imode has joined.
19:20:55 -!- oerjan has joined.
19:26:26 <oerjan> stereolist
19:26:33 <oerjan> @quote stereo
19:26:33 <lambdabot> geheimdienst says: data Stereoloid = BanachTyvski | CoBanachTyvski
19:26:37 <oerjan> huh
19:26:40 <oerjan> @quote stereo
19:26:40 <lambdabot> geheimdienst says: data Stereoloid = BanachTyvski | CoBanachTyvski
19:26:59 <oerjan> someone may have been deleting
19:27:09 <oerjan> @quote ent.stereo
19:27:09 <lambdabot> No quotes match. Just what do you think you're doing Dave?
19:27:39 <oerjan> @quote ste.eo
19:27:39 <lambdabot> geheimdienst says: data Stereoloid = BanachTyvski | CoBanachTyvski
19:45:21 <oerjan> <kspalaiologos> by the way, what is sub-lime? <-- a pun on the esolang wiki logo that got way out of hand a few years ago
19:46:09 <oerjan> (i put it in the channel welcome message, then someone started overdoing it)
19:47:10 <kspalaiologos> this bot is blowing my mind
19:47:12 <kspalaiologos> what have you just done
19:48:33 <oerjan> who, me?
19:48:40 <int-e> @quote fugue
19:48:40 <lambdabot> monochrom says: Welcome to #haskell, where your questions are answered in contrapuntal fugues.
19:48:47 <oerjan> ah
19:49:02 <int-e> oerjan: we have this upgrade of Cale's classical stereo quote
19:49:04 <oerjan> that's a similar quote to the one i tried to look up, yes
19:49:27 <int-e> "Welcome to #haskell where your questions are answered in majestic stereo."
19:49:34 <int-e> Was the original.
19:49:50 <oerjan> i couldn't remember the majestic
19:49:50 <int-e> (probably with a comma in the appropriate place)
19:51:01 <int-e> In unrelated news, https://www.youtube.com/watch?v=kVmp0uGtShk is painful to watch.
19:51:54 <int-e> (I kept focusing on the pinky finger.)
19:53:22 * oerjan decides to try not watching it
19:54:58 <int-e> context (less painful): https://mobile.twitter.com/LakeBrenden/status/1184967457305432066
19:57:12 <oerjan> i was about to shout at you for linking the mobile version, but frankly it looks way less annoying than the usual
19:58:49 <shachaf> hi oerjan
19:59:25 <oerjan> hichaf
20:00:16 <int-e> oerjan: The funny thing is that I'm on a desktop PC. But without JS, Twitter redirects me to the mobile version. (I'd have to disable <noscript> to prevent that.)
20:00:53 <zzo38> I think the desktop version of Twitter does not work without JS anyways, so it is correct to redirect you to the mobile version.
20:01:15 <shachaf> https://www.youtube.com/watch?v=zCuW4A57jac is antipainful to watch.
20:01:47 <int-e> it depends on what you mean by "work"... you see the message, a few related ones, you can click links
20:01:57 <int-e> the main thing that breaks is the infinite scrolling dark pattern
20:04:12 <int-e> `? cats
20:04:13 <HackEso> Cats are cool, but should be illegal.
20:04:45 <shachaf> `? kitten
20:04:46 <HackEso> kitten? ¯\(°​_o)/¯
20:04:55 <oerjan> oh it's live, that explains the lack of movement
20:05:37 <int-e> attempted cat is punishable by up to 3 years in prison.
20:05:42 <shachaf> You can rewind to moments with more movement.
20:05:49 <shachaf> For example by pressing 5
20:05:57 <shachaf> Or 9
20:06:03 <oerjan> OKAY
20:06:12 <shachaf> Or 1
20:07:26 <shachaf> kittens are the best thing in the universe
20:08:29 <esowiki> [[Iavac]] N https://esolangs.org/w/index.php?oldid=66703 * FireCubez * (+3127) Created page with "'''Idvac''' is a language created by [[User:FireCubez]]. Idvac stands for '''I'''ncrement and '''d'''ecrement '''v'''alues '''a'''nd '''c'''ompare. It is an [[OISC]]. Since th..."
20:08:56 <int-e> shachaf: do you have any good recipes?
20:09:04 <esowiki> [[Idvac]] N https://esolangs.org/w/index.php?oldid=66704 * FireCubez * (+3127) Created page with "'''Idvac''' is a language created by [[User:FireCubez]]. Idvac stands for '''I'''ncrement and '''d'''ecrement '''v'''alues '''a'''nd '''c'''ompare. It is an [[OISC]]. Since th..."
20:09:17 <shachaf> `recipe
20:09:18 <HackEso> e form a clean fat. Cool completely; or thickened. Pour over the \ cream of the flour. \ \ Start ends of pan, and boil the milk into the center of container. Cook for a few minutes, or until \ toothpicks then lightly browned. Cool approximately 10 minutes, about 1 hour. \ \ Remove and leave for 5 minutes. Pour over the broccoli. Combine the olive oil, and soy sauce. \ Stir into the bowl and stir often dough from the melted butter. Add
20:09:48 <int-e> esowiki: huh?
20:10:06 <int-e> Oh, Idvac, Iavac. Hmm.
20:10:18 <esowiki> [[Iavac]] https://esolangs.org/w/index.php?diff=66705&oldid=66703 * FireCubez * (-3127) Blanked the page
20:10:46 -!- kspalaiologos has quit (Quit: Leaving).
20:11:24 <int-e> kitten on lightly browned toothpicks.
20:12:01 <esowiki> [[Special:Log/delete]] delete * Oerjan * deleted "[[Iavac]]": Author request: content before blanking was: "'''Idvac''' is a language created by [[User:FireCubez]]. Idvac stands for '''I'''ncrement and '''d'''ecrement '''v'''alues '''a'''nd '''c'''ompare. It is an [[OISC]]. Since the language only has one instruction by nature..."
20:12:42 <int-e> I wonder which side is worse... the culinary side or the animal cruelty one.
20:18:08 <oerjan> i vaguely think customarily the toothpicks are used to test whether the meat is done?
20:18:29 <oerjan> which doesn't answer the question.
20:18:58 <oerjan> or is it whether bread is done...
20:19:28 <int-e> might be booth
20:19:54 <int-e> both. ouch.
20:21:55 <oerjan> hm google suggests it's for baking but also mentions a strange usage for chicken breasts
20:22:26 <int-e> I guess for meat you want to squeeze it a little which is hard with a single pick
20:22:43 <oerjan> stuffed chicken breasts, that is
20:22:59 <int-e> stuffed with dough?
20:24:07 <oerjan> i don't know
20:24:36 <oerjan> the toothpicks weren't for testing but for fastening
20:30:51 <b_jonas> oerjan: no, toothpicks are used to test if the cake is done, because the pastry is sticky and sticks to wood when it's raw but not sticky anymore when it's baked properly
20:31:52 <b_jonas> I don't think it's used to check if meat is done, but it is sometimes used to stabilize for fastening stuffed chicken combos, like chicken wrapped into bacon with some soft filling, but more usually metal pegs are used for that
20:32:37 <oerjan> hellonas. i think i have solved the mcculloch 2nd machine mortality problem.
20:35:26 <oerjan> i made a gruesome hack in my haskell simulator to fake the algebra i needed, and then the remaining cases were easy to solve.
20:36:31 <oerjan> assuming i made no mistakes
20:42:47 <LKoen> how do you mean "fake the algebra"?
20:44:41 <oerjan> i define a=100, b=10000, c=1000000 etc. and calculate the resulting sums/differences, then split up again assuming no resulting coefficients are >=50.
20:46:35 <oerjan> P $ bigTest 1 (MS [] F[a]F[b,c] )
20:46:37 <oerjan> F[b,c+a-1]F[b,c]
20:46:49 <oerjan> ^ sample input and output
20:47:42 <oerjan> that thing printed as c+a-1 is actually 1000099
20:49:07 <b_jonas> oerjan: ooh
20:50:26 <oerjan> this is a compact representation of, say, 5 2^(a+1) 5 2^(b+1) 4 2^c turning into 5 2^(b+1) 4 2^(c+a) 5 2^(b+1) 4 2^(c+1), approximately (the representation ignores even numbers of 4s)
20:51:11 <oerjan> um wait 2^c at the end
20:53:25 <oerjan> it takes care of strings with exactly two 5s and no 3s, which happen to be by far the most complicated
20:54:38 <oerjan> to decide
20:54:50 <b_jonas> that I can believe, yes
20:54:56 <oerjan> except now i have an explicit list of all the mortal patterns of such
20:55:31 <int-e> wee
20:55:55 <oerjan> 22 of them, a few containing a variable x
20:56:27 <int-e> it's the final countdown...
20:56:30 <oerjan> e.g. F[x]F[0], representing 5 2^(x+1) 5
20:58:15 -!- imode has quit (Quit: WeeChat 2.6).
20:58:20 <oerjan> up to F[0,0,0]B[0], representing 5 2 4 2 4 2 54
20:59:40 -!- atslash has joined.
20:59:45 <oerjan> actually that's only the mortals at a particular stage. the algorithm requires winding forward to it.
21:00:46 <oerjan> in particular, the points when the string starts with 5 (again ignoring 4s which may appear a bit out of order)
21:02:43 <oerjan> other stuff noted: the string 35555555555552555555555555 blows up exponentially for two steps in a row. i think this may be optimal.
21:03:59 <oerjan> (well, add more 5s to taste)
21:04:46 <oerjan> actually the last half could contain 3s too, then the string actually survives
21:05:05 <oerjan> but doesn't continue to grow as fast
21:07:29 <b_jonas> you want a string the grows quickly in just a few evaluation steps?
21:07:30 <b_jonas> I see
21:08:02 <oerjan> well it was one thing that came up
21:09:23 <oerjan> because i had to prove that every string either dies, gets to a point where it's obviously growing indefinitely, or gets into the "exactly two digits are 3 or 5 (and they're equal)" options
21:09:47 <oerjan> (and this actually happens within length(S) steps)
21:10:24 <oerjan> and this quickly expanding string is one corner case
21:11:52 <b_jonas> I see
21:11:57 <oerjan> correction: it gets to a state where it'll obviously die. the actual end might come much later, e.g. if you start with something like 555555555522
21:13:19 <b_jonas> I don't think I can help in the subject matter here, but I'd like to add that I find this a nice way to honor the memory of Smullyan
21:14:10 <oerjan> basically you count maximal substrings of the form [345]* that are not all 4s
21:15:00 <oerjan> if there are >= 3 of them, it's immortal, if there are <=1, it's mortal, if there are 2 you may have to wind forward up to length(S) steps to separate the cases
21:16:26 <b_jonas> right
21:16:40 <b_jonas> um no
21:16:41 <b_jonas> not quite
21:16:47 <b_jonas> oh
21:16:50 <b_jonas> "not all 4s"
21:17:03 <b_jonas> so maximal substrings of the form 4*[35][345]*
21:17:15 <oerjan> yeah
21:20:49 <oerjan> first you wind forward to the step where one of those substrings "runs"
21:25:02 <b_jonas> the first one or the last one, before that you burn some of the 4s and 2s from the ends
21:25:11 <oerjan> right.
21:26:43 <esowiki> [[Special:Log/newusers]] create * Andrewarchi * New user account
21:27:29 <b_jonas> do you think we should be sad that the hint file for the IOCCC underload interpreter doesn't link to the esowiki? or happy instead?
21:28:56 <oerjan> hm you think that would have been enough to DOS the wiki? otherwise a bit sad...
21:29:07 <b_jonas> I don't think it would have DOSed
21:29:31 <b_jonas> it would have brought in interested people, but I don't know if it's the good sort of interesting people or the bad sort
21:30:20 <oerjan> it would also have brought in people interested in something other than brainfuck derivatives :P
21:33:05 <oerjan> continuing the mcculloch algorithm: if it's still undecided in the next step, you have two substrings that both contain more than one 3 or 5, and in fact an equal pattern of them. (but 4s may differ.) so wind forward again until one of those runs. that must decide _except_ in the 4*3(4*5)+4* 2 4*3(4*5)+4* case, which gets to run a single extra step.
21:33:37 <b_jonas> what happens if they're not equal patterns?
21:33:53 <oerjan> they cannot be non-equal patterns at that point
21:34:18 <oerjan> that's because they're both produced from the same original substring
21:34:18 <b_jonas> you could start from an unequal pattern
21:34:28 <b_jonas> with no reduction steps at the start
21:34:59 <oerjan> by "the next step" i mean the next step after the first winding forward i described
21:35:18 <b_jonas> oh, so you always wind through the first duplication executing?
21:35:18 <oerjan> at that point the patterns cannot be non-equal if there are still two substrings
21:35:40 <b_jonas> and if there were three such parts, then it's an immortal string
21:35:41 <b_jonas> ok
21:35:57 <oerjan> well unless you can decide already at the start that it's in one of the cases
21:36:01 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=66706&oldid=66691 * Andrewarchi * (+265) /* Introductions */
21:38:18 <b_jonas> so can you decide all the cases when there are no 3s anywhere?
21:38:37 <b_jonas> that is, ones similar to 5252
21:38:42 <oerjan> also you could sometimes stop a little earlier by noting that "two substrings both containing at least one 3" is immortal, but i wanted to see if that has to resolve later to either more substrings or exactly two 3s
21:38:47 <oerjan> yes.
21:38:49 <b_jonas> still two sequences with 5s
21:39:24 <b_jonas> "an optimizing compiler for Whitespace" hmm
21:41:35 <oerjan> a string with no 3s and exactly two 5s separated by at least one 2 is the remaining case.
21:42:09 <b_jonas> because if there are 3s, then it is immortal?
21:42:24 <b_jonas> makes sense, it like has a 323 in it
21:42:52 <oerjan> yep
21:45:40 <oerjan> it can be analyzed as something like ((44)*2)*((44)*42((44)*2)*)* 4*54*2 ((44)*2)*((44)*42((44)*2)*)* 4*54* ((2(44)*)*24(44)*)*(2(44)*)*
21:46:53 <oerjan> where (44)* is just NOP noise, essentially
21:47:44 <b_jonas> yes, the 44s can be ignored
21:50:41 <oerjan> if you apply "44" -> "", "45" -> "54", that becomes canonically 2*(42 2*)* 54? 2*(42 2*)* 54? (2* 24)*2*
21:51:03 <b_jonas> wait, why is 45 |> 54 fine?
21:51:27 <oerjan> the effect of 4 commutes with both 3 and 5
21:51:36 <b_jonas> oh, there's no 2 between
21:51:37 <b_jonas> ok
21:52:50 <oerjan> now you can turn that into a compressed format [...]f[...]f[...] for a strange register machine
21:53:12 <esowiki> [[Talk:HaPyLi]] N https://esolangs.org/w/index.php?oldid=66707 * Andrewarchi * (+138) Created page with "The HaPyLi website is now defunct and the compiler and example programs were not archived. Does anyone have a copy of the HaPyLi compiler?"
21:53:24 <esowiki> [[Talk:HaPyLi]] https://esolangs.org/w/index.php?diff=66708&oldid=66707 * Andrewarchi * (+95)
21:54:07 <oerjan> start with [, then 2* -> count number of 2s, 42 -> comma, 54 -> ]B[, 5 -> ]F[ and finish with a ]
21:54:49 <oerjan> 24 -> comma too
21:54:51 <b_jonas> B for back, F for forwards
21:54:56 <oerjan> right
21:54:58 <b_jonas> and there's always exactly two letters
21:59:20 <oerjan> there are some extra 2s in that regex. what they amount to is that sequences of 2* _other_ than at the very ends of the string give one less number. if i didn't do that i'd need a rule that said 0 is only allowed at the very end elements, which makes the resulting register machine less elegant i think.
21:59:37 <oerjan> *give a number one smaller
22:00:44 -!- 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.”).
22:02:59 <oerjan> one quirk in the notation, i often don't write [0] at the very beginning.
22:03:18 <oerjan> so [0]F[0]F[0] = F[0]F[0].
22:03:30 <oerjan> (it's an empty string anyway.)
22:03:35 <oerjan> *substring
22:06:18 <oerjan> and now we can translate the mcculloch rules into this format. (a) if the first number is _not_ 0, decrement it. (3) If it starts [0, then remove 0, and reverse the machine (lists and flags, but not multidigit numbers if there are any).
22:06:55 <oerjan> (4) if it starts [0], it's a bit more complicated.
22:07:09 <oerjan> er s/(a)/(1)/
22:07:17 <b_jonas> wait, how od you reverse it?
22:07:25 <b_jonas> don't you have to do something tricky to reverse?
22:07:38 <oerjan> [0,1]F[2,3] -> [3,2]F[1]
22:07:50 <oerjan> it simply works
22:08:05 <b_jonas> but it's not supposed to be symmetric
22:08:17 <oerjan> it actually is symmetric
22:08:18 <b_jonas> because the comma stands for a 42 in the McCulloch machine
22:08:25 <oerjan> also 24
22:08:29 <b_jonas> um
22:08:34 <oerjan> i corrected that afterwards
22:08:44 <b_jonas> it can stand for either? and it doesn't matter somehow?
22:08:57 <b_jonas> why?
22:10:32 <oerjan> oh my canonic form has an error. should be 2*(42 2*)* 54? 2 2*(42 2*)* 54? (2* 24)*2*
22:11:06 <oerjan> note how the parts before the first 5 and after the last 5 _are_ symmetric.
22:11:56 <b_jonas> the patterns are symmetric
22:12:05 <oerjan> now consider the part in between, 2*(42 2*)*. its mirror is (2* 24)*2*
22:12:24 <oerjan> er
22:12:32 <b_jonas> but I don't see why the specific possible values reverse without changing semantisc
22:12:45 <oerjan> * now consider the part in between, 2 2*(42 2*)*. its mirror is (2* 24)*2* 2
22:14:27 <oerjan> interestingly, they are equivalent - they give the _same_ splitting into numbers and commas
22:15:03 <b_jonas> oh
22:15:14 <b_jonas> because there's always an extra 2 everywhere that you don't count?
22:15:18 <oerjan> yep
22:15:24 <b_jonas> but then it's not just 42 or 24 being the same
22:15:38 <b_jonas> you take an extra 2 from different ends of the section
22:15:41 <b_jonas> that's what compensates for it
22:15:43 <oerjan> well the single 2s are supposed to be discarded
22:15:51 <b_jonas> only from the very start
22:16:42 <oerjan> maybe i should have written it as "4 2" and "2 4" and said 4 -> comma
22:20:23 <oerjan> anyway, reversing works. Now if you have [0]B[...]f[...], turn that into F + reverse([...]f[...]), which is not _strictly_ speaking a valid single mcmulloch step but which cuts the number of cases to analyze in half.
22:20:53 <b_jonas> is F and f the same?
22:20:56 <oerjan> it's the equivalence 542 ++ X ~~ 52 ++ reverse(X)
22:21:04 <oerjan> f is either F or B
22:21:12 <b_jonas> ah
22:21:34 <b_jonas> well ok
22:22:21 <oerjan> now we have got to the form [0]F[...]f[...] which is what i consider the beginning of a "big step" in this machine, and what i made tables of.
22:22:31 <oerjan> (and dropping the [0])
22:22:37 <b_jonas> wait why?
22:22:44 <b_jonas> how did you get to where it's always [0] in the end?
22:22:53 <oerjan> oh
22:22:53 <b_jonas> in the beginning
22:23:10 <oerjan> i suppose i haven't explained that yet.
22:23:59 <oerjan> it's what happens when you repeat rule (1) and (3).
22:24:31 <b_jonas> ah
22:24:33 <oerjan> any initial number gets reduced to 0, then removed unless it's in [0].
22:24:51 <b_jonas> so you eat away the 2s, and reverse the part after the first letter by the forwards-backwards step
22:24:57 <b_jonas> but why is the first letter always F?
22:26:00 <b_jonas> or wait, what was the forward-backward step?
22:26:09 <b_jonas> ah
22:26:13 <b_jonas> that was the forward-backward step
22:26:27 <b_jonas> the normal reversing when you drop a comma is just a forward step
22:26:48 <oerjan> er
22:26:49 <b_jonas> no, I don't get it]
22:27:07 <b_jonas> how does rule (3) work? does that also do a forward-backward?
22:27:25 <b_jonas> no
22:27:29 <b_jonas> I don't get how rule (3) works
22:27:45 <oerjan> (3) If it starts [0, then remove 0, and reverse the machine (lists and flags, but not multidigit numbers if there are any).
22:27:46 <b_jonas> oh, you have to reverse the entire machine then
22:28:07 <b_jonas> like, remove the 0, and then reverse the entire machine
22:28:50 <oerjan> yep.
22:29:54 <oerjan> the [0]B[...]f[...] thing is something different, which also does a reversal.
22:30:03 <oerjan> but only of the part after B.
22:30:41 <b_jonas> right, so eventually you eat away enough 2s and 4 from the ends that you get a 5 at the very start of the string
22:30:42 <oerjan> corresponding to the fact m(542 + X) = m(52 + reverse(X))
22:31:07 <b_jonas> and until that, the string is only reduced in length
22:31:21 <oerjan> right
22:32:14 <oerjan> so it remains to say what happens to F[...]f[...]
22:33:17 <oerjan> or F[a,...]f[...,z], to single out the two most important elements.
22:33:52 <oerjan> if a+z>0, this becomes [a,...]f[...,z+a-1,...]f[...,z]
22:35:09 <oerjan> basically, when you concatenate two copies of the string corresponding to [a,...]f[...,z], the 2s representing a and the 2s representing z become connected.
22:35:48 <oerjan> but they also move from the outermost spots, where all 2s count, to inside, where one is subtracted.
22:35:58 <oerjan> so it gives the number z+a-1.
22:36:53 <oerjan> so this is the point where there is actual string growth.
22:36:58 <b_jonas> I don't see
22:37:00 <b_jonas> wait
22:37:27 <oerjan> oh wait hm
22:37:31 <b_jonas> the number a means that there are a+1 copies of 2 next to each other there; z means that there are z+1 copies
22:37:49 <oerjan> sorry, the conclusion is right but slightly off
22:37:50 <b_jonas> one gets dropped from the evaluation rule, so that's a+z+1 total, so the number should become a+z
22:38:01 <oerjan> z means that there are z copies. it's at the very end.
22:38:47 <b_jonas> ok, I'm probably too tired to make sure that this counting works
22:38:53 <oerjan> a initially means that there are a+1 2s. but one of them follows a 5, and gets used up by it.
22:39:05 <oerjan> ok we can continue later.
22:39:08 <b_jonas> yes, one gets used up by the evaluation rule
22:39:37 <b_jonas> I'm just not sure how the representation works and why there isn't an extra one at the end
22:40:12 <oerjan> afterwards, there are a 2s that are now at the very beginning, where they count fully.
22:42:07 <oerjan> oh.
22:42:32 <oerjan> dammit. now i'm starting to wonder if i've messed up this at the [0]B point.
22:43:16 <oerjan> _that_ reversal may not work with this system.
22:43:40 <oerjan> Sic transit gloria mundi
22:44:03 <b_jonas> well this is still probably a good start to analyze this
22:44:16 <oerjan> there had to be something. oh well. the basic idea should still be sound.
22:45:15 <oerjan> or wait
22:45:19 <b_jonas> as in, two 5s and no 3s is indeed the hard case
22:45:21 <int-e> Ah, so there are cycles of arbitrary length :)
22:45:26 <b_jonas> and ignoring the 44s is correct
22:45:36 <oerjan> no, maybe it was right after all
22:45:55 <oerjan> i need to check an example.
22:46:40 <int-e> starting from 32^n3 for length n... boring in retrospect
22:47:08 <oerjan> 542 24222522 ~ 52 22522242
22:47:53 <oerjan> B[1,2]F[2] ~ F[2]F[2,1]
22:48:00 <oerjan> yeah it _was_ right.
22:55:01 <oerjan> you could say that when you remove an F or a B from the beginning you remove 52 or 542, which gives the a the same representation as at the end of a machine, so you can move it to the beginning or reverse it.
22:58:09 <oerjan> the case where a+z==0 is special. it corresponds to _no_ 2s in their end-of-machine representation, so when they are fused together the 4s or 5s at either side get fused together.
22:58:49 <oerjan> (aka a==z==0)
22:59:25 <int-e> and then it dies?
22:59:59 <oerjan> for the case F[0]f[0] it dies, yes, because then the two 5s are what get fused
23:00:19 <b_jonas> but it could have more numbers?
23:01:04 <oerjan> but for F[0,b]f[0], say, what happens is -> [0,b]f[0+0-1,b]f[0] -> [0,b]flip(f)[b]f[0]
23:01:30 <oerjan> the f (5 or 54) on one side gets fused with the 4, flipping it
23:02:14 <oerjan> (Also F[0]F[0] and F[0]B[0] are the only immediately dying states)
23:02:29 <oerjan> or well, nearly immediately
23:03:12 <oerjan> 525 -> 55 and 5254 -> 5454
23:09:17 <oerjan> to sum up, for a configuration F[a,...]f[...,z] you can get to the next F[...]f[...] state, and the only branching in the calculation is on whether a+z==0.
23:12:22 <oerjan> this means that it makes sense to group configurations by the length of the sublists. e.g. F[0]F[0] is an F1F1 configuration.
23:13:34 <oerjan> and for a given a+z==0 choice, you can calculate the next "big step" up to list lengths as well.
23:14:08 <oerjan> F1F1 with a+z==0 => RIP, with a+z>0 => F1F1 (self-loop)
23:17:25 <oerjan> Consider F m f n --> F o f p. It turns out that (1) m+n>=9 => max(o,p)>=6 (2) max(m,n)>=6 => o+p>=9. This means that all those configurations are immortal, and was my first big cutting down of cases.
23:19:03 <oerjan> (from infinite to finite, afa length configurations go)
23:21:00 <oerjan> the remaining 88 cases took a bit more work :P
23:27:24 <oerjan> although with the entire table fille in, it turns out max(m,n)>=4 is enough to ensure immortality.
23:27:29 <oerjan> *filled
23:38:40 <oerjan> <shachaf> oerjan: That's interesting. Why did it get truncated above without a second page? <-- because HackEso got a verbose cloak hth
23:38:50 -!- oerjan has quit (Quit: Nite).
23:39:20 <b_jonas> a tax to freenode of a dozen character per line
23:40:05 <fizzie> Oh, I forgot to take care of that. :/
23:40:13 <fizzie> Today I'm too sleepy.
23:40:15 <b_jonas> take care how?
23:40:18 <b_jonas> pay the tax?
23:40:23 <b_jonas> I think it's payed automatically
23:40:26 <b_jonas> the server takes care of it
23:40:39 <fizzie> Well, as in, make sure all the automated splitting uses the right thresholds.
23:40:43 <b_jonas> ah
23:40:47 <b_jonas> modify the sport
23:41:32 <fizzie> I think ultimately it's done by distort.
23:42:27 <fizzie> sport puts the data into spout and then calls distort and passes the results to spore, which of course is a wrapper around spam.
23:42:39 <b_jonas> ok, I don't know how all those work
23:43:08 <fizzie> HackE[gs]o commands are kind of ridiculous.
23:54:18 * pikhq is for some reason in an Agora mood again
23:54:20 <pikhq> Go figure
23:55:16 <esowiki> [[Talk:McCulloch's second machine]] N https://esolangs.org/w/index.php?oldid=66709 * B jonas * (+151) Created page with "Work in progress: [[User:Oerjan]] [https://esolangs.org/logs/2019-10-19.html#lIc is trying to create the algorithm] to determine if a number is mortal."
←2019-10-18 2019-10-19 2019-10-20→ ↑2019 ↑all