2026/06/16

Newest at the top

2026-06-16 23:06:21 +0000 <EvanR> what this gets you can easily be demanded in other languages, many of which are missing fmap in key places
2026-06-16 23:05:59 +0000 <EvanR> first try to "explain" Functor
2026-06-16 23:05:21 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-16 23:04:39 +0000xff0x(~xff0x@2405:6580:b080:900:f9b3:ddf6:f890:9081)
2026-06-16 23:03:22 +0000 <raincomplex> but monads seem particularly tricky
2026-06-16 23:03:12 +0000 <raincomplex> it is fascinating to me though. there are plenty of structures in other languages that can be understood easily outside of the language
2026-06-16 23:02:55 +0000xff0x(~xff0x@2405:6580:b080:900:f8bd:50a9:9ed8:decc) (Ping timeout: 276 seconds)
2026-06-16 23:02:39 +0000 <raincomplex> maybe my mistake is trying to learn what a monad is without more practice in the language :D
2026-06-16 23:01:59 +0000 <raincomplex> magic semicolon
2026-06-16 23:01:44 +0000 <raincomplex> one time i tried to translate monads into imperative terminology and arrived at "it's kind of like a statement separator plus magic"
2026-06-16 23:00:23 +0000 <EvanR> which eventually is revealed to be an incomplete analogy
2026-06-16 22:59:56 +0000 <EvanR> context and container might still have value as a sort of "intuition pump"
2026-06-16 22:58:51 +0000 <raincomplex> i'm experienced in programming but a newb in haskell
2026-06-16 22:56:47 +0000 <EvanR> raincomplex, hmm context is still this placeholder doing nothing for me. Like imagine a + b. We could call the a part context and + b is a computation with context. Though this context is explicit, just like in haskell FP
2026-06-16 22:53:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2026-06-16 22:53:39 +0000 <EvanR> deriving haskell code starting with an equation and solving for unknowns like it's math
2026-06-16 22:53:14 +0000 <EvanR> wow that ertes blog post has a great amount of examples of equational reasoning
2026-06-16 22:51:05 +0000 <raincomplex> context that can also compute
2026-06-16 22:47:18 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-16 22:44:44 +0000peterbecich(~Thunderbi@71.84.33.135) peterbecich
2026-06-16 22:36:45 +0000 <EvanR> proving any phenomenon can be framed as container
2026-06-16 22:36:30 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-06-16 22:36:03 +0000 <EvanR> the monad would chain a IO container that spits out another IO container
2026-06-16 22:35:17 +0000 <EvanR> see also "container" where Cale would troll us and say an IO action is a container with a button on it which performs the action and spits out the result value
2026-06-16 22:34:10 +0000emmanuelux(~em@user/emmanuelux) emmanuelux
2026-06-16 22:34:03 +0000 <EvanR> so it's really about the collapsing operation and not a hidden resource necessarily
2026-06-16 22:33:32 +0000 <EvanR> collapsing a nested Maybe or List computation does something, some people call the nested layers a context, but that seems to be expanding a word to the extreme generic
2026-06-16 22:33:09 +0000 <monochrom> Hot take: A context is basically just a monad.
2026-06-16 22:31:55 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-16 22:31:41 +0000 <EvanR> or related List monad
2026-06-16 22:31:18 +0000 <EvanR> however I don't see how that could explain e.g. the early exit Maybe monad
2026-06-16 22:30:23 +0000 <EvanR> and can be combined arbitrarily
2026-06-16 22:30:11 +0000 <EvanR> each effect comes with an explicit resource, the rng state, the file handle that is open, whatever is needed to "log" stuff
2026-06-16 22:29:47 +0000 <raincomplex> why don't "what's a monad" articles ever lead with "it's context" :D
2026-06-16 22:28:43 +0000 <raincomplex> 'context' in the casual sense of some extra information that gets carried along implicitly
2026-06-16 22:28:12 +0000 <EvanR> effect systems seem to lean into that
2026-06-16 22:27:09 +0000 <raincomplex> is it true that a monad is basically just context
2026-06-16 22:24:29 +0000absence(torgeihe@hildring.pvv.ntnu.no)
2026-06-16 22:21:01 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds)
2026-06-16 22:18:15 +0000 <EvanR> the context is real world, which is deeply magical
2026-06-16 22:16:32 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-06-16 22:12:00 +0000Xe(~Xe@perl/impostor/xe) Xe
2026-06-16 22:06:18 +0000machinedgod(~machinedg@d172-219-48-230.abhsia.telus.net) machinedgod
2026-06-16 22:05:55 +0000Axman6(~Axman6@user/axman6) (Ping timeout: 245 seconds)
2026-06-16 22:05:42 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2026-06-16 22:04:29 +0000Xe(~Xe@perl/impostor/xe) (Ping timeout: 245 seconds)
2026-06-16 22:04:19 +0000Axma66174(~Axman6@user/axman6) Axman6
2026-06-16 22:03:53 +0000target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2026-06-16 22:03:01 +0000absence(torgeihe@hildring.pvv.ntnu.no) (Ping timeout: 272 seconds)
2026-06-16 22:01:08 +0000merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn