| 2026-06-01 00:00:46 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 00:03:55 +0000 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 264 seconds) |
| 2026-06-01 00:05:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-01 00:12:04 +0000 | ricardomaps | (~ricardoma@2804:14d:a040:81ea:38f5:bb0d:8796:a6f) (Quit: ricardomaps) |
| 2026-06-01 00:16:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 00:23:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-06-01 00:23:39 +0000 | xff0x | (~xff0x@2405:6580:b080:900:1e8e:69be:97e9:df50) (Ping timeout: 245 seconds) |
| 2026-06-01 00:32:30 +0000 | califax | (~califax@user/califx) (Remote host closed the connection) |
| 2026-06-01 00:34:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 00:34:28 +0000 | califax | (~califax@user/califx) califx |
| 2026-06-01 00:39:05 +0000 | cawfee | (root@2401:c080:3800:3460::babe) (Remote host closed the connection) |
| 2026-06-01 00:39:37 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-06-01 01:01:48 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-06-01 01:02:55 +0000 | ricardomaps | (~ricardoma@2804:14d:a040:81ea:38f5:bb0d:8796:a6f) |
| 2026-06-01 01:04:07 +0000 | acidjnk | (~acidjnk@p200300d6e700e50749931930275f1dba.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 2026-06-01 01:04:07 +0000 | acidjnk_new3 | (~acidjnk@p200300d6e700e50749931930275f1dba.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 2026-06-01 01:18:11 +0000 | myxos | (~myxos@67-1-178-42.tcso.qwest.net) (Remote host closed the connection) |
| 2026-06-01 01:21:16 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 2026-06-01 01:26:49 +0000 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-06-01 01:37:58 +0000 | myxos | (~myxos@67-1-178-42.tcso.qwest.net) myxokephale |
| 2026-06-01 01:40:47 +0000 | bedbedbde | (~bedbedbde@user/bedbedbde) bedbedbde |
| 2026-06-01 01:40:48 +0000 | pavonia | (~user@user/siracusa) siracusa |
| 2026-06-01 01:48:09 +0000 | doyougnu | (~doyougnu@38.175.72.111) (Killed (NickServ (GHOST command used by doyougnu`!~user@38.175.72.111))) |
| 2026-06-01 01:50:26 +0000 | doyougnu | (~doyougnu@38.175.72.111) |
| 2026-06-01 01:52:11 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-01 01:54:23 +0000 | doyougnu | (~doyougnu@38.175.72.111) (Killed (NickServ (GHOST command used by doyougnu`!~user@38.175.72.111))) |
| 2026-06-01 01:54:39 +0000 | doyougnu | (~doyougnu@38.175.72.111) |
| 2026-06-01 01:56:24 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 246 seconds) |
| 2026-06-01 01:58:55 +0000 | doyougnu | (~doyougnu@38.175.72.111) (Killed (NickServ (GHOST command used by doyougnu`!~user@38.175.72.111))) |
| 2026-06-01 01:59:42 +0000 | doyougnu | (~doyougnu@38.175.72.111) |
| 2026-06-01 02:03:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 02:03:59 +0000 | doyougnu | (~doyougnu@38.175.72.111) (Killed (NickServ (GHOST command used by doyougnu`!~user@38.175.72.111))) |
| 2026-06-01 02:05:17 +0000 | doyougnu- | (~doyougnu@38.175.72.111) |
| 2026-06-01 02:08:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-06-01 02:15:37 +0000 | td_ | (~td@i53870937.versanet.de) (Ping timeout: 248 seconds) |
| 2026-06-01 02:17:44 +0000 | td_ | (~td@i5387091C.versanet.de) |
| 2026-06-01 02:18:51 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 02:23:55 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-06-01 02:34:13 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 02:39:17 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 267 seconds) |
| 2026-06-01 02:40:25 +0000 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) lisbeths |
| 2026-06-01 02:50:02 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 02:50:40 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 2026-06-01 02:54:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-06-01 03:00:24 +0000 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
| 2026-06-01 03:01:27 +0000 | Garbanzo | (~Garbanzo@2602:304:6eac:dc10::49) |
| 2026-06-01 03:01:30 +0000 | Garbanzo__ | (~Garbanzo@2602:304:6eac:dc10::49) (Ping timeout: 246 seconds) |
| 2026-06-01 03:05:24 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 03:14:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 2026-06-01 03:16:24 +0000 | ricardomaps | (~ricardoma@2804:14d:a040:81ea:38f5:bb0d:8796:a6f) (Ping timeout: 252 seconds) |
| 2026-06-01 03:23:36 +0000 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-06-01 03:26:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 03:31:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 241 seconds) |
| 2026-06-01 03:42:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 03:47:30 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-06-01 03:55:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 04:00:08 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 243 seconds) |
| 2026-06-01 04:10:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 04:15:26 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-06-01 04:20:55 +0000 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2026-06-01 04:24:02 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-06-01 04:25:22 +0000 | tabaqui | (~tabaqui@167.71.80.236) (Ping timeout: 248 seconds) |
| 2026-06-01 04:25:31 +0000 | jreicher | (~joelr@user/jreicher) (Ping timeout: 242 seconds) |
| 2026-06-01 04:26:18 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 04:29:23 +0000 | jreicher | (~joelr@user/jreicher) jreicher |
| 2026-06-01 04:31:51 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-06-01 04:34:05 +0000 | Goodbye_Vincent1 | (cyvahl@freakshells.net) (Quit: ) |
| 2026-06-01 04:35:11 +0000 | Goodbye_Vincent1 | (cyvahl@freakshells.net) |
| 2026-06-01 04:40:25 +0000 | wickedjargon | (~user@2605:8d80:5431:c7f3:cb6a:c99b:bed8:74f5) wickedjargon |
| 2026-06-01 04:47:24 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-06-01 04:48:57 +0000 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 272 seconds) |
| 2026-06-01 04:51:26 +0000 | CiaoSen | (~Jura@2a02:3031:2e2:74df:4e50:ddff:fe9b:8922) CiaoSen |
| 2026-06-01 04:51:33 +0000 | poscat | (~poscat@user/poscat) (Remote host closed the connection) |
| 2026-06-01 04:53:32 +0000 | tabaqui | (~tabaqui@167.71.80.236) tabaqui |
| 2026-06-01 04:54:42 +0000 | poscat | (~poscat@user/poscat) poscat |
| 2026-06-01 04:55:44 +0000 | CiaoSen | (~Jura@2a02:3031:2e2:74df:4e50:ddff:fe9b:8922) (Ping timeout: 245 seconds) |
| 2026-06-01 04:57:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 05:01:50 +0000 | haritz | (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 2026-06-01 05:04:29 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-01 05:04:39 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-06-01 05:10:13 +0000 | olivial | (~benjaminl@user/benjaminl) (Remote host closed the connection) |
| 2026-06-01 05:10:29 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2026-06-01 05:11:15 +0000 | olivial | (~benjaminl@user/benjaminl) benjaminl |
| 2026-06-01 05:11:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 05:16:05 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 265 seconds) |
| 2026-06-01 05:17:03 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-06-01 05:21:01 +0000 | GdeVolpiano | (~GdeVolpia@user/GdeVolpiano) (Quit: WeeChat 4.7.2) |
| 2026-06-01 05:23:07 +0000 | synchromesh | (~john@2406:5a00:247e:1500:6c73:518b:be6f:ed81) (Read error: Connection reset by peer) |
| 2026-06-01 05:23:38 +0000 | GdeVolpiano | (~GdeVolpia@user/GdeVolpiano) GdeVolpiano |
| 2026-06-01 05:24:09 +0000 | synchromesh | (~john@2406:5a00:247e:1500:6c73:518b:be6f:ed81) synchromesh |
| 2026-06-01 05:25:38 +0000 | monochrom | (~trebla@216.138.220.146) (Quit: ZNC - https://znc.in) |
| 2026-06-01 05:27:27 +0000 | ricardomaps | (~ricardoma@2804:14d:a040:81ea:742e:100b:ef44:4bb3) |
| 2026-06-01 05:27:42 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 05:32:12 +0000 | pfc | (~pfc@user/pfc) pfc |
| 2026-06-01 05:35:58 +0000 | bedbedbde | (~bedbedbde@user/bedbedbde) (Read error: Connection reset by peer) |
| 2026-06-01 05:37:31 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-06-01 05:39:53 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2026-06-01 05:40:23 +0000 | monochrom | (~trebla@216.138.220.146) monochrom |
| 2026-06-01 05:40:29 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 2026-06-01 05:40:50 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2026-06-01 05:43:42 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-06-01 05:45:11 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-06-01 05:47:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 05:50:00 +0000 | acidjnk_new3 | (~acidjnk@p200300d6e700e5073b062b09158277c9.dip0.t-ipconnect.de) |
| 2026-06-01 05:50:02 +0000 | acidjnk | (~acidjnk@p200300d6e700e5073b062b09158277c9.dip0.t-ipconnect.de) acidjnk |
| 2026-06-01 05:52:12 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-06-01 05:52:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-01 06:03:11 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 06:07:04 +0000 | gentauro | (~gentauro@user/gentauro) (Quit: leaving) |
| 2026-06-01 06:08:12 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 243 seconds) |
| 2026-06-01 06:12:57 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-06-01 06:18:05 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 263 seconds) |
| 2026-06-01 06:21:16 +0000 | Square3 | (~Square4@user/square) Square |
| 2026-06-01 06:22:58 +0000 | Square2 | (~Square@user/square) (Ping timeout: 252 seconds) |
| 2026-06-01 06:27:24 +0000 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 2026-06-01 06:28:48 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 06:29:14 +0000 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-06-01 06:35:21 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-06-01 06:38:55 +0000 | TwinAdam | (~TwinAdam@user/adamsaunders) (Ping timeout: 252 seconds) |
| 2026-06-01 06:40:07 +0000 | TwinAdam | (~TwinAdam@user/adamsaunders) adamsaunders |
| 2026-06-01 06:43:50 +0000 | gentauro | (~gentauro@user/gentauro) gentauro |
| 2026-06-01 06:46:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 06:48:40 +0000 | p3n | (~p3n@217.198.124.246) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2026-06-01 06:51:34 +0000 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds) |
| 2026-06-01 06:51:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-06-01 06:59:00 +0000 | p3n | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) p3n |
| 2026-06-01 06:59:36 +0000 | p3n | (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1) (Remote host closed the connection) |
| 2026-06-01 07:01:30 +0000 | juri_ | (~juri@217-114-215-140.pool.ovpn.com) (Ping timeout: 248 seconds) |
| 2026-06-01 07:02:15 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 07:03:32 +0000 | juri_ | (~juri@217-114-215-140.pool.ovpn.com) juri_ |
| 2026-06-01 07:04:45 +0000 | ricardomaps | (~ricardoma@2804:14d:a040:81ea:742e:100b:ef44:4bb3) (Ping timeout: 245 seconds) |
| 2026-06-01 07:06:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-01 07:10:37 +0000 | p3n | (~p3n@217.198.124.246) p3n |
| 2026-06-01 07:12:04 +0000 | chele | (~chele@user/chele) chele |
| 2026-06-01 07:12:49 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 245 seconds) |
| 2026-06-01 07:13:58 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 07:18:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-06-01 07:19:36 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 2026-06-01 07:21:04 +0000 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 2026-06-01 07:22:00 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2026-06-01 07:29:33 +0000 | __monty__ | (~toonn@user/toonn) toonn |
| 2026-06-01 07:46:14 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 2026-06-01 07:46:34 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
| 2026-06-01 07:46:55 +0000 | michalz | (~michalz@185.246.207.221) |
| 2026-06-01 07:48:20 +0000 | fp1 | (~Thunderbi@130.233.70.60) fp |
| 2026-06-01 07:49:11 +0000 | Athas | (athas@sigkill.dk) (Quit: ZNC 1.9.1 - https://znc.in) |
| 2026-06-01 07:57:15 +0000 | merijn | (~merijn@77.242.116.146) merijn |
| 2026-06-01 08:05:25 +0000 | Athas | (athas@2a01:7c8:aaac:1cf:41d:56c3:1b40:43c8) |
| 2026-06-01 08:19:00 +0000 | emmanuelux | (~em@user/emmanuelux) (Quit: bye) |
| 2026-06-01 08:20:19 +0000 | CiaoSen | (~Jura@2a02:3031:2e2:74df:4e50:ddff:fe9b:8922) CiaoSen |
| 2026-06-01 08:26:49 +0000 | CiaoSen | (~Jura@2a02:3031:2e2:74df:4e50:ddff:fe9b:8922) (Ping timeout: 272 seconds) |
| 2026-06-01 08:29:53 +0000 | ft | (~ft@p4fc2aedc.dip0.t-ipconnect.de) (Quit: leaving) |
| 2026-06-01 08:31:06 +0000 | danza | (~danza@user/danza) danza |
| 2026-06-01 08:34:46 +0000 | danz84949 | (~danza@user/danza) danza |
| 2026-06-01 08:35:11 +0000 | danza | (~danza@user/danza) (Read error: Connection reset by peer) |
| 2026-06-01 08:44:41 +0000 | divlamir | (~divlamir@user/divlamir) (Read error: Connection reset by peer) |
| 2026-06-01 08:44:57 +0000 | divlamir | (~divlamir@user/divlamir) divlamir |
| 2026-06-01 08:47:01 +0000 | acidjnk_new | (~acidjnk@p200300d6e700e5447240697420104f78.dip0.t-ipconnect.de) |
| 2026-06-01 08:49:45 +0000 | acidjnk | (~acidjnk@p200300d6e700e5073b062b09158277c9.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2026-06-01 08:50:37 +0000 | acidjnk_new3 | (~acidjnk@p200300d6e700e5073b062b09158277c9.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 2026-06-01 08:50:39 +0000 | acidjnk | (~acidjnk@p200300d6e700e5447240697420104f78.dip0.t-ipconnect.de) acidjnk |
| 2026-06-01 09:01:44 +0000 | Googulator31 | Googulator |
| 2026-06-01 09:07:20 +0000 | wickedjargon | (~user@2605:8d80:5431:c7f3:cb6a:c99b:bed8:74f5) (Ping timeout: 256 seconds) |
| 2026-06-01 09:18:48 +0000 | CiaoSen | (~Jura@2a02:3031:2e2:74df:4e50:ddff:fe9b:8922) CiaoSen |
| 2026-06-01 09:27:20 +0000 | Enrico63 | (~Enrico63@host-95-247-196-30.retail.telecomitalia.it) Enrico63 |
| 2026-06-01 09:32:55 +0000 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-06-01 10:03:23 +0000 | gentauro | (~gentauro@user/gentauro) (Remote host closed the connection) |
| 2026-06-01 10:10:31 +0000 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 262 seconds) |
| 2026-06-01 10:18:17 +0000 | ninjacato | (~Thunderbi@user/ninjacato) ninjacato |
| 2026-06-01 10:21:16 +0000 | aetepe | (~aetepe@188.119.22.175) aetepe |
| 2026-06-01 10:22:35 +0000 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-06-01 10:25:35 +0000 | <yin> | i know some people here teach. where does the resistance to abandon the imperatove paradigm when learning functional programming stem from? i'm getting anxious reading some comments on this post https://www.reddit.com/r/haskellquestions/comments/1tscedu/why_haskell_tutorials_do_not_include_th… |
| 2026-06-01 10:26:53 +0000 | <yin> | and what are efdective ways to convey the right message? |
| 2026-06-01 10:26:58 +0000 | <jaror> | I don't teach, but I think it is because we still have escape hatches like IO. |
| 2026-06-01 10:27:35 +0000 | <jaror> | Haskell is essentially a multi-paradigm language, you can use it to do imperative programming without too much effort. |
| 2026-06-01 10:27:57 +0000 | <jaror> | And from the outside that seems like what most people in industry are doing. |
| 2026-06-01 10:27:57 +0000 | <[exa]> | yin: I wouldn't say there's resistance, it's more of a momentum |
| 2026-06-01 10:28:51 +0000 | <[exa]> | yin: turns out there isn't much of that effect if students start with more functional approaches (SICP-ish) |
| 2026-06-01 10:31:40 +0000 | <[exa]> | yin: btw I'm doing this on 2nd or 3rd lecture (depending on how much blabla I glue to typeclasses) |
| 2026-06-01 10:32:06 +0000 | <[exa]> | essentially "okay so we have IO, how do we encode pascal into it" |
| 2026-06-01 10:32:50 +0000 | <yin> | i remember IO taking me a while to understand correctly |
| 2026-06-01 10:34:02 +0000 | <[exa]> | yeah the main didactic issue is that there's 2 kinda hidden layers (1 realworld and 1 monad abstraction) and that doesn't really help it to click faster |
| 2026-06-01 10:35:47 +0000 | <newmind> | dealing with just IO is fine, especially with the syntactic sugar of the do syntax. where it really starts to trip people up is when you start working with more than one monad |
| 2026-06-01 10:36:18 +0000 | <[exa]> | so I'm now taking monads from one direction first (with the andThen approach with Maybes and Lists) then IO from the EDSL direction (hey look we have some magic monad instances that make stuff work like imperative!), then we derive State, and then IO is "trivial" (hey look State RealWorld, takes quite some memory right? padmeface) |
| 2026-06-01 10:36:31 +0000 | <tomsmeding> | "you can do imperative programming without too much effort" -- yes, but no: the syntax is much more verbose than you'd have in C, and you have the two-layer system that [exa] mentions |
| 2026-06-01 10:37:41 +0000 | rscastilho2024_ | (rscastilho@user/rscastilho2024-:23901) rscastilho2024_ |
| 2026-06-01 10:38:06 +0000 | <tomsmeding> | I think the top comment on that reddit post is actually spot-on: "If you want to write C code, use C, not Haskell": learning functional programming is more learning a new programming paradigm than learning a new language |
| 2026-06-01 10:38:24 +0000 | <tomsmeding> | if you learn Haskell by writing very imperative code in Haskell, you might be learning the language, but you're not learning the paradigm |
| 2026-06-01 10:38:47 +0000 | <tomsmeding> | and 1. that will make you dislike the language because it doesn't seem to bring you much over the languages you already know, and 2. you're kinda missing the point |
| 2026-06-01 10:39:21 +0000 | <tomsmeding> | and resistance to learning a new paradigm is, I suspect, nothing more than resistance to learning a new way of doing something if you already know how to do it otherwise |
| 2026-06-01 10:39:40 +0000 | rscastilho2024_ | (rscastilho@user/rscastilho2024-:23901) (Remote host closed the connection) |
| 2026-06-01 10:40:01 +0000 | <tomsmeding> | ("why do I have to learn cmake? make works fine") |
| 2026-06-01 10:40:02 +0000 | <newmind> | i think that's the reason why haskell (or functional programming in general) seems a bit harder if you're already profficient in other paradigms: you _know_ how to solve this problem, yet you're stumped that "the language" isn't letting you |
| 2026-06-01 10:40:20 +0000 | <tomsmeding> | yes |
| 2026-06-01 10:40:44 +0000 | <tomsmeding> | even though the language technically can let you, but we're not teaching you that part of the language quite yet so that you learn how to solve it the other way |
| 2026-06-01 10:40:47 +0000 | <newmind> | although it helps a lot that a lot of functional patterns (map/filter, iterators) are creeping into mainstream languages |
| 2026-06-01 10:42:03 +0000 | <newmind> | yeah, you can go full IO and IORefs and basically code C in haskell too.. the question is just: why would you? |
| 2026-06-01 10:42:22 +0000 | <tomsmeding> | yin: just read the comments by hanshuttel there in that reddit thread, there's your answer :p |
| 2026-06-01 10:43:08 +0000 | <tomsmeding> | oh, hm, no it's the OP that should read those comments, not you, I guess -- sorry |
| 2026-06-01 10:48:02 +0000 | <[exa]> | oh, the early internet fairy tales and their OPs who read comments |
| 2026-06-01 10:48:51 +0000 | <danz84949> | reddit keeps those tales alive |
| 2026-06-01 10:49:57 +0000 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 272 seconds) |
| 2026-06-01 10:50:15 +0000 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 258 seconds) |
| 2026-06-01 10:54:05 +0000 | danz84949 | (~danza@user/danza) (Remote host closed the connection) |
| 2026-06-01 10:59:06 +0000 | ninjacato | (~Thunderbi@user/ninjacato) (Remote host closed the connection) |
| 2026-06-01 10:59:55 +0000 | <yin> | OP is reading and answering comments |
| 2026-06-01 11:00:54 +0000 | ninjacato | (~Thunderbi@user/ninjacato) ninjacato |
| 2026-06-01 11:03:36 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 265 seconds) |
| 2026-06-01 11:10:17 +0000 | kuribas | (~user@188.118.57.242) |
| 2026-06-01 11:10:26 +0000 | takuan | (~takuan@d8D86B9E9.access.telenet.be) |
| 2026-06-01 11:11:15 +0000 | <merijn> | tomsmeding: I don't think the cmake vs make distinction is a good metaphor :p |
| 2026-06-01 11:11:36 +0000 | <merijn> | tomsmeding: Because you *should* pick Haskell over C, but you shouldn't pick cmake over make :p |
| 2026-06-01 11:13:00 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) bitdex |
| 2026-06-01 11:15:01 +0000 | <[exa]> | yeah the directionality there is dangerous :D |
| 2026-06-01 11:21:29 +0000 | <kuribas> | If find C and haskell don't have much overlap. |
| 2026-06-01 11:21:40 +0000 | <kuribas> | What you *could* program in haskell, you shouldn't do in C. |
| 2026-06-01 11:21:56 +0000 | <kuribas> | Haskell and Java or C# has more overlap... |
| 2026-06-01 11:22:57 +0000 | <jaror> | But C is purely functional: http://conal.net/blog/posts/the-c-language-is-purely-functional |
| 2026-06-01 11:23:00 +0000 | <jaror> | ;P |
| 2026-06-01 11:23:09 +0000 | <kuribas> | And C for system libraries or embedded systems would be a bad match for haskell as well. |
| 2026-06-01 11:24:31 +0000 | <kuribas> | Do people still start programs in C? |
| 2026-06-01 11:25:08 +0000 | <kuribas> | I thought people use Java or C#. Or (sadly) python or nodejs. |
| 2026-06-01 11:25:49 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 262 seconds) |
| 2026-06-01 11:27:26 +0000 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2026-06-01 11:29:47 +0000 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2026-06-01 11:31:15 +0000 | <olsner> | instead of writing C you could have Haskell code that generates assembly or runs a JIT compiler :) |
| 2026-06-01 11:39:05 +0000 | haritz | (~hrtz@140.228.70.141) |
| 2026-06-01 11:39:05 +0000 | haritz | (~hrtz@140.228.70.141) (Changing host) |
| 2026-06-01 11:39:05 +0000 | haritz | (~hrtz@user/haritz) haritz |
| 2026-06-01 11:44:40 +0000 | <jaror> | Generating code with Haskell is the wrong idea IMO, instead you should find a subset of Haskell which you can compile efficiently. After all, Haskell is just a glorified lambda calculus. |
| 2026-06-01 11:46:27 +0000 | fp1 | (~Thunderbi@130.233.70.60) (Quit: fp1) |
| 2026-06-01 11:50:35 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-06-01 11:51:59 +0000 | fp1 | (~Thunderbi@130.233.70.60) fp |
| 2026-06-01 11:55:12 +0000 | <kuribas> | Or use rust instead? |
| 2026-06-01 12:06:06 +0000 | Enrico63 | (~Enrico63@host-95-247-196-30.retail.telecomitalia.it) (Quit: Client closed) |
| 2026-06-01 12:07:17 +0000 | <srk> | jaror: that's what MicroHs does I think |
| 2026-06-01 12:07:42 +0000 | srk | uses Haskell to generate C for embedded stuff |
| 2026-06-01 12:09:03 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-06-01 12:17:09 +0000 | <jaror> | No MicroHs "compiles" the full Haskell language to combinators |
| 2026-06-01 12:22:00 +0000 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2026-06-01 12:22:33 +0000 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 2026-06-01 12:24:37 +0000 | weary-traveler | (~user@user/user363627) user363627 |
| 2026-06-01 12:25:47 +0000 | FirefoxDeHuk | (~FirefoxDe@user/FirefoxDeHuk) FirefoxDeHuk |
| 2026-06-01 12:29:42 +0000 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 2026-06-01 12:36:57 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection) |
| 2026-06-01 12:40:08 +0000 | tjbc | (~tjbc@user/fliife) (Ping timeout: 261 seconds) |
| 2026-06-01 12:40:45 +0000 | Ranhir | (~Ranhir@157.97.53.139) Ranhir |
| 2026-06-01 12:41:00 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-06-01 12:46:29 +0000 | fp1 | (~Thunderbi@130.233.70.60) (Ping timeout: 272 seconds) |
| 2026-06-01 12:49:49 +0000 | tjbc | (~tjbc@user/fliife) fliife |
| 2026-06-01 12:49:54 +0000 | comerijn | (~merijn@77.242.116.146) merijn |
| 2026-06-01 12:52:52 +0000 | merijn | (~merijn@77.242.116.146) (Ping timeout: 256 seconds) |
| 2026-06-01 12:55:36 +0000 | xff0x | (~xff0x@2405:6580:b080:900:2c0a:90ca:8489:d22b) |
| 2026-06-01 12:57:31 +0000 | Square3 | (~Square4@user/square) (Remote host closed the connection) |
| 2026-06-01 12:58:11 +0000 | Square3 | (~Square4@user/square) Square |
| 2026-06-01 13:12:02 +0000 | FirefoxDeHuk | (~FirefoxDe@user/FirefoxDeHuk) (Quit: Client closed) |
| 2026-06-01 13:15:20 +0000 | Enrico63 | (~Enrico63@host-95-247-196-30.retail.telecomitalia.it) Enrico63 |
| 2026-06-01 13:28:25 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-06-01 13:28:42 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-06-01 13:35:21 +0000 | <mesaoptimizer> | I guess we could rewrite GHC or MicroHs in Rust |
| 2026-06-01 13:35:53 +0000 | <mesaoptimizer> | or just the minimum needed bit to bootstrap from |
| 2026-06-01 13:38:15 +0000 | <jaror> | Rewriting the compiler in another language doesn't change the performance of the programs it produces |
| 2026-06-01 13:38:44 +0000 | <[exa]> | mesaoptimizer: not sure if rust complexity isn't a bit bigger than of haskell |
| 2026-06-01 13:38:53 +0000 | <[exa]> | i.e. the bootstrap direction might not make sense |
| 2026-06-01 13:43:11 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-01 13:43:30 +0000 | CiaoSen | (~Jura@2a02:3031:2e2:74df:4e50:ddff:fe9b:8922) (Ping timeout: 245 seconds) |
| 2026-06-01 13:44:45 +0000 | <srk> | jaror: oO, interesting, looking at eval.c .. not so :D cool that's something like that is possible |
| 2026-06-01 13:45:51 +0000 | Enrico63 | (~Enrico63@host-95-247-196-30.retail.telecomitalia.it) (Quit: Client closed) |
| 2026-06-01 13:46:25 +0000 | <jaror> | That's how the early lazy languages worked, e.g. miranda |
| 2026-06-01 13:47:30 +0000 | srk | reads mhs paper |
| 2026-06-01 13:48:14 +0000 | Square3 | (~Square4@user/square) (Ping timeout: 245 seconds) |
| 2026-06-01 13:53:49 +0000 | <[exa]> | jaror: ah btw that reminds me of this thing: https://github.com/taolson/Admiran |
| 2026-06-01 13:53:57 +0000 | target_i | (~target_i@user/target-i/x-6023099) target_i |
| 2026-06-01 13:54:29 +0000 | <[exa]> | (the stats say 99% assembly but that's just the bootstrap blob) |
| 2026-06-01 13:56:15 +0000 | <jaror> | impressive |
| 2026-06-01 13:56:22 +0000 | <jaror> | > 20x to 50x faster than the original Miranda compiler/combinator interpreter |
| 2026-06-01 13:56:23 +0000 | <lambdabot> | Variable not in scope: fasterVariable not in scope: thanVariable not in scop... |
| 2026-06-01 13:56:32 +0000 | <mesaoptimizer> | hah |
| 2026-06-01 13:56:33 +0000 | <jaror> | Yeah that's the reason we stopped compiling to combinators |
| 2026-06-01 13:56:50 +0000 | <jaror> | Ah, I'm too used to markdown syntax |
| 2026-06-01 13:56:54 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 256 seconds) |
| 2026-06-01 13:57:14 +0000 | <mesaoptimizer> | that reminds me, how practical is Conal Elliot's "compiling to categories", if compiling to combinators is impractical as you put it |
| 2026-06-01 13:57:33 +0000 | <jaror> | Compiling to categories is just a completely different thing |
| 2026-06-01 13:57:37 +0000 | <jaror> | You don't run categories |
| 2026-06-01 13:58:12 +0000 | <jaror> | I guess you could implement the interfaces using assembly and then run the result |
| 2026-06-01 13:59:43 +0000 | <jaror> | I think tomsmeding once told me how that is inefficient (we were discussing the automatic differentiation work by Conal Elliott, but I think the approach was similar) |
| 2026-06-01 14:00:54 +0000 | <jaror> | As far as I know compiling to categories also means you must eliminate variables in some way |
| 2026-06-01 14:01:08 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-01 14:01:17 +0000 | <jaror> | and I think much more thought has been put into making SKI-based combinators fast than making the compiling to categories translation fast |
| 2026-06-01 14:01:55 +0000 | <jaror> | (or not so much the translation itself but the programs it produces) |
| 2026-06-01 14:02:37 +0000 | <jaror> | Still, I don't think performance was one of Conal Elliotts goals |
| 2026-06-01 14:26:37 +0000 | CiaoSen | (~Jura@2a02:3031:2e2:74df:4e50:ddff:fe9b:8922) CiaoSen |
| 2026-06-01 14:35:38 +0000 | CiaoSen | (~Jura@2a02:3031:2e2:74df:4e50:ddff:fe9b:8922) (Ping timeout: 268 seconds) |
| 2026-06-01 14:41:45 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 272 seconds) |
| 2026-06-01 14:44:25 +0000 | dolio | (~dolio@130.44.140.168) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2026-06-01 14:47:05 +0000 | dolio | (~dolio@130.44.140.168) dolio |
| 2026-06-01 14:51:35 +0000 | rainbyte | (~rainbyte@181.47.219.31) rainbyte |
| 2026-06-01 15:05:30 +0000 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
| 2026-06-01 15:09:28 +0000 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2026-06-01 15:10:35 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-06-01 15:23:15 +0000 | aka_dude | (~aka_dude@192.71.166.120) (Quit: Gateway shutdown) |
| 2026-06-01 15:24:06 +0000 | gorignak | (~gorignak@user/gorignak) gorignak |
| 2026-06-01 15:27:20 +0000 | aka_dude | (~aka_dude@192.71.166.120) |
| 2026-06-01 15:28:04 +0000 | wickedjargon | (~user@24.244.23.59) wickedjargon |
| 2026-06-01 15:28:57 +0000 | aka_dude | (~aka_dude@192.71.166.120) (Client Quit) |
| 2026-06-01 15:29:05 +0000 | emilym | (~Thunderbi@user/emilym) emilym |
| 2026-06-01 15:29:49 +0000 | aka_dude | (~aka_dude@192.71.166.120) |
| 2026-06-01 15:32:16 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-06-01 15:33:14 +0000 | emilym | (~Thunderbi@user/emilym) (Ping timeout: 245 seconds) |
| 2026-06-01 15:33:36 +0000 | wickedja` | (~user@2605:8d80:5431:ba1b:d500:5146:99ed:97f2) |
| 2026-06-01 15:34:43 +0000 | wickedjargon | (~user@24.244.23.59) (Ping timeout: 251 seconds) |
| 2026-06-01 15:44:23 +0000 | synchromesh | (~john@2406:5a00:247e:1500:6c73:518b:be6f:ed81) (Read error: Connection reset by peer) |
| 2026-06-01 15:45:56 +0000 | synchromesh | (~john@2406:5a00:247e:1500:29c5:b42c:d970:297d) synchromesh |
| 2026-06-01 15:49:17 +0000 | ricardomaps | (~ricardoma@2804:14d:a040:81ea:9225:8669:d161:f359) |
| 2026-06-01 15:54:20 +0000 | wickedja` | (~user@2605:8d80:5431:ba1b:d500:5146:99ed:97f2) (Ping timeout: 245 seconds) |
| 2026-06-01 16:17:23 +0000 | comerijn | (~merijn@77.242.116.146) (Ping timeout: 272 seconds) |
| 2026-06-01 16:18:52 +0000 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-06-01 16:20:08 +0000 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2026-06-01 16:20:45 +0000 | ricardomaps | (~ricardoma@2804:14d:a040:81ea:9225:8669:d161:f359) (Quit: ricardomaps) |
| 2026-06-01 16:21:45 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-06-01 16:22:08 +0000 | kuribas | (~user@188.118.57.242) (Remote host closed the connection) |
| 2026-06-01 16:27:28 +0000 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2026-06-01 16:31:13 +0000 | foul_owl | (~kerry@94.156.149.95) (Ping timeout: 243 seconds) |
| 2026-06-01 16:36:15 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-06-01 16:41:50 +0000 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
| 2026-06-01 16:42:56 +0000 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2026-06-01 16:44:26 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-06-01 16:52:24 +0000 | euphores | (~SASL_euph@user/euphores) euphores |
| 2026-06-01 16:56:47 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Remote host closed the connection) |
| 2026-06-01 17:06:12 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 17:09:59 +0000 | marinelli | (~weechat@gateway/tor-sasl/marinelli) (Remote host closed the connection) |
| 2026-06-01 17:10:20 +0000 | marinelli | (~weechat@gateway/tor-sasl/marinelli) marinelli |
| 2026-06-01 17:10:50 +0000 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2026-06-01 17:11:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-01 17:12:35 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-06-01 17:18:49 +0000 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 272 seconds) |
| 2026-06-01 17:22:00 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 17:26:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-06-01 17:28:59 +0000 | <yin> | performance is never an easy goal with haskell |
| 2026-06-01 17:34:57 +0000 | <sm> | I think that's a bit too strong |
| 2026-06-01 17:35:23 +0000 | <sm> | many haskell programs run "fast" by default, compared to some other languages |
| 2026-06-01 17:35:39 +0000 | ft | (~ft@p4fc2aedc.dip0.t-ipconnect.de) ft |
| 2026-06-01 17:35:58 +0000 | <sm> | you meant reliably optimal performance, maybe |
| 2026-06-01 17:36:16 +0000 | wickedjargon | (~user@207.194.126.30) wickedjargon |
| 2026-06-01 17:36:57 +0000 | wickedjargon | (~user@207.194.126.30) (Remote host closed the connection) |
| 2026-06-01 17:37:22 +0000 | wickedjargon | (~user@207.194.126.30) wickedjargon |
| 2026-06-01 17:37:50 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 17:38:09 +0000 | <newmind> | i think with haskell predictability of performance is more of a problem than in the absolute. it's not always straightforward as in, say, C |
| 2026-06-01 17:41:01 +0000 | tnt1 | (~Thunderbi@user/tnt1) tnt1 |
| 2026-06-01 17:41:19 +0000 | Guest86 | (~Guest86@109-81-172-14.rct.o2.cz) |
| 2026-06-01 17:42:39 +0000 | Guest86 | (~Guest86@109-81-172-14.rct.o2.cz) (Client Quit) |
| 2026-06-01 17:44:33 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2026-06-01 17:46:21 +0000 | Square2 | (~Square@user/square) Square |
| 2026-06-01 17:48:36 +0000 | lisbeths | (uid135845@id-135845.lymington.irccloud.com) lisbeths |
| 2026-06-01 17:52:44 +0000 | chele | (~chele@user/chele) (Remote host closed the connection) |
| 2026-06-01 17:55:49 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 17:56:09 +0000 | Raito_Bezarius | (~Raito@libera/contributor/wireguard.tunneler.raito-bezarius) (Ping timeout: 245 seconds) |
| 2026-06-01 17:58:43 +0000 | tnt1 | (~Thunderbi@user/tnt1) (Ping timeout: 272 seconds) |
| 2026-06-01 18:00:50 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-06-01 18:01:18 +0000 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 2026-06-01 18:11:36 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 18:12:07 +0000 | peterbecich | (~Thunderbi@71.84.33.135) peterbecich |
| 2026-06-01 18:14:39 +0000 | divlamir_ | (~divlamir@user/divlamir) divlamir |
| 2026-06-01 18:17:33 +0000 | divlamir | (~divlamir@user/divlamir) (Ping timeout: 263 seconds) |
| 2026-06-01 18:17:33 +0000 | divlamir_ | divlamir |
| 2026-06-01 18:18:56 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-06-01 18:28:45 +0000 | <tomsmeding> | jaror: the thing I may have told you at some point is that to do Conal's fancy stuff on combinators you have to translate your pointful program to combinators first, and that translation introduces inefficiencies |
| 2026-06-01 18:28:57 +0000 | <tomsmeding> | e.g. don't expect your variable references to be constant-time any more |
| 2026-06-01 18:29:45 +0000 | <tomsmeding> | concretely, the idea of a local binding in combinators is pairing up an additional value with your input; that means that accessing your original input now takes one additional projection |
| 2026-06-01 18:29:53 +0000 | <tomsmeding> | nest this and variable reference becomes O(|Γ|) |
| 2026-06-01 18:29:59 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 18:30:19 +0000 | <tomsmeding> | you can of course improve this to O(log |Γ|) with a tree structure, but then you have to construct that tree, etc. |
| 2026-06-01 18:30:43 +0000 | <tomsmeding> | there may be formulations of the categorical combinators that address these relatively stupid issues |
| 2026-06-01 18:31:06 +0000 | <tomsmeding> | merijn: re "you should pick haskell over C": perhaps over C, but you should definitely not pick haskell over every other imperative language |
| 2026-06-01 18:31:36 +0000 | <tomsmeding> | there is plenty of code that is simultaneously awkward to express in haskell _and_ slow, and using a proper imperative language addresses both |
| 2026-06-01 18:32:29 +0000 | <tomsmeding> | essentially anything that requires a mutable array fast becomes annoying in haskell, and you don't even get SIMD vectorisation |
| 2026-06-01 18:34:54 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-01 18:44:47 +0000 | divlamir_ | (~divlamir@user/divlamir) divlamir |
| 2026-06-01 18:45:45 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 18:46:49 +0000 | divlamir | (~divlamir@user/divlamir) (Ping timeout: 244 seconds) |
| 2026-06-01 18:46:50 +0000 | divlamir_ | divlamir |
| 2026-06-01 18:50:59 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-06-01 18:57:22 +0000 | wickedjargon | (~user@207.194.126.30) (Remote host closed the connection) |
| 2026-06-01 19:01:34 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 19:06:25 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-01 19:08:49 +0000 | peterbecich | (~Thunderbi@71.84.33.135) (Ping timeout: 268 seconds) |
| 2026-06-01 19:15:16 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 19:21:50 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-06-01 19:25:55 +0000 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
| 2026-06-01 19:27:13 +0000 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2026-06-01 19:29:21 +0000 | Pozyomka | (~pyon@user/pyon) (Quit: brb) |
| 2026-06-01 19:31:24 +0000 | Pozyomka | (~pyon@user/pyon) pyon |
| 2026-06-01 19:33:19 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 19:34:43 +0000 | Pozyomka | (~pyon@user/pyon) (Client Quit) |
| 2026-06-01 19:36:13 +0000 | Adran | (~adran@botters/adran) (Quit: Este é o fim.) |
| 2026-06-01 19:37:57 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-06-01 19:38:06 +0000 | unworriedsafari | (unworrieds@user/unworriedsafari) unworriedsafari |
| 2026-06-01 19:41:44 +0000 | gentauro | (~gentauro@user/gentauro) gentauro |
| 2026-06-01 19:43:19 +0000 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 2026-06-01 19:46:01 +0000 | Adran | (adran@botters/adran) Adran |
| 2026-06-01 19:48:43 +0000 | Googulator | (~Googulato@193-226-241-87.pool.digikabel.hu) (Quit: Client closed) |
| 2026-06-01 19:49:01 +0000 | Googulator | (~Googulato@193-226-241-87.pool.digikabel.hu) |
| 2026-06-01 19:49:05 +0000 | merijn | (~merijn@62.45.136.136) merijn |
| 2026-06-01 19:52:51 +0000 | synchromesh | (~john@2406:5a00:247e:1500:29c5:b42c:d970:297d) (Read error: Connection reset by peer) |
| 2026-06-01 19:53:17 +0000 | synchromesh | (~john@2406:5a00:247e:1500:29c5:b42c:d970:297d) synchromesh |
| 2026-06-01 19:53:25 +0000 | aetepe | (~aetepe@188.119.22.175) (Remote host closed the connection) |
| 2026-06-01 19:54:06 +0000 | merijn | (~merijn@62.45.136.136) (Ping timeout: 252 seconds) |
| 2026-06-01 19:55:44 +0000 | finnyben | (~zero@user/zero) |
| 2026-06-01 19:56:49 +0000 | <yin> | i agree |
| 2026-06-01 19:57:07 +0000 | <yin> | that was what i meant |
| 2026-06-01 19:57:43 +0000 | <finnyben> | will programs written in this style run efficiently in haskell? https://www.reddit.com/r/haskellquestions/comments/1tscedu/comment/oox6gm9/?utm_source=share&utm_m… |
| 2026-06-01 20:01:10 +0000 | netunreach | (~user@user/netunreach) netunreach |
| 2026-06-01 20:01:53 +0000 | Googulator | (~Googulato@193-226-241-87.pool.digikabel.hu) (Quit: Client closed) |
| 2026-06-01 20:02:07 +0000 | Googulator | (~Googulato@193-226-241-87.pool.digikabel.hu) |
| 2026-06-01 20:02:07 +0000 | azazazz | (~zero@a89-153-63-117.cpe.netcabo.pt) |
| 2026-06-01 20:03:36 +0000 | <tomsmeding> | > I'd be very happy if it were taught to beginner Haskellers who want to learn Haskell as opposed to learning functional programming |
| 2026-06-01 20:03:44 +0000 | <tomsmeding> | Sure. But then, why are you learning Haskell precisely? |
| 2026-06-01 20:04:37 +0000 | <tomsmeding> | finnyben: decently efficiently. Most of the time there is spent on actually printing stuff; IO is relatively expensive in any language. |
| 2026-06-01 20:04:52 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 20:05:43 +0000 | <tomsmeding> | If you'd want to pump that "5" up to a million or so and want it to generate the megabytes of text very quickly, you either need to reimplement in terms of more low-level operations or use another language |
| 2026-06-01 20:06:19 +0000 | <tomsmeding> | (but then, while C++'s std::cout might be a little faster, generating gigabytes of text using std::cout is also not a particularly good idea) |
| 2026-06-01 20:07:21 +0000 | <unworriedsafari> | Hi, I'm exploring the effectful library but I'm having some trouble with the notation. Particularly the use of single colon in a type signature. What does it mean? For example: https://github.com/bcardiff/lambda-library/blob/main/app-effectful/Main.hs#L46 |
| 2026-06-01 20:07:40 +0000 | michalz | (~michalz@185.246.207.221) (Remote host closed the connection) |
| 2026-06-01 20:08:10 +0000 | <jaror> | The :> basically means "is a part of" |
| 2026-06-01 20:08:17 +0000 | <jaror> | In this case |
| 2026-06-01 20:08:35 +0000 | <jaror> | But it is a custom type level operator that is defined by the effectful library, it is not built-in |
| 2026-06-01 20:09:06 +0000 | <jaror> | Oh, but just the `:` is actually just a list constructor |
| 2026-06-01 20:09:17 +0000 | <unworriedsafari> | I see, so it's a type-level operator. Same for the colon in (ReadonlyBooksDB : es) I suppose |
| 2026-06-01 20:09:20 +0000 | <unworriedsafari> | oh |
| 2026-06-01 20:09:31 +0000 | <tomsmeding> | it's a list of effects :) |
| 2026-06-01 20:09:53 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 258 seconds) |
| 2026-06-01 20:10:24 +0000 | <tomsmeding> | the 'es' parameter is the list of available effects; 'IOE :> es' is a constraint requiring that IOE is an element of that list, and the usage of ':' means that the argument will run with one additional effect available (namely, ReadOnlyBookDB) |
| 2026-06-01 20:11:09 +0000 | netunreach | (~user@user/netunreach) (Ping timeout: 252 seconds) |
| 2026-06-01 20:11:17 +0000 | <tomsmeding> | "given a BookDB and any computation that uses the ReadOnlyBookDB effect at the front of its effect list, I can handle that effect completely as long as I have the IOE effect available" |
| 2026-06-01 20:12:00 +0000 | <unworriedsafari> | I see |
| 2026-06-01 20:13:17 +0000 | <tomsmeding> | there is documentation here on the promotion of data types to the type level, but it's written with the assumption that the reader already knows a lot of haskell https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/data_kinds.html#extension-DataKinds |
| 2026-06-01 20:15:00 +0000 | <unworriedsafari> | Thanks :) This clears it up. I'm not too familiar with seeing this at the type level. So that link seems informative as well. |
| 2026-06-01 20:17:32 +0000 | netunreach | (~user@user/netunreach) netunreach |
| 2026-06-01 20:20:39 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 20:25:13 +0000 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
| 2026-06-01 20:25:22 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 251 seconds) |
| 2026-06-01 20:36:26 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 20:41:40 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-06-01 20:52:09 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn |
| 2026-06-01 20:59:07 +0000 | merijn | (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-06-01 21:00:19 +0000 | orcus- | (~orcus@user/brprice) brprice |
| 2026-06-01 21:01:18 +0000 | emmanuelux | (~em@user/emmanuelux) emmanuelux |
| 2026-06-01 21:01:57 +0000 | orcus | (~orcus@user/brprice) (Read error: Connection reset by peer) |
| 2026-06-01 21:02:40 +0000 | acidsys | (~crameleon@openSUSE/member/crameleon) (Ping timeout: 245 seconds) |
| 2026-06-01 21:02:51 +0000 | humasect | (~humasect@dyn-192-249-132-90.nexicom.net) humasect |
| 2026-06-01 21:03:43 +0000 | pavonia | (~user@user/siracusa) siracusa |