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 +0200 | michalz | (~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 +0200 | Square | (~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 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 255 seconds) |
2024-04-28 23:25:59 +0200 | cashew | (~cashewsta@65.17.175.150) (Ping timeout: 252 seconds) |
2024-04-28 23:25:47 +0200 | madeleine-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 +0200 | mreh | (~matthew@host86-160-168-68.range86-160.btcentralplus.com) (Ping timeout: 256 seconds) |
2024-04-28 23:20:57 +0200 | tomsmeding | doesn't actually know how the mathematical theory for this goes |
2024-04-28 23:20:50 +0200 | cashew | (~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 +0200 | gorignak | (~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)? |