< 1746749799 876286 :Noisytoot!~noisytoot@user/meow/Noisytoot QUIT :Excess Flood < 1746749824 639851 :Noisytoot!~noisytoot@user/meow/Noisytoot JOIN #esolangs Noisytoot :Ron (they/them) > 1746752392 717572 PRIVMSG #esolangs :14[[07Talk:Tip14]]4 M10 02https://esolangs.org/w/index.php?diff=157381&oldid=56661 5* 03CreeperBomb 5* (+953) 10 > 1746752607 806483 PRIVMSG #esolangs :14[[07User:I am islptng/SingleOperandAssembly14]]4 10 02https://esolangs.org/w/index.php?diff=157382&oldid=150961 5* 03I am islptng 5* (+1750) 10 > 1746753015 474127 PRIVMSG #esolangs :14[[07FCompiler/Headers14]]4 N10 02https://esolangs.org/w/index.php?oldid=157383 5* 03I am islptng 5* (+26) 10Created page with "{{back|fCompiler}} {{WIP}}" > 1746753026 878702 PRIVMSG #esolangs :14[[07FCompiler14]]4 10 02https://esolangs.org/w/index.php?diff=157384&oldid=157326 5* 03I am islptng 5* (+163) 10 < 1746753858 544731 :amby!~ambylastn@ward-15-b2-v4wan-167229-cust809.vm18.cable.virginm.net QUIT :Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement > 1746755880 71032 PRIVMSG #esolangs :14[[07Topple14]]4 10 02https://esolangs.org/w/index.php?diff=157385&oldid=157377 5* 03H33T33 5* (+24) 10/* test */ new section > 1746755892 551766 PRIVMSG #esolangs :14[[07Topple14]]4 10 02https://esolangs.org/w/index.php?diff=157386&oldid=157385 5* 03H33T33 5* (-24) 10/* test */ < 1746763609 889519 :Noisytoot!~noisytoot@user/meow/Noisytoot QUIT :Remote host closed the connection < 1746763643 645836 :Noisytoot!~noisytoot@user/meow/Noisytoot JOIN #esolangs Noisytoot :Ron (they/them) < 1746763931 32646 :Noisytoot!~noisytoot@user/meow/Noisytoot QUIT :Remote host closed the connection < 1746763956 371508 :Noisytoot!~noisytoot@user/meow/Noisytoot JOIN #esolangs Noisytoot :Ron (they/them) < 1746764425 922233 :sprock!~sprock@user/sprock QUIT :Ping timeout: 276 seconds < 1746764506 242170 :sprock!~sprock@user/sprock JOIN #esolangs sprock :maeve (she/her) < 1746764800 269965 :Noisytoot!~noisytoot@user/meow/Noisytoot QUIT :Remote host closed the connection < 1746764858 636792 :Noisytoot!~noisytoot@user/meow/Noisytoot JOIN #esolangs Noisytoot :Ron (they/them) < 1746765358 460745 :Noisytoot!~noisytoot@user/meow/Noisytoot QUIT :Remote host closed the connection < 1746765407 437794 :Noisytoot!~noisytoot@user/meow/Noisytoot JOIN #esolangs Noisytoot :Ron (they/them) < 1746772336 129580 :tromp!~textual@89-99-43-152.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User < 1746772386 465323 :tromp!~textual@89-99-43-152.cable.dynamic.v4.ziggo.nl QUIT :Read error: Connection reset by peer < 1746775772 408040 :Sgeo_!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer > 1746776216 758069 PRIVMSG #esolangs :14[[07User talk:I am islptng14]]4 M10 02https://esolangs.org/w/index.php?diff=157387&oldid=157312 5* 03I am islptng 5* (+70) 10 > 1746777863 884489 PRIVMSG #esolangs :14[[07Anti-Machine language14]]4 10 02https://esolangs.org/w/index.php?diff=157388&oldid=157215 5* 03JIT 5* (+66) 10 > 1746778169 390135 PRIVMSG #esolangs :14[[07Anti-Machine language14]]4 10 02https://esolangs.org/w/index.php?diff=157389&oldid=157388 5* 03JIT 5* (+59) 10 > 1746778174 586192 PRIVMSG #esolangs :14[[07User talk:I am islptng14]]4 10 02https://esolangs.org/w/index.php?diff=157390&oldid=157387 5* 03I am islptng 5* (+29) 10/* Maybe a good rule... */ < 1746780045 266144 :FreeFull!~freefull@79.186.68.86.ipv4.supernova.orange.pl QUIT :Quit: Lost terminal > 1746780930 187975 PRIVMSG #esolangs :14[[07FAGI14]]4 10 02https://esolangs.org/w/index.php?diff=157391&oldid=157356 5* 03Lucaz37 5* (+366) 10 < 1746786388 416108 :FreeFull!~freefull@79.186.68.86.ipv4.supernova.orange.pl JOIN #esolangs FreeFull :FreeFull < 1746786932 470191 :APic!apic@apic.name PRIVMSG #esolangs :Hi > 1746787046 862106 PRIVMSG #esolangs :14[[07User:B jonas/List14]]4 10 02https://esolangs.org/w/index.php?diff=157392&oldid=151366 5* 03B jonas 5* (+457) 10 < 1746789147 159064 :slavfox!~slavfox@193.28.84.183 QUIT :Quit: ZNC 1.8.2 - https://znc.in < 1746789339 343062 :slavfox!~slavfox@193.28.84.183 JOIN #esolangs slavfox :slavfox > 1746789468 95787 PRIVMSG #esolangs :14[[07GML14]]4 10 02https://esolangs.org/w/index.php?diff=157393&oldid=122164 5* 03B jonas 5* (+2554) 10 > 1746789730 273814 PRIVMSG #esolangs :14[[07Concatenative calculus14]]4 10 02https://esolangs.org/w/index.php?diff=157394&oldid=156938 5* 03B jonas 5* (+139) 10/* Languages */ < 1746792087 184492 :amby!~ambylastn@ward-15-b2-v4wan-167229-cust809.vm18.cable.virginm.net JOIN #esolangs * :realname > 1746794896 594227 PRIVMSG #esolangs :14[[07Albuquerque challenge14]]4 10 02https://esolangs.org/w/index.php?diff=157395&oldid=157177 5* 03I am islptng 5* (+181) 10 > 1746795572 172878 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03Pjk 5* 10New user account > 1746797923 892544 PRIVMSG #esolangs :14[[07Topple14]]4 10 02https://esolangs.org/w/index.php?diff=157396&oldid=157386 5* 03H33T33 5* (-39) 10 > 1746798042 897507 PRIVMSG #esolangs :14[[07Topple14]]4 M10 02https://esolangs.org/w/index.php?diff=157397&oldid=157396 5* 03H33T33 5* (+27) 10 > 1746798842 624727 PRIVMSG #esolangs :14[[07SETANDCOUNT14]]4 M10 02https://esolangs.org/w/index.php?diff=157398&oldid=155200 5* 03Cycwin 5* (+58) 10/* Interpreter */ < 1746798963 837842 :Noisytoot!~noisytoot@user/meow/Noisytoot QUIT :Remote host closed the connection < 1746799020 672694 :Noisytoot!~noisytoot@user/meow/Noisytoot JOIN #esolangs Noisytoot :Ron (they/them) < 1746799256 121010 :Noisytoot!~noisytoot@user/meow/Noisytoot QUIT :Remote host closed the connection < 1746799297 189915 :Noisytoot!~noisytoot@user/meow/Noisytoot JOIN #esolangs Noisytoot :Ron (they/them) < 1746803315 911370 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1746809738 424594 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I have a question. I just tried to describe at https://esolangs.org/wiki/GML#Concatenative_calculus_as_a_special_case that there's this very simple subset of GML that implements concatenative (stack-based) calculus. All you need is lexically local bindings that you can load and push, or pop and bind to a new one, abstraction braces that create a new closure with the given body but saves the upvalues < 1746809744 432609 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :from the current environment in the closure (this is set!less so it doesn't matter if you save them by reference like scheme does or by value) and pushes that closure, and an apply operation that pops a closure and calls it. The trick is that functions don't take an argument like in lambda calculus, but instead share the stack with their callers. < 1746809912 574555 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I find this interesting because it seems like concatenative calculus was first published in 2001, while GML was first published in 2000. I want to be careful so I don't want to claim that GML pre-invented concatenative calculus. I know it's often hard to notice that there's a small powerful core language hidden inside your language if you only keep a few parts of it. This has happened to me with < 1746809918 585108 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Consumer Society, where it took me about half a year after I started to think about it just how few parts the language needs to keep. And IIUC for Underload it took even more time to find them in a larger language. < 1746810044 486166 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :So what I'd like to know is, what's the earliest precursor for this combination to appear, the closures with lexically local bindings but stack-based? I don't know if something close enough to Joy was known before 2001, I'm new to this whole history. While GML as such obviously wasn't published before 2000, it is likely based on some previous languages, and some of them might be similar. < 1746810143 687820 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :To be clear, GML is larger than this core language: Joy is like lambda calculus is that every value is a function and the only thing you can do with a function is call it, whereas GML has the square brackets which let you distinguish a mark value on the stack from functions. < 1746810278 118935 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :The stack clearly existed before, PostScript has a similar stack and is clearly older. And lexically local bindings in closures also clearly existed before, such as in scheme. < 1746810419 221048 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Or in lambda calculus for that matter. Both lambda calculus and postscript are in what counts as the prehistory of esolangs here. > 1746810474 809604 PRIVMSG #esolangs :14[[07Topple14]]4 10 02https://esolangs.org/w/index.php?diff=157399&oldid=157397 5* 03H33T33 5* (+29) 10 < 1746810792 754486 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :b_jonas: I was actually going to ping you about this earlier. So, I don't know exactly when quotations came about; https://concatenative.org/wiki/view/Quotations says PostScript has them, and that'd be a good missing link between Forth and Factor. < 1746810859 955803 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :But everything aside from quotations is straight out of category theory and abstract algebra; they're from universal properties that are so common that mathematicians have started naming them. The main thing that computer scientists added was stack-based evaluation semantics, later justified by realizing that certain categories are (equivalent to) certain lambda calculi. < 1746810929 994154 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I think that it might be good to start the page, "Kerby's concatenative calculus is ..." given the context you've documented. < 1746811207 988814 :chiselfuse!~chiselfus@user/chiselfuse QUIT :Remote host closed the connection < 1746812645 780277 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :korvo: postscript is relevant, it's not quite clear to me how naturally you could simulate this core language in postscript. there's also the inconvenience that running such code would probably have to heap-allocate a lot of objects, so in practice you could only run it in a non-old postscript interpreter so as to automatically free those objects with reference counting or some other garbage collection < 1746812651 786794 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :mechanism built into the postscript interpreter. but I think suitable garbage collection was of course already known at the time for lisps, they just hadn't put it into the postscript interpreters because it was supposed to run on cheap hardware. < 1746812682 874399 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I don't understand the category theory part, or how Cammy is connected < 1746812801 705715 :APic!apic@apic.name PRIVMSG #esolangs :cu < 1746812834 23811 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I think you may be using use postscript square brackets to create the closures like the GML square bracket, because that lets you save a reference to the upvalue everywhere a variable is referenced. and I think you can use dynamic local postscript bindings to reference variables that are bound at the same level, though I'm not sure which level of postscript you need for that < 1746813442 66817 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :The category theory is not hard, but it is kind of a mind-melter. Von Thun put it best: the syntax has a monoid, and the semantics that we intend to use also has a monoid. We just choose the monoid with unit "" and concatenation `++` because that's easy to think about. < 1746813484 932381 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Except, uh, that monoid doesn't work for Joy. It works for Brainfuck! But Joy, Factor, etc. need to add whitespace. So clearly we're okay with syntactic monoids that add some extra characters. < 1746813549 225774 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Cammy's monoid has unit `"id"` and concatenation `"(comp " + " ".join(args) + ")"`. Like in Joy, it's technically monoidoid, because the types need to line up. < 1746813568 202267 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :And then there's a relevant category-theory slogan: a monoidoid is a category. < 1746813573 898224 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :why is whitespace a problem? whitespace is a no-op, and there will be other no-op functions anyway < 1746813612 214260 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Whitespace puts a lie to the idea that juxtaposition is how we concatenate the syntax. Like, given Joy programs "drop" and "dup", the concatenation would be "dropdup" but we actually want "drop dup". < 1746813646 951084 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :ok, then use strings (or even trees) of tokens instead of strings of characters < 1746813835 327561 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :That would be a semantics. Any kind of interpretation, even abstract syntax, would be a mapping. What we want is for every such mapping to be a monoid homomorphism, because then we can compose the mappings and always preserve this idea of juxtaposition leading to composition. < 1746813920 710340 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :sure, but at least a token list is just the easy part of semantics, one which we call syntax. < 1746814019 741291 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I know. I'm merely trying to get across what Von Thun was seeing. It's not about parsing or stacks. It's about the idea that we can run one program after another, and what it means for the syntax to reflect that. < 1746814212 307211 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :b_jonas: Could I at least convince you that some languages *don't* have this nice property? Like, there are some languages s.t. there's *no* fixed syntax which will compose two arbitrary input programs (assuming their types already line up). < 1746814278 267260 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Most industrial-usage serious-business languages fail this just because of how their compilers are defined. I suppose Java might be one of the exceptions. < 1746815180 569624 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :korvo: sure, it helps that Joy is concatenative < 1746815280 444927 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :hold on, this reminds me of something, let me find the reference < 1746815318 528991 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :b_jonas: Oh! Okay, so I think I get it. There's a really common meme in the catlang community: juxtaposition is composition. This is used to gatekeep; if the monoid isn't literally "" and ++ then it's not a catlang. < 1746815348 392612 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :And I'm just pointing out that this is reductive because obviously Joy's syntactic monoid requires whitespace too. It's a *fixed* whitespace, so everything still works, but it's not like Brainfuck. < 1746815400 946044 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Also, like, juxtaposition is composition in Brainfuck but nobody seems to actually point this out. It's like a catlang has to have some specific heritage or it doesn't count, and I don't really like that treatment of what should be a mathematical property. < 1746815545 787322 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :http://www.madore.org/cgi-bin/comment.pl/showcomments?href=http%3a%2f%2fwww.madore.org%2f~david%2fweblog%2f2015-04.html%23d.2015-04-24.2292#comment-21587 explains that not only the movements on the Rubik's cube form a group, but something stronger is true: the visible states of the Rubik's cube (the information that's preserved if you take a color photo of all sides) forms a group, and this latter is < 1746815551 793279 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :not true for the 4×4×4 rubik's cube. < 1746815602 527801 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I think a concatenative language is something that has a simple structure like this, where it's easy to see the whole state of the runtime, and that state forms a group with composing programs < 1746815612 361195 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Ah, yeah. Cayley's theorem is a powerful intuition. < 1746815632 126370 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Well, a monoid, not a group. Not every action is invertible. < 1746815640 68901 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :yes, a monoid < 1746815739 710381 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :but I don't think the whitespace is a problem here, you can consider Joy concatenative even if you need to add a space between when you concatenate two programs. it's like you're building one of those super-fast rubik cube solving robots (there's way too many of them) and they have to wait a little between every too moves otherwise something in the machine+cube may break < 1746815744 542090 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :So, in that sense, Cammy is provably such a language. Cammy is what we call "initial in a certain category"; among everything with that property, Cammy always can be mapped into that thing. < 1746815781 793578 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Brainfuck is also an example. The state of the machine is what you'd expect: the cells, the pointer, the input and output. < 1746815867 223764 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Sure, the whitespace is acceptable. But for something like Malbolge or Bubblegum, there might not be a single fixed string template which glues together two input programs, even if their underlying VMs can do it. < 1746815972 585136 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Reminded of my phrasing at https://esolangs.org/wiki/Esolang_talk:Categorization#Monoids "By the folklore of concatenative languages, ... all of the concatenative and tacit languages would go in [a category for monoidal languages]." < 1746816161 765053 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :btw considering Joy a string of tokens works because all the questions that I asked still apply in interpretation, the representation with characters doesn't matter much < 1746816194 779719 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :(I might care about the concrete syntax for aesthetics of course) < 1746816335 915863 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Yeah. But this also happens when the language wasn't designed for it. Application is composition (another fun slogan), so Unlambda has a monoidoid. IIRC the unit is "i" and composition is "`c" + p + q. < 1746816642 495319 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :b_jonas: Sorry if I'm being pushy about this. I just really want to avoid having three different articles about the same topic that have slightly different perspectives on the fundamentals. < 1746816708 446867 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Also https://concatenative.org/wiki/view/Concatenative%20language says stuff like "In an applicative language, things are evaluated by applying functions to arguments. In a concatenative programming language, things are evaluated by composing several functions which all operate on a piece of data." Categorically, those are the *same thing*. < 1746816775 200679 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :(Because in a category an "argument" or "element" is just a special case of a function!) < 1746816857 66650 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name) < 1746816872 975544 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think BF only forms a monoid if you ignore the rule that the tape starts as all-zeroes < 1746816904 786305 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :because if you are composing two programs, rather than two program fragments, don't you have to zero the tape in between? < 1746816973 200797 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :for the composition to work, you have to generalise BF programs into BF subroutines (i.e. capable of taking input from the tape) < 1746817070 9614 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Monoidoids are acceptable; Joy's composition is only defined when the types line up, and Factor also has stack-checking. < 1746817114 760748 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :It is not a problem to think of a BF program as having a type which indicates how its tape should be aligned (say, in the world where BF tapes don't loop!) and then requiring alignment in order to concatenate. < 1746817387 963097 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Oh! The tape itself having all zeroes! Yeah, we're not doing Kolmogorov complexity. What we're getting at is the idea that a compiler is a homomorphism: a compiler can be defined in terms of the structure of the input language and will preserve that structure in its output. < 1746817434 791536 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Lists are free monoids, so any time a compiler is storing something in a list, it's probably manipulating a monoid. Peephole specializers exhibit non-trivial monoids, for example. < 1746817552 730336 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ACTION trying not to be flowery < 1746817650 846272 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :The compiler might have to emit a prologue, epilogue, or harness. But the guts of the compiler, like some generic optimizer that operates on hunks of code, can still respect the monoid. < 1746817796 478192 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :ais523: Okay, actually, let's go with that route and consider a basic-block compiler. It usually will have a monoid which it uses to split blocks into pieces that don't interact with each other. < 1746817854 779644 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :And that's because there's a monoid. Given two basic blocks, we can merge them s.t. we take in all of the inputs, do all of the operations without any overlapping, and return all of the outputs. The unit is a do-nothing block with no inputs or outputs. < 1746817905 554928 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :*usually will have a pass, rather. The pass exhibits the monoid. > 1746818118 587440 PRIVMSG #esolangs :14[[07Candrabindu14]]4 10 02https://esolangs.org/w/index.php?diff=157400&oldid=157366 5* 03 5* (+361) 10 > 1746818415 332746 PRIVMSG #esolangs :14[[0714]]4 N10 02https://esolangs.org/w/index.php?oldid=157401 5* 03 5* (+1416) 10Moved this page over from Candrabindu. > 1746818465 383695 PRIVMSG #esolangs :14[[07Candrabindu14]]4 10 02https://esolangs.org/w/index.php?diff=157402&oldid=157400 5* 03 5* (-1396) 10Redirected page to [[]] < 1746818843 47138 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :I gotta stop going on rants right when Europe wants to go to bed. Sorry, I'll be around later too. < 1746818861 392114 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I believed "lists are free monoids" for ages, but think it's actually wrong: you can have an empty list as a list element < 1746818909 652673 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :free monoids are like lists, but they automatically flatten < 1746818951 263556 :impomatic!~impomatic@2a00:23c7:5fc9:5401:ec68:4c33:1dc7:d036 JOIN #esolangs * :[https://web.libera.chat] impomatic < 1746818974 456734 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Well, those are lists of lists. Different types. < 1746819040 953445 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :fwiw, I was wondering whether Rust functions F and G compose syntactically as (|x|{({\nF})(({\nG})(x))}) – I'm not quite sure whether Rust's identifier hygiene is up to it but it might be < 1746819057 581972 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :err, newline after F and G, not before, in case there's an unterminated line comment < 1746819125 831468 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Probably, as long as stack behavior isn't a problem. In OCaml, that approach doesn't work, and it's why I had to port Cammy away from OCaml and to CHICKEN Scheme. < 1746819127 142294 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Rust is very permissive with allowing things inside blocks that most languages only allow at top level, which is what makes me think it might actually work, but there's probably an obvious counterexample I'm missing < 1746819164 723661 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :type inference seems like it might be the largest problem, but if G forces a type on its argument, I think this will force the same type on its argument, and there are no other type inference problems < 1746819349 915332 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Trying to remember whether `|x|{x}` can infer a general type. Like, can that be an &mut? < 1746819378 125686 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :yes, can be anything apart from an unsized type I think < 1746819488 188735 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&code=fn+main%28%29+%7B%0A++++let+mut+a+%3D+%5B1u32%2C+2%2C+3%5D%3B%0A++++%28%7Cx%7C%7Bx%7D%29%28%26mut+a%29%3B%0A++++%28%7Cx%7C%7Bx%7D%29%28a%5B..%5D%29%3B%0A%7D < 1746819499 874503 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :&mut works, unsized types don't < 1746819538 925681 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :anyway, even though I'll probably be awake for a while, the shops will be closing and I need to go shopping < 1746819541 94569 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :later < 1746819542 818955 :ais523!~ais523@user/ais523 QUIT :Quit: quit < 1746819620 28527 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Peace. < 1746820437 354074 :impomatic!~impomatic@2a00:23c7:5fc9:5401:ec68:4c33:1dc7:d036 QUIT :Quit: Client closed < 1746821133 815494 :chiselfuse!~chiselfus@user/chiselfuse JOIN #esolangs chiselfuse :chiselfuse > 1746822921 354074 PRIVMSG #esolangs :14[[07User:Brain Boy 5314]]4 10 02https://esolangs.org/w/index.php?diff=157403&oldid=150115 5* 03Brain Boy 53 5* (+1) 10 > 1746822943 872918 PRIVMSG #esolangs :14[[07User:Brain Boy 5314]]4 10 02https://esolangs.org/w/index.php?diff=157404&oldid=157403 5* 03Brain Boy 53 5* (+0) 10 < 1746823818 744128 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Huh. Turns out fungot might have a Gmail account that I wasn't aware of. < 1746823819 214119 :fungot!~fungot@2a01:4b00:82bb:1341::a PRIVMSG #esolangs :fizzie: that zippy appears to be an infinite-dimensional space, isn't it?) < 1746823864 644664 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :I got a "your Google Account has not been used in at least 8 months" email, and searching for that in my email archives, there's a 2010 Gmail invite (I guess you needed one at the time to open an account), so maybe I (or fungot acting independently?) made one. < 1746823865 255120 :fungot!~fungot@2a01:4b00:82bb:1341::a PRIVMSG #esolangs :fizzie: e.g. when using separate files, then run it check if the ending of a string is not empty > 1746824822 992807 PRIVMSG #esolangs :14[[07NoError14]]4 10 02https://esolangs.org/w/index.php?diff=157405&oldid=150116 5* 03Brain Boy 53 5* (+56) 10 > 1746826362 366041 PRIVMSG #esolangs :14[[07Arbitrary memory emulation14]]4 10 02https://esolangs.org/w/index.php?diff=157406&oldid=157148 5* 03Aadenboy 5* (+16) 10 < 1746826685 417834 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name) > 1746828669 384570 PRIVMSG #esolangs :14[[07User:Buckets14]]4 M10 02https://esolangs.org/w/index.php?diff=157407&oldid=157371 5* 03Buckets 5* (+22) 10 > 1746828681 989777 PRIVMSG #esolangs :14[[07User:Buckets/OMC14]]4 N10 02https://esolangs.org/w/index.php?oldid=157408 5* 03Buckets 5* (+1729) 10Created page with "OMC stands for Other Mathematical Concepts. Core Sequence: 0,1,13... Have n Uniquely different items, The number for the core Sequence Is the longest Sequence as a number, The Sequence only has to follow 2 rules: # There Cannot be A sequence where the Same < 1746829410 709313 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :Is there TLS library that you can mostly just change send to TLS_send and recv to TLS_recv in most of the program, that it can work with unencrypted connections as well? I also want to do my own handling of certificates (so the callback function only needs to extract the public key, or do nothing if the callback function decides that the certificate should not be used) < 1746830505 283413 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 244 seconds < 1746830528 71239 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord > 1746831316 471282 PRIVMSG #esolangs :14[[07Talk:Anti-Machine language14]]4 10 02https://esolangs.org/w/index.php?diff=157409&oldid=124048 5* 03Stkptr 5* (+318) 10/* What counts as a machine? */ new section > 1746831573 777661 PRIVMSG #esolangs :14[[07Concatenative calculus14]]4 10 02https://esolangs.org/w/index.php?diff=157410&oldid=157394 5* 03Stkptr 5* (-45) 10/* Languages */ "syntactical monoid" is profoundly verbose for no benefit to the reader > 1746831688 838234 PRIVMSG #esolangs :14[[07User talk:TenBillionPlusOne14]]4 10 02https://esolangs.org/w/index.php?diff=157411&oldid=157378 5* 03Hotcrystal0 5* (+269) 10 < 1746832804 108003 :alec3660!~quassel@user/alec3660 QUIT :Remote host closed the connection < 1746832813 841667 :alec3660!~quassel@user/alec3660 JOIN #esolangs alec3660 :alec < 1746832820 683104 :alec3660!~quassel@user/alec3660 QUIT :Client Quit > 1746833270 882159 PRIVMSG #esolangs :14[[07User:Buckets/OMC14]]4 M10 02https://esolangs.org/w/index.php?diff=157412&oldid=157408 5* 03Buckets 5* (+3) 10 < 1746834172 40540 :nitrix!~nitrix@user/meow/nitrix QUIT :Ping timeout: 265 seconds