Newest at the top
2025-05-06 19:46:19 +0200 | <haskellbridge> | <yin> ski: fair |
2025-05-06 19:41:46 +0200 | tromp | (~textual@2001:1c00:3487:1b00:cdc3:f42b:30fc:1c61) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-05-06 19:40:05 +0200 | merijn | (~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 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2025-05-06 19:35:52 +0200 | bdmg_ | (~myJebba@177.138.161.234) |
2025-05-06 19:35:01 +0200 | merijn | (~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 +0200 | krei-se- | (~krei-se@p200300f1cfff35bada9ef3fffe7fdac8.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
2025-05-06 19:33:33 +0200 | tomsmeding | feels that's connected more to programming style than language semantics |
2025-05-06 19:33:19 +0200 | Guest708 | (~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 +0200 | tzh | (~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 +0200 | Guest708 | (~John@host-176-38-28-247.b026.la.net.ua) |
2025-05-06 19:24:25 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-05-06 19:23:44 +0200 | sajenim | (~sajenim@user/sajenim) (Ping timeout: 252 seconds) |
2025-05-06 19:19:12 +0200 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-05-06 19:18:51 +0200 | ColinRobinson | (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
2025-05-06 19:16:21 +0200 | amadaluzia | (~amadaluzi@user/amadaluzia) amadaluzia |
2025-05-06 19:15:33 +0200 | thelounge9847 | (~thelounge@host-176-38-28-247.b026.la.net.ua) (Quit: The Lounge - https://thelounge.chat) |
2025-05-06 19:15:09 +0200 | ttybitnik | (~ttybitnik@user/wolper) ttybitnik |
2025-05-06 19:13:26 +0200 | acidjnk | (~acidjnk@p200300d6e71c4f5301468c1cc0256076.dip0.t-ipconnect.de) acidjnk |
2025-05-06 19:11:55 +0200 | <int-e> | EvanR: exactly |
2025-05-06 19:10:56 +0200 | thelounge9847 | (~thelounge@host-176-38-28-247.b026.la.net.ua) |
2025-05-06 19:08:44 +0200 | JuanDaugherty | ColinRobinson |
2025-05-06 19:08:39 +0200 | euleritian | (~euleritia@dynamic-176-006-138-148.176.6.pool.telefonica.de) |
2025-05-06 19:08:20 +0200 | euleritian | (~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 +0200 | machinedgod | (~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 +0200 | rvalue | (~rvalue@user/rvalue) rvalue |
2025-05-06 18:47:04 +0200 | werneta | (~werneta@syn-071-083-160-242.res.spectrum.com) (Ping timeout: 252 seconds) |
2025-05-06 18:47:01 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2025-05-06 18:46:49 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2025-05-06 18:46:04 +0200 | wootehfoot | (~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 +0200 | tabaqui | (~tabaqui@167.71.80.236) (Ping timeout: 252 seconds) |
2025-05-06 18:24:39 +0200 | merijn | (~merijn@77.242.116.146) (Ping timeout: 268 seconds) |
2025-05-06 18:23:37 +0200 | tromp | (~textual@2001:1c00:3487:1b00:cdc3:f42b:30fc:1c61) |
2025-05-06 18:21:08 +0200 | tromp | (~textual@2001:1c00:3487:1b00:cdc3:f42b:30fc:1c61) (Quit: My iMac has gone to sleep. ZZZzzz…) |