2026/01/22

2026-01-22 00:00:04 +0100 <pipsquak-bird> I also wonder if i could use ideas liek 9p.io
2026-01-22 00:00:21 +0100 <pipsquak-bird> so jobs are auto parallizable over grid of nodes
2026-01-22 00:00:24 +0100 <pipsquak-bird> woa wee
2026-01-22 00:00:34 +0100 <pipsquak-bird> happstack.com looks awesome
2026-01-22 00:00:41 +0100 <pipsquak-bird> but can it grid?
2026-01-22 00:00:53 +0100 <pipsquak-bird> 9p.io really seems clever more I see it
2026-01-22 00:01:01 +0100 <pipsquak-bird> the editors zonks me
2026-01-22 00:02:39 +0100 <pipsquak-bird> https://www.researchgate.net/publication/228468620_RMoX_a_Raw_Metal_occam_Experiment
2026-01-22 00:04:51 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 00:09:53 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-01-22 00:16:25 +0100DetourNe-(~DetourNet@user/DetourNetworkUK) DetourNetworkUK
2026-01-22 00:16:27 +0100trickard(~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-22 00:16:37 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 00:16:39 +0100trickard(~trickard@cpe-93-98-47-163.wireline.com.au)
2026-01-22 00:16:44 +0100DetourNetworkUK(~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer)
2026-01-22 00:17:05 +0100remmie(ianremsen@tilde.team) (Ping timeout: 244 seconds)
2026-01-22 00:18:40 +0100DetourNe-DetourNetworkUK
2026-01-22 00:20:12 +0100fp(~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Quit: fp)
2026-01-22 00:21:42 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-01-22 00:22:46 +0100jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2026-01-22 00:26:48 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2026-01-22 00:28:55 +0100Lycurgus(~juan@user/Lycurgus) Lycurgus
2026-01-22 00:32:23 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 00:36:42 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2026-01-22 00:37:11 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-01-22 00:45:52 +0100remmie(ianremsen@tilde.team) remsense
2026-01-22 00:48:11 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 00:48:46 +0100jmcantrell_(~weechat@user/jmcantrell) (Ping timeout: 265 seconds)
2026-01-22 00:52:29 +0100mange(~mange@user/mange) mange
2026-01-22 00:53:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2026-01-22 01:03:45 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 01:05:35 +0100trickard(~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-22 01:05:48 +0100trickard_(~trickard@cpe-93-98-47-163.wireline.com.au)
2026-01-22 01:08:49 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-01-22 01:12:00 +0100trickard_(~trickard@cpe-93-98-47-163.wireline.com.au) (Read error: Connection reset by peer)
2026-01-22 01:14:03 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) (Quit: leaving)
2026-01-22 01:16:09 +0100trickard_(~trickard@cpe-93-98-47-163.wireline.com.au)
2026-01-22 01:16:34 +0100machinedgod(~machinedg@d75-159-126-101.abhsia.telus.net) machinedgod
2026-01-22 01:18:16 +0100Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2026-01-22 01:19:32 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 01:24:15 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-22 01:29:43 +0100jmcantrell_(~weechat@user/jmcantrell) jmcantrell
2026-01-22 01:35:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 01:40:26 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2026-01-22 01:45:55 +0100jmcantrell_jmcantrell
2026-01-22 01:47:50 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2026-01-22 01:49:11 +0100xff0x(~xff0x@ai083101.d.east.v6connect.net) (Ping timeout: 265 seconds)
2026-01-22 01:51:04 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 01:53:03 +0100Brumaire(~no@94.140.114.73) (Remote host closed the connection)
2026-01-22 01:55:06 +0100trickard_trickard
2026-01-22 01:55:57 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds)
2026-01-22 01:56:08 +0100rainbyte(~rainbyte@186.22.19.214) rainbyte
2026-01-22 01:59:44 +0100vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 260 seconds)
2026-01-22 02:02:03 +0100jmcantrell(~weechat@user/jmcantrell) (Ping timeout: 260 seconds)
2026-01-22 02:02:42 +0100Googulator(~Googulato@2a01:36d:106:30a:8d41:f550:2a4f:1a91) (Quit: Client closed)
2026-01-22 02:02:56 +0100Googulator(~Googulato@2a01-036d-0106-030a-8d41-f550-2a4f-1a91.pool6.digikabel.hu)
2026-01-22 02:04:42 +0100qqq(~qqq@185.54.21.105)
2026-01-22 02:06:35 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 02:08:55 +0100typedfern_(~Typedfern@53.red-83-37-43.dynamicip.rima-tde.net) (Ping timeout: 240 seconds)
2026-01-22 02:12:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-01-22 02:17:48 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-01-22 02:20:02 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2026-01-22 02:22:45 +0100typedfern_(~Typedfern@81.red-83-37-28.dynamicip.rima-tde.net) typedfern
2026-01-22 02:23:57 +0100Pozyomka(~pyon@user/pyon) (Quit: WeeChat 4.8.1)
2026-01-22 02:24:04 +0100Pozyomka_(~pyon@user/pyon) pyon
2026-01-22 02:24:36 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 02:29:25 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds)
2026-01-22 02:37:37 +0100typedfern_(~Typedfern@81.red-83-37-28.dynamicip.rima-tde.net) (Ping timeout: 246 seconds)
2026-01-22 02:40:24 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 02:40:59 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2026-01-22 02:42:55 +0100FANTOM(~fantom@87.75.185.177) (Ping timeout: 240 seconds)
2026-01-22 02:44:10 +0100FANTOM(~fantom@87.75.185.177)
2026-01-22 02:44:14 +0100connrs(~connrs@user/connrs) (Ping timeout: 244 seconds)
2026-01-22 02:44:53 +0100omidmash1(~omidmash@user/omidmash) omidmash
2026-01-22 02:45:14 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2026-01-22 02:46:49 +0100omidmash(~omidmash@user/omidmash) (Ping timeout: 244 seconds)
2026-01-22 02:46:49 +0100omidmash1omidmash
2026-01-22 02:51:20 +0100typedfern_(~Typedfern@192.red-83-37-37.dynamicip.rima-tde.net) typedfern
2026-01-22 02:56:10 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 02:59:05 +0100connrs(~connrs@user/connrs) connrs
2026-01-22 03:00:52 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-22 03:05:41 +0100 <haskellbridge> <iqubic (she/her)> So, this is breaking my brain... How the heck is this the same as "liftA2" for lists: "cross f xs ys = foldr (\x rec -> (map (f x) ys) ++ rec) [] xs"
2026-01-22 03:06:03 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) (Read error: Connection reset by peer)
2026-01-22 03:06:11 +0100 <haskellbridge> <iqubic (she/her)> cross is the same as liftA2 if you work on lists and I have no clue why!!!
2026-01-22 03:07:00 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) vidak
2026-01-22 03:07:42 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2026-01-22 03:08:23 +0100 <monochrom> Convert foldr back to your own recursion to see.
2026-01-22 03:08:47 +0100 <ncf> convert foldr to concatMap and remember how the list monad works
2026-01-22 03:08:48 +0100 <monochrom> Alterantively convert your own recursion to foldr to see. :)
2026-01-22 03:09:16 +0100 <monochrom> Or yeah, that.
2026-01-22 03:09:21 +0100 <haskellbridge> <iqubic (she/her)> Yeah, that makes sense...
2026-01-22 03:09:34 +0100 <ncf> cross f xs ys = xs >>= \x -> map (f x) ys = xs >>= \x -> ys >>= \y -> [f x y] = f <$> xs <*> ys
2026-01-22 03:11:47 +0100 <monochrom> The reason I prefer functional programming is that I just do algebra and see how two programs do the same thing. As opposed to what most people do for imperative programming: talk in "English" "intuition (read: mince and bend words) and call that "understanding". (LLMs proved that it is not understanding.)
2026-01-22 03:11:58 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 03:13:45 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) (Read error: Connection reset by peer)
2026-01-22 03:14:35 +0100FANTOM(~fantom@87.75.185.177) (Ping timeout: 240 seconds)
2026-01-22 03:14:58 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) vidak
2026-01-22 03:16:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2026-01-22 03:21:43 +0100 <haskellbridge> <iqubic (she/her)> I see...
2026-01-22 03:21:55 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) (Ping timeout: 264 seconds)
2026-01-22 03:22:08 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) vidak
2026-01-22 03:22:27 +0100 <haskellbridge> <iqubic (she/her)> for lists "sequenceA" is "foldr (liftA2 (:)) [[]]"
2026-01-22 03:22:32 +0100 <haskellbridge> <iqubic (she/her)> Huh?!?!? How does that work?
2026-01-22 03:23:27 +0100 <haskellbridge> <iqubic (she/her)> sequenceA [[11,12], [21,22]] = [[11,21],[11,22],[12,21],[12,22]]
2026-01-22 03:23:49 +0100 <haskellbridge> <iqubic (she/her)> And "foldr (liftA2 (:)) [[]]" does the same thing.
2026-01-22 03:25:17 +0100 <monochrom> I might rewrite "[[]]" as "pure []".
2026-01-22 03:26:47 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) (Remote host closed the connection)
2026-01-22 03:27:20 +0100 <haskellbridge> <iqubic (she/her)> I see... that's very similar to "foldr (:) []", but with applicative actions.
2026-01-22 03:27:21 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 03:28:17 +0100 <haskellbridge> <iqubic (she/her)> How does that compute a Cartesian product though?
2026-01-22 03:29:06 +0100 <haskellbridge> <iqubic (she/her)> "cart [[11,12], [21,22]]" is "[[11,21,22],[12,21,22]]"
2026-01-22 03:29:58 +0100 <haskellbridge> <iqubic (she/her)> Erm... not that. It's late and I'm tired.
2026-01-22 03:30:44 +0100 <haskellbridge> <iqubic (she/her)> But sequenceA "foldr (liftA2 (:)) (pure [])" is a Cartesian product, and I'm not sure why.
2026-01-22 03:31:58 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) vidak
2026-01-22 03:32:13 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds)
2026-01-22 03:43:08 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 03:45:49 +0100 <geekosaur> list monad with no actions is Cartesian product. maybe you'd find the list comprehension version easier to interpret?
2026-01-22 03:47:40 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2026-01-22 03:48:44 +0100 <haskellbridge> <iqubic (she/her)> What's the list comprehension version?
2026-01-22 03:48:56 +0100tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2026-01-22 03:49:20 +0100Inline(~User@2001-4dd6-dd24-0-41c1-f819-9bd9-d884.ipv6dyn.netcologne.de) (Ping timeout: 244 seconds)
2026-01-22 03:49:51 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2026-01-22 03:49:51 +0100typedfern_(~Typedfern@192.red-83-37-37.dynamicip.rima-tde.net) (Ping timeout: 244 seconds)
2026-01-22 03:49:55 +0100 <haskellbridge> <iqubic (she/her)> Why isn't this compiling? https://paste.tomsmeding.com/7dBnZHnU
2026-01-22 03:52:47 +0100 <haskellbridge> <iqubic (she/her)> I want a function that computes all the ways to drop a single element from a list.
2026-01-22 03:53:04 +0100 <haskellbridge> <iqubic (she/her)> drop1 [1,2,3] -> [[2,3], [1,3], [1,2]]
2026-01-22 03:53:46 +0100 <geekosaur> xs is [a], drop1 xs is [[a]], map's result type will be the same as its input type as (x:) simply prepends to the inner lists
2026-01-22 03:56:20 +0100 <haskellbridge> <iqubic (she/her)> I have "map (x:) (drop1 xs)"
2026-01-22 03:56:36 +0100vidak(~vidak@2407:e400:7800:2c01:d0be:76f8:cc84:bd4a) (Remote host closed the connection)
2026-01-22 03:56:57 +0100 <haskellbridge> <iqubic (she/her)> (x:) :: [a] -> [a]
2026-01-22 03:57:30 +0100 <haskellbridge> <iqubic (she/her)> (drop1 xs) :: [[a]]
2026-01-22 03:57:35 +0100 <haskellbridge> <iqubic (she/her)> I fail to see the issue here.
2026-01-22 03:57:56 +0100 <geekosaur> xxs is only [a], not [[a]]
2026-01-22 03:58:20 +0100 <haskellbridge> <iqubic (she/her)> xxs?
2026-01-22 03:58:32 +0100 <geekosaur> rename the one in map, maybe it'll be a bit clearer (its "[a]" unifies with the "[[a]]" from drop1)
2026-01-22 03:58:56 +0100 <haskellbridge> <Nguyễn Trọng Cường> I have a really stupid question: Is the very first GHC executable written in C? I analysed some modern GHC programs by Detect It Easy and all of them are flagged as "C" and "MinGW"
2026-01-22 03:58:59 +0100 <haskellbridge> <iqubic (she/her)> I'm trying to use the head of the iinput.
2026-01-22 03:59:25 +0100 <haskellbridge> <iqubic (she/her)> I'm so lost here... What am I missing?
2026-01-22 04:01:10 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2026-01-22 04:01:25 +0100 <geekosaur> ghc was originally written in HBC, a now lost compiler which was itself written in Lazy ML
2026-01-22 04:02:29 +0100Inline(~User@2001-4dd6-dd24-0-288a-d894-752e-65cf.ipv6dyn.netcologne.de) Inline
2026-01-22 04:02:54 +0100 <geekosaur> I think there's an ancient i386 binary for HBC somewhere, but no source and no guarantee the binary would run on modern systems
2026-01-22 04:03:14 +0100 <haskellbridge> <iqubic (she/her)> geekosaur: Am I missing something obvious here?
2026-01-22 04:03:19 +0100 <haskellbridge> <iqubic (she/her)> drop1 (x:xs) = xs ++ map (x:) (drop1 xs)
2026-01-22 04:03:43 +0100 <EvanR> and lazy ML was written in
2026-01-22 04:03:49 +0100 <geekosaur> drop1 :: [a] -> [[a]]
2026-01-22 04:03:50 +0100 <EvanR> rather the compiler for it
2026-01-22 04:04:09 +0100 <EvanR> (unlikely to still be available and functioning)
2026-01-22 04:04:10 +0100 <geekosaur> map (x:) (drop1 xs) :: [[a]] -> [[a]]
2026-01-22 04:04:15 +0100 <geekosaur> xs :: [a]
2026-01-22 04:04:55 +0100Raito_Bezarius(~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) (Ping timeout: 245 seconds)
2026-01-22 04:05:06 +0100 <geekosaur> yeh, I have no clue about LML
2026-01-22 04:05:33 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds)