2024/04/28

Newest at the top

2024-04-28 23:35:53 +0200 <mauke> I wish my handlers were models
2024-04-28 23:35:21 +0200 <dolio> Handlers are models, if I recall correctly.
2024-04-28 23:35:19 +0200 <ncf> (that's why monads are spelt T everywhere)
2024-04-28 23:34:45 +0200 <mauke> baby-step semantics
2024-04-28 23:34:44 +0200 <geekosaur> don't amke me haul out Mac Lane
2024-04-28 23:34:38 +0200 <monochrom> The "handler" part does not require a monad though; in fact it is not even required to be "algebraic". More concretely, for example Maybe: Just and Nothing are the algebraic part and where you require a monad, but the handler `maybe` is where you can map Maybe X to whatever Y you like; it is also not "algebraic".
2024-04-28 23:34:29 +0200 <ncf> monads used to be called triples
2024-04-28 23:34:26 +0200 <tomsmeding> more things in math are a triple than not
2024-04-28 23:34:06 +0200 <ncf> triple
2024-04-28 23:33:54 +0200 <tomsmeding> "why 'T'" "well, it's a theory" "it's a monad" "ok" "call it \mathcal M" "ok"
2024-04-28 23:33:39 +0200michalz(~michalz@185.246.207.217) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-28 23:33:33 +0200 <tomsmeding> I was writing a paper with my PhD advisor and he wrote a part of the thing that talked about a monad; he wrote it \mathcal T
2024-04-28 23:32:34 +0200 <tomsmeding> ah yes, I now remember mathematicians using those words
2024-04-28 23:32:07 +0200 <dolio> IO is the signature or theory. The 'effects' are related to the generators, which would be like `getChar` for IO. At least in the literature.
2024-04-28 23:31:35 +0200Square(~Square@user/square) (Ping timeout: 245 seconds)
2024-04-28 23:30:04 +0200 <ncf> that's what playgrounds are for
2024-04-28 23:29:35 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-04-28 23:29:19 +0200 <tomsmeding> baby steps
2024-04-28 23:28:52 +0200 <tomsmeding> Rembane: yay!
2024-04-28 23:28:43 +0200 <tomsmeding> I see
2024-04-28 23:28:23 +0200 <monochrom> Right, Koka doesn't expose any monad. But you start postulating monads for semantics.
2024-04-28 23:28:16 +0200 <Rembane> tomsmeding: I just saw your new version of the Haskell playground and I like it!
2024-04-28 23:27:09 +0200 <tomsmeding> (I should read something about this topic before I go sprouting nonsense though)
2024-04-28 23:26:34 +0200Feuermagier(~Feuermagi@user/feuermagier) (Ping timeout: 255 seconds)
2024-04-28 23:25:59 +0200cashew(~cashewsta@65.17.175.150) (Ping timeout: 252 seconds)
2024-04-28 23:25:47 +0200madeleine-sydney(~madeleine@c-76-155-235-153.hsd1.co.comcast.net)
2024-04-28 23:25:36 +0200 <tomsmeding> can't you define a system of effects-and-handlers, like some languages have (Koka? Never used it though), from first principles without involving a monad?
2024-04-28 23:24:28 +0200 <probie> Can you have a useful implementation for algebraic effects which isn't a monad? I guess if you disallow effects (definition 2) from depending on each other, you can have something weaker that's still of use
2024-04-28 23:24:09 +0200mreh(~matthew@host86-160-168-68.range86-160.btcentralplus.com) (Ping timeout: 256 seconds)
2024-04-28 23:20:57 +0200tomsmedingdoesn't actually know how the mathematical theory for this goes
2024-04-28 23:20:50 +0200cashew(~cashewsta@65.17.175.150)
2024-04-28 23:20:27 +0200 <monochrom> I think all papers I read (OK, only two) presume monads for algebraic effects. I don't mean to say a programming language has to expose the monads. Just that they have monads behind.
2024-04-28 23:19:19 +0200 <tomsmeding> "affect your effects using monad transformers"
2024-04-28 23:17:34 +0200 <tomsmeding> s/are,/are/
2024-04-28 23:17:31 +0200 <int-e> using monads to great effect
2024-04-28 23:17:03 +0200 <tomsmeding> but algebraic effect systems also do, and those are not necessarily monads (though they invariably are, in haskell)
2024-04-28 23:14:57 +0200 <tomsmeding> monads allow you to perform effects (both definitions)
2024-04-28 23:14:38 +0200 <tomsmeding> reading input is an effect (definition 1), and `getChar` is also an effect (definition 2)
2024-04-28 23:14:16 +0200 <tomsmeding> I would personally never call "IO" an effect, though
2024-04-28 23:13:06 +0200 <tomsmeding> I think so?
2024-04-28 23:12:48 +0200 <monochrom> maybe they just say monad...
2024-04-28 23:12:11 +0200 <monochrom> OK, maybe Maybe then.
2024-04-28 23:11:39 +0200 <tomsmeding> I have never seen a mathematician talk about reading input :)
2024-04-28 23:11:37 +0200gorignak(~gorignak@user/gorignak)
2024-04-28 23:11:21 +0200 <monochrom> Ah, then what do mathematicians call the former?
2024-04-28 23:11:05 +0200 <tomsmeding> the former if you're talking to a functional programmer
2024-04-28 23:10:57 +0200 <tomsmeding> the latter if you're talking to a mathematician
2024-04-28 23:10:56 +0200 <monochrom> :(
2024-04-28 23:10:50 +0200 <tomsmeding> either, depending on who you're talking to
2024-04-28 23:10:28 +0200 <monochrom> Oh yeah I saw a new post/thread on the discourse about "what are effects?". I want to participate, but need to check something with you guys. Does "effect" refer to eg the ability to read input (so eg in Haskell the IO type represents the effect) or to the value/action (so eg getChar)?