Newest at the top
2025-08-08 12:48:58 +0200 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
2025-08-08 12:48:30 +0200 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
2025-08-08 12:47:15 +0200 | athan | (~athan@syn-047-132-161-157.res.spectrum.com) (Ping timeout: 276 seconds) |
2025-08-08 12:46:56 +0200 | SlackCoder | (~SlackCode@64-94-63-8.ip.weststar.net.ky) SlackCoder |
2025-08-08 12:44:14 +0200 | poscat | (~poscat@user/poscat) poscat |
2025-08-08 12:43:43 +0200 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
2025-08-08 12:39:30 +0200 | ubert | (~Thunderbi@91.141.76.34.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
2025-08-08 12:39:14 +0200 | poscat | (~poscat@user/poscat) poscat |
2025-08-08 12:39:08 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2025-08-08 12:38:49 +0200 | haskellbridge | sm needs to find a better setup that's similarly convenient |
2025-08-08 12:38:39 +0200 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
2025-08-08 12:35:51 +0200 | <haskellbridge> | <sm> aha |
2025-08-08 12:35:10 +0200 | <mauke> | not specifically, but I have ublock origin configured to block all third-party scripts by default |
2025-08-08 12:34:45 +0200 | michalz | (~michalz@185.246.207.201) |
2025-08-08 12:33:51 +0200 | <haskellbridge> | <sm> mauke: yikes, thanks for letting me know. You have js disabled ? |
2025-08-08 12:32:49 +0200 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 248 seconds) |
2025-08-08 12:32:12 +0200 | michalz | (~michalz@185.246.207.218) (Remote host closed the connection) |
2025-08-08 12:30:06 +0200 | <kuribas> | So there would need to be some completeness property that prevents this, however most typesystems aren't complete. |
2025-08-08 12:29:41 +0200 | <kuribas> | If "forall a b. a -> b" has a substitution error, so checks as "forall a. a -> a", it would still be sound, but reject valid programs. |
2025-08-08 12:28:40 +0200 | <kuribas> | I was more thinking about formal proofs, but the idea is the same. |
2025-08-08 12:27:39 +0200 | sprotte24 | (~sprotte24@p200300d16f43d3003d43dd3d16486e1e.dip0.t-ipconnect.de) |
2025-08-08 12:25:16 +0200 | Guest84 | (~Guest84@2401:4900:1c52:d1bb:cc6f:4e7c:df27:efc5) (Quit: Client closed) |
2025-08-08 12:24:47 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 244 seconds) |
2025-08-08 12:20:47 +0200 | <[exa]> | (I'd say that would work just right, but given the sheer spectrum of stupid bugs that may happen in unification I wouldn't bet on it formally) |
2025-08-08 12:17:51 +0200 | <[exa]> | kuribas: if I got the question right, you're asking on whether having (quickcheck?) tests on the 2 properties passing implies that the internal "tools" in the typesystem (substitution) are working as intended? |
2025-08-08 12:17:12 +0200 | trickard_ | trickard |
2025-08-08 12:16:21 +0200 | <kuribas> | If I mess up the substitution for forall, the type system may be still sound, but reject valid programs. |
2025-08-08 12:15:36 +0200 | img | (~img@user/img) img |
2025-08-08 12:15:34 +0200 | <int-e> | mauke: https://publish-01.obsidian.md/access/599da60310a78cfd30ea6fd228437374/Haskell%20minimap.md is human readable ;) |
2025-08-08 12:14:16 +0200 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2025-08-08 12:03:52 +0200 | <mauke> | sm: sorry, not entirely blank. there is a single animated svg on it, spinning endlessly |
2025-08-08 12:03:45 +0200 | trickard_ | (~trickard@cpe-49-98-47-163.wireline.com.au) |
2025-08-08 12:03:31 +0200 | trickard_ | (~trickard@cpe-49-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
2025-08-08 12:02:53 +0200 | <kuribas> | Isn't rust closer to C++ though? Haskell is more high level than C++. It doesn't give you much control about memory layout and allocation though. |
2025-08-08 12:02:17 +0200 | <mauke> | but after using haskell, ocaml's syntax feels weird |
2025-08-08 12:01:52 +0200 | <mauke> | for a "halfway step" (static types, type inference, mostly functional, algebraic types, currying) without laziness (or type classes), you could look at ocaml |
2025-08-08 12:01:51 +0200 | <[exa]> | Guest84: there are various parts of many programming languages that help. Myself I'd recommend prolog first (so that you're able to code in templates easily) and Haskell helps with the "correct by construction" feeling (which is kinda present in C++ as the "keep all local state consistent" approach...more of a soft-skill imo.) |
2025-08-08 12:00:55 +0200 | <mauke> | sm: I love looking at blank pages |
2025-08-08 12:00:30 +0200 | <kuribas> | I can recommend https://www.seas.upenn.edu/~cis1940/spring13/ |
2025-08-08 12:00:20 +0200 | <haskellbridge> | <sm> and more stuff: https://joyful.com/Haskell+minimap |
2025-08-08 11:58:15 +0200 | <mauke> | Guest84: it's been a long time since I started learning haskell, but have you seen https://www.haskell.org/get-started/ ? |
2025-08-08 11:56:32 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds) |
2025-08-08 11:55:46 +0200 | <Guest84> | I even have some (read as very little) experience of functional style c++ and lisp. |
2025-08-08 11:55:24 +0200 | <Guest84> | Where do I start with ? |
2025-08-08 11:54:14 +0200 | <Guest84> | I do have a background with C++ for 10 years but I cant say I ever like OOPS. |
2025-08-08 11:54:13 +0200 | <Guest84> | A smart C++ programmer recommend me that I learn haskell to get better at C++. |
2025-08-08 11:52:53 +0200 | <kuribas> | For example, would it catch bugs in substitution? |
2025-08-08 11:52:44 +0200 | <kuribas> | If I implement a type system and type checker, would the progress and preservation properties garantee it is implemented correctly? |
2025-08-08 11:52:27 +0200 | oxapentane | (~oxapentan@user/oxapentane) oxapentane |
2025-08-08 11:51:55 +0200 | oxapentane | (~oxapentan@user/oxapentane) (Remote host closed the connection) |