2024/10/18

Newest at the top

2024-10-18 13:22:45 +0200ubert(~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 246 seconds)
2024-10-18 13:20:24 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds)
2024-10-18 13:20:19 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 13:18:52 +0200Flow(~none@gentoo/developer/flow) (Ping timeout: 272 seconds)
2024-10-18 13:18:43 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds)
2024-10-18 13:18:10 +0200rvalue(~rvalue@user/rvalue) rvalue
2024-10-18 13:17:50 +0200 <Inst> i still blame Eric Normand for not understanding what a -> a means when he should know better for having worked at Scrive on a Haskell project
2024-10-18 13:17:44 +0200rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-10-18 13:17:34 +0200 <Inst> i should read up on parametricity and how bang patterns actually work, i guess
2024-10-18 13:16:40 +0200robobub(uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2024-10-18 13:13:49 +0200ft(~ft@p4fc2a216.dip0.t-ipconnect.de) ft
2024-10-18 13:13:36 +0200euleritian(~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de)
2024-10-18 13:09:56 +0200Digit(~user@user/digit) (Ping timeout: 252 seconds)
2024-10-18 13:09:54 +0200Digitteknohippie(~user@user/digit) Digit
2024-10-18 13:05:55 +0200leah2(~leah@vuxu.org) leah2
2024-10-18 13:04:12 +0200euleritian(~euleritia@tmo-125-85.customers.d1-online.com) (Ping timeout: 246 seconds)
2024-10-18 13:03:08 +0200alexherbo2(~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) alexherbo2
2024-10-18 13:00:25 +0200 <tomsmeding> and at that point you also evaluate the argument to id
2024-10-18 13:00:14 +0200 <tomsmeding> "id' = id" is true because sure, id' is strict in its argument, but that strictness only comes into play if you actually use the result of the id' call
2024-10-18 13:00:06 +0200euleritian(~euleritia@tmo-125-85.customers.d1-online.com)
2024-10-18 12:59:38 +0200 <tomsmeding> id = force is not true, but is true in the world of "total haskell"
2024-10-18 12:59:26 +0200merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-10-18 12:59:20 +0200 <tomsmeding> id' = id is actually true
2024-10-18 12:59:04 +0200 <Inst> but in general, we pretend that id' = id, or for that matter, let id'' = force, then again, force has an NFData constraint
2024-10-18 12:58:47 +0200mari-estel(~mari-este@user/mari-estel) (Remote host closed the connection)
2024-10-18 12:58:37 +0200acidjnk_new(~acidjnk@p200300d6e72cfb56e90e8e53bb556001.dip0.t-ipconnect.de) acidjnk
2024-10-18 12:57:58 +0200 <Inst> an unused value
2024-10-18 12:57:51 +0200 <Inst> the mystery is still, if you have in a let or where cluase, an unknown value, you can bang it and still get evaluation
2024-10-18 12:56:39 +0200 <Inst> :(
2024-10-18 12:56:27 +0200 <tomsmeding> ah, except of course when it doesn't because pattern matching is more complicated
2024-10-18 12:56:12 +0200euleritian(~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer)
2024-10-18 12:56:07 +0200 <tomsmeding> bang does become seq
2024-10-18 12:56:01 +0200 <yahb2> *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:19:32 in interactive:Ghci6
2024-10-18 12:56:01 +0200 <tomsmeding> % foo 3
2024-10-18 12:55:59 +0200 <tomsmeding> foo 3
2024-10-18 12:55:57 +0200 <yahb2> <no output>
2024-10-18 12:55:57 +0200 <tomsmeding> % let foo = x `seq` id where x = undefined
2024-10-18 12:55:27 +0200 <tomsmeding> Inst: you forgot the bang in your last example
2024-10-18 12:54:56 +0200 <Inst> hmmm, maybe i misunderstood when i thought bang = seq
2024-10-18 12:54:47 +0200 <Inst> https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0229-whitespace-bang-patterns…
2024-10-18 12:52:43 +0200kronicmage(~kronicmag@neotame.csclub.uwaterloo.ca)
2024-10-18 12:51:06 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2024-10-18 12:50:39 +0200leah2(~leah@vuxu.org) (Ping timeout: 260 seconds)
2024-10-18 12:50:34 +0200 <yahb2> 3
2024-10-18 12:50:34 +0200 <Inst> % foo 3
2024-10-18 12:50:29 +0200euleritian(~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de)
2024-10-18 12:50:27 +0200 <Inst> foo 3
2024-10-18 12:50:24 +0200 <yahb2> <no output>
2024-10-18 12:50:24 +0200 <Inst> % let foo = id where _ = undefined `seq` ()
2024-10-18 12:50:05 +0200 <yahb2> *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:11:25 in interactive:Ghci3