Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,793,199 events total
2026-04-13 11:32:39 <fp`> No, I'm just doing some linear algebra, shouldn't be any concurrency in sight
2026-04-13 11:34:51 <alter2000> then I'd say it's a safe bet; chances are a good chunk of your potential users are already somewhat familiar with lisp style parameter/argument threading
2026-04-13 11:39:36 haritz joins (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8)
2026-04-13 11:39:36 × haritz quits (~hrtz@2a01:4b00:bc2e:7000:d5af:a266:ca31:5ef8) (Changing host)
2026-04-13 11:39:36 haritz joins (~hrtz@user/haritz)
2026-04-13 11:45:31 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 11:50:10 × slomp quits (~slomp@47-158-199-90.lsan.ca.frontiernet.net) (Ping timeout: 248 seconds)
2026-04-13 11:55:45 karenw joins (~karenw@user/karenw)
2026-04-13 11:58:13 × karenw quits (~karenw@user/karenw) (Client Quit)
2026-04-13 12:03:51 × oats quits (~oats@user/oats) (Read error: Connection reset by peer)
2026-04-13 12:04:06 oats joins (~oats@user/oats)
2026-04-13 12:04:18 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 244 seconds)
2026-04-13 12:18:02 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 12:24:17 × slomp quits (~slomp@47-158-199-90.lsan.ca.frontiernet.net) (Ping timeout: 252 seconds)
2026-04-13 12:27:37 <merijn> fp`: You know what's unironically really good at coming up with names from a description like that?
2026-04-13 12:27:40 <merijn> ChatGPT
2026-04-13 12:31:01 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2026-04-13 12:35:20 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 12:40:09 × slomp quits (~slomp@47-158-199-90.lsan.ca.frontiernet.net) (Ping timeout: 248 seconds)
2026-04-13 12:47:39 × rainbyte quits (~rainbyte@181.47.219.3) (Read error: Connection reset by peer)
2026-04-13 12:48:54 arandombit joins (~arandombi@user/arandombit)
2026-04-13 12:50:44 rainbyte joins (~rainbyte@181.47.219.3)
2026-04-13 12:53:21 <fp`> merijn: Sure, but I'd rather engage with a community that uses the language, learn the conventions from them, and learn about ancillary tools, like in this I learned about Fennel. The answer's not that important to me, the process is the main thing.
2026-04-13 12:53:59 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 12:54:36 <fp`> ancillary knowledge more generally, really. Not just tools.
2026-04-13 12:58:05 xff0x joins (~xff0x@2405:6580:b080:900:64fb:89e9:b5c1:12b3)
2026-04-13 13:00:45 × slomp quits (~slomp@47-158-199-90.lsan.ca.frontiernet.net) (Ping timeout: 255 seconds)
2026-04-13 13:02:03 rekahsoft joins (~rekahsoft@bras-base-orllon1103w-grc-20-76-67-111-168.dsl.bell.ca)
2026-04-13 13:11:24 × arandombit quits (~arandombi@user/arandombit) (Remote host closed the connection)
2026-04-13 13:13:20 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 13:14:06 arandombit joins (~arandombi@user/arandombit)
2026-04-13 13:18:29 × slomp quits (~slomp@47-158-199-90.lsan.ca.frontiernet.net) (Ping timeout: 272 seconds)
2026-04-13 13:19:33 × arandombit quits (~arandombi@user/arandombit) (Ping timeout: 268 seconds)
2026-04-13 13:19:45 Googulator joins (~Googulato@94-21-172-213.pool.digikabel.hu)
2026-04-13 13:30:14 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 13:34:57 × slomp quits (~slomp@47-158-199-90.lsan.ca.frontiernet.net) (Ping timeout: 255 seconds)
2026-04-13 13:50:00 karenw joins (~karenw@user/karenw)
2026-04-13 13:50:01 × fp` quits (~user@staff237.kora-dyn.aalto.fi) (Ping timeout: 248 seconds)
2026-04-13 13:51:00 × Googulator quits (~Googulato@94-21-172-213.pool.digikabel.hu) (Quit: Client closed)
2026-04-13 13:51:24 Googulator joins (~Googulato@94-21-172-213.pool.digikabel.hu)
2026-04-13 14:00:00 arandombit joins (~arandombi@2a02:2455:8656:7100:55bf:4eed:c642:43c4)
2026-04-13 14:00:00 × arandombit quits (~arandombi@2a02:2455:8656:7100:55bf:4eed:c642:43c4) (Changing host)
2026-04-13 14:00:00 arandombit joins (~arandombi@user/arandombit)
2026-04-13 14:03:16 × arandombit quits (~arandombi@user/arandombit) (Remote host closed the connection)
2026-04-13 14:05:02 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 14:06:40 × myxos quits (~myxos@67-1-178-42.tcso.qwest.net) (Remote host closed the connection)
2026-04-13 14:10:07 × slomp quits (~slomp@47-158-199-90.lsan.ca.frontiernet.net) (Ping timeout: 268 seconds)
2026-04-13 14:12:56 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 14:14:00 myxos joins (~myxos@67-1-178-42.tcso.qwest.net)
2026-04-13 14:17:42 × slomp quits (~slomp@47-158-199-90.lsan.ca.frontiernet.net) (Ping timeout: 255 seconds)
2026-04-13 14:18:50 potatomuncher|2 joins (~kvirc@user/potatomuncher)
2026-04-13 14:21:08 poscat0x04 joins (~poscat@user/poscat)
2026-04-13 14:22:50 × poscat quits (~poscat@user/poscat) (Ping timeout: 268 seconds)
2026-04-13 14:31:09 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 14:38:29 × bggd quits (~bgg@user/bggd) (Remote host closed the connection)
2026-04-13 14:38:55 × slomp quits (~slomp@47-158-199-90.lsan.ca.frontiernet.net) (Ping timeout: 272 seconds)
2026-04-13 14:39:04 × Googulator quits (~Googulato@94-21-172-213.pool.digikabel.hu) (Quit: Client closed)
2026-04-13 14:39:20 Googulator joins (~Googulato@94-21-172-213.pool.digikabel.hu)
2026-04-13 14:40:54 weary-traveler joins (~user@user/user363627)
2026-04-13 14:41:36 jmcantrell_ joins (~weechat@user/jmcantrell)
2026-04-13 14:43:23 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
2026-04-13 14:49:55 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 14:55:05 × slomp quits (~slomp@47-158-199-90.lsan.ca.frontiernet.net) (Ping timeout: 248 seconds)
2026-04-13 15:01:29 fp1 joins (~Thunderbi@87-95-80-117.bb.dnainternet.fi)
2026-04-13 15:02:15 danza joins (~danza@user/danza)
2026-04-13 15:02:15 × fp1 quits (~Thunderbi@87-95-80-117.bb.dnainternet.fi) (Read error: Connection reset by peer)
2026-04-13 15:05:03 machinedgod joins (~machinedg@d172-219-48-230.abhsia.telus.net)
2026-04-13 15:06:37 × synchromesh quits (~john@2406:5a00:2412:2c00:f13a:623d:2f3c:c3c6) (Read error: Connection reset by peer)
2026-04-13 15:07:34 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 15:08:00 synchromesh joins (~john@2406:5a00:2412:2c00:2c29:cc68:8842:5c05)
2026-04-13 15:08:37 sixfourtwelve parts (~ethanmorg@static.82.129.225.46.clients.your-server.de) ()
2026-04-13 15:13:05 × slomp quits (~slomp@47-158-199-90.lsan.ca.frontiernet.net) (Ping timeout: 245 seconds)
2026-04-13 15:19:47 Milan_Vanca joins (~milan@user/Milan-Vanca:32634)
2026-04-13 15:25:49 <Milan_Vanca> Hello I have found this statement in book "Evaluating something to normal form involves traversing the whole of its structure, so you should bear in mind that it is O(n) for a structure of size n, whereas seq is O(1). It is therefore a good idea to avoid repeated uses of force or deepseq on the same data." Is that correct? I thought that in ghc "results of evalutaions" are shared. So force
2026-04-13 15:25:51 <Milan_Vanca> longList; force longList should not traverse list 2 times
2026-04-13 15:26:12 × alter2000 quits (~alter2000@user/alter2000) (Read error: Connection reset by peer)
2026-04-13 15:27:03 <[exa]> Milan_Vanca: the issue with `deepseq` is that it doesn't know if there's a thunk somewhere in the middle or not, so it has to traverse there again and again
2026-04-13 15:27:54 <[exa]> (by having a head-normal data structure there's no way to tell if it points to a thunk, and the information that it was "already checked" isn't stored anywhere)
2026-04-13 15:29:16 <[exa]> BUT you can memoize the result of `deepseq` in a `let` and then you can use as many times you want and it's always going to be memoized as fully evaluated.
2026-04-13 15:29:39 <[exa]> (If confusing I can try to draw a picture :D )
2026-04-13 15:30:15 slomp joins (~slomp@47-158-199-90.lsan.ca.frontiernet.net)
2026-04-13 15:31:23 v0id_7 joins (~v0id_7@user/v0id-7:62772)
2026-04-13 15:32:17 <Milan_Vanca> Isn't that "shortcoming" of GHC to not remember that recursive datastructure was evaluated to NF completly?
2026-04-13 15:32:26 <Milan_Vanca> Maybe it is infeasible to do so?
2026-04-13 15:33:39 <Milan_Vanca> For that deepseq would need to be implemented in GHC and not just in term of seq maybe..
2026-04-13 15:34:33 <Milan_Vanca> [exa]: And maybe picture would clarify it for me. Could you please draw a picture?
2026-04-13 15:36:00 <__monty__> Wouldn't that end up with a traversal of all the NF datastructures known about instead of the datastructure you actually care about?
2026-04-13 15:39:50 <Milan_Vanca> __monty__: I don't think so.. we write force longList1 so that evaluates it all the way down right? or maybe only to [thunk, thunk] from thunk:thunk and not [1, 2] ?
2026-04-13 15:41:52 <Milan_Vanca> Yeah it is probably like that...there might not be need to evaluate further just the list
2026-04-13 15:44:20 <c_wraith> I wouldn't call it a shortcoming
2026-04-13 15:45:42 <c_wraith> right now, a value at run time has states for "this has been evaluated to a constructor" and "this hasn't been evaluated".
2026-04-13 15:46:11 <c_wraith> Adding a state for "this has been fully evaluated" would add overhead to every single (lifted) value in memory
2026-04-13 15:49:36 <c_wraith> Especially since it's not actually clear when that flag would be set. Would `rnf' need special RTS integration to set it specially? Would it check every time a value is evaluated if that makes some parent fully evaluated?
2026-04-13 15:51:44 Guest62 joins (~Guest62@p200300ca8f398000a276c2fd551b1612.dip0.t-ipconnect.de)
2026-04-13 15:52:46 <c_wraith> This isn't exactly automatic memoization, but it ends up sharing all the same issues.
2026-04-13 15:54:40 <c_wraith> My advice is to never actually use `rnf' in real code. It's a handy debugging tool if you can't find the source of unevaluated expressions in your program, but it's not a good solution.
2026-04-13 15:54:45 <mauke> a two-element list looks like x1@((:) x2 x3@((:) x4 x5)). each of those x's can hide more unevaluated work
2026-04-13 15:55:59 <[exa]> Milan_Vanca: ok so I'll draw a picture in IRC :D
2026-04-13 15:56:12 <c_wraith> Either prevent nested buildup of unevaluated expressions in the first place, or use an unlifted data type if you can't be bothered.
2026-04-13 15:56:18 <[exa]> Milan_Vanca: the unevaluated problem looks like: D1 --> Thunk1

All times are in UTC.