Newest at the top
| 2026-01-02 21:47:11 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-02 21:46:51 +0100 | wennefer0 | (~wennefer0@user/wennefer0) wennefer0 |
| 2026-01-02 21:43:30 +0100 | wennefer0 | (~wennefer0@user/wennefer0) (Client Quit) |
| 2026-01-02 21:41:47 +0100 | wennefer0 | (~wennefer0@user/wennefer0) wennefer0 |
| 2026-01-02 21:36:13 +0100 | wennefer0 | (~wennefer0@user/wennefer0) (Client Quit) |
| 2026-01-02 21:35:35 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-02 21:34:54 +0100 | wennefer0 | (~wennefer0@user/wennefer0) wennefer0 |
| 2026-01-02 21:29:55 +0100 | <Milan_Vanca> | I didn't expect that! This is really cool. |
| 2026-01-02 21:29:26 +0100 | <monochrom> | Then yes the prefix can be freed. |
| 2026-01-02 21:29:08 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-02 21:28:58 +0100 | <Milan_Vanca> | Imagine I would split this big list at 10^6 index and then only used everithing after. Could from start to split be garbage collected if it is not used in other functions? |
| 2026-01-02 21:28:15 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
| 2026-01-02 21:27:51 +0100 | <Milan_Vanca> | So by introducing new function I can enforce what is shared. |
| 2026-01-02 21:26:25 +0100 | <monochrom> | If you want something reused but don't want to bet, "let x = l !! bignumber in x + x" is the way. (Or "where".) |
| 2026-01-02 21:25:41 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
| 2026-01-02 21:24:29 +0100 | <monochrom> | So you lose both memory and time. Congratulations. |
| 2026-01-02 21:24:17 +0100 | <monochrom> | If "l !! bignumber" is not shared but l is, then what happens is the worst of both worlds. First time, l is expanded and occupies 10^6 units of memory, and since it is to be shared, it won't be freed. Second time, you traverse that existing allocated memory from start to finish again. |
| 2026-01-02 21:24:06 +0100 | mmohammadi9812 | (~mohammad@104.28.214.168) mmohammadi9812 |
| 2026-01-02 21:22:14 +0100 | <monochrom> | The common subexpression "l !! bignumber" is unlikely to be shared. This is at the whim of the code optimizer, but I bet unlikely. (But you should check empirically.) |
| 2026-01-02 21:21:09 +0100 | <monochrom> | l is shared. That actually is worse news than you think. |
| 2026-01-02 21:20:45 +0100 | <monochrom> | This is more nuisanced than one single boolean "is/not shared". (But you just need a multitude of booleans.) |
| 2026-01-02 21:18:07 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-02 21:17:03 +0100 | epitron | (epi@user/epitron) epitron |
| 2026-01-02 21:16:59 +0100 | wennefer0 | (~wennefer0@user/wennefer0) (Client Quit) |
| 2026-01-02 21:16:16 +0100 | wennefer0 | (~wennefer0@user/wennefer0) wennefer0 |
| 2026-01-02 21:14:17 +0100 | <Milan_Vanca> | hmm |
| 2026-01-02 21:13:21 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-02 21:10:00 +0100 | pavonia | (~user@user/siracusa) siracusa |
| 2026-01-02 21:09:22 +0100 | <ncf> | well you could extract the indices you need in one run |
| 2026-01-02 21:07:39 +0100 | <Milan_Vanca> | If you look at page 5 of this document https://www.rfc-editor.org/rfc/rfc1321 There T[i] is value from list. I probably can't use `map` as function is always different. Or maybe I could zip it with index and then have case of to use correct function. |
| 2026-01-02 21:07:30 +0100 | wennefer0 | (~wennefer0@user/wennefer0) (Client Quit) |
| 2026-01-02 21:06:49 +0100 | img | (~img@user/img) img |
| 2026-01-02 21:05:47 +0100 | wennefer0 | (~wennefer0@user/wennefer0) wennefer0 |
| 2026-01-02 21:05:34 +0100 | img | (~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2026-01-02 21:04:43 +0100 | <Milan_Vanca> | Oookey so I guess I should use Data.IntMap instead even tho every element of this map will be used in successive computations? |
| 2026-01-02 21:03:55 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-02 21:02:55 +0100 | <tomsmeding> | yep, l will be traversed 2 times from the start |
| 2026-01-02 21:02:55 +0100 | <geekosaur> | there are ways to get the latter, I think, but that's not one of them |
| 2026-01-02 21:02:35 +0100 | <ncf> | i'd be very surprised if GHC was smart enough to optimise the second traversal |
| 2026-01-02 21:02:34 +0100 | <geekosaur> | the former |
| 2026-01-02 20:59:38 +0100 | <Milan_Vanca> | I know l is shared and wont be created multiple times.. but to access element l !! bigIndex we need to traverse linken list. But will this list be traversed 2 times from start? Or will it traverse once till first Index and then just do one hop to second Index? |
| 2026-01-02 20:59:22 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-01-02 20:58:21 +0100 | Inline | (~User@cgn-195-14-221-74.nc.de) Inline |
| 2026-01-02 20:57:47 +0100 | <ncf> | see https://en.wikibooks.org/wiki/Haskell/Graph_reduction |
| 2026-01-02 20:57:07 +0100 | wennefer0 | (~wennefer0@user/wennefer0) (Client Quit) |
| 2026-01-02 20:56:41 +0100 | <ncf> | l will be shared |
| 2026-01-02 20:55:52 +0100 | wennefer0 | (~wennefer0@user/wennefer0) wennefer0 |
| 2026-01-02 20:53:19 +0100 | <Milan_Vanca> | Hello guyz. I know that !! for lists needs to traverse list to find index. But my question is let l = [0..] in (l !! 10^6 + 1) + ( l !! 10^6 + 2) + ... Will this traverse list multiple times? Or will reuse "iteration"? |
| 2026-01-02 20:48:15 +0100 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2026-01-02 20:47:39 +0100 | wennefer0 | (~wennefer0@user/wennefer0) (Client Quit) |