2024/12/22

Newest at the top

2024-12-22 19:18:23 +0100 <monochrom> s/look for/look to/ # English is hard, I hate prepositions
2024-12-22 19:18:02 +0100 <monochrom> Although, when you instead look for extending Curry-Howard to classical logic, call/cc is Pierce's law and is exactly the one single thing you need to complete classical logic.
2024-12-22 19:15:10 +0100housemate(~housemate@125.63.162.34) housemate
2024-12-22 19:13:30 +0100 <albet70> monochrom , callCC can capture the rest code which is after it?
2024-12-22 19:12:55 +0100 <monochrom> And Python's yield corresponds to shift-reset rather than call/cc. https://www.cs.indiana.edu/~sabry/papers/yield.pdf
2024-12-22 19:11:47 +0100 <albet70> is that redis distributed lock very like MVar?
2024-12-22 19:11:45 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-12-22 19:11:02 +0100 <monochrom> As Oleg points out, call/cc is not very nice. shift-reset is better. Even the Haskell Cont library provides shift-reset.
2024-12-22 19:10:06 +0100 <monochrom> Whereas with shift-reset you really always have multiple levels.
2024-12-22 19:09:43 +0100 <monochrom> Of course you get to say "but only within runCont" but it is not like you really have multiple levels of runCont.
2024-12-22 19:09:28 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2024-12-22 19:09:12 +0100 <monochrom> callCC is global because there is no reset to scope it.
2024-12-22 19:02:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-22 19:00:13 +0100Guest78(~Guest78@2a02:8084:1:6500::db)
2024-12-22 18:58:45 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 246 seconds)
2024-12-22 18:57:27 +0100 <albet70> can I say callCC is delimited continuation and call/cc is full contit?
2024-12-22 18:52:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2024-12-22 18:51:12 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-12-22 18:49:12 +0100 <ski> probie : i first solved it (out of curiosity), around 2007-04-10 (and made a smaller edit for elegance and generality, in 2011-06-14)
2024-12-22 18:48:21 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-12-22 18:47:41 +0100 <enikar> albet70: yes, r4rs is quite old.
2024-12-22 18:47:11 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-22 18:46:19 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-12-22 18:45:24 +0100 <ski> evalCont ca = ca `runCont` id -- `id' here is the initial ("empty") delimited/composable continuation
2024-12-22 18:44:36 +0100 <probie> ski: That sounds like a fun challenge. I think I'll have a go
2024-12-22 18:42:33 +0100 <albet70> ski , what's the delimited continuation
2024-12-22 18:41:51 +0100 <albet70> enikar , but call/cc still in r4rs?
2024-12-22 18:41:42 +0100 <ski> (albet70 : and no recursive computation needed/permitted, apart from the one inside `foldr')
2024-12-22 18:39:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-12-22 18:38:44 +0100 <ski> `callCC' is delimited by the `runCont'/`runContT', yes
2024-12-22 18:38:34 +0100 <enikar> albet70: https://okmij.org/ftp/continuations/against-callcc.html
2024-12-22 18:38:11 +0100 <sinbad> c_wraith: thank you
2024-12-22 18:38:00 +0100 <ski> albet70 : the challenge was to implement `zipWith' (or `zip', if you prefer), only traversing either input list (and only once), with a single call to `foldr' for each, not inspecting the lists in any way apart from that
2024-12-22 18:36:54 +0100__monty__(~toonn@user/toonn) (Ping timeout: 265 seconds)
2024-12-22 18:36:21 +0100 <enikar> there are arguments against call/cc.
2024-12-22 18:35:27 +0100son0p(~ff@186.121.98.118) son0p
2024-12-22 18:35:24 +0100 <albet70> callCC only capture what is inside callCC
2024-12-22 18:34:45 +0100 <albet70> call/cc in scheme can capture the outside/rest code of call/cc, I don't think Cont or callCC in haskell can do that
2024-12-22 18:32:56 +0100 <monochrom> You can make your own yield in Haskell: https://www.vex.net/~trebla/haskell/cont.xhtml#yield
2024-12-22 18:32:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-12-22 18:31:23 +0100son0p(~ff@186.121.98.118) (Remote host closed the connection)
2024-12-22 18:30:41 +0100 <enikar> ah! yield in python is awesome
2024-12-22 18:30:05 +0100 <albet70> I found that 'yield' in python can do that
2024-12-22 18:29:35 +0100 <enikar> it's what I use
2024-12-22 18:29:24 +0100 <enikar> sinbad: use (string "\n\n")
2024-12-22 18:29:21 +0100 <albet70> ski , how you did it?
2024-12-22 18:29:20 +0100 <c_wraith> Those are the two main ways
2024-12-22 18:29:13 +0100 <c_wraith> And my day 17 parser: https://github.com/chowells79/aoc/blob/main/2024/Day17.hs#L33-L48 . It matches a series of lines including the terminal \n, then matches one more \n before the next section.
2024-12-22 18:27:49 +0100zenmov(~zenmov@user/zenmov) (Ping timeout: 272 seconds)
2024-12-22 18:26:22 +0100 <c_wraith> Here's my day 19 aoc parser. It literally matches (string "\n\n") at one point. https://github.com/chowells79/aoc/blob/main/2024/Day19.hs#L21-L31