Logs: liberachat/#haskell
| 2025-08-11 03:47:55 | → | forell joins (~forell@user/forell) |
| 2025-08-11 03:49:24 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-08-11 03:55:44 | × | haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2025-08-11 03:56:03 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-08-11 03:57:56 | × | jespada quits (~jespada@2800:a4:2279:7200:9904:1f1e:69bd:aecf) (Ping timeout: 272 seconds) |
| 2025-08-11 04:00:50 | → | jespada joins (~jespada@2800:a4:2219:9800:a55e:3e41:816a:f6ed) |
| 2025-08-11 04:03:50 | <ski> | albet70 : typically, there would be none. you can iterate the CPS transform, though. i know of two (?) papers which talks about that, if you're curious |
| 2025-08-11 04:04:21 | <ski> | btw, with two levels of continuations, this is closely related to backtracking, in logic programming |
| 2025-08-11 04:04:42 | <ski> | it's also related to the Church encoding of lists, and of natural numbers |
| 2025-08-11 04:05:08 | <ski> | @unmtl ContT o m a |
| 2025-08-11 04:05:08 | <lambdabot> | (a -> m o) -> m o |
| 2025-08-11 04:05:19 | <ski> | @unmtl ContT o (ContT p m) a |
| 2025-08-11 04:05:19 | <lambdabot> | (a -> (o -> m p) -> m p) -> (o -> m p) -> m p |
| 2025-08-11 04:05:33 | <ski> | the second there is two levels of continuations |
| 2025-08-11 04:05:46 | → | phma joins (phma@2001:5b0:211f:4d98:87b1:5b61:8c35:99f8) |
| 2025-08-11 04:06:01 | × | superbil quits (~superbil@114-32-231-70.hinet-ip.hinet.net) (Server closed connection) |
| 2025-08-11 04:06:23 | → | superbil joins (~superbil@114-32-231-70.hinet-ip.hinet.net) |
| 2025-08-11 04:06:37 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-08-11 04:06:53 | <ski> | if you take |
| 2025-08-11 04:06:57 | <ski> | @unmtl ContT () (ContT p (ContT q m)) a |
| 2025-08-11 04:06:57 | <lambdabot> | (a -> (() -> (p -> m q) -> m q) -> (p -> m q) -> m q) -> (() -> (p -> m q) -> m q) -> (p -> m q) -> m q |
| 2025-08-11 04:07:03 | <ski> | er, no |
| 2025-08-11 04:07:10 | <ski> | @unmtl ContT () (ContT p m) a |
| 2025-08-11 04:07:10 | <lambdabot> | (a -> (() -> m p) -> m p) -> (() -> m p) -> m p |
| 2025-08-11 04:07:40 | × | phma quits (phma@2001:5b0:211f:4d98:87b1:5b61:8c35:99f8) (Read error: Connection reset by peer) |
| 2025-08-11 04:07:57 | <ski> | this one. the `m p's are, if you investigae the corresponding CPS transform, passed around like a state (as in `StateT (m p)') |
| 2025-08-11 04:08:42 | <ski> | @unmtl ContT () (State (m p)) a |
| 2025-08-11 04:08:42 | <lambdabot> | (a -> m p -> ((), m p)) -> m p -> ((), m p) |
| 2025-08-11 04:09:20 | → | phma joins (~phma@host-67-44-208-4.hnremote.net) |
| 2025-08-11 04:09:47 | <ski> | this observation can be used as an implementation strategy for composable/delimited/sub- continuations, by using a mutable state to keep track of the inner-level continuation |
| 2025-08-11 04:10:16 | <ski> | (instead of threading around state versions) |
| 2025-08-11 04:11:27 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-08-11 04:12:21 | × | duckworld quits (~duckworld@user/duckworld) (Server closed connection) |
| 2025-08-11 04:12:36 | → | duckworld joins (~duckworld@user/duckworld) |
| 2025-08-11 04:13:20 | × | Axman6 quits (~Axman6@user/axman6) (Server closed connection) |
| 2025-08-11 04:21:00 | × | ynzoqn quits (~ynzoqn@user/ynzoqn) (Ping timeout: 252 seconds) |
| 2025-08-11 04:21:48 | trickard_ | is now known as trickard |
| 2025-08-11 04:22:14 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-08-11 04:23:00 | × | machinedgod quits (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 2025-08-11 04:26:57 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2025-08-11 04:28:25 | → | ynzoqn joins (~ynzoqn@user/ynzoqn) |
| 2025-08-11 04:31:44 | → | euphores joins (~SASL_euph@user/euphores) |
| 2025-08-11 04:37:04 | × | lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Remote host closed the connection) |
| 2025-08-11 04:37:29 | × | distopico quits (~cerdolibr@xvm-111-150.dc2.ghst.net) (Ping timeout: 240 seconds) |
| 2025-08-11 04:37:42 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-08-11 04:38:44 | → | distopico joins (~cerdolibr@xvm-111-150.dc2.ghst.net) |
| 2025-08-11 04:38:52 | → | lambdabot joins (~lambdabot@haskell/bot/lambdabot) |
| 2025-08-11 04:38:52 | ChanServ | sets mode +v lambdabot |
| 2025-08-11 04:41:18 | × | phma quits (~phma@host-67-44-208-4.hnremote.net) (Read error: Connection reset by peer) |
| 2025-08-11 04:41:42 | × | driib318 quits (~driib@vmi931078.contaboserver.net) (Ping timeout: 252 seconds) |
| 2025-08-11 04:42:15 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-08-11 04:45:58 | → | phma joins (phma@2001:5b0:211f:e8b8:5c88:56cb:7320:3f0c) |
| 2025-08-11 04:50:24 | × | JamesMowery1773 quits (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) (Quit: Goodbye) |
| 2025-08-11 04:51:51 | → | JamesMowery17736 joins (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) |
| 2025-08-11 04:53:07 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-08-11 04:59:42 | <albet70> | monochrom , yes, what k's continuation would be like |
| 2025-08-11 05:00:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-08-11 05:02:50 | → | polykernel_ joins (~polykerne@user/polykernel) |
| 2025-08-11 05:06:22 | × | polykernel quits (~polykerne@user/polykernel) (Ping timeout: 255 seconds) |
| 2025-08-11 05:06:22 | polykernel_ | is now known as polykernel |
| 2025-08-11 05:11:08 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-08-11 05:15:52 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-08-11 05:16:07 | → | infinity0 joins (~infinity0@pwned.gg) |
| 2025-08-11 05:16:13 | → | mange joins (~mange@user/mange) |
| 2025-08-11 05:17:35 | → | Axman6 joins (~Axman6@user/axman6) |
| 2025-08-11 05:19:28 | → | driib318 joins (~driib@vmi931078.contaboserver.net) |
| 2025-08-11 05:22:01 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection) |
| 2025-08-11 05:22:23 | × | ynzoqn quits (~ynzoqn@user/ynzoqn) (Quit: Client closed) |
| 2025-08-11 05:22:40 | → | marinelli joins (~weechat@gateway/tor-sasl/marinelli) |
| 2025-08-11 05:22:41 | → | ynzoqn joins (~ynzoqn@user/ynzoqn) |
| 2025-08-11 05:26:31 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-08-11 05:26:53 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: irc.renjuan.org (juan@acm.org)) |
| 2025-08-11 05:29:26 | → | fp joins (~Thunderbi@89-27-10-140.bb.dnainternet.fi) |
| 2025-08-11 05:30:04 | × | euouae quits (~euouae@user/euouae) (Remote host closed the connection) |
| 2025-08-11 05:30:09 | × | ubert quits (~Thunderbi@178.165.170.207.wireless.dyn.drei.com) (Ping timeout: 260 seconds) |
| 2025-08-11 05:31:12 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-08-11 05:35:40 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 2025-08-11 05:37:51 | × | polykernel quits (~polykerne@user/polykernel) (Remote host closed the connection) |
| 2025-08-11 05:38:26 | → | polykernel joins (~polykerne@user/polykernel) |
| 2025-08-11 05:41:38 | <ski> | [| \(a,b) -> a + b |]_v = \((a,b),c) -> c (a + b) |
| 2025-08-11 05:41:59 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-08-11 05:41:59 | <ski> | [| \((a,b),c) -> c (a + b) |]_v = \(((a,b),c),k) -> c (a + b,k) |
| 2025-08-11 05:42:05 | <ski> | albet70 ^ |
| 2025-08-11 05:42:16 | <ski> | there you go |
| 2025-08-11 05:42:19 | <ski> | @type \((a,b),c) -> c (a + b) |
| 2025-08-11 05:42:20 | <lambdabot> | Num t1 => ((t1, t1), t1 -> t2) -> t2 |
| 2025-08-11 05:42:29 | <ski> | @type \(((a,b),c),k) -> c (a + b,k) |
| 2025-08-11 05:42:30 | <lambdabot> | Num a => (((a, a), (a, b) -> t), b) -> t |
| 2025-08-11 05:43:04 | <ski> | or, renaming a bit, using `Integer', and currying, we get |
| 2025-08-11 05:43:20 | <ski> | Integer -> Integer -> (Integer -> o) -> o |
| 2025-08-11 05:45:43 | <ski> | Integer -> Integer -> (Integer -> po -> p) -> po -> p |
| 2025-08-11 05:46:06 | <ski> | setting `po = p -> o', for the latter one, we get |
| 2025-08-11 05:46:22 | <ski> | Integer -> Integer -> (Integer -> (p -> o) -> p) -> (p -> o) -> p |
| 2025-08-11 05:46:31 | <ski> | and these two then becomes |
| 2025-08-11 05:46:36 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2025-08-11 05:46:45 | <ski> | Integer -> Integer -> Cont o Integer |
| 2025-08-11 05:47:23 | <ski> | er, no, we should use `po = o -> p', actually .. |
| 2025-08-11 05:47:35 | <ski> | Integer -> Integer -> (Integer -> (o -> p) -> p) -> (o -> p) -> p |
| 2025-08-11 05:47:48 | <ski> | so |
| 2025-08-11 05:48:01 | <ski> | Integer -> Integer -> (Integer -> Cont p o) -> Cont p o |
All times are in UTC.