2024-11-07 00:00:01 +0100 | wryishly | (~wryish@216.246.119.62) (Ping timeout: 248 seconds) |
2024-11-07 00:00:04 +0100 | rune_ | (sid21167@id-21167.ilkley.irccloud.com) (Ping timeout: 260 seconds) |
2024-11-07 00:00:04 +0100 | snek | (sid280155@id-280155.lymington.irccloud.com) (Ping timeout: 260 seconds) |
2024-11-07 00:00:27 +0100 | jjhoo | (~jahakala@user/jjhoo) jjhoo |
2024-11-07 00:00:29 +0100 | Miroboru | (~myrvoll@178-164-114.82.3p.ntebredband.no) Miroboru |
2024-11-07 00:00:29 +0100 | hacklschorsch | (~flo@2a01:4f9:3a:2296::2) |
2024-11-07 00:00:45 +0100 | s4msung | (~s4msung@user/s4msung) s4msung |
2024-11-07 00:00:51 +0100 | NiKaN | (sid385034@id-385034.helmsley.irccloud.com) NiKaN |
2024-11-07 00:00:54 +0100 | snek | (sid280155@id-280155.lymington.irccloud.com) snek |
2024-11-07 00:00:55 +0100 | rune_ | (sid21167@id-21167.ilkley.irccloud.com) |
2024-11-07 00:01:11 +0100 | Techcable | (sid534393@user/Techcable) Techcable |
2024-11-07 00:01:11 +0100 | tritlo | (sid58727@id-58727.hampstead.irccloud.com) |
2024-11-07 00:01:24 +0100 | aristid | (sid1599@id-1599.uxbridge.irccloud.com) |
2024-11-07 00:01:49 +0100 | thaumavorio | (~thaumavor@thaumavor.io) thaumavorio |
2024-11-07 00:01:54 +0100 | notzmv | (~daniel@user/notzmv) (Ping timeout: 246 seconds) |
2024-11-07 00:04:14 +0100 | <probie> | When did Haskell get the IO type? ~1996? |
2024-11-07 00:04:23 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-07 00:04:41 +0100 | Square2 | (~Square4@user/square) Square |
2024-11-07 00:04:51 +0100 | alexherbo2 | (~alexherbo@2a02-8440-341a-456e-a8d1-f94d-35c3-2d26.rev.sfr.net) alexherbo2 |
2024-11-07 00:05:44 +0100 | <Rembane> | Yeah, it's a bit older, 1993ish. https://ncatlab.org/nlab/show/IO-monad |
2024-11-07 00:05:47 +0100 | <Rembane> | https://dl.acm.org/doi/10.1145/158511.158524 |
2024-11-07 00:06:03 +0100 | <EvanR> | uniqueness types? |
2024-11-07 00:07:28 +0100 | Square | (~Square@user/square) (Ping timeout: 245 seconds) |
2024-11-07 00:07:30 +0100 | <dolio> | 1.3 is the first report with it. |
2024-11-07 00:07:44 +0100 | Square2 | Square |
2024-11-07 00:08:56 +0100 | <dolio> | The 1993 citation is dated 1992 if you click on it. :รพ |
2024-11-07 00:09:03 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-11-07 00:09:27 +0100 | <Rembane> | Good stuff :D |
2024-11-07 00:09:38 +0100 | <Rembane> | This is why I don't trust time |
2024-11-07 00:10:03 +0100 | <EvanR> | the researcher was merlin, who famously experienced time backwards |
2024-11-07 00:10:12 +0100 | <dolio> | Ah, of course. |
2024-11-07 00:12:20 +0100 | <Rembane> | It must've been a real trip to talk to him |
2024-11-07 00:13:59 +0100 | <dolio> | Even the 1.0 report has the continuation based I/O which, if you looked at it today, you might figure out it could be factored into a monad. |
2024-11-07 00:15:10 +0100 | <dolio> | It's like every IO operation has (>>=) stuck onto it already, and maybe catch. |
2024-11-07 00:16:02 +0100 | <Inst> | Clean predates Haskell, interestingly enough. |
2024-11-07 00:17:21 +0100 | unlucy | (sid572875@user/unlucy) unlucy |
2024-11-07 00:17:46 +0100 | <Rembane> | How does Clean before Haskell handle IO? |
2024-11-07 00:19:48 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-07 00:22:12 +0100 | <int-e> | "Consequently, a Clean program consists of a set of rewrite rules." -- 1987 Clean was a language for expressing graph rewriting systems. |
2024-11-07 00:22:41 +0100 | <int-e> | cf. https://wiki.clean.cs.ru.nl/Publications#1987 |
2024-11-07 00:23:16 +0100 | visilii | (~visilii@85.172.77.90) (Quit: ZNC - https://znc.in) |
2024-11-07 00:23:34 +0100 | visilii | (~visilii@85.172.77.90) |
2024-11-07 00:23:48 +0100 | <probie> | https://www.mbsd.cs.ru.nl/publications/papers/1992/achp92-HighLevelIO.pdf 1992 seems to be where IO appears in Clear |
2024-11-07 00:24:20 +0100 | <int-e> | stdin was provided as a list of newline-terminated lines. So it's the main :: [String] -> [String] type of I/O. |
2024-11-07 00:24:24 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-11-07 00:24:54 +0100 | <Rembane> | Isn't that how very early Haskell did I/O? |
2024-11-07 00:25:20 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-11-07 00:25:22 +0100 | <dolio> | Sort of. But the types are more complex, I think. |
2024-11-07 00:25:44 +0100 | <dolio> | Not just strings. |
2024-11-07 00:25:57 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-11-07 00:26:12 +0100 | <int-e> | Hmm 1988 has a related language called LEAN? Hehe. |
2024-11-07 00:26:36 +0100 | <Rembane> | I need the languages EAN, AN and N too. |
2024-11-07 00:26:42 +0100 | CrunchyFlakes | (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds) |
2024-11-07 00:26:52 +0100 | CrunchyFlakes | (~CrunchyFl@31.19.233.78) |
2024-11-07 00:27:18 +0100 | Everything | (~Everythin@178-133-140-206.mobile.vf-ua.net) (Remote host closed the connection) |
2024-11-07 00:27:38 +0100 | <probie> | I think `UNQ` in early Clean appears slightly before monadic IO in early Haskell, since the first monadic IO paper that's been found so far references the Clean one. |
2024-11-07 00:27:43 +0100 | visilii | (~visilii@85.172.77.90) (Client Quit) |
2024-11-07 00:28:36 +0100 | visilii | (~visilii@85.172.77.90) |
2024-11-07 00:30:40 +0100 | pavonia | (~user@user/siracusa) siracusa |
2024-11-07 00:31:22 +0100 | <Inst> | I think you can consider IO in Haskell a very primitive / early effect system, but I don't think you can say the same for Clean's uniqueness types, which seem to be a more of linearity |
2024-11-07 00:31:51 +0100 | <Inst> | so then you can argue that Haskell had the first effect system |
2024-11-07 00:35:12 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-07 00:38:09 +0100 | kstatz12 | (~karl@user/kstatz12) kstatz12 |
2024-11-07 00:38:12 +0100 | <int-e> | 1992 CLEAN still had rules, 1994 CLEAN started to look more like Haskell. |
2024-11-07 00:38:14 +0100 | int-e | shrugs |
2024-11-07 00:38:42 +0100 | <int-e> | Anyway, the lesson here is that languages evolve, so dates of conception can be misleading. |
2024-11-07 00:38:54 +0100 | SlackCoder | (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving) |
2024-11-07 00:39:31 +0100 | <dolio> | I'm curious what Miranda did, but I can't find my copy of the manual. |
2024-11-07 00:39:52 +0100 | kstatz12 | (~karl@user/kstatz12) (Client Quit) |
2024-11-07 00:40:33 +0100 | <haskellbridge> | <Bowuigi> Miranda has a sys_message ADT, main uses a list of that |
2024-11-07 00:40:56 +0100 | <sshine> | Inst, I understand that IO came to Haskell at some later point. |
2024-11-07 00:41:00 +0100 | <dolio> | In '85, though? |
2024-11-07 00:41:13 +0100 | <sshine> | I was born that year! |
2024-11-07 00:41:44 +0100 | <dolio> | I mean, that would make somse sense, because Haskell was essentially Miranda with a few tweaks. |
2024-11-07 00:42:07 +0100 | <int-e> | sshine: so how do you feel about turning ancient next year *runs* |
2024-11-07 00:42:12 +0100 | <sshine> | https://okmij.org/ftp/Computation/IO-monad-history.html |
2024-11-07 00:42:23 +0100 | <sshine> | apparently I'm not as ancient as the IO monad after all |
2024-11-07 00:42:24 +0100 | acidjnk | (~acidjnk@p200300d6e7283f63c008ff7276864804.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
2024-11-07 00:44:17 +0100 | <sshine> | well, it ain't 0x20 or 0x30, but it's a pretty number. :) |
2024-11-07 00:47:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-11-07 00:51:33 +0100 | hueso | (~root@user/hueso) (Quit: hueso) |
2024-11-07 00:57:37 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
2024-11-07 00:58:00 +0100 | Versality | (~Versality@user/Versality) (Remote host closed the connection) |
2024-11-07 00:58:14 +0100 | Versality | (~Versality@84.237.180.62) |
2024-11-07 00:58:14 +0100 | Versality | (~Versality@84.237.180.62) (Changing host) |
2024-11-07 00:58:14 +0100 | Versality | (~Versality@user/Versality) Versality |
2024-11-07 01:00:26 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-07 01:04:51 +0100 | hueso | (~root@user/hueso) hueso |
2024-11-07 01:05:05 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-11-07 01:06:18 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-11-07 01:12:02 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2024-11-07 01:14:10 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 260 seconds) |
2024-11-07 01:14:10 +0100 | ljdarj1 | ljdarj |
2024-11-07 01:14:57 +0100 | supercode | (~supercode@user/supercode) (Quit: Client closed) |
2024-11-07 01:15:32 +0100 | sprotte24 | (~sprotte24@p200300d16f45f60044d2f8c33ad18940.dip0.t-ipconnect.de) (Quit: Leaving) |
2024-11-07 01:15:47 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-07 01:20:23 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-11-07 01:22:12 +0100 | xff0x | (~xff0x@2405:6580:b080:900:3e16:56e8:fa8f:748e) (Ping timeout: 276 seconds) |
2024-11-07 01:23:04 +0100 | <monochrom> | Haha so there is opportunity for saying "Lean 88"?! :) |
2024-11-07 01:27:25 +0100 | <monochrom> | But I disagree with Oleg in thinking of () as world state. Instead, it is more honest without sacrificing pragmatics to adopt that in "() -> Codomain" the -> is a Kleisli arrow. |
2024-11-07 01:28:38 +0100 | TonyStone | (~TonyStone@user/TonyStone) (Quit: Leaving) |
2024-11-07 01:28:54 +0100 | TonyStone | (~TonyStone@user/TonyStone) TonyStone |
2024-11-07 01:31:11 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-11-07 01:33:10 +0100 | <haskellbridge> | <zwro> would we be better off without undefined and error and other bottoms? could we guarantee totality (modulo termination)? |
2024-11-07 01:34:07 +0100 | <geekosaur> | no, because there are other ways to get bottoms any time there are external inputs |