2025-04-16 22:41:57 +0200Angelz(Angelz@2605:6400:30:fc15:d55b:fa6c:bd14:9973) (Changing host)
2025-04-16 22:41:57 +0200Angelz(Angelz@user/angelz) angelz
2025-04-16 22:42:03 +0200AngelzANgelz
2025-04-16 22:42:07 +0200ANgelzAngelz
2025-04-16 22:42:31 +0200inca(~inca@71.30.233.213)
2025-04-16 22:43:43 +0200Angelzgadot
2025-04-16 22:46:31 +0200 <haskellbridge> <Liamzee> is there a specialize everything option?
2025-04-16 22:47:05 +0200 <haskellbridge> <Liamzee> EvanR: play.haskell.org
2025-04-16 22:47:40 +0200inca(~inca@71.30.233.213) (Ping timeout: 276 seconds)
2025-04-16 22:47:53 +0200 <haskellbridge> <Liamzee> hellwolf: actually, foldr is all you need, not sure if probie will explain why, though
2025-04-16 22:48:37 +0200inca(~inca@71.30.233.213)
2025-04-16 22:48:58 +0200 <EvanR> foldr is the induction principle for List
2025-04-16 22:49:19 +0200 <geekosaur> -fspecialise-aggressively, I think?
2025-04-16 22:52:15 +0200 <haskellbridge> <Liamzee> thanks
2025-04-16 22:52:24 +0200 <haskellbridge> <Liamzee> induction principle for []?
2025-04-16 22:52:39 +0200 <EvanR> if z :: B and f :: (A -> B -> B) then there's a function g :: [A] -> B such that g [] = z and g (x:xs) = f x (g xs)
2025-04-16 22:52:40 +0200 <haskellbridge> <Liamzee> foldr is the actual best analogue to for loop, not for_
2025-04-16 22:53:19 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-16 22:54:07 +0200 <EvanR> and foldr f z computes g using recursion
2025-04-16 22:55:12 +0200 <haskellbridge> <Liamzee> thanks for restating the builder rewrite rule
2025-04-16 22:55:20 +0200 <haskellbridge> <Liamzee> in a way easier for me to understand
2025-04-16 22:58:10 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-16 22:59:16 +0200takuan(~takuan@d8D86B601.access.telenet.be)
2025-04-16 22:59:17 +0200 <EvanR> it lets you define a large class of functions on [A]
2025-04-16 22:59:23 +0200jespada(~jespada@r190-133-10-247.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…)
2025-04-16 22:59:30 +0200 <EvanR> though I'm not sure how large
2025-04-16 22:59:43 +0200 <haskellbridge> <Liamzee> implicitly, there are functions on [a] that cannot be defined by foldr
2025-04-16 22:59:55 +0200 <EvanR> that is a bold claim
2025-04-16 23:00:10 +0200inca(~inca@71.30.233.213) (Ping timeout: 252 seconds)
2025-04-16 23:00:29 +0200 <haskellbridge> <Liamzee> i guess large doesn't imply a subset of all functions on [a]
2025-04-16 23:00:58 +0200 <c_wraith> It's not a bold claim.
2025-04-16 23:01:04 +0200 <EvanR> what's an example
2025-04-16 23:01:16 +0200 <c_wraith> It's got equivalent computational power to primitive recursion (paramorphism)
2025-04-16 23:01:21 +0200 <haskellbridge> <Liamzee> i thought that was what you said by saying "a large class of functions on [a]"
2025-04-16 23:01:24 +0200 <c_wraith> so it can't be used for Ackernman's function, for example
2025-04-16 23:01:40 +0200 <EvanR> ackermann is on numbers
2025-04-16 23:01:49 +0200 <c_wraith> definte ackerman on the length of lists
2025-04-16 23:02:31 +0200 <EvanR> so ackermann is recursive but not primitive recursive
2025-04-16 23:02:34 +0200 <c_wraith> yes
2025-04-16 23:02:59 +0200 <c_wraith> that's the main reason anyone knows about it. It was the first example used to demonstrate primitive recursion is less powerful than general recursion
2025-04-16 23:03:52 +0200inca(~inca@71.30.233.213)
2025-04-16 23:06:34 +0200 <EvanR> so after this tiny quest we come back to the shire and conclude, no, foldr is not all you need xD
2025-04-16 23:07:28 +0200michalz(~michalz@185.246.207.197) (Remote host closed the connection)
2025-04-16 23:07:56 +0200 <c_wraith> but it is very uncommon to need more :)
2025-04-16 23:09:00 +0200 <EvanR> fine. *puts ackermann on a boat to Valinor*
2025-04-16 23:09:22 +0200 <c_wraith> the true danger of being a foundational computer scientist
2025-04-16 23:11:13 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-16 23:11:20 +0200 <haskellbridge> <Liamzee> afaik tomjaguarpaw / Tom Ellis's point
2025-04-16 23:11:38 +0200 <haskellbridge> <Liamzee> was that you could reconstruct imperative programming just by combining Bluefin with For
2025-04-16 23:12:21 +0200 <haskellbridge> <Liamzee> since you'd get the short-circuiting behavior and potentially unrestricted effects via for_ + bluefin
2025-04-16 23:12:40 +0200 <haskellbridge> <Liamzee> my counterpoint is that you can just ditch bluefin for loops by going straight to foldr
2025-04-16 23:14:15 +0200 <EvanR> who
2025-04-16 23:15:29 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-04-16 23:15:32 +0200inca(~inca@71.30.233.213) (Ping timeout: 268 seconds)
2025-04-16 23:15:37 +0200 <haskellbridge> <Liamzee> "tom from bluefin"
2025-04-16 23:16:36 +0200 <haskellbridge> <Liamzee> Groq engineer, Vice Chair, Vice Treasurer of Haskell Foundation
2025-04-16 23:17:32 +0200inca(~inca@71.30.233.213)
2025-04-16 23:17:48 +0200 <tomsmeding> also a nice guy
2025-04-16 23:20:12 +0200 <haskellbridge> <Liamzee> that's the most important trait! :3
2025-04-16 23:20:21 +0200Inst(~Inst@user/Inst) Inst
2025-04-16 23:23:46 +0200prdak(~Thunderbi@user/prdak) prdak
2025-04-16 23:26:46 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-16 23:28:21 +0200inca(~inca@71.30.233.213) (Ping timeout: 248 seconds)
2025-04-16 23:29:15 +0200inca(~inca@71.30.233.213)
2025-04-16 23:30:41 +0200Inst(~Inst@user/Inst) (Remote host closed the connection)
2025-04-16 23:31:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-16 23:31:59 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2025-04-16 23:34:55 +0200j1n37-(~j1n37@user/j1n37) j1n37
2025-04-16 23:35:20 +0200j1n37(~j1n37@user/j1n37) (Ping timeout: 265 seconds)
2025-04-16 23:38:40 +0200weary-traveler(~user@user/user363627) user363627
2025-04-16 23:40:19 +0200inca(~inca@71.30.233.213) (Ping timeout: 276 seconds)
2025-04-16 23:42:11 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-16 23:48:28 +0200inca(~inca@71.30.233.213)
2025-04-16 23:49:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-16 23:49:21 +0200notdabs(~Owner@2600:1700:69cf:9000:e035:2729:333c:ea)
2025-04-17 00:01:30 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-17 00:02:25 +0200j1n37-(~j1n37@user/j1n37) (Ping timeout: 276 seconds)
2025-04-17 00:02:30 +0200takuan(~takuan@d8D86B601.access.telenet.be) (Remote host closed the connection)
2025-04-17 00:03:03 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-17 00:07:01 +0200jespada(~jespada@r190-133-10-247.dialup.adsl.anteldata.net.uy) jespada
2025-04-17 00:07:42 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-17 00:10:26 +0200j1n37(~j1n37@user/j1n37) (Read error: Connection reset by peer)
2025-04-17 00:13:08 +0200tromp(~textual@2001:1c00:3487:1b00:c0e6:9a43:de22:8c0a) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-04-17 00:15:29 +0200j1n37(~j1n37@user/j1n37) j1n37
2025-04-17 00:18:20 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:322:62f9:6518:a6a8) hgolden
2025-04-17 00:18:40 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-17 00:22:09 +0200hgolden(~hgolden@2603:8000:9d00:3ed1:322:62f9:6518:a6a8) (Remote host closed the connection)
2025-04-17 00:23:20 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-04-17 00:27:51 +0200notdabs(~Owner@2600:1700:69cf:9000:e035:2729:333c:ea) (Quit: Leaving)
2025-04-17 00:36:58 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-17 00:41:33 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2025-04-17 00:52:10 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Remote host closed the connection)
2025-04-17 00:53:10 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-04-17 00:53:53 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-17 00:58:24 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)
2025-04-17 01:06:36 +0200sprotte24(~sprotte24@p200300d16f081b009801dcc9b07045e3.dip0.t-ipconnect.de) (Quit: Leaving)
2025-04-17 01:08:06 +0200forell(~forell@user/forell) (Ping timeout: 272 seconds)
2025-04-17 01:09:21 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-04-17 01:09:35 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds)
2025-04-17 01:10:46 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj