Logs: liberachat/#haskell
| 2025-11-02 20:18:31 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds) |
| 2025-11-02 20:26:51 | → | oneeyedalien joins (~oneeyedal@user/oneeyedalien) |
| 2025-11-02 20:27:54 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-02 20:34:15 | × | infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 252 seconds) |
| 2025-11-02 20:34:51 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-11-02 20:36:02 | × | jreicher quits (~user@user/jreicher) (Quit: In transit) |
| 2025-11-02 20:37:01 | Awoobis | is now known as gAy_Dragon |
| 2025-11-02 20:38:20 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Ping timeout: 244 seconds) |
| 2025-11-02 20:40:32 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-02 20:44:38 | × | oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Quit: Leaving) |
| 2025-11-02 20:45:57 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-02 20:47:44 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Remote host closed the connection) |
| 2025-11-02 20:48:07 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-02 20:50:44 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-11-02 20:54:37 | → | infinity0 joins (~infinity0@pwned.gg) |
| 2025-11-02 21:01:44 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-02 21:07:15 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 2025-11-02 21:10:16 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-11-02 21:14:29 | → | gmg joins (~user@user/gehmehgeh) |
| 2025-11-02 21:14:56 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 2025-11-02 21:16:35 | → | haltingsolver joins (~cmo@2604:3d09:207f:8000::d1dc) |
| 2025-11-02 21:19:24 | → | jzargo joins (~jzargo@user/jzargo) |
| 2025-11-02 21:20:12 | → | AlexZenon_2 joins (~alzenon@178.34.160.166) |
| 2025-11-02 21:20:53 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-02 21:22:29 | × | op_4 quits (~tslil@user/op-4/x-9116473) (Ping timeout: 256 seconds) |
| 2025-11-02 21:22:29 | × | AlexZenon quits (~alzenon@178.34.160.166) (Ping timeout: 256 seconds) |
| 2025-11-02 21:22:29 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 256 seconds) |
| 2025-11-02 21:23:31 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 256 seconds) |
| 2025-11-02 21:23:31 | × | fgarcia quits (~lei@user/fgarcia) (Ping timeout: 256 seconds) |
| 2025-11-02 21:24:36 | × | haetsal quits (~quassel@221.138.168.192) (Ping timeout: 256 seconds) |
| 2025-11-02 21:24:37 | × | Fijxu quits (~Fijxu@user/fijxu) (Read error: Connection reset by peer) |
| 2025-11-02 21:24:50 | → | jmcantrell_ joins (~weechat@user/jmcantrell) |
| 2025-11-02 21:24:50 | jmcantrell_ | is now known as jmcantrell |
| 2025-11-02 21:25:05 | → | fgarcia joins (~lei@user/fgarcia) |
| 2025-11-02 21:25:10 | → | Fijxu_ joins (~Fijxu@user/fijxu) |
| 2025-11-02 21:25:45 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2025-11-02 21:25:51 | × | tomku quits (~tomku@user/tomku) (Ping timeout: 256 seconds) |
| 2025-11-02 21:26:03 | → | haetsal joins (~quassel@221.138.168.192) |
| 2025-11-02 21:26:05 | → | tomku joins (~tomku@user/tomku) |
| 2025-11-02 21:28:54 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-02 21:32:30 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 2025-11-02 21:32:43 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 2025-11-02 21:33:47 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2025-11-02 21:35:43 | × | ttybitnik quits (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 2025-11-02 21:36:00 | → | op_4 joins (~tslil@user/op-4/x-9116473) |
| 2025-11-02 21:38:35 | → | mwnaylor joins (~user@2601:5cf:837e:2bb0:8f48:1249:bca4:3647) |
| 2025-11-02 21:41:51 | <mwnaylor> | Been a while since I tinkered with Haskell. I remember that `x' in a generic name for and item, while `xs' names a lists. Is there a convention for list of lists? |
| 2025-11-02 21:42:07 | <mwnaylor> | s/and item/an item/ |
| 2025-11-02 21:43:41 | <haskellbridge> | <loonycyborg> I'd expect list of lists to mostly arise in context where x is a list, therefore list of lists would be xs |
| 2025-11-02 21:44:17 | <haskellbridge> | <loonycyborg> Unless you deal with all 3 layers at the same place |
| 2025-11-02 21:44:18 | × | Frostillicus quits (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) (Read error: Connection reset by peer) |
| 2025-11-02 21:44:30 | <haskellbridge> | <loonycyborg> Does it happen often enough to have a convention? :P |
| 2025-11-02 21:44:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-02 21:46:33 | <mwnaylor> | Don't know about Haskell, but have seen it a bit in Clojure. For practice, writing the Clojure mapcat in elisp and Common Lisp. |
| 2025-11-02 21:46:37 | AlexZenon_2 | is now known as AlexZenon |
| 2025-11-02 21:48:57 | <jackdk> | mwnaylor: I have seen people write example implementations of e.g. `concat :: [[a]] -> [a]` with a pattern `xs:xss`. But I haven't seen this sort of function come up in enough industrial code to notice a pattern |
| 2025-11-02 21:49:24 | <EvanR> | xss, indicates it's a list of lists |
| 2025-11-02 21:49:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-11-02 21:49:54 | <EvanR> | but is sure to infuriate non-haskell people reading the code |
| 2025-11-02 21:50:20 | → | Frostillicus joins (~Frostilli@pool-71-174-119-69.bstnma.fios.verizon.net) |
| 2025-11-02 21:50:28 | <EvanR> | though xs is already doing that |
| 2025-11-02 21:50:47 | <mwnaylor> | xss is one option I'd considered. xsxs was the other, but I think xss reads better. |
| 2025-11-02 21:50:58 | <EvanR> | xsxs misses the point of this name |
| 2025-11-02 21:51:28 | <EvanR> | x is something, if you have many x's, the short name is xs |
| 2025-11-02 21:51:33 | <EvanR> | if you have many xs's |
| 2025-11-02 21:51:38 | <EvanR> | xss |
| 2025-11-02 21:51:41 | <Anarchos> | OCaml uses xss too (in seq.ml[i] files of stdlib) |
| 2025-11-02 21:51:43 | <mwnaylor> | I wasn't planning on much Haskell code. I like some of the clean names. |
| 2025-11-02 21:52:06 | <EvanR> | if you're managing a real list of concrete things, maybe use another name |
| 2025-11-02 21:52:21 | <EvanR> | person:persons |
| 2025-11-02 21:52:30 | <EvanR> | page:pages |
| 2025-11-02 21:52:45 | <EvanR> | but abstract operations on any list don't get this luxury |
| 2025-11-02 21:53:04 | → | jreicher joins (~user@user/jreicher) |
| 2025-11-02 21:54:55 | <mwnaylor> | It is an abstraction, as mapcat is a higher order function. As least for this discussion. |
| 2025-11-02 21:55:39 | <monochrom> | You can use "xss" for [[a]] |
| 2025-11-02 21:55:57 | <monochrom> | OK you already know. :) |
| 2025-11-02 21:57:03 | <mwnaylor> | I'd gravitated toward xss. I like getting others' opinions. |
| 2025-11-02 21:58:16 | <monochrom> | Yeah it's a very common convention. |
| 2025-11-02 21:58:55 | <EvanR> | if you find yourself using an xsss, you're now a three S haskell programmer |
| 2025-11-02 21:59:29 | <darkling> | Is that what's known as a snake case variable? :) |
| 2025-11-02 21:59:41 | <EvanR> | lol |
| 2025-11-02 22:00:11 | <monochrom> | I used double*** in C a long time ago. |
| 2025-11-02 22:00:28 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-11-02 22:00:33 | <EvanR> | impressive |
| 2025-11-02 22:01:46 | <monochrom> | Basically just because I had 2D arrays, fully dynamically allocated, and back then "double[m][n]" was not allowed for variable m,n, and I needed to pass such matrices by reference. |
| 2025-11-02 22:03:13 | <EvanR> | any each individual double was boxed? |
| 2025-11-02 22:03:17 | <EvanR> | and* |
| 2025-11-02 22:03:29 | <monochrom> | It was C! What box? :) |
| 2025-11-02 22:04:17 | <EvanR> | if it was an array of double, you could pass that around using double* |
| 2025-11-02 22:04:32 | <EvanR> | an array of pointers, double** |
| 2025-11-02 22:04:42 | <EvanR> | where did the third star come from |
| 2025-11-02 22:05:39 | <monochrom> | OK so I did row major order. For an m rows n cols matrix, I allocated a block of m pointers, then each initialized to malloc of n doubles. |
| 2025-11-02 22:05:44 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2025-11-02 22:06:04 | <monochrom> | The thrid star is from passing the matrix by reference to a function. |
| 2025-11-02 22:06:14 | <fgarcia> | for names i am not always consistent. if a function is a list of strings i am about equally as likely to use " ss " instead of " xss " |
| 2025-11-02 22:07:09 | <EvanR> | a string: cs |
| 2025-11-02 22:07:15 | <EvanR> | c:cs |
| 2025-11-02 22:07:45 | <EvanR> | functions |
| 2025-11-02 22:07:47 | <EvanR> | f:fs |
| 2025-11-02 22:07:55 | <EvanR> | g:gs |
All times are in UTC.