00:24:28 -!- Bowserinator_ has changed nick to Bowserinator.
00:32:25 <esolangs> [[9f87m4atttaaaou;]] https://esolangs.org/w/index.php?diff=87228&oldid=87227 * CosmicMan08 * (+86)
01:15:17 <nakilon> I just realised xxd and hexdump might be able to convert any file into a valid Netpbm image
01:16:28 <nakilon> only needs the "P1 #{rows} #{cols} " header string attached
01:19:02 <nakilon> I wonder if there is any utility to make all lines in files N chars long appending the spaces so the source file would me aligned for export
01:20:41 -!- V has quit (Remote host closed the connection).
01:26:42 <nakilon> nvm snippet from here works
01:26:43 <nakilon> https://www.linuxquestions.org/questions/programming-9/shell-question-pad-end-of-each-line-with-spaces-to-%3D-80-chars-875082/#post4326916
01:29:48 <esolangs> [[Special:Log/newusers]] create * GermanSpetsnaz * New user account
01:33:52 -!- V has joined.
01:36:37 <oerjan> . o O ( that _almost_ sounds like it should be a bannable name )
01:46:51 <Corbin> Do we have guidelines for how to cite things? I vaguely remember how it was done on WP, if that's how it's done.
01:48:48 <oerjan> we don't do much citing, but we (or at least ais523) do have sort of a meta-rule to default to wikipedia behavior when there's no reason to do differently
01:49:28 <Corbin> https://en.wikipedia.org/wiki/Wikipedia:Citing_sources then?
01:49:28 <oerjan> we don't have citation templates. that i know of.
01:51:37 <oerjan> ok in that case there _is_ a reason: "that's way overcomplicated"
01:54:56 <fizzie> oerjan: Hmm, someone has tried and failed for an hour or so yesterday to introduce themselves, I think because they kept ignoring the "do not include any external links" rule.
01:55:34 <fizzie> It's already red and in bold type. :/
01:57:00 <Corbin> Aw, is it "VitalMixofNutrients"? I was hoping that that was a hilarious real-person nick and not a spammer.
01:57:39 <fizzie> The message they were trying to add to the introductions page sounds pretty legitimate.
01:58:13 <fizzie> It just has links to their gitlab.com page, and a non-wiki link to BitBitJump.
01:58:38 <Corbin> Mm. Hopefully they'll figure it out.
02:01:58 <esolangs> [[9f87m4atttaaaou;]] https://esolangs.org/w/index.php?diff=87229&oldid=87228 * CosmicMan08 * (+57)
02:03:38 <fizzie> There's also a pretty long actual attempted new article/language called "Tense" a while back that got blocked by the introduction requirement. Sad.
02:06:26 <Corbin> Is there a way to manually intervene and rescue those, once the introductions are done? I guess folks probably don't follow up if they fail.
02:07:20 * Corbin should save their new-page buffer before submitting
02:07:40 <fizzie> They're saved in the filter log. Which is public, so anyone can dig it up from there. I just don't know what the ethics of doing so are.
02:08:48 <fizzie> Technically the content is "on" the site already. And they did click submit on it, so there was intent to add it.
02:09:40 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=87230&oldid=87176 * GermanSpetsnaz * (+222) /* Introductions */
02:10:23 <fizzie> Apparently the [[Hello world program in esoteric languages]] page is also right on the critical 200k size boundary for the no-large-edits rule and therefore uneditable. Not sure what should be done with that one, it's a little unwieldy.
02:10:57 <oerjan> has anyone got caught by that?
02:11:41 <fizzie> PixelatedStarfish attempted (but failed) to add a Heck hello world a while back.
02:12:56 <fizzie> And the page edit history has a "I'm trying to add Godencode, but it hasn't been letting me. Making it a 2-step process might work?" note, but it ended up with them just adding "Too long to fit here, find on Godencode's page" on the page.
02:13:02 <esolangs> [[\ELLOWOS]] N https://esolangs.org/w/index.php?oldid=87231 * GermanSpetsnaz * (+0) Created blank page
02:13:53 <b_jonas> int-e: I think the sid version was dumped a while ago, when they closed Debian 11 for new stuff (as opposed to fixing the existing stuff so they can release it) to start Debian 12
02:14:21 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=87232&oldid=87185 * GermanSpetsnaz * (+15) /* Non-alphabetic */
02:14:48 <b_jonas> int-e: I usually look at /etc/debian_version for the version number
02:15:13 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=87233&oldid=87232 * GermanSpetsnaz * (+0) /* Non-alphabetic */
02:15:40 <esolangs> [[XTW]] https://esolangs.org/w/index.php?diff=87234&oldid=71032 * Zseri * (+7) reference implementation got taken down, won't be available because it relies on outdated libs, too
02:18:27 <fizzie> 11.0 is what my sid system's /etc/debian_version says. That, and /etc/issue, are both from the `base-files` package, which is at version 11.1.
02:18:48 <esolangs> [[\ELLOWOS]] https://esolangs.org/w/index.php?diff=87235&oldid=87231 * GermanSpetsnaz * (+139)
02:20:02 <b_jonas> "It's already red and in bold type." => <blink><marquee><font size="+5">
02:21:11 <fizzie> https://tracker.debian.org/media/packages/b/base-files/changelog-11.1
02:21:40 <fizzie> (But the version of that in sid is exactly the same as in buster.)
02:21:48 <esolangs> [[\ELLOWOS]] https://esolangs.org/w/index.php?diff=87236&oldid=87235 * GermanSpetsnaz * (+304)
02:23:59 <b_jonas> as for [[Hello world program in esoteric languages]], maybe we should just split it to five smaller pages, split alphabetically by the name of the language
02:24:33 <nakilon> $ echo "P2 80 500 255" >temp.pgm ; curl -s https://raw.githubusercontent.com/fis/fungot/master/fungot.b98 | ruby -ne'print"%-80s"%$_.chomp' | od -An -vtu1 >>temp.pgm
02:24:33 <fungot> nakilon: so am i. luckily i knew the guy who did fnord?
02:24:35 <esolangs> [[Cammy]] N https://esolangs.org/w/index.php?oldid=87237 * Corbin * (+2816) Get started.
02:24:50 <nakilon> results in such image: https://i.imgur.com/GbfFnEq.png
02:25:29 <nakilon> the only problem with this snippet is I hardcode the height 500px by knowing the length of that file ahead
02:26:02 <nakilon> could add it somewhere in ruby command but it would increase the command length
02:26:20 <fizzie> Heh. That looks a lot like one of those mini-maps IDEs and editors occasionally have.
02:26:51 <fizzie> I can make out the punctuation triangle.
02:27:24 <fizzie> I still don't understand why I thought it must be triangle-shaped (it could just as well be comb-shaped and a lot more compact) but I don't want to change it at this point, it's too iconic™.
02:27:30 <b_jonas> let me read the announcement https://www.debian.org/News/2021/20210814
02:29:15 -!- oerjan has quit (Quit: Nite).
02:29:21 -!- delta23 has joined.
02:29:41 <nakilon> heh, but you won't be able to recover the code from the minimap but yeah, looks very similar
02:29:47 <b_jonas> well, I'll install Debian 11 "soon"
02:29:53 <esolangs> [[\ELLOWOS]] https://esolangs.org/w/index.php?diff=87238&oldid=87236 * GermanSpetsnaz * (+352)
02:30:16 <esolangs> [[\ELLOWOS]] https://esolangs.org/w/index.php?diff=87239&oldid=87238 * GermanSpetsnaz * (+3)
02:30:24 <nakilon> "punctuation triangle" -- oh no, you've ruined the secret of that triangle purpose
02:31:12 <fizzie> It's got a comment right next to it. ;)
02:31:21 <fizzie> (The "0SE":,)'..!f"('?/s" line is a comment.)
02:31:41 <esolangs> [[\ELLOWOS]] https://esolangs.org/w/index.php?diff=87240&oldid=87239 * GermanSpetsnaz * (+20)
02:32:49 <nakilon> very comprehensive comment
02:33:25 <nakilon> I suppose if I reverse the bits in bytes then such format would even survive the jpeg artifacts
02:33:30 <esolangs> [[\ELLOWOS]] https://esolangs.org/w/index.php?diff=87241&oldid=87240 * GermanSpetsnaz * (+403)
02:33:43 <nakilon> I mean it would recoverable
02:34:29 <b_jonas> no big surprises in that release announcement
02:34:30 <nakilon> so it would be a lossy image format for code
02:34:56 <b_jonas> fizzie: you can provide two different shapes for essentially the same code, and let the user choose. I did that once, in
02:35:05 <nakilon> but of course not if that's befunge
02:35:21 <nakilon> some java and c# will survive
02:35:37 <b_jonas> in https://www.perlmonks.com/?node_id=863110
02:38:02 <nakilon> I'm tempted to make the full circle script that would compress arbitrary text as JPEG and then decode back
02:41:07 <nakilon> oh and you can fit 3 times mode code on image space using RGB
02:41:08 <esolangs> [[\ELLOWOS]] https://esolangs.org/w/index.php?diff=87242&oldid=87241 * GermanSpetsnaz * (+591)
02:41:32 <esolangs> [[\ELLOWOS]] https://esolangs.org/w/index.php?diff=87243&oldid=87242 * GermanSpetsnaz * (+11) /* \ELLOWOS */
02:43:41 <nakilon> you could fold each 3 lines of source code into one image line
02:44:54 <esolangs> [[User:GermanSpetsnaz]] N https://esolangs.org/w/index.php?oldid=87244 * GermanSpetsnaz * (+183) Created page with "GermanSpetsnaz, also known as Christopher Strickland, is the creator of [[\ELLOWOS]] and started editing on esolangs on 14/8/2021, which also is the day that [[\ELLOWOS]] was..."
02:45:42 <esolangs> [[\ELLOWOS]] https://esolangs.org/w/index.php?diff=87245&oldid=87243 * GermanSpetsnaz * (+26)
02:45:46 <nakilon> and to avoid the phase choice randomness you can do not just slicing but transforming the N chars long line into 3 N/3 chars long lines
02:46:33 <nakilon> so the image will become 3 times narrower and every consecutive 3 lines of code will blend
02:47:17 <nakilon> the first line of resulting image will be red, the last one blue
02:48:18 <nakilon> how to stop starting making things
02:48:31 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=87246&oldid=87237 * Corbin * (+1738) Accidentally saved changes too soon. Still getting started.
02:49:01 <nakilon> I have yet to finish previous ones...
02:52:05 <nakilon> I just wanted a small break during the making of RASEL IDE so I launched a game and just hours after I started decided to draw a "crafting recipes graph", so to parse the game files I had to figure out the format so I made the schema-validation library...
02:53:15 <nakilon> ... and the damn random idea of direct converting of the source code to NETPBM now wants me to research how much JPEG or WebP compression I can achieve keeping the text readable
03:02:54 <nakilon> btw, could not really make the bash snippet of "expanding line length to 80" fully work -- it was eating the slashes in $line
03:03:22 <nakilon> also I won't wonder if that befunge code passed through bash can format the drive
03:13:37 -!- Hooloovoo has quit (Remote host closed the connection).
03:21:15 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=87247&oldid=87230 * VitalMixofNutrients * (+439) /* Introductions */
03:22:07 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=87248&oldid=87247 * VitalMixofNutrients * (-13) /* Introductions */
03:22:40 <esolangs> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=87249&oldid=87248 * VitalMixofNutrients * (+0) /* Introductions */
04:15:56 -!- ZippyMagician has joined.
04:18:11 -!- ZippyMagician has quit (Remote host closed the connection).
04:37:14 <esolangs> [[Jelly]] M https://esolangs.org/w/index.php?diff=87250&oldid=75879 * Corbin * (+227) Add proglang infobox.
04:41:03 <Corbin> Is there a definition for https://esolangs.org/wiki/Category:Functional_paradigm? (I am okay with the traditional answer: "No, and asking is flamebait.")
04:51:10 <int-e> . o O ( It's the opposite of dysfunctional. )
04:54:43 <int-e> I guess it's the usual thing where the page authors decide whether a language is functional and it'll only be corrected if somebody else feels it's grossly miscategorized. Personally, I'd expect something that behaves like a function as a first-class citizen (value)... with stupid corner cases (first-order term rewriting is not functional; lambda calculus is functional; combinatory logic is a...
04:54:49 <int-e> ...first-order TRS which has the whole power of the lambda calculus, ugh.)
04:56:08 <int-e> I have an opinion on CL, which is that it really doesn't feel like a functional programming language.
04:56:31 <int-e> Mainly because it's pointless.
04:56:36 <Corbin> Sure. "lambda calculus is functional" might be the horn I have to tackle this time around. Lambda calculi are the internal logics of Cartesian closed categories. Are the arrows of categories always functions? No, but how dishonest is it to pretend?
04:57:07 <int-e> Nonono, it's all about Scott domains.
04:57:51 <Corbin> They're usually either functions with extra properties/structure/stuff, or they're functors/transfors/etc. which have extra dimensions which we're truncating away.
04:58:28 <int-e> Anyway, unpacking what you said, I'd say it's okay to pretend.
04:58:42 <int-e> Otherwise you'll reach the point where nothing is functional.
04:59:01 <int-e> Since it's just bits in a computer, 99% of the time.
04:59:37 <Corbin> I mean, I *do* take that position seriously in #proglangdesign and elsewhere: "functional programming" is a tribal identifier, not a classification scheme for languages.
05:00:01 <Corbin> But I'm interested in specifically what "the functional paradigm" means on the wiki, because I want to know whether my tacit language is functional.
05:00:24 <int-e> Meh. I tend to take the view that in practice these things aren't black or white.
05:00:51 <int-e> Almsot every programming language has lambda these days so they're all a bit functional. It usually isn't the main programming paradigm.
05:03:12 <Corbin> What *is* a programming paradigm, anyway? WP says that it *is* about classifying languages, but I don't know.
05:05:21 <int-e> It's mostly about how you break a program down into more manageable bits, isn't it?
05:09:32 <Corbin> I don't know; I'm pleading ignorance. It looks like there's no category on the wiki for tacit programming languages, anyway, so it doesn't matter.
05:10:02 <int-e> You shoehorn your program into an OO language by trying to find ways to exploit classes and inheritance; you do it for FP by finding opportunities for composing or lifting functions... and you'll invent ways to do each of these in any paradigm because it's often dictated by the problem rather than the language.
05:10:19 <int-e> I haven't studied any of this...
05:11:15 <esolangs> [[9f87m4atttaaaou;]] https://esolangs.org/w/index.php?diff=87251&oldid=87229 * CosmicMan08 * (+10)
05:12:26 <esolangs> [[Backrooms]] https://esolangs.org/w/index.php?diff=87252&oldid=86742 * Ch44d * (-3221) rework
05:29:47 <zzo38> I don't know how it counts either; many programming languages have first-class functions, including JavaScript (for example "(x=>x)" is a identity function), and some have other stuff too but some don't. C has function pointers which is not really the same thing (although GCC also has "trampoline functions"); PostScript procedures are arrays so can be used like other values, etc
05:32:29 <zzo38> Also can be the consideration for object-oriented. For example, in C there is the FILE object, and in GNU C you can use the fopencookie function to make your own implementation of that interface.
05:35:54 <zzo38> And then, there is the case where some programming language will not have such things as built-in features but can be implemented by macros and/or by other things within that programming language.
05:44:40 -!- Cale has quit (Remote host closed the connection).
06:27:46 <Melvar> I have some knowledge of how to encode objects in Haskell. The short version is “records whose fields have a shared closure”, with the delightful tidbit `new = mfix` if you want to encode inheritance.
06:30:38 -!- Lord_of_Life_ has joined.
06:31:02 -!- Lord_of_Life has quit (Ping timeout: 258 seconds).
06:31:52 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
06:33:51 <int-e> Melvar: How does that work, new $ \this -> O{ method = \x y -> <stuff involving this> } ...?
06:34:14 <int-e> err, I'm missing a `pure` there.
06:35:34 <int-e> :t Control.Monad.mfix
06:35:35 <lambdabot> Not in scope: ‘Control.Monad.mfix’
06:35:53 <int-e> :t Control.Monad.Fix.mfix
06:36:04 <int-e> (oops, evidently I don't use this very often)
06:37:21 <int-e> I /have/ used mfix though, for EDSLs with labels.
06:43:00 <Melvar> Yes, pretty much that. If the construction of your object is pure, you can do it with `fix` or explicit corecursion, but if for example your object uses an IORef internally you need `mfix` (or the non-overloaded `fixIO` in case of IO).
06:43:42 <int-e> Melvar: Right, makes sense. It's just that 'new = mfix' doesn't really explain much about the mental model behind it :)
06:43:57 <int-e> Hence the question.
06:46:39 <Melvar> So like, you can write an object construction function `foo :: someargs -> Foo -> IO Foo` and instantiate it with `mfix foo`. If you want to extend it, the fact that `foo` hasn’t yet taken itself is important – related to the concept of “open recursion”, which is used to describe the dispatch semantics of “this”.
06:48:11 <int-e> oh yeah, I missed that the reader monad would interact with this nicely
06:48:14 <Melvar> Because now you can go `derivedFoo :: someargs -> Foo -> IO Foo; derivedFoo args this = do super <- foo this; otherconstruction; pure $ Foo { <stuff using super and this> }
06:48:38 <int-e> though, hmm, maybe not quite nicely enough. it should :P
06:48:44 <int-e> (it's not a transformer by default)
06:49:20 <Melvar> Crucially, this causes `this`-calls in `foo` to refer to the fields generated in `derivedFoo`.
06:49:43 <b_jonas> I think to define functional programming languages, you should consider SKI (or BCKW, doesn't really matter) combinator calculus and lambda calculus, because these only have functions, so you have to build everything from functions
06:51:05 <int-e> The thing is, I basically can't program CL at all. I have a workaround which is to program lambda calculus and then do abstraction elimination.
06:51:24 <int-e> So... this is how I mentally justify calling CL not functional.
06:51:50 <b_jonas> there's also multivariate versions of these: multivariate (untyped) lambda calculus, and Madore's Amicus without rules 2 and 4
06:52:12 <int-e> But there's nothing objective about it; the most objective angle is that first-order rewriting isn't functional. :P
06:52:29 <int-e> And obviously you can argue about that one as well.
06:52:58 <int-e> If you want, you can turn my argument upside down; since CL (in that view) is functional, that means first-order TRSs can be functional.
06:54:44 * int-e shrugs. <-- Help! I'm forgetting how to IRC.
06:58:28 -!- Cale has joined.
07:02:33 <b_jonas> (I also want the Consumer society language to be a quintessential language, but I don't think it counts as functional)
08:05:44 -!- hendursa1 has joined.
08:08:18 -!- hendursaga has quit (Ping timeout: 244 seconds).
08:22:37 -!- hendursa1 has quit (Remote host closed the connection).
08:22:58 -!- hendursa1 has joined.
09:28:30 <esolangs> [[User:FLeckami21]] M https://esolangs.org/w/index.php?diff=87253&oldid=76316 * FLeckami21 * (+21) Added a new language
09:31:53 -!- Sgeo has quit (Read error: Connection reset by peer).
09:34:40 -!- hanif has joined.
09:36:26 <hanif> '<Corbin> But I'm interested in specifically what "the functional paradigm" means on the wiki, because I want to know whether my tacit language is functional.' => [[Jelly]] on the eso-wiki is a tacit proglang and has [[Category:Functional paradigm]]
09:46:12 <myname> does your language has a mutable state?
09:51:54 -!- Koen_ has joined.
09:53:57 <hanif> not my language, but i'd have to check its docs
09:54:56 <hanif> (which are at https://github.com/DennisMitchell/jellylanguage/wiki) looks like there is a register that can be copied to and retrieaved (under 'Quicks')
09:57:07 <esolangs> [[Special:Log/newusers]] create * R-Prime * New user account
09:59:37 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=87254&oldid=87249 * R-Prime * (+187) /* Introductions */
10:02:23 <esolangs> [[User:Grom]] https://esolangs.org/w/index.php?diff=87255&oldid=81610 * Grom * (+73)
10:35:26 -!- imode has quit (Ping timeout: 272 seconds).
10:46:02 <river> nakilon: i feel like you might enjoy this https://twitter.com/keenanisalive/status/1426510525555515397
11:02:38 -!- hendursa1 has quit (Remote host closed the connection).
11:03:03 -!- hendursa1 has joined.
11:36:53 -!- delta23 has quit (Quit: Leaving).
11:52:01 -!- hanif has quit (Ping timeout: 244 seconds).
12:15:58 -!- Koen_ has quit (Remote host closed the connection).
12:27:37 <nakilon> the last myname's message makes the most sense for me defining the functional
12:29:05 <nakilon> I say that "I wrote this in a functional way" when I don't use any assignment operator and just no nested and chained stdlib methods calls
12:53:00 <nakilon> river never really did that but I would go for smth like ( max(0,(width1+width2)/2-(center_dist_x) ) * ( the same but for y ) )
12:54:32 <nakilon> I did physic simulation of a soft bodies falling and rolling on Athlon 1700, it was slow
13:09:10 -!- hanif has joined.
13:40:10 -!- hendursa1 has quit (Quit: hendursa1).
13:40:36 -!- hendursaga has joined.
13:44:45 <Corbin> myname, nakilon: The language is [[Cammy]] and it has no mutable state.
13:44:58 <Corbin> hanif: I'm just not sure whether a language is "functional" if its arrows are not, strictly speaking, functions.
13:49:14 <esolangs> [[Sokolang]] https://esolangs.org/w/index.php?diff=87256&oldid=87225 * FLeckami21 * (+2357)
13:53:18 <esolangs> [[Sokolang]] M https://esolangs.org/w/index.php?diff=87257&oldid=87256 * FLeckami21 * (+4)
14:00:30 <hanif> Corbin: is this category theory? 'arrows'
14:06:38 <Corbin> hanif: You bet it's category theory! A topos is a sort of category, and so if we pick a different topos then we get a different interpretation of the arrows.
14:09:25 <hanif> time to do some reading then
14:34:45 -!- Koen_ has joined.
14:39:40 <Corbin> Hm, is https://esolangs.org/wiki/Esolang:Categorization#Dimensions for the dimensions of syntax or the dimensions of memory space? I see at least one "multi-dimensional" language whose syntax is 1D but operates on a 4D spatial memory.
14:46:09 <myname> cammy is lacking a fix point operator
14:47:17 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=87258&oldid=87246 * Corbin * (+116) Add proglang infobox. Clean up WP links.
14:48:09 <Corbin> myname: Yeah. That's intentional; I can't really undo that level of power once it's been added. My current plan, instead, is to add one (1) unbounded loop around an entire program, but require each Cammy expression to be total and terminating.
14:49:02 <myname> what does a loop help if you have no mutable state?
14:49:46 <Corbin> Loops can make progress with immutable state.
14:50:29 <Corbin> Have you seen https://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng101.pdf before? The goal is to carefully move from "functional programming" to "event-loop programming". And then, maybe, to reimplement the Monte language in terms of Cammy. Big long-term goal there, of course.
14:59:28 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=87259&oldid=87258 * PythonshellDebugwindow * (+69) /* External Resources */ Cats
15:01:03 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=87260&oldid=87233 * PythonshellDebugwindow * (+12) /* C */ Cammy
15:07:14 <esolangs> [[\ELLOWOS]] M https://esolangs.org/w/index.php?diff=87261&oldid=87245 * PythonshellDebugwindow * (+71) Cats
15:08:48 <esolangs> [[Talk:\ELLOWOS]] N https://esolangs.org/w/index.php?oldid=87262 * PythonshellDebugwindow * (+308) /* Duplicate command */ new section
15:13:00 -!- hanif has quit (Ping timeout: 244 seconds).
15:22:03 <nakilon> funny that "continuation" line does not continue
15:40:17 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=87263&oldid=87259 * Corbin * (+384) /* Syntax */ Explain the type system a bit more, and give more examples.
15:48:15 <b_jonas> "require each Cammy expression to be total and terminating" => that never goes well
15:48:30 <b_jonas> it makes your programs hard to debug if they can't easily give an error
15:55:46 <Corbin> b_jonas: There's a tradition of event-loop systems where the event loop is ambient. In these systems, having an iteration of the loop (a so-called "turn") not terminate is kind of annoying. This is probably one of the biggest warts in classic E.
16:03:07 <b_jonas> Corbin: that makes sense, but sometimes you want to deliberately diverge, when you detect an error
16:05:15 <Corbin> b_jonas: I don't want E or Monte programs to ever diverge, TBH. If there's a fault, then I want it printed out and I would also like the process to crash. Because E is oriented around networking, and networking faults are tricky to manage, we don't want the additional complication of sync errors being messy too.
16:09:33 <b_jonas> Corbin: if it can print an error message then crash, that's fine, then you just mean something different by "total" than I thought
16:09:53 <b_jonas> is the program allowed to grow a list to double its length in each loop iteration?
16:10:23 <b_jonas> and is it allowed to grow a list to two to the power of the original list length in each iteration?
16:11:52 <Corbin> Oh, yes, the complexity class PR is ridiculous, for sure. I mean both that a single expression isn't Turing-complete and also that errors are handled with sum types rather than exceptional conditions.
16:12:18 <b_jonas> Corbin: so it can crash only at the end of a loop iteraton, not in any expression?
16:12:23 <Corbin> The expression (comp dup apply) is a standard Turing bird, but is rejected during type-checking as having an infinite type.
16:13:01 <b_jonas> oh, you mean compose functions
16:13:54 <Corbin> comp is composition, dup is the diagonal functor, app (not "apply", whoops) is evaluation of internal homs. It takes a value x, duplicates it to make a pair (x,x), and then calls x(x) on itself.
16:18:03 <Corbin> As for taking too long in practical situations, yes; the current toolchain has no jets for natural numbers at all, so asking it to add 1_000_000 to 1_000_000 takes a little bit of time.
16:18:53 -!- Koen_ has quit (Remote host closed the connection).
16:19:26 <Corbin> But yeah, as stupid as it sounds, the slogan "well-typed programs don't go wrong" is basically what I'm going for. My version is "categorical expressions don't leave the category". If the category includes error objects, then it's not a problem.
16:20:02 <Corbin> And it happens to be the case that Pfn, whose arrows are partial functions, is equivalent to Set*, whose objects are inhabited sets and arrows are functions which can fail and return nothing.
16:27:21 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=87264&oldid=87260 * FLeckami21 * (+33)
16:29:39 <esolangs> [[Cammy]] M https://esolangs.org/w/index.php?diff=87265&oldid=87263 * Corbin * (+1439) Add a section explaining the semantics in terms of lambda calculus.
16:55:44 <esolangs> [[Esolang talk:Categorization]] https://esolangs.org/w/index.php?diff=87266&oldid=84913 * Corbin * (+664) /* Tacit programming */ new section
16:56:55 -!- Koen_ has joined.
17:08:55 -!- hanif has joined.
17:13:23 -!- hanif has quit (Ping timeout: 244 seconds).
17:24:48 <esolangs> [[Special:Log/newusers]] create * Red hot dogs--- * New user account
17:33:46 -!- Sgeo has joined.
17:45:27 <Melvar> In regards to the link https://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng101.pdf from a page up: Since I only know STM in Haskell, does anyone know how it is made to work in languages with unrestricted side effects?
17:54:33 -!- op_4 has quit (Quit: ZNC 1.7.2+deb3 - https://znc.in).
17:54:53 -!- op_4 has joined.
17:56:47 -!- op_4 has quit (Client Quit).
17:57:27 -!- op_4 has joined.
18:04:24 -!- hanif has joined.
18:10:02 <esolangs> [[List of complexity classes]] https://esolangs.org/w/index.php?diff=87267&oldid=45211 * Corbin * (+2466) Unstub, put in several sections corresponding to categories, try to clarify WP's immense wordy denseness.
18:30:06 -!- Koen_ has quit (Remote host closed the connection).
18:31:55 -!- hanif has quit (Ping timeout: 244 seconds).
18:47:38 -!- hanif has joined.
19:30:16 -!- imode has joined.
20:25:35 -!- hanif has quit (Ping timeout: 244 seconds).
20:50:56 -!- Hooloovoo has joined.
20:54:50 -!- Cale has quit (Remote host closed the connection).
21:02:29 -!- Koen_ has joined.
21:06:45 -!- Cale has joined.
22:30:26 -!- Koen_ has quit (Remote host closed the connection).
23:06:07 <esolangs> [[OISC]] M https://esolangs.org/w/index.php?diff=87268&oldid=84207 * Sporeball * (-1) remove last abcout pointer star
23:08:19 -!- oerjan has joined.
23:18:52 -!- Koen_ has joined.
23:28:20 <oerjan> <int-e> Mainly because it's pointless. <-- * swats int-e -----###
23:48:09 <esolangs> [[Why Does This Towel Smell Different Each Time I Use It]] N https://esolangs.org/w/index.php?oldid=87269 * LarhoCherqi * (+1659) Created page with "'''Why Does This Towel Smell Different Each Time I Use It''' is an esolang created by [[User:LarhoCherqi]], with other names being WDTTSDETIUI or Towellang. WDTTSDSETIUI's dat..."
23:52:08 <esolangs> [[WDTTSDETIUI]] N https://esolangs.org/w/index.php?oldid=87270 * LarhoCherqi * (+68) Redirected page to [[Why Does This Towel Smell Different Each Time I Use It]]
23:52:47 <esolangs> [[Towellang]] N https://esolangs.org/w/index.php?oldid=87271 * LarhoCherqi * (+68) Redirected page to [[Why Does This Towel Smell Different Each Time I Use It]]
23:53:19 <esolangs> [[Why Does This Towel Smell Different Each Time I Use It]] https://esolangs.org/w/index.php?diff=87272&oldid=87269 * LarhoCherqi * (+2)
23:59:59 -!- river has quit (Quit: Connection closed for inactivity).