00:06:45 -!- visilii has quit (Ping timeout: 248 seconds). 00:11:09 -!- visilii has joined. 00:32:40 [[User talk:H. H. P. M. P. Cole/Logica]] M https://esolangs.org/w/index.php?diff=157775&oldid=157764 * H. H. P. M. P. Cole * (+165) 00:32:49 [[User talk:H. H. P. M. P. Cole/Logica]] M https://esolangs.org/w/index.php?diff=157776&oldid=157775 * H. H. P. M. P. Cole * (+9) 00:36:12 [[User:H. H. P. M. P. Cole/Logica]] M https://esolangs.org/w/index.php?diff=157777&oldid=157702 * H. H. P. M. P. Cole * (+106) 00:37:41 [[User:H. H. P. M. P. Cole/Logica]] M https://esolangs.org/w/index.php?diff=157778&oldid=157777 * H. H. P. M. P. Cole * (+507) 00:38:12 [[Special:Log/move]] move * H. H. P. M. P. Cole * moved [[User:H. H. P. M. P. Cole/Logica]] to [[Logica]] 00:38:12 [[Special:Log/move]] move * H. H. P. M. P. Cole * moved [[User talk:H. H. P. M. P. Cole/Logica]] to [[Talk:Logica]] 00:38:50 [[User:H. H. P. M. P. Cole]] M https://esolangs.org/w/index.php?diff=157783&oldid=157695 * H. H. P. M. P. Cole * (+4) 00:39:31 [[Talk:Logica]] M https://esolangs.org/w/index.php?diff=157784&oldid=157781 * H. H. P. M. P. Cole * (+122) 00:42:17 [[Language list]] M https://esolangs.org/w/index.php?diff=157785&oldid=157766 * H. H. P. M. P. Cole * (+13) /* L */ 01:02:04 [[User:I am islptng/Draft]] https://esolangs.org/w/index.php?diff=157786&oldid=157324 * I am islptng * (+687) 01:02:25 [[User:I am islptng/Draft]] https://esolangs.org/w/index.php?diff=157787&oldid=157786 * I am islptng * (+17) /* Symbols */ 01:14:43 -!- FreeFull has quit (Ping timeout: 276 seconds). 01:15:18 -!- FreeFull has joined. 01:46:19 [[Interpreter-modifying]] https://esolangs.org/w/index.php?diff=157788&oldid=157584 * Corbin * (+331) The concept goes back to the beginning of Lisp, but was not well-defined enough for efficient self-hosting prior to Black. 01:53:36 [[Black (Asai)]] N https://esolangs.org/w/index.php?oldid=157789 * Corbin * (+650) Stub for what I think is the first proven-efficient infinite tower of metainterpreters in the literature. 02:17:14 [[WTF]] https://esolangs.org/w/index.php?diff=157790&oldid=157737 * H33T33 * (+536) 02:24:28 [[Black (Asai)]] https://esolangs.org/w/index.php?diff=157791&oldid=157789 * Corbin * (+73) Categories. 03:43:15 [[Monoid]] N https://esolangs.org/w/index.php?oldid=157792 * Corbin * (+792) I have like twenty tabs open right now and I'm still probably gonna get something wrong. Here's an outline. 03:57:59 [[G]] N https://esolangs.org/w/index.php?oldid=157793 * Helpeesl * (+7501) Created page with "==Intro== G is a 2D esolang created by [[User:Helpeesl]] on May 15th 2025 and only uses commands which have been represented by G, g, , , , , or other forms of g in other programming languages. ==Commands== > Moves the pointer to the right one from [[Look!]], [[ABCDE]], [[ 03:58:49 [[G]] https://esolangs.org/w/index.php?diff=157794&oldid=157793 * Helpeesl * (+1) 03:59:28 [[G]] https://esolangs.org/w/index.php?diff=157795&oldid=157794 * Helpeesl * (+40) 04:01:00 [[G]] https://esolangs.org/w/index.php?diff=157796&oldid=157795 * Helpeesl * (+0) 04:02:56 [[G]] https://esolangs.org/w/index.php?diff=157797&oldid=157796 * Helpeesl * (+0) 04:04:26 [[FHC]] https://esolangs.org/w/index.php?diff=157798&oldid=157454 * Helpeesl * (-29) 04:04:47 [[HQ9-]] https://esolangs.org/w/index.php?diff=157799&oldid=157450 * Helpeesl * (-29) 04:05:31 [[2Deadfish]] https://esolangs.org/w/index.php?diff=157800&oldid=157469 * Helpeesl * (-27) 04:05:49 [[Monoid]] https://esolangs.org/w/index.php?diff=157801&oldid=157792 * Corbin * (+1148) /* Free monoids */ Stub. 04:05:50 [[Dreadfish]] https://esolangs.org/w/index.php?diff=157802&oldid=157467 * Helpeesl * (-26) 04:06:13 [[Feed the Chaos]] https://esolangs.org/w/index.php?diff=157803&oldid=157471 * Helpeesl * (-27) 04:07:27 [[Codesick]] https://esolangs.org/w/index.php?diff=157804&oldid=157671 * Helpeesl * (+0) 04:07:44 [[Hakerh]] https://esolangs.org/w/index.php?diff=157805&oldid=157739 * Helpeesl * (+0) 04:44:39 [[User:I am islptng/Draft]] https://esolangs.org/w/index.php?diff=157806&oldid=157787 * I am islptng * (+32) 04:45:28 -!- ais523 has joined. 04:45:52 zzo38: Rust currently doesn't have a goto statement, although there are plans to add gotos from one arm of a "match" (the equivalent of a "switch") to another 04:47:46 and yes, Rust's "String" type and "str" are Unicode, but you don't have to use them for strings, there are a range of other string-like types available like OsString (OS default, e.g. UTF-16 on Windows) and Vec (bytestring) 05:01:43 [[User:I am islptng/Draft]] https://esolangs.org/w/index.php?diff=157807&oldid=157806 * I am islptng * (-59) 05:04:35 [[Logica]] M https://esolangs.org/w/index.php?diff=157808&oldid=157779 * H. H. P. M. P. Cole * (+107) 05:09:01 [[Logica]] M https://esolangs.org/w/index.php?diff=157809&oldid=157808 * H. H. P. M. P. Cole * (+121) 05:16:40 [[User:I am islptng/Draft]] https://esolangs.org/w/index.php?diff=157810&oldid=157807 * I am islptng * (+875) 05:17:31 [[User talk:I am islptng/Draft]] N https://esolangs.org/w/index.php?oldid=157811 * I am islptng * (+681) Created page with "@[[User:H. H. P. M. P. Cole]]: This was what I mean yesterday! --~~~~" 05:20:48 [[User talk:I am islptng/Draft]] M https://esolangs.org/w/index.php?diff=157812&oldid=157811 * H. H. P. M. P. Cole * (+216) 05:47:03 -!- lambdabot has quit (Remote host closed the connection). 05:59:24 -!- lambdabot has joined. 06:00:38 -!- lambdabot has quit (Remote host closed the connection). 06:06:29 [[User:H. H. P. M. P. Cole]] M https://esolangs.org/w/index.php?diff=157813&oldid=157783 * H. H. P. M. P. Cole * (-4) 06:12:01 -!- lambdabot has joined. 06:28:18 ais523: IIUC OsString on windows is actually also UTF-8 strings, they're just converted to UTF-16 on the fly when passed to a win32 system call eg. representing a filename. 06:29:05 see https://doc.rust-lang.org/nightly/std/ffi/struct.OsString.html the paragraph starting with /Note,/ 06:30:27 b_jonas: I'm pretty sure Rust OsString on Windows can represent a string that contains surrogates 06:30:32 unpaired surrogates, that is 06:33:23 I guess it could just UTF-8-encode the surrogates 06:34:23 -!- ais523 has quit (Quit: quit). 06:38:35 [[User:TenBillionPlusOne]] M https://esolangs.org/w/index.php?diff=157814&oldid=157757 * TenBillionPlusOne * (+3) /* Coming soon */ 06:39:29 [[User:TenBillionPlusOne/Sandbox]] M https://esolangs.org/w/index.php?diff=157815&oldid=157761 * TenBillionPlusOne * (+3) 06:40:20 -!- Sgeo has quit (Read error: Connection reset by peer). 06:44:44 -!- tromp has joined. 07:02:00 [[Funciton]] https://esolangs.org/w/index.php?diff=157816&oldid=156258 * Timwi * (+5190) Regex functions: add newest functions from AoC 2024 5a (https://youtu.be/THhI_x7F8WY); add result value column and some nowraps 07:09:08 -!- ais523 has joined. 07:09:47 [[User:TenBillionPlusOne/Sandbox]] https://esolangs.org/w/index.php?diff=157817&oldid=157815 * TenBillionPlusOne * (+15) 08:02:54 [[User talk:I am islptng/Draft]] M https://esolangs.org/w/index.php?diff=157818&oldid=157812 * H. H. P. M. P. Cole * (-216) 09:10:46 Hi 10:21:53 [[User:Henry]] https://esolangs.org/w/index.php?diff=157819&oldid=157774 * Henry * (+30) 11:32:54 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 11:42:51 [[User talk:Hotcrystal0]] https://esolangs.org/w/index.php?diff=157820&oldid=157629 * PrySigneToFry * (+100) 11:50:52 [[Monoid]] https://esolangs.org/w/index.php?diff=157821&oldid=157801 * Ais523 * (+693) /* Free monoids */ a) an introduction to what "free" means because this might be read by non-mathematicians (I think there may have been a definition already but it was so technical that I initially missed it), b) don't use S to represent a different set from the set it represents 12:10:11 -!- amby has joined. 12:40:50 [[Logica]] M https://esolangs.org/w/index.php?diff=157822&oldid=157809 * H. H. P. M. P. Cole * (-75) 12:48:51 [[User:H. H. P. M. P. Cole]] M https://esolangs.org/w/index.php?diff=157823&oldid=157813 * H. H. P. M. P. Cole * (+58) 12:48:52 -!- tromp has joined. 12:54:06 [[User:H. H. P. M. P. Cole]] M https://esolangs.org/w/index.php?diff=157824&oldid=157823 * H. H. P. M. P. Cole * (-9) 12:59:15 [[User:TenBillionPlusOne/Sandbox]] https://esolangs.org/w/index.php?diff=157825&oldid=157817 * TenBillionPlusOne * (+36) 13:01:08 [[SLet (Old 2)]] https://esolangs.org/w/index.php?diff=157826&oldid=152595 * I am islptng * (+303) 13:02:00 -!- Noisytoot has quit (Remote host closed the connection). 13:03:13 [[User:H. H. P. M. P. Cole]] M https://esolangs.org/w/index.php?diff=157827&oldid=157824 * H. H. P. M. P. Cole * (+132) 13:03:19 -!- Noisytoot has joined. 13:04:22 -!- chiselfuse has quit (Remote host closed the connection). 13:04:46 -!- chiselfuse has joined. 13:05:21 [[User:TenBillionPlusOne/Sandbox]] https://esolangs.org/w/index.php?diff=157828&oldid=157825 * TenBillionPlusOne * (+4) /* 3 */ 13:10:47 [[User:H. H. P. M. P. Cole]] M https://esolangs.org/w/index.php?diff=157829&oldid=157827 * H. H. P. M. P. Cole * (-132) 13:13:29 -!- Noisytoot has quit (Remote host closed the connection). 13:14:26 -!- Noisytoot has joined. 13:16:32 [[User:H. H. P. M. P. Cole]] M https://esolangs.org/w/index.php?diff=157830&oldid=157829 * H. H. P. M. P. Cole * (+54) 13:23:07 [[User:H. H. P. M. P. Cole]] M https://esolangs.org/w/index.php?diff=157831&oldid=157830 * H. H. P. M. P. Cole * (-54) 13:33:10 [[User:TenBillionPlusOne/Sandbox]] https://esolangs.org/w/index.php?diff=157832&oldid=157828 * TenBillionPlusOne * (+82) /* 3 */ 13:39:11 [[User:TenBillionPlusOne/Draft]] N https://esolangs.org/w/index.php?oldid=157833 * TenBillionPlusOne * (+194) Created page with "'''Transformation is complete''' is esolang by former [[User:TBPO]], now a clone of [[User:Hakerh400]]. I made a timestamp to mark when my transformation became complete: (( I'll insert later ))" 13:47:32 [[Special:Log/newusers]] create * TheCatFromGithub * New user account 13:48:19 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 13:48:37 [[User:TenBillionPlusOne]] https://esolangs.org/w/index.php?diff=157834&oldid=157814 * TenBillionPlusOne * (+104) 13:49:31 [[User:H. H. P. M. P. Cole/Modulo 2 v2]] N https://esolangs.org/w/index.php?oldid=157835 * H. H. P. M. P. Cole * (+964) Created page with "'''Modulo 2 v2''' is a programming language created by [[User:H. H. P. M. P. Cole]]. It is based off [[User:I am islptng]]'s modification of the original language but with features present in the original, like multiple "codeblock 13:50:36 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=157836&oldid=157752 * TheCatFromGithub * (+152) /* Introductions */ added introduction 13:51:10 [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=157837&oldid=157836 * TheCatFromGithub * (+106) oops forgot to sign 13:56:10 [[User:TenBillionPlusOne/Sandbox]] M https://esolangs.org/w/index.php?diff=157838&oldid=157832 * TenBillionPlusOne * (-19) 14:00:38 [[Logica]] M https://esolangs.org/w/index.php?diff=157839&oldid=157822 * H. H. P. M. P. Cole * (+4) 14:02:08 [[PNPL]] https://esolangs.org/w/index.php?diff=157840&oldid=157773 * Henry * (+1498) 14:06:34 [[Logica]] M https://esolangs.org/w/index.php?diff=157841&oldid=157839 * H. H. P. M. P. Cole * (+10) 14:11:49 [[WTF]] https://esolangs.org/w/index.php?diff=157842&oldid=157790 * H33T33 * (+238) 14:24:35 [[WTF]] M https://esolangs.org/w/index.php?diff=157843&oldid=157842 * H33T33 * (-7) 14:28:08 [[WTF]] https://esolangs.org/w/index.php?diff=157844&oldid=157843 * H33T33 * (-9) 14:34:46 [[User talk:H. H. P. M. P. Cole]] https://esolangs.org/w/index.php?diff=157845&oldid=157760 * Hotcrystal0 * (+285) 14:35:24 [[User talk:H. H. P. M. P. Cole]] https://esolangs.org/w/index.php?diff=157846&oldid=157845 * Hotcrystal0 * (-162) 14:35:58 [[Infinite noise automata]] https://esolangs.org/w/index.php?diff=157847&oldid=145311 * Hotcrystal0 * (+2793) Undo revision [[Special:Diff/145311|145311]] by [[Special:Contributions/RainbowDash|RainbowDash]] ([[User talk:RainbowDash|talk]]) 14:37:24 [[User:Hotcrystal0]] https://esolangs.org/w/index.php?diff=157848&oldid=157675 * Hotcrystal0 * (-94) 14:37:52 [[User:Hotcrystal0]] https://esolangs.org/w/index.php?diff=157849&oldid=157848 * Hotcrystal0 * (+27) 14:38:21 [[User:Hotcrystal0]] https://esolangs.org/w/index.php?diff=157850&oldid=157849 * Hotcrystal0 * (+18) 14:38:34 [[User:Hotcrystal0]] https://esolangs.org/w/index.php?diff=157851&oldid=157850 * Hotcrystal0 * (+9) 14:41:01 -!- Sgeo has joined. 14:44:25 [[ShiftEso]] N https://esolangs.org/w/index.php?oldid=157852 * TheCatFromGithub * (+557) created page 14:44:45 [[User:TheCatFromGithub]] N https://esolangs.org/w/index.php?oldid=157853 * TheCatFromGithub * (+30) Created page with "Hello, I created [[ShiftEso]]." 14:45:06 [[ShiftEso]] https://esolangs.org/w/index.php?diff=157854&oldid=157852 * TheCatFromGithub * (+3) 14:46:44 -!- tromp has joined. 14:47:23 [[Language list]] https://esolangs.org/w/index.php?diff=157855&oldid=157785 * TheCatFromGithub * (+15) /* S */ added shifteso 14:51:07 -!- amby has quit (Ping timeout: 276 seconds). 14:51:48 -!- amby has joined. 14:58:47 -!- wib_jonas has joined. 14:59:33 what the heck? "correspondance" is spelled with "ance" in english, but "ence" in french? I was told that the "ance" vs "ence" spelling always matches between english and french! it's all lies! 15:00:52 wrong way around 15:01:19 oh... yes, it's spelled with "ence" in english and "ance" in french 15:01:37 but why? 15:09:24 Another example is "difference" vs "diffránce" (sp?); there was some sort of vowel shift after the loaning of these words. 15:10:41 korvo: My dictionary says that it's "différence" in French, which has the same ending 15:10:43 Oh, wow. "différance". I was not even close. 15:10:56 (and I don't think that á is a letter in French) 15:11:36 différance is a French word, but it's the equivalent of the obscure English word différance (which is presumably a loanword) 15:11:59 ais523: Oh, apparently Derrida deliberately used the old spelling, and that's why it sticks out in my mind. 15:12:16 So this is a non-example for modern Francophones. 15:12:30 The ⟨a⟩ of différance is a deliberate misspelling of différence, though the two are pronounced identically 15:12:45 Yep, an example of hauntology. 15:16:41 "ance" vs "ence" ending is always pronounced differently, that's why this is so confusing 15:17:10 no 15:17:12 ARGH 15:17:25 "ance" vs "ence" ending is always pronounced the same, that's why this is so confusing 15:17:32 my mind is broken 15:18:45 I mean there was the part where "correspondence" applies at the meta level too because these are about english and french words corresponding to each other, and now you brought up "difference". 15:18:58 the vowel's more a schwa than anything, I think – which would imply that it would be pronounced differently if you stressed the syllable but not in its usual unstressed state 15:19:43 are there any esolangs which are named using regular words except that the stress is in the wrong place? 15:21:09 hmm, maybe the spelling is an attempt to set up a who shaves the barber style paradox, like "what's the only word ending in 'ance' or 'ence' where the correspondence between english and french spelling is broken?" "correspondence." "yes, that's what I said." 15:22:01 "except the stress is in the wrong place" => probably, because there are both british and american esolangers, and they don't always agree on where the stress is 15:23:00 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 15:26:01 of course this started because I was writing "correspondence" and then decided to look up the spelling. not that my readers would care in this case. 15:27:53 often the only way to memorise this sort of thing is to read enough English that it become subconscious 15:28:42 b_jonas: "why" -- apparently it's taken from Latin without the detour via French: https://www.etymonline.com/word/correspondence 15:30:21 yes, I know "existence" is one that I often used to spell wrong 15:32:09 int-e: latin is what usually decides between "ance" and "ence" spelling yes, and that's why it matches in french and english, but that doesn't explain the difference for "correspondance" in french vs "correspondence" in english 15:33:12 I guess I don't care about that part as much. 15:37:01 -!- tromp has joined. 15:49:24 -!- amby has quit (Read error: Connection reset by peer). 15:49:31 -!- amby has joined. 15:53:31 [[Mlatu-6]] https://esolangs.org/w/index.php?diff=157856&oldid=157650 * Zhil * (+4) Reduced the size of the one-combinator bases 16:18:50 -!- wib_jonas has quit (Quit: Client closed). 16:59:19 [[Mlatu-6]] M https://esolangs.org/w/index.php?diff=157857&oldid=157856 * Zhil * (+1) 17:05:05 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 17:05:14 -!- chloetax has quit (Quit: Leaving). 17:05:34 -!- chloetax has joined. 17:26:30 -!- Noisytoot has quit (Excess Flood). 17:29:00 -!- Noisytoot has joined. 17:32:06 [[Monoid]] https://esolangs.org/w/index.php?diff=157858&oldid=157821 * Corbin * (+1854) I see that leaving this half-finished was a mistake. Next time I will not start editing before bed. 17:32:56 ais523: I can't see a way to save your paragraph in [[monoid]]. The freedom of equality isn't the point, and that's actually why I included equality in the top-level definition. 17:33:28 What's relevant here is that for any set L, L* is a monoid; that is, there's a functor * : Set -> Mon. 17:33:59 -!- tromp has joined. 17:34:07 I need to bulldoze that section somewhat anyway, because I didn't realize that I need to define monoid presentations and rank *after* free monoids. 17:38:16 [[Monoid]] https://esolangs.org/w/index.php?diff=157859&oldid=157858 * Corbin * (+240) Put the category-theory gibberish at the bottom, out of the way. Most folks will only care about sets. 17:38:27 korvo: so the basic problem with the article is that someone who knows enough of the relevant mathematics to be able to understand it would already know what a monoid is, so it's unclear who the target audience is 17:38:48 ais523: Oh! Okay, let's reset assumptions before I keep editing. 17:39:21 that's probably fixable after the artice is finished, though 17:40:02 My main thought was that I've gotten basically no guidance on [[concatenative language]]. My secondary thought was that monoids sure pop up a lot but we never bother to explain what they are. 17:41:39 I'm seriously concerned that we're going to enter a third generation of programmers who refuse to learn what a monoid homomorphism is, and we're not even having a page that bikesheds the terminology. 17:42:15 concatenative languages bother me a bit, because there are a) concatenative calculus languages like Joy and Mlatu which clearly fit, and b) a whole sphere of concatenative-ish languages like brainfuck which are a bit of a grey area 17:42:23 and I'm not sure how to deal with b) in my head 17:42:32 [[BF instruction minimalization]] is a messy read at best. Basically lab notes. Do we have a clear target audience for that? 17:43:09 Ah, sure, the tribes of programming languages are a difficult Whorfian mind-lock to escape. 17:43:11 it's for people who want to see a lot of partial attempts at minimalising BF 17:43:26 which is a nontrivially-sized target audience 17:43:50 Sure. As opposed to [[simple translation]], which is for the much smaller audience of folks who are minimising BF~ 17:43:51 there are so many programmers who see that < and - can be combined into a single instruction and the language still works, then try to go further 17:44:14 the simple translation page came a lot later, and was an attempt to formalise some of the concepts rather than to show a lot of attempts 17:44:43 (and was also intended to shed light onto the "minimalise BF into a turning tarpit" approach which may, oddly, still be possible via simple translation) 17:45:19 but "trying to minimalise BF" is a) a popular subject, b) something that it's very easy to do incorrectly 17:45:39 so having a lot of visible attempts is in some sense useful to avoid duplication of effort (and also to demonstrate why it's hard to do correctly) 17:46:42 I'm trying to remember if anyone's tried obviously futile things like memory-mapping [ and ] yet – it wouldn't surprise me 17:46:54 Also, I think that you and I look at deep structure differently. I'm completely unsurprised that monoids would show up randomly in the syntax of existing languages, because existing languages tend to have *much* richer structures, up to Kleene algebras! 17:47:40 korvo: oh, I'm not surprised that the syntax forms a monoid – I'm surprised that the syntax forms a *function* in a way that makes composition meaningful 17:48:31 ais523: Oh, it's because control flow tends to be monadic and monads are a special kind of monoid. 17:48:52 If you have the ability to say "do this, then do that", that usually implies some sort of monoidal action combining this and that. 17:50:07 right, but the monadic flatmap feels a bit different from the normal sense of function composition 17:50:33 I think it can be viewed as a function composition, though 17:52:36 [[ShiftEso]] https://esolangs.org/w/index.php?diff=157860&oldid=157854 * TheCatFromGithub * (+2) 17:52:53 The way we usually do it (for some monad M) is to lift functions X → Y to actions X → M(Y). This is why folks say that monad-heavy languages act "in the monad" or "return into the monad". 17:53:01 [[User:Hotcrystal0]] https://esolangs.org/w/index.php?diff=157861&oldid=157851 * Hotcrystal0 * (-10) 17:53:22 Then the composition is "ordinary" function composition, using the pieces of the monad as needed. 17:53:48 Anyway, yeah, monoids are just special cases of categories. It's all just goo at some point. 17:54:03 well, no, because the syntactic composition composes X→M(Y) with Y→M(Z) to produce X→M(Z), and function composition doesn't do that 17:54:29 it's a related operation but not identical 17:54:44 Syntactic composition with the semicolon will do that. Most languages don't have the "programmable semicolon"; the monad is fixed. 17:55:10 oh, OK, I think I understand what I'm stuck on now 17:55:48 we are composing X→Y and Y→Z but the actual program is doing M(X→Y) and M(Y→Z) for some fixed monad M 17:56:39 there are, e.g., two ways to view an Underload fragment: either it's a function from the portion of the stack it reads to the portion of the stack it writes, or it's a function from stacks to stacks 17:56:56 Yes, exactly. Like for BF, the monad passes the state of the tape and pointer and manages I/O. The homomorphism is sending us to the Kleisli category where that monad is a fixed background effect. 17:57:07 and the latter view is easy to understand and reason about – but the former view is the one you are mostly using when programming in it 17:57:31 Right. The latter is what we do with Forth-style stack-effect comments like ( x y -- z w z ) 17:57:35 for languages which are further away from concatenative calculus, the monad is pulling more weight and is less visible 17:58:01 But the former is what we operationalize with e.g. Haskell stacks like (x, (y, Stack)) -> (z, (w, (z, Stack))) 17:58:21 so defining them as concatenative means that you are trying to force the monad "into view", and into the definition of syntax fragments as functions, when it isn't something that programmers consciously think about usually 17:58:47 Yes. And for languages like Cammy, with *no* background monad, this hopefully trivializes; one can pretend that Cammy is always talking about sets. 17:59:28 fwiw, I'm generally a believer that statically typed languages should try to make their background monads more visible, especially by integrating them into the type system 17:59:55 I think effect systems are an example of that sort of thing 18:00:14 and Haskell is substantially in that direction already (although I don't use it much) 18:01:13 So, here's a concrete motivation for compiler engineers: concatenative reasoning can be used to iterate over a list of operations, and a monoid can be used to optimize those iterations down into a single action. 18:01:41 Peephole optimizers are an obvious example, but abstract interpreters can be defined to generally walk over a list (or anything traversable, of course...) 18:01:54 so compiler intermediate representations have been gradually moving in that direction – but they also usually have more symmetries than a monoid implies 18:02:17 so you end up with something that is a monoid, but has extra structure on top (and typically doesn't syntactically match the original language) 18:02:44 Well, tell me what you think of this: https://github.com/rpypkgs/rpypkgs/blob/main/bf/bf.py#L163-L192 18:03:09 oh right, Github doesn't work without JS nowadays 18:03:12 give me a moment 18:03:12 This is a one-register abstract interpreter over BF. Its correctness is mostly from the idea that we really do have a monoid. 18:03:33 (pull requests still work, and readmes on project home pages, just not anything else) 18:04:00 Are raw links still working? https://raw.githubusercontent.com/rpypkgs/rpypkgs/refs/heads/main/bf/bf.py 18:04:50 korvo: I loaded it, eventually 18:05:01 I find it hard to read and hard to get an idea of whether or not it's correct 18:05:59 …also I was surprised that I'm apparently not the only person who habitually uses "rv" for temporary variables that are used to construct the return value of a function, despite the name being an obvious initialism 18:07:17 anyway, things like "elif adHead is anAdd and ad is aZero: bfHead, adHead, immHead = bf, ad, imm" look like bugs to me – I assume that adds are more complicated than zeros, so why would you overwrite the add with the zero? 18:07:28 but that doesn't mean they are bugs, it might just mean that I'm not understanding how the code works 18:08:48 adHead is the next instruction to commit and ad is the next instruction to decode. This corresponds to BF code like `++[-]`; we're committed to adding 2, but that will be wiped out by an unconditional 0. 18:09:09 ah, I see – it's a "set to zero" instruction, so you're wiping out any previous changes 18:09:21 Ah, yeah, like in bfmacro. 18:10:17 I guess this code is not making use of the monoidal nature of BF because it would work just as well scanning left to right 18:11:00 …although it's hard to imagine a nonassociative version of BF that could be used to demonstrate the code still working 18:11:44 "do a, then (b then c)" is basically inherently equivalent to "do (a then b), then c" and I can't currently think of a way to break it even in an esolang 18:11:52 maybe some sort of race condition/ 18:11:55 The correctness stems from the idea that a monoid can always be forcefully turned from a sequence into a (left-leaning?) tree, and then we can do induction and recursion. 18:12:55 korvo: I was thinking of the converse: I agree the fact that it's a monoid makes it correct, *but* the approach seems conceptually correct even for non-monoids 18:13:12 it's just that it's hard to verify how that works because it's hard to imagine the underlying operation being nonassociative 18:13:29 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 18:13:32 I guess it's easier to imagine the underlying operation not having an identity 18:14:27 although that would be a weird language design exercise: to create a language where (e.g.) empty program and loop bodys aren't allowed, and there is no way to combine commands in order to produce a no-op 18:14:37 * loop bodies 18:16:44 Elements of bicategories are monads, so there's probably some flavor of Hilton-Eckmann argument nearby. 18:17:58 Anyway, I'll come back to this eventually, if I find the motivation again. 18:18:12 Sometimes contributing to this wiki makes me want to smash a keyboard against the wall. 18:20:24 I frequently have trouble producing the motivation to do anything 18:27:15 Well, I'll stop being a distraction. 18:27:39 I'm not sure that distractions really hurt (except that sometimes I can't even get the motivation to go on IRC) 18:28:53 -!- korvo has left. 18:28:57 (to be clear, sometimes I'm offline for other reasons – if distractions would be a problem I just disconnect from the Internet) 18:46:38 -!- Lord_of_Life has quit (Excess Flood). 18:47:04 -!- Lord_of_Life has joined. 18:53:39 -!- Lord_of_Life has quit (Ping timeout: 252 seconds). 18:53:39 -!- callforjudgement has joined. 18:54:05 -!- Lord_of_Life has joined. 18:54:13 -!- ais523 has quit (Ping timeout: 248 seconds). 18:54:45 -!- citrons has quit (Ping timeout: 252 seconds). 18:55:17 -!- FreeFull has quit (Ping timeout: 248 seconds). 18:55:22 -!- tromp has joined. 18:55:26 -!- FreeFull has joined. 18:56:35 -!- leah2 has quit (Ping timeout: 252 seconds). 18:56:54 -!- leah2 has joined. 18:57:36 -!- gry has quit (Ping timeout: 272 seconds). 18:57:50 -!- callforjudgement has changed nick to ais523. 18:57:51 -!- gry has joined. 18:59:55 -!- citrons has joined. 19:07:40 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 19:23:28 -!- tromp has joined. 19:39:29 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 19:46:49 . o O ( imagine using WASM just to get access to a 64 bit integer type ) 19:59:26 -!- tromp has joined. 20:05:15 [[Monoid]] https://esolangs.org/w/index.php?diff=157862&oldid=157859 * Aadenboy * (+8) marking this as a work in progress since some sections are blank 20:05:54 [[ShiftEso]] https://esolangs.org/w/index.php?diff=157863&oldid=157860 * TheCatFromGithub * (+1856) explained the language 20:07:10 [[ShiftEso]] https://esolangs.org/w/index.php?diff=157864&oldid=157863 * TheCatFromGithub * (+39) /* Examples */ add example 20:08:12 [[ShiftEso]] M https://esolangs.org/w/index.php?diff=157865&oldid=157864 * TheCatFromGithub * (+43) 20:09:22 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 20:23:48 -!- tromp has joined. 20:48:18 Hmm, why is BV so isolated in https://smt-lib.org/logics.shtml (can't be combined with any (linear) arithmetic flavors)... I guess it's intentionally a fragment that can be bit-blasted? 21:09:10 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 21:13:30 -!- tromp has joined. 21:34:44 -!- ais523 has quit (Quit: quit). 22:08:11 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…). 22:13:19 -!- lisbeths has joined. 22:23:12 [[Special:Log/newusers]] create * Las-r * New user account 22:25:31 That's interesting. 22:30:33 [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=157866&oldid=157837 * Las-r * (+260) introduction 22:30:41 [[Greed]] N https://esolangs.org/w/index.php?oldid=157867 * Las-r * (+881) Create page. 22:32:28 [[Greed]] M https://esolangs.org/w/index.php?diff=157868&oldid=157867 * Las-r * (-12) Fix formatting 22:33:23 [[Language list]] M https://esolangs.org/w/index.php?diff=157869&oldid=157855 * Buckets * (+10) 22:34:11 [[User:Buckets]] M https://esolangs.org/w/index.php?diff=157870&oldid=157771 * Buckets * (+9) 22:34:24 [[Jil]] N https://esolangs.org/w/index.php?oldid=157871 * Buckets * (+1401) Created page with "Jil is an Esoteric programming language created by [[User:Buckets]] in 2021. {| class="wikitable" |- ! Commands !! Instructions |- | > || Set the Input to The current Target. |- | - || Set the Target to The Next character as A Variable. |- | < || Output The Current target I 22:35:25 [[Jil]] M https://esolangs.org/w/index.php?diff=157872&oldid=157871 * Buckets * (+1) 22:37:12 [[Greed]] M https://esolangs.org/w/index.php?diff=157873&oldid=157868 * Las-r * (+109) Add links to source and creator. 22:39:47 [[Greed]] M https://esolangs.org/w/index.php?diff=157874&oldid=157873 * Las-r * (+16) 22:42:14 [[Greed]] M https://esolangs.org/w/index.php?diff=157875&oldid=157874 * Las-r * (+40) Add categories 22:42:53 [[Greed]] M https://esolangs.org/w/index.php?diff=157876&oldid=157875 * Las-r * (+1) Fix categories 22:43:05 [[Greed]] M https://esolangs.org/w/index.php?diff=157877&oldid=157876 * Las-r * (-3) 22:47:30 [[Treadnil]] https://esolangs.org/w/index.php?diff=157878&oldid=148990 * BoundedBeans * (-1) Fixed Truth machine 22:47:40 [[WTF]] https://esolangs.org/w/index.php?diff=157879&oldid=157844 * H33T33 * (+592) 22:50:02 [[Greed]] M https://esolangs.org/w/index.php?diff=157880&oldid=157877 * Las-r * (+85) Add more categories 22:53:01 [[Hello world program in esoteric languages (D-G)]] M https://esolangs.org/w/index.php?diff=157881&oldid=152431 * Las-r * (+200) Add greed 22:54:50 [[Hello world program in esoteric languages (D-G)]] M https://esolangs.org/w/index.php?diff=157882&oldid=157881 * Las-r * (-30) Fix formatting so greed doesnt get cut off 22:57:46 [[Greed]] M https://esolangs.org/w/index.php?diff=157883&oldid=157880 * Las-r * (+108) Add brainfuck inspiration 22:59:09 ais523 "empty program and loop bodys aren't allowed, and there is no way to combine commands in order to produce a no-op" => you could do that with a hypothetical CPU where every instruction overwrites a result or flags register, so if you want to do a conditional branch with the status flags you have to put the branch instruction right after the compare instruction (with not even a function call or 22:59:15 return between) and if you want to store the result of some arithmetic then you have to put the store right after the arithmetic instruction 23:01:58 no no-op combinations because you can never preserve both result registers from the previous state, only one of the two 23:06:53 or you could have a machine where every instruction writes exactly one of the eight generaly purpose registers, and the instruction can never read and write the same register, so you always lose the value of one of the eight 23:12:23 heck, let's make that sillier, there are 9 general purpose registers, every instruction nominally has two register input arguments and one register output arguments and all three must be distinct, and the three register indexes together are encoded into a 9 bit field. some instructions ignore one or both nominal input registers, just to keep the operand encoding uniform, but the output register is 23:12:29 always clobbered 23:20:31 -!- Lord_of_Life_ has joined. 23:22:00 -!- Lord_of_Life has quit (Ping timeout: 265 seconds). 23:22:01 -!- Lord_of_Life_ has changed nick to Lord_of_Life.