Newest at the top
| 2026-03-11 09:26:39 +0100 | tusko | (~uwu@user/tusko) tusko |
| 2026-03-11 09:26:24 +0100 | tusko | (~uwu@user/tusko) (Remote host closed the connection) |
| 2026-03-11 09:24:16 +0100 | <oskarw> | *that your |
| 2026-03-11 09:24:04 +0100 | <oskarw> | probie: You forgot that you burritos are wraped on space and are send back to you on Earth |
| 2026-03-11 09:21:39 +0100 | Digitteknohippie | Digit |
| 2026-03-11 09:21:06 +0100 | chromoblob | (~chromoblo@user/chromob1ot1c) (Ping timeout: 244 seconds) |
| 2026-03-11 09:19:36 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-03-11 09:19:23 +0100 | <Rembane> | Hard agree |
| 2026-03-11 09:19:14 +0100 | <[exa]> | impure |
| 2026-03-11 09:18:27 +0100 | <[exa]> | people still do pizza and similar hard-to-wrap nonsense |
| 2026-03-11 09:18:16 +0100 | <[exa]> | I find this useful analogy under-used at meetups |
| 2026-03-11 09:16:51 +0100 | <Rembane> | Infinite breakfast |
| 2026-03-11 09:16:47 +0100 | <Rembane> | Gotta have all the burritos |
| 2026-03-11 09:16:42 +0100 | <[exa]> | burrito filling that spawns more burritos....y u m m y |
| 2026-03-11 09:14:08 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-03-11 09:13:45 +0100 | humasect | (~humasect@184.151.37.182) humasect |
| 2026-03-11 09:09:13 +0100 | <probie> | A monad is like a burrito, if you're a weirdo who uses smaller burritos as a filling for bigger burritos |
| 2026-03-11 09:07:24 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-03-11 09:03:55 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2026-03-11 09:02:45 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-03-11 08:59:39 +0100 | humasect | (~humasect@184.151.37.182) (Quit: Leaving...) |
| 2026-03-11 08:55:41 +0100 | <[exa]> | who said that thing with "abstract complex are elucidated by throwing examples at them" |
| 2026-03-11 08:55:20 +0100 | <[exa]> | +1000 ^ |
| 2026-03-11 08:55:19 +0100 | poscat | (~poscat@user/poscat) (Ping timeout: 245 seconds) |
| 2026-03-11 08:54:43 +0100 | <ski> | mesaoptimizer : do note that most "monad tutorials" out there are bad (unhelpful, hinders comprehension) |
| 2026-03-11 08:53:56 +0100 | poscat0x04 | (~poscat@user/poscat) poscat |
| 2026-03-11 08:53:38 +0100 | CiaoSen | (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen |
| 2026-03-11 08:51:50 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-03-11 08:49:37 +0100 | oskarw | (~user@user/oskarw) oskarw |
| 2026-03-11 08:49:34 +0100 | Digitteknohippie | (~user@user/digit) Digit |
| 2026-03-11 08:49:24 +0100 | Digit | (~user@user/digit) (Ping timeout: 256 seconds) |
| 2026-03-11 08:46:59 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-03-11 08:46:48 +0100 | <Axman6> | It's basically how we taught things in the NICTA/Data61/System F FP course - here's a type, here's a function which uses that typew, implement the function that matches that type (hint there is 1/2/infinite ways to do that). Here's another type, here's a function's type: implement the function with that type... Hey, their types look really similar, can we do something with that? |
| 2026-03-11 08:44:57 +0100 | <opqdonut> | yes, agreed |
| 2026-03-11 08:44:44 +0100 | <Axman6> | There's a lot of external pressure to explain monads, because they're the big boogie man of Haskell people struggle to understand - but they'd be much better off starting to use things which are monads first, and then see that there's a common interface for them |
| 2026-03-11 08:44:19 +0100 | <mesaoptimizer> | nor that the laws necessarily hold if you define an instance of the classes |
| 2026-03-11 08:44:07 +0100 | <mesaoptimizer> | I see. Sure, perhaps I figure it out via learning to be comfortable with actual instances of these type classes. I'll try that. I didn't have the misconception that it was directly related to the category theoretic concepts, of course |
| 2026-03-11 08:43:53 +0100 | <humasect> | depends where one starts after all |
| 2026-03-11 08:42:46 +0100 | <dminuoso> | The biggest pedagogic mistake of Haskell. |
| 2026-03-11 08:42:01 +0100 | <dminuoso> | mesaoptimizer: I mean most individual instances of Applicative/Monad are trivial enough to figure out in a minute or two as long as you have more than a week of programming experience - and that knowledge is likely enough to become competent in Haskell.. |
| 2026-03-11 08:40:26 +0100 | ski | . o O ( "How to Replace Failure by a List of Successes: A method for exception handling, backtracking, and pattern matching in lazy functional languages" by Philip Wadler in 1985 at <http://www.rkrishnan.org/files/wadler-1985.pdf> ) |
| 2026-03-11 08:40:09 +0100 | <humasect> | yea; it clicks when it clicks |
| 2026-03-11 08:39:25 +0100 | <dminuoso> | I'd be willing to bet you can learn Haskell just fine without understanding what Applicative or Monad "are" |
| 2026-03-11 08:38:59 +0100 | <dminuoso> | irrelevant for learning haskell. |
| 2026-03-11 08:38:57 +0100 | <dminuoso> | mesaoptimizer: Some of the reasons that Applicative/Monad are difficult to understand are an obscure name and the fact that the pattern they abstract over something that has no "purpose" or "intent", just an observation that there's some things that just follow the same form and laws... I personally think that too much time is lost trying to focus around what they mean because it's almost entirely |
| 2026-03-11 08:38:13 +0100 | arandombit | (~arandombi@user/arandombit) (Ping timeout: 244 seconds) |
| 2026-03-11 08:36:12 +0100 | <mesaoptimizer> | dminuoso: I see, that's useful to know |
| 2026-03-11 08:36:03 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-03-11 08:35:57 +0100 | <dminuoso> | Forget what I said, then. |
| 2026-03-11 08:35:56 +0100 | <mesaoptimizer> | Functors are easy to wrap one's head around via just the type signature. Applicatives and Monad type signatures seem a bit harder to understand just by looking at it though |