Newest at the top
2024-12-22 17:32:15 +0100 | <ski> | (`return'). second step is monadic extension (`(=<<)', `(>>=)'/"bind") |
2024-12-22 17:31:23 +0100 | <ski> | we can derive `A |- <> B' (under the condition of `A', `B' holds, so `B' is possible), and then we can derive `<> A |- <> B' (should `A' hold only possibly, `B' will then still hold possibly). first step is monadic unit |
2024-12-22 17:31:17 +0100 | <ski> | thirdofmay18081814goya : if `<>' represents "possibility" of some kind (alethic ("possible"), temporal ("sometimes","eventually/later","earlier/before"), epistemic ("is consistent with my knowledge / might hold for all i know"), doxastic ("is consistent with my belief", deontic ("permissible"), provability ("is consistent with derivability in the formal system"), ..), then if we assume `A |- B' holds, then |
2024-12-22 17:25:19 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-12-22 17:25:07 +0100 | alecs | (~alecs@61.pool85-58-154.dynamic.orange.es) (Ping timeout: 252 seconds) |
2024-12-22 17:22:54 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-12-22 17:20:50 +0100 | alecs | (~alecs@61.pool85-58-154.dynamic.orange.es) alecs |
2024-12-22 17:19:24 +0100 | roosterphant | (~roosterph@185.21.217.76) |
2024-12-22 17:19:12 +0100 | swistak | (~swistak@185.21.216.141) |
2024-12-22 17:19:01 +0100 | roosterphant_ | (~roosterph@185.21.217.76) (Remote host closed the connection) |
2024-12-22 17:18:55 +0100 | swistak | (~swistak@185.21.216.141) (Quit: bye bye) |
2024-12-22 17:18:35 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-22 17:07:45 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-12-22 17:07:11 +0100 | <haskellbridge> | <thirdofmay18081814goya> ski: I see! ty |
2024-12-22 17:04:26 +0100 | <albet70> | what that is called? |
2024-12-22 17:03:23 +0100 | <albet70> | like it capture k1 inside f, then call g with k1, then capture g's rest as k2, it jumps to k1 with k2 |
2024-12-22 17:03:14 +0100 | <int-e> | . o O ( deadlocks are bad, let's starve instead ) |
2024-12-22 17:03:12 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-22 17:02:54 +0100 | <geekosaur> | otherwise you risk deadlocks |
2024-12-22 17:02:25 +0100 | <geekosaur> | anyway, AIUI one shared var in entire program is atomicModifyIORef, one shared between two given threads is MVar, anything more requires something more complex and STM is preferred these days |
2024-12-22 17:02:09 +0100 | <albet70> | I learned scheme a few years ago, I saw a article about call/cc to do coroutine, it can jump between two functions with variable, but I can't find that article now |
2024-12-22 17:01:21 +0100 | <ski> | thirdofmay18081814goya : "possible"-type modalities would be the ones which could be monadic, while "neccesary"-type ones could be comonadic |
2024-12-22 17:01:15 +0100 | <int-e> | MutVar# != MVar# (MutVar# is STRef/IORef) |
2024-12-22 17:00:26 +0100 | <geekosaur> | but it's a very low level thing |
2024-12-22 17:00:08 +0100 | <geekosaur> | well, not primitive, MutVar# is the primitive |
2024-12-22 16:59:54 +0100 | <geekosaur> | it's a primitive synchronization variable |
2024-12-22 16:59:03 +0100 | <albet70> | what mvar is based on? |
2024-12-22 16:53:03 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-12-22 16:52:13 +0100 | <probie> | If it's just a single variable, `MVar`s might be sufficient |
2024-12-22 16:51:42 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-12-22 16:51:32 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds) |
2024-12-22 16:47:25 +0100 | Digit | (~user@user/digit) Digit |
2024-12-22 16:47:13 +0100 | <geekosaur> | STM is the usual method |
2024-12-22 16:45:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-22 16:40:29 +0100 | <albet70> | how to share or passing one variable between two async function? like there are async function f and g, jump between f and g with one variable so that f and g can both modify |
2024-12-22 16:39:21 +0100 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-12-22 16:38:00 +0100 | <albet70> | hello everyone |
2024-12-22 16:36:08 +0100 | <haskellbridge> | <thirdofmay18081814goya> well this could be a way to make that precise: a monad-encoding of a modal type is inhabited iff it's corresponding modal type is inhabited |
2024-12-22 16:35:04 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-12-22 16:34:57 +0100 | <ncf> | do you mean anything precise by that |
2024-12-22 16:33:26 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-12-22 16:32:17 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
2024-12-22 16:31:49 +0100 | <haskellbridge> | <thirdofmay18081814goya> can Haskell monads simulate modal types? |
2024-12-22 16:31:38 +0100 | <haskellbridge> | <thirdofmay18081814goya> I recall reading somewhere that modal types are given by monads |
2024-12-22 16:30:04 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-22 16:19:09 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-12-22 16:18:40 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) (Ping timeout: 265 seconds) |
2024-12-22 16:14:40 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-12-22 16:07:42 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-12-22 16:06:02 +0100 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |