2025/05/06

Newest at the top

2025-05-06 19:50:47 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-05-06 19:46:19 +0200 <haskellbridge> <yin> ski: fair
2025-05-06 19:41:46 +0200tromp(~textual@2001:1c00:3487:1b00:cdc3:f42b:30fc:1c61) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-05-06 19:40:05 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-05-06 19:37:09 +0200 <c_wraith> (though the compiler *does* still need to get the evaluation order correct with seq, and sometimes it doesn't)
2025-05-06 19:36:54 +0200ljdarj(~Thunderbi@user/ljdarj) ljdarj
2025-05-06 19:35:52 +0200bdmg_(~myJebba@177.138.161.234)
2025-05-06 19:35:01 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-05-06 19:34:30 +0200 <c_wraith> It makes your code much more resilient to compiler heuristic changes
2025-05-06 19:34:14 +0200 <c_wraith> Don't require it to get strictness analysis correct, just do it correctly yourself
2025-05-06 19:33:58 +0200 <c_wraith> It's mostly about making things easy for the compiler
2025-05-06 19:33:40 +0200krei-se-(~krei-se@p200300f1cfff35bada9ef3fffe7fdac8.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2025-05-06 19:33:33 +0200tomsmedingfeels that's connected more to programming style than language semantics
2025-05-06 19:33:19 +0200Guest708(~John@host-176-38-28-247.b026.la.net.ua) (Quit: Leaving)
2025-05-06 19:32:50 +0200 <c_wraith> My issue with the use in function heads is that usually it's happening a step too late. Like, I'd rather ensure I'm passing a value that's already evaluated than making sure it's evaluated when the function examines it
2025-05-06 19:31:59 +0200 <tomsmeding> at least the pattern converage checker explicitly deals with them
2025-05-06 19:31:44 +0200 <c_wraith> yeah
2025-05-06 19:31:40 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2025-05-06 19:31:39 +0200 <tomsmeding> and bangs in function heads interact with pattern matching, right?
2025-05-06 19:30:27 +0200 <c_wraith> that compilation inserts calls to seq for each !. ie, let !foo = bar in baz is equivalent to let foo = bar in foo `seq` baz
2025-05-06 19:28:06 +0200 <tomsmeding> what's the revelation?
2025-05-06 19:27:39 +0200 <c_wraith> I probably should have learned this 10 years ago. Or more.
2025-05-06 19:27:09 +0200 <c_wraith> huh. Ok, having learned how BangPatterns works in let/where bindings, I actually like it a lot better than I do in function heads
2025-05-06 19:25:48 +0200Guest708(~John@host-176-38-28-247.b026.la.net.ua)
2025-05-06 19:24:25 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds)
2025-05-06 19:23:44 +0200sajenim(~sajenim@user/sajenim) (Ping timeout: 252 seconds)
2025-05-06 19:19:12 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-05-06 19:18:51 +0200ColinRobinson(~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org))
2025-05-06 19:16:21 +0200amadaluzia(~amadaluzi@user/amadaluzia) amadaluzia
2025-05-06 19:15:33 +0200thelounge9847(~thelounge@host-176-38-28-247.b026.la.net.ua) (Quit: The Lounge - https://thelounge.chat)
2025-05-06 19:15:09 +0200ttybitnik(~ttybitnik@user/wolper) ttybitnik
2025-05-06 19:13:26 +0200acidjnk(~acidjnk@p200300d6e71c4f5301468c1cc0256076.dip0.t-ipconnect.de) acidjnk
2025-05-06 19:11:55 +0200 <int-e> EvanR: exactly
2025-05-06 19:10:56 +0200thelounge9847(~thelounge@host-176-38-28-247.b026.la.net.ua)
2025-05-06 19:08:44 +0200JuanDaughertyColinRobinson
2025-05-06 19:08:39 +0200euleritian(~euleritia@dynamic-176-006-138-148.176.6.pool.telefonica.de)
2025-05-06 19:08:20 +0200euleritian(~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2025-05-06 18:56:49 +0200 <EvanR> currying ... the implementation of multi-argument functions as nested single argument functions. Haskell only has single argument functions then GHC can take the liberty of implementing them as multiargument functions. The exact opposite!
2025-05-06 18:51:12 +0200 <int-e> (Though that's GHC territory, not Haskell per se.)
2025-05-06 18:51:10 +0200machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2025-05-06 18:49:56 +0200 <int-e> heh but maybe you could make the argument that the "S" in "STG" is a form of automatic uncurrying
2025-05-06 18:47:30 +0200rvalue(~rvalue@user/rvalue) rvalue
2025-05-06 18:47:04 +0200werneta(~werneta@syn-071-083-160-242.res.spectrum.com) (Ping timeout: 252 seconds)
2025-05-06 18:47:01 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2025-05-06 18:46:49 +0200rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2025-05-06 18:46:04 +0200wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2025-05-06 18:45:23 +0200 <ski> yin : fwiw, Haskell does not "feature automatic currying"
2025-05-06 18:31:58 +0200tabaqui(~tabaqui@167.71.80.236) (Ping timeout: 252 seconds)
2025-05-06 18:24:39 +0200merijn(~merijn@77.242.116.146) (Ping timeout: 268 seconds)
2025-05-06 18:23:37 +0200tromp(~textual@2001:1c00:3487:1b00:cdc3:f42b:30fc:1c61)