Logs on 2024-09-13 (liberachat/#haskell)
| 00:00:04 | → | EvanR joins (~EvanR@user/evanr) |
| 00:01:33 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 00:10:44 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 00:18:55 | × | xff0x quits (~xff0x@2405:6580:b080:900:ee06:88a:1004:2deb) (Ping timeout: 252 seconds) |
| 00:21:57 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 00:26:55 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 00:29:25 | → | rosco joins (~rosco@175.136.158.234) |
| 00:37:45 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 00:42:21 | → | gmg joins (~user@user/gehmehgeh) |
| 00:43:06 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 00:45:16 | → | pavonia joins (~user@user/siracusa) |
| 00:47:28 | → | weary-traveler joins (~user@user/user363627) |
| 00:53:32 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 00:58:31 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 01:08:29 | × | meygerjos quits (~meygerjos@syn-024-090-143-083.res.spectrum.com) (Ping timeout: 260 seconds) |
| 01:09:19 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 01:11:33 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 01:14:08 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 01:25:06 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 01:28:17 | → | meygerjos joins (~meygerjos@syn-024-090-143-083.res.spectrum.com) |
| 01:28:43 | → | arahael_ joins (~arahael@user/arahael) |
| 01:30:15 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 01:32:57 | × | ZharMeny quits (~ZharMeny@user/ZharMeny) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4)) |
| 01:35:06 | × | notzmv quits (~daniel@user/notzmv) (Ping timeout: 276 seconds) |
| 01:40:53 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 01:42:03 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 01:42:37 | → | weary-traveler joins (~user@user/user363627) |
| 01:44:05 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
| 01:45:02 | × | krei-se quits (~krei-se@p57af29f0.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 01:45:26 | → | krei-se joins (~krei-se@p57af2718.dip0.t-ipconnect.de) |
| 01:46:09 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 01:56:38 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 01:57:52 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 01:58:45 | × | haskellbridge quits (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
| 01:59:21 | → | haskellbridge joins (~hackager@syn-024-093-192-219.res.spectrum.com) |
| 01:59:21 | ChanServ | sets mode +v haskellbridge |
| 02:01:37 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 02:08:50 | × | dequbed quits (~dequbed@banana-new.kilobyte22.de) (Ping timeout: 248 seconds) |
| 02:09:39 | → | nadja joins (~dequbed@banana-new.kilobyte22.de) |
| 02:12:27 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 02:13:14 | × | meygerjos quits (~meygerjos@syn-024-090-143-083.res.spectrum.com) (Ping timeout: 260 seconds) |
| 02:14:09 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 02:17:19 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 02:22:32 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 02:22:56 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 02:28:46 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Remote host closed the connection) |
| 02:34:05 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 02:39:09 | → | hgolden__ joins (~hgolden@146.70.173.101) |
| 02:39:29 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 02:41:15 | × | ft quits (~ft@p4fc2a393.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 02:41:22 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 02:41:41 | × | hgolden_ quits (~hgolden@static-198-44-129-115.cust.tzulo.com) (Ping timeout: 255 seconds) |
| 02:43:15 | → | ft joins (~ft@p508db65d.dip0.t-ipconnect.de) |
| 02:45:12 | × | td_ quits (~td@i53870922.versanet.de) (Ping timeout: 272 seconds) |
| 02:46:13 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 02:46:34 | → | td_ joins (~td@i53870934.versanet.de) |
| 02:49:22 | → | meygerjos joins (~meygerjos@syn-024-090-143-083.res.spectrum.com) |
| 02:54:46 | × | meygerjos quits (~meygerjos@syn-024-090-143-083.res.spectrum.com) (Ping timeout: 252 seconds) |
| 02:57:00 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
| 02:57:05 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 02:59:54 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 03:01:37 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 03:01:43 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Remote host closed the connection) |
| 03:02:25 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 03:07:16 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 03:12:24 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 246 seconds) |
| 03:12:54 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 03:17:51 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 03:18:53 | × | whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 03:21:16 | → | athan joins (~athan@syn-098-153-145-140.biz.spectrum.com) |
| 03:28:40 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 03:31:18 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds) |
| 03:32:04 | × | sourcetarius quits (~sourcetar@user/sourcetarius) (Quit: zzz) |
| 03:32:28 | → | barb456y joins (~barb456y@2600:8800:5000:f790:99f3:f4a2:3ecf:fd68) |
| 03:33:44 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 03:35:19 | × | barb456y quits (~barb456y@2600:8800:5000:f790:99f3:f4a2:3ecf:fd68) (K-Lined) |
| 03:37:00 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 03:40:04 | → | cyphase_eviltwin joins (~cyphase@user/cyphase) |
| 03:41:34 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 272 seconds) |
| 03:44:27 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 03:47:16 | → | Squared joins (~Square@user/square) |
| 03:49:48 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 03:54:14 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 272 seconds) |
| 04:00:15 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 04:00:41 | → | paddymahoney joins (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) |
| 04:05:14 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 04:16:02 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 04:20:39 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 04:30:57 | × | spew quits (~spew@201.141.99.170) (Quit: spew) |
| 04:31:49 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 04:36:43 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
| 04:40:53 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 04:41:34 | → | gmg joins (~user@user/gehmehgeh) |
| 04:42:20 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 04:43:38 | Maxdaman1us | is now known as Maxdamantus |
| 04:45:28 | → | meygerjos joins (~meygerjos@syn-024-090-143-083.res.spectrum.com) |
| 04:47:14 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 04:54:33 | × | meygerjos quits (~meygerjos@syn-024-090-143-083.res.spectrum.com) (Ping timeout: 245 seconds) |
| 04:56:46 | → | michalz joins (~michalz@185.246.207.205) |
| 04:58:06 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 05:03:00 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 05:05:42 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 05:07:04 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 260 seconds) |
| 05:13:54 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 05:18:44 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 05:22:16 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:23:52 | × | john quits (~john@2406:5a00:241a:5600:64db:a6da:b040:bf3f) (Read error: Connection reset by peer) |
| 05:25:02 | → | john joins (~john@2406:5a00:241a:5600:64db:a6da:b040:bf3f) |
| 05:29:40 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 05:30:02 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 05:32:24 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 05:33:01 | → | euleritian joins (~euleritia@dynamic-176-006-142-081.176.6.pool.telefonica.de) |
| 05:34:29 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 05:43:00 | → | acidjnk joins (~acidjnk@p200300d6e72cfb55f40f4d37683d20bb.dip0.t-ipconnect.de) |
| 05:43:18 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 05:48:52 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 05:59:06 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 06:03:54 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 06:07:48 | → | ubert joins (~Thunderbi@178.115.52.77.wireless.dyn.drei.com) |
| 06:08:58 | → | xff0x joins (~xff0x@om126167111187.29.openmobile.ne.jp) |
| 06:14:53 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 06:19:59 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 06:22:12 | → | ash3en joins (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) |
| 06:22:24 | × | ft quits (~ft@p508db65d.dip0.t-ipconnect.de) (Quit: leaving) |
| 06:23:45 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 06:30:41 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 06:35:23 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 06:44:19 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 06:47:34 | × | euleritian quits (~euleritia@dynamic-176-006-142-081.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 06:47:47 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 06:47:52 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 06:49:11 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 06:49:19 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 06:52:28 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 06:55:11 | → | weary-traveler joins (~user@user/user363627) |
| 06:56:10 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 06:56:50 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:00:02 | × | caconym9 quits (~caconym@user/caconym) (Quit: bye) |
| 07:00:06 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 07:00:39 | → | caconym9 joins (~caconym@user/caconym) |
| 07:00:53 | × | m1dnight quits (~christoph@d8D861908.access.telenet.be) (Quit: WeeChat 4.4.2) |
| 07:00:54 | → | CiaoSen joins (~Jura@2a05:5800:245:6400:ca4b:d6ff:fec1:99da) |
| 07:01:36 | → | m1dnight joins (~christoph@d8D861908.access.telenet.be) |
| 07:05:30 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 07:10:28 | → | weary-traveler joins (~user@user/user363627) |
| 07:11:00 | × | talukara quits (~talukara@user/talukara) (Quit: I closed IRC (probably gonna sleep)) |
| 07:13:31 | × | pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer) |
| 07:13:44 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 07:15:18 | × | xff0x quits (~xff0x@om126167111187.29.openmobile.ne.jp) (Ping timeout: 246 seconds) |
| 07:15:41 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 07:15:53 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 07:18:01 | × | ubert quits (~Thunderbi@178.115.52.77.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
| 07:18:01 | → | talukara_ joins (~talukara@user/talukara) |
| 07:18:10 | × | talukara_ quits (~talukara@user/talukara) (Remote host closed the connection) |
| 07:19:01 | → | pavonia joins (~user@user/siracusa) |
| 07:20:03 | × | pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer) |
| 07:20:19 | → | pavonia joins (~user@user/siracusa) |
| 07:20:58 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 07:21:44 | → | talukara_ joins (~talukara@user/talukara) |
| 07:23:14 | → | talukara joins (~talukara@user/talukara) |
| 07:24:38 | × | talukara_ quits (~talukara@user/talukara) (Client Quit) |
| 07:24:43 | × | talukara quits (~talukara@user/talukara) (Client Quit) |
| 07:26:24 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 07:28:03 | → | misterfish joins (~misterfis@87.215.131.102) |
| 07:29:01 | → | Smiles joins (uid551636@id-551636.lymington.irccloud.com) |
| 07:29:52 | → | cfricke joins (~cfricke@user/cfricke) |
| 07:31:40 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 07:33:35 | → | mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
| 07:35:04 | × | arahael_ quits (~arahael@user/arahael) (Remote host closed the connection) |
| 07:35:04 | × | arahael quits (~arahael@user/arahael) (Remote host closed the connection) |
| 07:35:28 | → | srazkvt joins (~sarah@user/srazkvt) |
| 07:36:26 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 07:37:23 | → | EarlPitts joins (~EarlPitts@212.105.236.53) |
| 07:38:19 | → | arahael joins (~arahael@user/arahael) |
| 07:42:10 | × | benjaminl quits (~benjaminl@user/benjaminl) (Ping timeout: 248 seconds) |
| 07:45:20 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 07:46:43 | × | ash3en quits (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) (Ping timeout: 265 seconds) |
| 07:49:35 | → | sourcetarius joins (~sourcetar@user/sourcetarius) |
| 07:50:48 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 07:51:47 | → | benjaminl joins (~benjaminl@user/benjaminl) |
| 07:58:46 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 08:04:39 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 08:11:17 | → | yoneda joins (~mike@193.206.102.122) |
| 08:14:36 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 08:15:36 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 08:20:44 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 08:20:58 | → | weary-traveler joins (~user@user/user363627) |
| 08:22:20 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
| 08:23:09 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 08:30:16 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 08:35:17 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 08:35:32 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 08:46:03 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 08:51:15 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 08:56:52 | → | __monty__ joins (~toonn@user/toonn) |
| 09:00:13 | → | ubert joins (~Thunderbi@2001:871:263:d8c5:25f0:b28e:b569:d861) |
| 09:04:04 | × | econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:08:37 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
| 09:14:32 | → | chele joins (~chele@user/chele) |
| 09:17:38 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 09:17:57 | → | regev joins (~dararam@147.236.228.111) |
| 09:22:19 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 09:22:20 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 09:24:23 | → | euleritian joins (~euleritia@77.22.252.56) |
| 09:25:18 | <regev> | hi everyone, im new to haskell, and have background in C/Cpp! im currently trying to implement a function (```to_heatmap :: Eq a => [a] -> [(a, Integer)]```) which takes a list and returns a heat map of it... |
| 09:26:04 | × | youthlic quits (~Thunderbi@user/youthlic) (Quit: youthlic) |
| 09:26:09 | <regev> | I can think of a trivial solution i haskell, where i keep an accumilator and use (```length . filter (x==)```) to count apperances of an element |
| 09:26:09 | → | alexherbo2 joins (~alexherbo@2a02-8440-330e-a192-d02d-7641-df0d-48dc.rev.sfr.net) |
| 09:26:48 | <regev> | How ever this solution is O(n^2), and i can easly think of O(n) solutions i could implement in C. |
| 09:27:08 | <geekosaur> | :t group |
| 09:27:09 | <lambdabot> | Eq a => [a] -> [[a]] |
| 09:27:23 | <regev> | So what is the correct way to implement this in haskell for O(n) runtime |
| 09:27:29 | → | ash3en joins (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) |
| 09:28:19 | <geekosaur> | well, first off, don't use lists, they're best thought of as control flow (loops) instead of as data, and as data they're really inefficient |
| 09:28:35 | <ski> | what's `to_heatmap "mississippi"' ? |
| 09:28:53 | <geekosaur> | I think your heatmap is `map (\ |
| 09:28:55 | <geekosaur> | whoops |
| 09:29:21 | <ski> | map (\xs -> (head xs,length xs)) (group xs) -- ? |
| 09:29:35 | <geekosaur> | I think your heatmap is `map (\x -> (head x, length x)) . group`, but I'm not sure if Vector supports that |
| 09:29:49 | <geekosaur> | :t map (\x -> (head x, length x)) . group |
| 09:29:50 | <lambdabot> | Eq a => [a] -> [(a, Int)] |
| 09:32:55 | <geekosaur> | it does, looks like |
| 09:32:56 | × | john quits (~john@2406:5a00:241a:5600:64db:a6da:b040:bf3f) (Read error: Connection reset by peer) |
| 09:33:10 | <geekosaur> | % import qualified Data.Vector as V |
| 09:33:10 | <yahb2> | <no location info>: error: ; Could not find module ‘Data.Vector’ ; Perhaps you meant Data.Functor (from base-4.17.2.1) |
| 09:33:16 | <geekosaur> | 😞 |
| 09:33:19 | <regev> | geekosaur: your solution almost works, i just needed to sort the list first, thank you! |
| 09:33:25 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 09:33:38 | → | john joins (~john@2406:5a00:241a:5600:64db:a6da:b040:bf3f) |
| 09:33:46 | <regev> | about lists as data, why do you say they are bad, and what should i use instead? |
| 09:33:56 | <geekosaur> | check if using Data.Vector instead of lists performs better, then |
| 09:34:02 | <geekosaur> | https://hackage.haskell.org/package/vector-0.13.1.0/docs/Data-Vector.html |
| 09:34:25 | <geekosaur> | lists in Haskell are simple linked lists, so they're very wasteful and slow |
| 09:34:47 | <geekosaur> | > a🅱️c:d:e:[] |
| 09:34:49 | <lambdabot> | <hint>:1:3: error: lexical error at character '\65039' |
| 09:34:55 | <Leary> | regev: I would use `Map a Int` (from Data.Map) in this case. |
| 09:35:00 | <geekosaur> | argh, sometimes my client is too smart |
| 09:35:20 | <geekosaur> | > 1:2:3:4:5:[] |
| 09:35:21 | <lambdabot> | [1,2,3,4,5] |
| 09:35:24 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 260 seconds) |
| 09:35:38 | <regev> | geekosaur: oh right, that makes sense, because of how cons constructs a list, pretty cool |
| 09:35:40 | <geekosaur> | where `:` is the `cons` (construct) operator |
| 09:36:13 | <regev> | Leary: ill read about it |
| 09:36:34 | × | euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 260 seconds) |
| 09:37:03 | → | euleritian joins (~euleritia@dynamic-176-006-142-081.176.6.pool.telefonica.de) |
| 09:37:26 | <geekosaur> | so yeh, you really want to use Vector (or, depending on the case, Map or Sequence) instead in most cases. lists are best reserved for iterating operations (via `traverse` or similar) |
| 09:37:59 | <geekosaur> | and yes, since Maps are implicitly sorted, they're probably better even than Vector |
| 09:38:12 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 09:38:14 | <geekosaur> | but I don't think you get `group` for free? |
| 09:38:20 | × | driib31 quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
| 09:38:23 | × | regev quits (~dararam@147.236.228.111) (Read error: Connection reset by peer) |
| 09:38:57 | → | driib318 joins (~driib@vmi931078.contaboserver.net) |
| 09:39:27 | <Leary> | :t \a -> M.insertWith (+) a 1 |
| 09:39:28 | <lambdabot> | (Ord k, Num a) => k -> M.Map k a -> M.Map k a |
| 09:39:31 | <geekosaur> | hm, I guess if you start with a list or vector and accumulate into a map, you get the best performance |
| 09:39:59 | × | evertedsphere quits (sid434122@id-434122.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:43:03 | × | alexherbo2 quits (~alexherbo@2a02-8440-330e-a192-d02d-7641-df0d-48dc.rev.sfr.net) (Remote host closed the connection) |
| 09:43:04 | → | ash3en1 joins (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) |
| 09:43:35 | × | ash3en quits (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) (Read error: Connection reset by peer) |
| 09:43:35 | ash3en1 | is now known as ash3en |
| 09:45:33 | → | regev joins (~dararam@147.236.228.111) |
| 09:46:35 | × | srazkvt quits (~sarah@user/srazkvt) (Quit: Konversation terminated!) |
| 09:47:03 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 09:51:45 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 09:52:08 | × | regev quits (~dararam@147.236.228.111) (Read error: Connection reset by peer) |
| 09:55:13 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
| 09:57:17 | → | alexherbo2 joins (~alexherbo@2a02-8440-330e-a192-d02d-7641-df0d-48dc.rev.sfr.net) |
| 10:02:52 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 10:06:07 | → | oneeyedalien joins (~oneeyedal@user/oneeyedalien) |
| 10:07:51 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 10:12:03 | × | ubert quits (~Thunderbi@2001:871:263:d8c5:25f0:b28e:b569:d861) (Remote host closed the connection) |
| 10:12:22 | → | ubert joins (~Thunderbi@2001:871:263:d8c5:60b8:c677:a89a:6717) |
| 10:17:48 | × | alexherbo2 quits (~alexherbo@2a02-8440-330e-a192-d02d-7641-df0d-48dc.rev.sfr.net) (Remote host closed the connection) |
| 10:18:37 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 10:22:32 | <albet70> | is there simple haskell code for longest common string? |
| 10:23:23 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 10:25:30 | → | ZharMeny joins (~ZharMeny@user/ZharMeny) |
| 10:28:29 | × | CiaoSen quits (~Jura@2a05:5800:245:6400:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds) |
| 10:34:24 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 10:37:11 | → | morb joins (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
| 10:39:19 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 10:41:54 | × | morb quits (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds) |
| 10:48:03 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 10:48:56 | × | EarlPitts quits (~EarlPitts@212.105.236.53) (Remote host closed the connection) |
| 10:50:54 | × | euleritian quits (~euleritia@dynamic-176-006-142-081.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 10:51:11 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 10:51:13 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 10:52:53 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 10:53:51 | × | rosco quits (~rosco@175.136.158.234) (Quit: Lost terminal) |
| 10:55:19 | <probie> | > let lcs s1 s2=let arr=array((1,1),(length s1,length s2))[((i,j),if c1==c2 then(if 1`elem`[i,j]then 1 else 1+arr!(i-1,j-1)) else 0)|(i, c1)<-zip[1..]s1,(j, c2)<-zip[1..] s2]in(\(n,(i,_))->take n$drop(i-n)$s1)$maximum$map(uncurry$flip(,))$assocs$arr in lcs "ababc" "babca" |
| 10:55:19 | × | paddymahoney quits (~paddymaho@pool-99-250-10-137.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds) |
| 10:55:20 | <lambdabot> | "babc" |
| 10:57:06 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 10:58:10 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 10:59:00 | <probie> | I'm not sure if it counts as simple, but it fits in one IRC message :p |
| 11:03:50 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 11:04:40 | → | benjaminl_ joins (~benjaminl@2601:1c0:847f:9c70:223:24ff:fe66:4370) |
| 11:05:43 | × | benjaminl quits (~benjaminl@user/benjaminl) (Ping timeout: 252 seconds) |
| 11:08:44 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 11:13:49 | → | ft joins (~ft@p508db65d.dip0.t-ipconnect.de) |
| 11:19:37 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 11:21:50 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 11:22:18 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 11:22:40 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 11:22:45 | <lxsameer> | hey folks, I have a cabal project already, is there any advantage on adding hpack support to it? |
| 11:24:29 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 11:28:04 | → | Guest9beatty joins (~Guest9bea@154.125.52.190) |
| 11:28:34 | × | Squared quits (~Square@user/square) (Ping timeout: 260 seconds) |
| 11:44:14 | <albet70> | its not very haskell... |
| 11:44:34 | <lxsameer> | albet70: what do you mean? |
| 11:45:14 | <albet70> | lxsameer , i was talk to probie |
| 11:49:04 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 11:49:06 | <probie> | It relies on lazy evaluation, I think that makes it more Haskell than any other language |
| 11:50:33 | <probie> | Let me remove the effects of APL-induced brainrot |
| 11:52:18 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 11:53:40 | → | img joins (~img@user/img) |
| 11:53:48 | → | CiaoSen joins (~Jura@2a05:5800:245:6400:ca4b:d6ff:fec1:99da) |
| 11:54:14 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 11:58:55 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:59:28 | <lxsameer> | albet70: :D sorry missed that part |
| 12:00:21 | <probie> | https://play.haskell.org/saved/QeAw9iND |
| 12:00:33 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 12:00:46 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 12:01:36 | × | Guest9beatty quits (~Guest9bea@154.125.52.190) (K-Lined) |
| 12:03:15 | <probie> | If the use of `Array` offends you, replace it with `Map` |
| 12:04:15 | <ski> | yay, recursively defined arrays |
| 12:04:49 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 12:05:37 | <haskellbridge> | <sm> lxsameerhpack can make it easier to maintain multiple/complex cabal files (less redundancy, simpler syntax, less need for explicit file declarations). On the other hand it adds some complexity. It’s more often used by developers/projects which mainly use stack, which has it built in. |
| 12:06:19 | <haskellbridge> | <sm> +and keep them consistent |
| 12:07:03 | <haskellbridge> | <sm> * mainly using |
| 12:07:48 | <haskellbridge> | <sm> * complexity (another tool, another build step, another file to version control). |
| 12:07:57 | <haskellbridge> | <magic_rb> Can it be used with cabal? |
| 12:08:05 | <haskellbridge> | <sm> of course |
| 12:08:40 | <haskellbridge> | <sm> you have to run the hpack tool yourself, is all |
| 12:09:07 | <haskellbridge> | <magic_rb> Ah, thats not amazing, easy to forget |
| 12:09:18 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 12:09:19 | <haskellbridge> | <magic_rb> But nothing a wrapper script around cabal couldnt fix |
| 12:09:31 | <haskellbridge> | <sm> True |
| 12:09:39 | → | xff0x joins (~xff0x@2405:6580:b080:900:faf:b23:bfac:f0c0) |
| 12:12:04 | × | oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Ping timeout: 265 seconds) |
| 12:13:39 | <lxsameer> | @sm: cheers |
| 12:14:08 | → | hgolden_ joins (~hgolden@23.162.40.28) |
| 12:16:06 | → | youthlic joins (~Thunderbi@user/youthlic) |
| 12:16:47 | × | hgolden__ quits (~hgolden@146.70.173.101) (Ping timeout: 255 seconds) |
| 12:17:39 | → | hgolden__ joins (~hgolden@169.150.203.23) |
| 12:20:09 | × | hgolden_ quits (~hgolden@23.162.40.28) (Ping timeout: 246 seconds) |
| 12:20:18 | → | hgolden joins (~hgolden@169.150.203.10) |
| 12:20:23 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 12:22:49 | × | hgolden__ quits (~hgolden@169.150.203.23) (Ping timeout: 260 seconds) |
| 12:24:58 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 12:36:09 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 12:38:00 | → | machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net) |
| 12:41:04 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 12:48:30 | × | euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 276 seconds) |
| 12:50:02 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 12:54:54 | × | sourcetarius quits (~sourcetar@user/sourcetarius) (Ping timeout: 260 seconds) |
| 12:55:39 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 12:57:58 | × | fvr quits (ef3e56ca8b@2a03:6000:1812:100::3c4) (Read error: Connection reset by peer) |
| 12:57:58 | × | evanrelf quits (3addc196af@2a03:6000:1812:100::f0) (Read error: Connection reset by peer) |
| 12:57:58 | × | bsima1 quits (9d7e39c8ad@2a03:6000:1812:100::dd) (Read error: Connection reset by peer) |
| 12:58:03 | × | samhh quits (7569f027cf@2a03:6000:1812:100::e4) (Read error: Connection reset by peer) |
| 12:58:03 | samhh_ | is now known as samhh |
| 12:58:05 | × | tok quits (da65c7b04b@user/tok) (Read error: Connection reset by peer) |
| 12:58:05 | × | fgaz_ quits (1ff9197ed6@2a03:6000:1812:100::11ea) (Read error: Connection reset by peer) |
| 12:58:10 | × | jleightcap quits (7bc4014b62@user/jleightcap) (Read error: Connection reset by peer) |
| 12:58:10 | × | sus quits (1b7af6299f@user/zeromomentum) (Read error: Connection reset by peer) |
| 12:58:10 | × | sm2n quits (ae95cb1267@user/sm2n) (Write error: Connection reset by peer) |
| 12:58:10 | × | lane quits (809450f172@2a03:6000:1812:100::1300) (Write error: Connection reset by peer) |
| 12:58:11 | × | smiesner quits (b0cf5acf8c@user/smiesner) (Read error: Connection reset by peer) |
| 12:58:11 | × | eso quits (a0662dfd5e@2a03:6000:1812:100::1266) (Read error: Connection reset by peer) |
| 12:58:12 | × | rselim quits (ce261f06ff@user/milesrout) (Read error: Connection reset by peer) |
| 12:58:12 | × | pmk quits (6afe4476a1@2a03:6000:1812:100::26d) (Read error: Connection reset by peer) |
| 12:58:13 | → | fgaz__ joins (1ff9197ed6@2a03:6000:1812:100::11ea) |
| 12:58:13 | → | samhh_ joins (7569f027cf@2a03:6000:1812:100::e4) |
| 12:58:17 | → | lane joins (809450f172@2a03:6000:1812:100::1300) |
| 12:58:18 | → | smiesner_ joins (b0cf5acf8c@2a03:6000:1812:100::13b9) |
| 12:58:18 | → | pmk_ joins (6afe4476a1@2a03:6000:1812:100::26d) |
| 12:58:19 | → | jleightcap joins (7bc4014b62@user/jleightcap) |
| 12:58:19 | → | sm2n joins (ae95cb1267@user/sm2n) |
| 12:58:20 | → | rselim_ joins (ce261f06ff@user/milesrout) |
| 12:58:28 | smiesner_ | is now known as smiesner |
| 12:58:47 | fgaz__ | is now known as fgaz_ |
| 12:59:20 | rselim_ | is now known as rselim |
| 13:00:13 | × | CiaoSen quits (~Jura@2a05:5800:245:6400:ca4b:d6ff:fec1:99da) (Ping timeout: 244 seconds) |
| 13:01:33 | × | Ankhers quits (e99e97ef8e@2a03:6000:1812:100::2a2) (Read error: Connection reset by peer) |
| 13:01:59 | × | lockywolf quits (~lockywolf@public.lockywolf.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:02:15 | → | lockywolf joins (~lockywolf@public.lockywolf.net) |
| 13:05:52 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 13:07:12 | × | athan quits (~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!) |
| 13:08:32 | × | mesaoptimizer quits (~mesaoptim@user/PapuaHardyNet) (Ping timeout: 255 seconds) |
| 13:08:39 | × | lockywolf quits (~lockywolf@public.lockywolf.net) (Ping timeout: 276 seconds) |
| 13:08:46 | → | lockywolf_ joins (~lockywolf@public.lockywolf.net) |
| 13:10:17 | → | oneeyedalien joins (~oneeyedal@user/oneeyedalien) |
| 13:10:34 | lockywolf_ | is now known as lockywolf |
| 13:11:02 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 13:17:27 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:17:35 | × | oneeyedalien quits (~oneeyedal@user/oneeyedalien) (Quit: Leaving) |
| 13:18:16 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
| 13:21:36 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 13:26:32 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 13:28:09 | × | mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 260 seconds) |
| 13:29:40 | × | misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 244 seconds) |
| 13:31:20 | → | misterfish joins (~misterfis@178.229.176.223) |
| 13:31:45 | × | yoneda quits (~mike@193.206.102.122) (Quit: Lost terminal) |
| 13:34:44 | × | hueso quits (~root@user/hueso) (Quit: hueso) |
| 13:37:23 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 13:38:20 | → | hueso joins (~root@user/hueso) |
| 13:40:35 | × | john quits (~john@2406:5a00:241a:5600:64db:a6da:b040:bf3f) (Read error: Connection reset by peer) |
| 13:40:53 | → | athan joins (~athan@syn-098-153-145-140.biz.spectrum.com) |
| 13:41:20 | → | john joins (~john@2406:5a00:241a:5600:64db:a6da:b040:bf3f) |
| 13:42:18 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 13:43:00 | → | mesaoptimizer_ joins (~mesaoptim@46.23.93.151) |
| 13:44:30 | × | mesaoptimizer_ quits (~mesaoptim@46.23.93.151) (Read error: Connection reset by peer) |
| 13:44:40 | → | fvr joins (ef3e56ca8b@2a03:6000:1812:100::3c4) |
| 13:44:44 | → | sus joins (1b7af6299f@user/zeromomentum) |
| 13:44:45 | → | mesaoptimizer joins (~mesaoptim@user/PapuaHardyNet) |
| 13:44:53 | → | eso joins (a0662dfd5e@2a03:6000:1812:100::1266) |
| 13:45:21 | → | bsima1 joins (9d7e39c8ad@2a03:6000:1812:100::dd) |
| 13:45:31 | → | mari-estel joins (~mari-este@p200300f1c7013f0102163efffe654eef.dip0.t-ipconnect.de) |
| 13:45:39 | × | athan quits (~athan@syn-098-153-145-140.biz.spectrum.com) (Ping timeout: 260 seconds) |
| 13:47:25 | × | mesaoptimizer quits (~mesaoptim@user/PapuaHardyNet) (Remote host closed the connection) |
| 13:50:40 | × | akspecs quits (00cc8321af@sourcehut/user/akspecs) (Ping timeout: 252 seconds) |
| 13:50:41 | × | jakzale quits (6291399afa@user/jakzale) (Ping timeout: 252 seconds) |
| 13:50:41 | × | probie quits (cc0b34050a@user/probie) (Ping timeout: 252 seconds) |
| 13:50:41 | × | lucyy quits (228ee8f0ce@user/lucyy) (Ping timeout: 252 seconds) |
| 13:50:41 | × | bwolf quits (c3bc363dd1@2a03:6000:1812:100::180) (Ping timeout: 252 seconds) |
| 13:50:41 | × | arcadewise quits (52968ed80d@2a03:6000:1812:100::3df) (Ping timeout: 252 seconds) |
| 13:50:41 | × | ymherklotz quits (cb2c9cfbdd@2a03:6000:1812:100::29a) (Ping timeout: 252 seconds) |
| 13:50:41 | × | ggb quits (a62ffbaf4f@2a03:6000:1812:100::3ac) (Ping timeout: 252 seconds) |
| 13:50:51 | × | raghavgururajan quits (ea769b8000@user/raghavgururajan) (Ping timeout: 272 seconds) |
| 13:50:51 | × | cpli quits (77fc530071@2a03:6000:1812:100::252) (Ping timeout: 272 seconds) |
| 13:51:03 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 13:51:05 | × | jkoshy quits (99b9359beb@user/jkoshy) (Ping timeout: 260 seconds) |
| 13:51:09 | × | lockywolf quits (~lockywolf@public.lockywolf.net) (Ping timeout: 246 seconds) |
| 13:51:13 | × | samhh quits (7569f027cf@2a03:6000:1812:100::e4) (Ping timeout: 252 seconds) |
| 13:51:13 | × | b0o quits (0e4a0bf4c9@2a03:6000:1812:100::1bf) (Ping timeout: 252 seconds) |
| 13:51:13 | × | titibandit quits (e33ffbab65@user/titibandit) (Ping timeout: 252 seconds) |
| 13:51:13 | × | jmcantrell quits (644f1bed9a@user/jmcantrell) (Ping timeout: 252 seconds) |
| 13:51:13 | × | henrytill quits (e0180937c3@2a03:6000:1812:100::e8c) (Ping timeout: 252 seconds) |
| 13:51:28 | × | fn_lumi quits (3d621153a5@2a03:6000:1812:100::df7) (Ping timeout: 272 seconds) |
| 13:51:40 | × | lane quits (809450f172@2a03:6000:1812:100::1300) (Ping timeout: 260 seconds) |
| 13:51:40 | × | samhh_ quits (7569f027cf@2a03:6000:1812:100::e4) (Ping timeout: 260 seconds) |
| 13:51:43 | × | sus quits (1b7af6299f@user/zeromomentum) (Ping timeout: 264 seconds) |
| 13:51:45 | × | duncan quits (c6181279e3@user/meow/duncan) (Ping timeout: 252 seconds) |
| 13:51:46 | × | whereiseveryone quits (206ba86c98@2a03:6000:1812:100::2e4) (Ping timeout: 252 seconds) |
| 13:51:46 | × | RussetParrotBear quits (45ce440a48@2a03:6000:1812:100::e2) (Ping timeout: 252 seconds) |
| 13:52:04 | × | fvr quits (ef3e56ca8b@2a03:6000:1812:100::3c4) (Ping timeout: 260 seconds) |
| 13:52:12 | × | alethkit quits (23bd17ddc6@sourcehut/user/alethkit) (Ping timeout: 246 seconds) |
| 13:52:15 | × | jleightcap quits (7bc4014b62@user/jleightcap) (Ping timeout: 260 seconds) |
| 13:52:15 | × | smiesner quits (b0cf5acf8c@2a03:6000:1812:100::13b9) (Ping timeout: 260 seconds) |
| 13:52:15 | × | pmk_ quits (6afe4476a1@2a03:6000:1812:100::26d) (Ping timeout: 260 seconds) |
| 13:52:15 | × | fgaz_ quits (1ff9197ed6@2a03:6000:1812:100::11ea) (Ping timeout: 260 seconds) |
| 13:52:15 | × | chaitlatte0 quits (ea29c0bb16@2a03:6000:1812:100::1124) (Ping timeout: 260 seconds) |
| 13:52:15 | × | lukec quits (9dfd4d094e@2a03:6000:1812:100::10e) (Ping timeout: 260 seconds) |
| 13:52:19 | × | ursa-major quits (114efe6c39@2a03:6000:1812:100::11f3) (Ping timeout: 252 seconds) |
| 13:52:19 | × | JoelMcCracken quits (5ea8252fbb@2a03:6000:1812:100::10e3) (Ping timeout: 252 seconds) |
| 13:52:19 | × | shreyasminocha quits (51fdc93eda@user/shreyasminocha) (Ping timeout: 252 seconds) |
| 13:52:19 | × | filwisher quits (2e6936c793@2a03:6000:1812:100::170) (Ping timeout: 252 seconds) |
| 13:52:19 | × | bsima1 quits (9d7e39c8ad@2a03:6000:1812:100::dd) (Ping timeout: 264 seconds) |
| 13:52:19 | × | eso quits (a0662dfd5e@2a03:6000:1812:100::1266) (Ping timeout: 264 seconds) |
| 13:52:21 | × | aniketd quits (32aa4844cd@2a03:6000:1812:100::dcb) (Ping timeout: 248 seconds) |
| 13:52:50 | × | rselim quits (ce261f06ff@user/milesrout) (Ping timeout: 260 seconds) |
| 13:52:50 | × | sm2n quits (ae95cb1267@user/sm2n) (Ping timeout: 260 seconds) |
| 13:53:48 | → | Squared joins (~Square@user/square) |
| 13:56:09 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 13:58:22 | → | lockywolf joins (~lockywolf@public.lockywolf.net) |
| 13:58:57 | → | mesaoptimizer joins (~mesaoptim@user/PapuaHardyNet) |
| 13:59:39 | → | aniketd joins (32aa4844cd@2a03:6000:1812:100::dcb) |
| 14:02:32 | × | mesaoptimizer quits (~mesaoptim@user/PapuaHardyNet) (Remote host closed the connection) |
| 14:02:34 | × | kimiamania2 quits (~65804703@user/kimiamania) (Quit: PegeLinux) |
| 14:03:06 | × | lockywolf quits (~lockywolf@public.lockywolf.net) (Client Quit) |
| 14:03:07 | × | aniketd quits (32aa4844cd@2a03:6000:1812:100::dcb) (Read error: Connection reset by peer) |
| 14:03:28 | → | kimiamania20 joins (~65804703@user/kimiamania) |
| 14:04:15 | → | samhh joins (7569f027cf@2a03:6000:1812:100::e4) |
| 14:05:20 | → | eso joins (a0662dfd5e@2a03:6000:1812:100::1266) |
| 14:05:21 | → | arcadewise joins (52968ed80d@2a03:6000:1812:100::3df) |
| 14:05:28 | → | sus joins (1b7af6299f@user/zeromomentum) |
| 14:05:36 | → | fvr joins (ef3e56ca8b@2a03:6000:1812:100::3c4) |
| 14:05:43 | → | bsima1 joins (9d7e39c8ad@2a03:6000:1812:100::dd) |
| 14:05:44 | → | lucyy joins (228ee8f0ce@user/lucyy) |
| 14:05:49 | → | henrytill joins (e0180937c3@2a03:6000:1812:100::e8c) |
| 14:05:51 | → | akspecs joins (00cc8321af@sourcehut/user/akspecs) |
| 14:05:52 | → | lockywolf joins (~lockywolf@public.lockywolf.net) |
| 14:05:54 | → | JoelMcCracken joins (5ea8252fbb@2a03:6000:1812:100::10e3) |
| 14:05:56 | → | bwolf joins (c3bc363dd1@2a03:6000:1812:100::180) |
| 14:05:56 | → | ggb joins (a62ffbaf4f@2a03:6000:1812:100::3ac) |
| 14:06:13 | → | RussetParrotBear joins (45ce440a48@2a03:6000:1812:100::e2) |
| 14:06:13 | → | shreyasminocha joins (51fdc93eda@user/shreyasminocha) |
| 14:06:32 | × | youthlic quits (~Thunderbi@user/youthlic) (Quit: youthlic) |
| 14:06:33 | → | filwisher joins (2e6936c793@2a03:6000:1812:100::170) |
| 14:06:42 | → | whereiseveryone joins (206ba86c98@2a03:6000:1812:100::2e4) |
| 14:06:47 | → | tok joins (da65c7b04b@user/tok) |
| 14:06:47 | → | duncan joins (c6181279e3@user/meow/duncan) |
| 14:06:48 | → | ursa-major joins (114efe6c39@2a03:6000:1812:100::11f3) |
| 14:06:49 | → | b0o joins (0e4a0bf4c9@2a03:6000:1812:100::1bf) |
| 14:06:50 | → | evanrelf joins (3addc196af@2a03:6000:1812:100::f0) |
| 14:06:54 | → | jmcantrell joins (644f1bed9a@user/jmcantrell) |
| 14:07:00 | → | ymherklotz joins (cb2c9cfbdd@2a03:6000:1812:100::29a) |
| 14:07:08 | → | jakzale joins (6291399afa@user/jakzale) |
| 14:07:09 | → | titibandit joins (e33ffbab65@user/titibandit) |
| 14:07:16 | → | probie joins (cc0b34050a@user/probie) |
| 14:07:20 | → | Ankhers joins (e99e97ef8e@2a03:6000:1812:100::2a2) |
| 14:07:44 | × | mari-estel quits (~mari-este@p200300f1c7013f0102163efffe654eef.dip0.t-ipconnect.de) (Read error: Connection reset by peer) |
| 14:08:41 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:08:50 | → | youthlic joins (~Thunderbi@user/youthlic) |
| 14:10:32 | → | aniketd joins (32aa4844cd@2a03:6000:1812:100::dcb) |
| 14:11:30 | → | mesaoptimizer joins (~mesaoptim@user/PapuaHardyNet) |
| 14:11:50 | → | alethkit joins (23bd17ddc6@sourcehut/user/alethkit) |
| 14:12:09 | → | fn_lumi joins (3d621153a5@2a03:6000:1812:100::df7) |
| 14:13:18 | → | lane joins (809450f172@2a03:6000:1812:100::1300) |
| 14:13:18 | → | jkoshy joins (99b9359beb@user/jkoshy) |
| 14:13:45 | → | rselim joins (ce261f06ff@user/milesrout) |
| 14:13:52 | × | misterfish quits (~misterfis@178.229.176.223) (Ping timeout: 265 seconds) |
| 14:14:09 | → | samhh_ joins (7569f027cf@2a03:6000:1812:100::e4) |
| 14:14:17 | → | lukec joins (9dfd4d094e@2a03:6000:1812:100::10e) |
| 14:14:21 | → | cpli joins (77fc530071@2a03:6000:1812:100::252) |
| 14:14:25 | → | smiesner joins (b0cf5acf8c@user/smiesner) |
| 14:14:29 | → | chaitlatte0 joins (ea29c0bb16@user/chaitlatte0) |
| 14:14:35 | → | pmk joins (6afe4476a1@2a03:6000:1812:100::26d) |
| 14:14:42 | → | jleightcap joins (7bc4014b62@user/jleightcap) |
| 14:14:42 | → | sm2n joins (ae95cb1267@user/sm2n) |
| 14:15:14 | → | raghavgururajan joins (ea769b8000@user/raghavgururajan) |
| 14:15:16 | → | misterfish joins (~misterfis@87.215.131.102) |
| 14:15:41 | → | fgaz_ joins (1ff9197ed6@2a03:6000:1812:100::11ea) |
| 14:17:50 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
| 14:22:20 | → | regev joins (~dararam@2a01:6502:6458:69e2:f350:31e2:a69c:c396) |
| 14:22:37 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 14:23:50 | → | mari-estel joins (~mari-este@p200300f1c7013f0102163efffe654eef.dip0.t-ipconnect.de) |
| 14:24:41 | × | mari-estel quits (~mari-este@p200300f1c7013f0102163efffe654eef.dip0.t-ipconnect.de) (Client Quit) |
| 14:27:23 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 14:27:39 | × | regev quits (~dararam@2a01:6502:6458:69e2:f350:31e2:a69c:c396) (Ping timeout: 260 seconds) |
| 14:27:54 | → | mari-estel joins (~mari-este@p200300f1c7013f0102163efffe654eef.dip0.t-ipconnect.de) |
| 14:28:34 | <mari-estel> | meh, hoogle generate fails on this machine, too little memory. I'll have to find another way to browse docs locally |
| 14:29:28 | → | ystael joins (~ystael@user/ystael) |
| 14:29:40 | → | regev joins (~dararam@147.236.228.111) |
| 14:32:25 | <geekosaur> | note that if you have a large enough dependency footprint, no amount of memory will be enough |
| 14:32:33 | <geekosaur> | it'll just spiral out of control |
| 14:33:52 | → | spew joins (~spew@201.141.99.170) |
| 14:33:52 | × | regev quits (~dararam@147.236.228.111) (Read error: Connection reset by peer) |
| 14:34:42 | <mari-estel> | hmm, it's not about "my" package, i just wanted to run `hoogle generate` to browse packages docs. I think it runs upon what's pointed by cabal |
| 14:36:34 | × | misterfish quits (~misterfis@87.215.131.102) (Ping timeout: 260 seconds) |
| 14:38:24 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 14:43:21 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 14:46:41 | <jackdk> | lxsameer: I have found hpack to obscure more than it helps. I use `cabal-fmt` to automatically update the `exposed-modules` field as files get added |
| 14:47:16 | → | vpan joins (~vpan@212.117.1.172) |
| 14:50:54 | → | erisco joins (~erisco@d24-141-66-165.home.cgocable.net) |
| 14:51:38 | <erisco> | https://hackage.haskell.org/package/amazonka-secretsmanager-2.0/docs/Amazonka-SecretsManager-ListSecrets.html#v:newListSecrets says can use generic-lens to modify optional fields. However, doesn't that package require HasField and so on to be instanced by ListSecrets? and it is not |
| 14:52:03 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 14:52:37 | <erisco> | oh, it just works off Generic... duh |
| 14:54:26 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds) |
| 14:57:12 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 14:58:38 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 15:01:07 | × | nisstyre quits (wes@user/nisstyre) (Ping timeout: 252 seconds) |
| 15:02:11 | <jackdk> | You might need to import `Data.Generics.Labels ()` to bring the instances into scope |
| 15:02:39 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 260 seconds) |
| 15:08:21 | × | ash3en quits (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) (Ping timeout: 244 seconds) |
| 15:09:10 | → | jinsun joins (~jinsun@user/jinsun) |
| 15:14:28 | → | nisstyre joins (wes@user/nisstyre) |
| 15:14:41 | × | mari-estel quits (~mari-este@p200300f1c7013f0102163efffe654eef.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 15:14:58 | → | briandaed joins (~root@185.234.210.211.r.toneticgroup.pl) |
| 15:15:00 | <lxsameer> | jackdk: thanks for the insight |
| 15:15:24 | × | itaipu quits (~itaipu@168.121.99.111) (Ping timeout: 276 seconds) |
| 15:15:39 | <briandaed> | ghcid is sweet |
| 15:19:51 | <haskellbridge> | <sm> 👍 |
| 15:20:02 | → | mari-estel joins (~mari-este@p200300f1c7013f0102163efffe654eef.dip0.t-ipconnect.de) |
| 15:20:26 | → | ystael joins (~ystael@user/ystael) |
| 15:22:05 | → | meygerjos joins (~meygerjos@syn-024-090-143-083.res.spectrum.com) |
| 15:23:38 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 15:23:42 | × | ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer) |
| 15:26:26 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:26:33 | → | ystael joins (~ystael@user/ystael) |
| 15:27:52 | → | fireking04 joins (~user@36-227-77-64.dynamic-ip.hinet.net) |
| 15:28:54 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 15:28:54 | × | meygerjos quits (~meygerjos@syn-024-090-143-083.res.spectrum.com) (Ping timeout: 260 seconds) |
| 15:30:15 | → | itaipu joins (~itaipu@168.121.98.63) |
| 15:33:34 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 260 seconds) |
| 15:39:24 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 15:43:03 | → | regev joins (~dararam@147.236.228.111) |
| 15:44:34 | <regev> | what is the best way to practice haskell fundamentals? currently im doing some code wars, which is nice, but im curious if there are some good resources of practical challenges i am missing |
| 15:44:39 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 15:49:28 | <geekosaur> | I think the best way is to find a project that interests you and dive in. pandoc, hledger, and xmonad are always looking for new contributors |
| 15:49:46 | <haskellbridge> | <sm> exercism is probably good. For simple pure exercises, I found project Euler good |
| 15:50:14 | <geekosaur> | (so are cabal and ghc, but they're not very beginner friendly: there's a steep learning curve) |
| 15:50:37 | sprout | sacrifices a goat |
| 15:52:01 | <haskellbridge> | <sm> haskell fundamentals and practical challenges are not quite the same |
| 15:52:33 | <geekosaur> | yeh, if you're still working on fundamentals you may want the wikibook or cis194 instead |
| 15:52:33 | <c_wraith> | maybe unexpectedly, I find learning how advanced things work in the context of real projects to be great for practicing fundamentals. Very little of the real project is actually the advanced thing you're focusing on. |
| 15:52:57 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 15:54:19 | <geekosaur> | actually, if you're skilled in docker and ci, hackage's matrix builder needs a lot of love. the haskell component isn't that difficult |
| 15:54:31 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds) |
| 15:55:47 | <mari-estel> | hmm, surprised the matrix builder doesn't run upon nix |
| 15:56:26 | <haskellbridge> | <sm> Code wars is different from clash of code, right ? the latter practices only a very small bit of haskell but it’s great fun |
| 15:57:35 | <geekosaur> | mari-estel, you'd have to ask hvr why/why not, but nobody's seen him in several years |
| 15:57:46 | <mari-estel> | :/ |
| 15:58:04 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 15:58:24 | <geekosaur> | (I've been building up my docker skills and local hardware to try to work on it at some point, since the matrix builder's been down for years) |
| 15:58:55 | <erisco> | using haskell IDE in vscode, is there an easier way to get to the documentation for types? the types show up in the tooltips, but then I have to go and manually type them into Hoogle to find docs |
| 16:01:35 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 16:02:24 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 16:03:23 | <briandaed> | erisco: how it's different in java or other mainstream language, do you expect short description in tooltip? |
| 16:03:33 | × | regev quits (~dararam@147.236.228.111) (Read error: Connection reset by peer) |
| 16:04:30 | → | meygerjos joins (~meygerjos@syn-024-090-143-083.res.spectrum.com) |
| 16:05:53 | <geekosaur> | erisco, if you point to a symbol and it shows the type, you can't click on it. if you point to a type, the tooltip has a link to the documentation |
| 16:07:11 | <briandaed> | geekosaur, any progress in xmonad@wayland? sorry, wasn't following discourse |
| 16:07:42 | <geekosaur> | not yet. the primary dev's been having problems with his hands so he hasn't been doing much of late |
| 16:08:41 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 16:09:17 | → | regev joins (~dararam@147.236.228.111) |
| 16:09:37 | <haskellbridge> | <thirdofmay18081814goya> do monad transformers correspond to some sort of functor between kleisli categories? if I want to model computations as monads, monad transformers then are the tool by virtue of which we can compose computations, and their categorical semantics are that of functors between kleisli categories, right? |
| 16:12:16 | × | machinedgod quits (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 16:12:40 | <ski> | would rather be category of monads (a kind of functor category), than kleisli category |
| 16:13:45 | <ski> | (also, you left ##prolog too soon, the other day, to see the (inquiring) responses to your query about nondeterminism) |
| 16:14:25 | <haskellbridge> | <thirdofmay18081814goya> ski: my client kept crashing for some reason |
| 16:14:30 | <haskellbridge> | <thirdofmay18081814goya> or timing-out rather |
| 16:14:37 | <ski> | happens |
| 16:14:42 | <haskellbridge> | <thirdofmay18081814goya> need to find something non-web based |
| 16:14:51 | <ski> | (you wouldn't happen to've been using a phone client ?) |
| 16:15:09 | → | athan joins (~athan@2600:381:e914:f866:be3d:2819:871c:da7e) |
| 16:15:41 | <haskellbridge> | <thirdofmay18081814goya> no, libera-chat's web client |
| 16:15:48 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 16:16:09 | <ski> | mm, i guess some non-mobile browsers may also suspend tabs |
| 16:16:24 | <ski> | (even when there's an active connection in it) |
| 16:16:33 | <haskellbridge> | <thirdofmay18081814goya> ski: i.e., composition of computations is composition in the category of monads? |
| 16:16:40 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 16:16:54 | <geekosaur> | yes, if you configure chrome (it may be configured by default these days) it shuts down inactive tabs |
| 16:16:55 | <ski> | a monad transformer `t', is supposed to map a monad, `m', into a monad, `t m' |
| 16:16:56 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 16:17:01 | <geekosaur> | I think ff has something similar |
| 16:17:16 | <ski> | so, if `t' is a functor between categories, then those categories must have monads as their objects |
| 16:18:14 | <ski> | a kleisli category is a particular kind of category, for a *given* (single) monad `m'. but you want a category not corresponding in some sense to a monad, but a category *of* monads |
| 16:18:48 | × | vpan quits (~vpan@212.117.1.172) (Quit: Leaving.) |
| 16:19:00 | <ski> | (iow, `t' ought to be able to be applied to *any* monad `m' (of the right kind), not just some single fixed monad `m') |
| 16:19:49 | <ski> | thirdofmay18081814goya : "composition of computations", as in `(>>=)' or `(>=>)' ? |
| 16:19:52 | <haskellbridge> | <thirdofmay18081814goya> hm i see, thanks a lot |
| 16:20:06 | <ski> | that corresponds to composition in a kleisli category, for the particular monad in question, yes |
| 16:20:35 | <ski> | but this wouldn't be the relevant category, as domain or codomain for a monad transformer, seen as a functor |
| 16:20:49 | <haskellbridge> | <thirdofmay18081814goya> need to think about it a bit more, forgot to distinguish between an instance of a monad (which is closer to want we think of as a computation) from the monad (a class of computations) |
| 16:21:04 | ski | prefers to use the term "action" |
| 16:21:22 | <haskellbridge> | <thirdofmay18081814goya> hm right |
| 16:21:41 | <ski> | given a monad `m', a value of type `m a', for some type `a', is an `m'-action (sometimes : computation, context, "collection") |
| 16:22:39 | <haskellbridge> | <thirdofmay18081814goya> right I see |
| 16:22:46 | <ski> | (often newbies would call `getLine' (of type `IO String') a "monad", talking about "passing a monad to a function" or "returning a monad", which is incorrect terminology, possibly conflating different levels (value and type). `IO' is the monad here, `getLine' is an `IO'-action) |
| 16:23:05 | <ski> | (well, `IO', together with its definition of `return' and `(>>=)', to be strict) |
| 16:24:31 | → | Guest|45 joins (~Guest|45@134.226.214.212) |
| 16:24:32 | × | Guest|45 quits (~Guest|45@134.226.214.212) (Client Quit) |
| 16:24:39 | × | regev quits (~dararam@147.236.228.111) (Quit: WeeChat 3.8) |
| 16:24:40 | <ski> | ("instance" is not that great to use, in Haskell, since that's standard terminology for something else (instance of a type class)) |
| 16:24:51 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds) |
| 16:26:09 | <haskellbridge> | <thirdofmay18081814goya> right makes sense |
| 16:27:11 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2) |
| 16:27:33 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 16:27:43 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:28:16 | <haskellbridge> | <thirdofmay18081814goya> thanks a lot for the explanation! |
| 16:28:26 | <ski> | if `Set' is the category of sets (and total functions between sets), then `Set -> Set' could be the category of functors on `Set' (and natural transformations between those as the morphisms). then something like `{f : Set -> Set | Monad f}' could be a subcategory of that, namely of all monads over `Set'. then a monad transformer could be a functor from this category to itself (probably this functor needing |
| 16:28:32 | <ski> | to satisfy some extra conditions) |
| 16:29:35 | × | mari-estel quits (~mari-este@p200300f1c7013f0102163efffe654eef.dip0.t-ipconnect.de) (Quit: bye) |
| 16:30:00 | <haskellbridge> | <thirdofmay18081814goya> will take a few minutes to properly parse these |
| 16:30:13 | <ski> | otoh, if `M' is a (single) monad over `Set', the category `Kleisli M' has as objects the same as `Set' (namely all sets), but the morphisms from `A' to `B' in `Kleisli M' would be ("implemented as") the functions from `A' to `M B' (in `Set') |
| 16:32:34 | <ski> | (and, composition of a morphism `g : B -> C' and a morphism `f : A -> B' (giving `g . f : A -> C') in `Kleisli M', would be implemented as applying `(<=<)' to the corresponding implementing functions `g : B -> M C' and `f : A -> M B' (giving `g <=< f : A -> M C') in `Set') |
| 16:32:45 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 16:41:10 | → | mreh joins (~matthew@host86-160-168-12.range86-160.btcentralplus.com) |
| 16:41:17 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:43:20 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 16:44:00 | → | euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
| 16:45:07 | × | rao^ quits (~rao@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 264 seconds) |
| 16:46:00 | → | rao^ joins (~rao@c-98-242-74-66.hsd1.ga.comcast.net) |
| 16:48:11 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 16:49:12 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:52:06 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 16:52:34 | → | ash3en joins (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) |
| 16:55:59 | × | ubert quits (~Thunderbi@2001:871:263:d8c5:60b8:c677:a89a:6717) (Ping timeout: 260 seconds) |
| 16:56:53 | × | motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit) |
| 16:57:14 | <lxsameer> | In megaparsec lib, is there any better alternative to getSourcePos? according to the docs that's not a cheap function |
| 16:57:45 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 16:57:57 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 16:58:23 | × | athan quits (~athan@2600:381:e914:f866:be3d:2819:871c:da7e) (Remote host closed the connection) |
| 16:58:48 | → | athan joins (~athan@2600:381:e914:f866:be3d:2819:871c:da7e) |
| 16:59:06 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 17:00:49 | <__monty__> | Depends on what you're trying to do but if you want the line and column, I don't think so? It's not like libraries are in the business of providing slower versions of fast operations. |
| 17:02:14 | <lxsameer> | __monty__: what is the "fast" operation here? |
| 17:02:50 | <__monty__> | You tell me. |
| 17:03:36 | <lxsameer> | :/ |
| 17:04:29 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 17:06:43 | <__monty__> | You also shouldn't worry about things being slow before having reliable measurements telling you they're too slow IMO. |
| 17:08:38 | <lxsameer> | __monty__: i think you didn't fully understand my question |
| 17:09:05 | × | ash3en quits (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) (Ping timeout: 252 seconds) |
| 17:09:23 | <__monty__> | That's possible. |
| 17:10:37 | <lxsameer> | the docs of megaparsec says "This function is not cheap, do not call it e.g. on matching of every token, that's a bad idea", given that the same documentation has similar heads up for things like takeWhile1P and satisfy, I'm asking whether there is a better altenative to function or not? |
| 17:11:09 | <__monty__> | Note that all you've said is you want to do `getSourcePos`, Megaparsec wouldn't implement a slow `getSourcePos` if it could implement a fast one. So without knowing what it really is you want to do, the only function that will suffice is `getSourcePos`. |
| 17:13:22 | <lxsameer> | yeah you didn't understand my question |
| 17:14:54 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 17:14:55 | <__monty__> | I'm willing to try to understand better but clearly I'd need help. |
| 17:15:39 | × | athan quits (~athan@2600:381:e914:f866:be3d:2819:871c:da7e) (Ping timeout: 260 seconds) |
| 17:16:04 | <lxsameer> | any way, it seems you really like to be sarcastic, I don't have energy for that. |
| 17:17:54 | <__monty__> | I don't and am not but I'll respect your objection and refrain from talking about it more. |
| 17:18:21 | <lxsameer> | thank you |
| 17:18:45 | → | ash3en joins (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) |
| 17:18:55 | × | fireking04 quits (~user@36-227-77-64.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 17:20:19 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 17:20:50 | <geekosaur> | lxsameer, the thing is that __monty__ was right: there's no cheap way to do it |
| 17:20:58 | <geekosaur> | tracking source positions is expensive |
| 17:21:11 | <lxsameer> | sure, I'm not saying it is cheap. |
| 17:21:25 | <geekosaur> | so why are you looking for a cheap way to do it? |
| 17:22:22 | <lxsameer> | I'm like, if the author gave me a heads up about it, and he did the same with something like noneOf and the provided a better alternative, then is there any better alternative to this one or not. Which apparently the answer is no |
| 17:22:49 | <geekosaur> | the "cheaper" (not by much) way to do it is a custom parser combinator library which tracks it for every token, which means you're always paying a cost for it |
| 17:22:55 | <lxsameer> | I never said I'm looking for a cheaper version. I'm just trying to clarify my doubts |
| 17:23:20 | <lxsameer> | ofcourse |
| 17:23:51 | <geekosaur> | the intent of getSourcePos is it's something you would call while producing a parse error message |
| 17:24:30 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:25:06 | <geekosaur> | if you need it more often than that, consider a custom parser library |
| 17:25:21 | <lxsameer> | geekosaur: thank you, makes sense |
| 17:26:52 | <geekosaur> | (depending on what you're doing, you may want to look into bidirectional parser libraries) |
| 17:27:37 | <lxsameer> | cheers |
| 17:28:25 | <haskellbridge> | <sm> isn't getting source position something usually needed only for error messages, when parsing has failed. And won't laziness make it a no-op otherwise |
| 17:29:17 | <lxsameer> | unfortunately in my case I think I might need it more than that |
| 17:29:24 | <geekosaur> | unless you're doing bidirectional parsing (that is, being able to reproduce the parsed source), that would normally be true, yes |
| 17:29:28 | <monochrom> | No. When you put "x1 = x0 + 1" in a loop, you are between a rock and a hard place. |
| 17:29:51 | <monochrom> | If you go for eagerness, you pay the price of + whether you later "need" it or not. |
| 17:29:51 | <lxsameer> | for example, when expanding a lisp macro, I want to remember the original source location |
| 17:30:26 | <monochrom> | If you go for laziness, you accumulate the thunk "x0 + x1 + x2 + ..." whether you later "need" it or not. |
| 17:30:28 | <haskellbridge> | <sm> I don't think you'll find getSourcePos noticeably slow.. give it a try |
| 17:30:33 | <geekosaur> | okay, that might be reasonable to getSourcePos on every macro definition and save the result in a map |
| 17:30:42 | <monochrom> | The former is called "time leak", the latter "space leak". |
| 17:30:44 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 17:30:58 | <monochrom> | (Clearly, I disagree with those wordings.) |
| 17:31:34 | <lxsameer> | geekosaur: the problem is, the parser would not know what is a macro and what is not a macro, so I need the location of every symbol (but obviously lazily only) |
| 17:32:57 | <geekosaur> | there are ways around that (this is sometimes called the "typedef problem" because of C) |
| 17:34:05 | <geekosaur> | the parser normally would know since the usual output is an AST, which generally needs to know. but that means making `defmacro` or equivalent a keyword, so you may need feedback from the AST consumer to the parser |
| 17:35:45 | <geekosaur> | just as parsers for C usually need to recognize `typedef` so they can parse subsequent type declarations using the `typedef` correctly |
| 17:35:49 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 17:35:54 | <lxsameer> | ah I see, that's good point, but it's like shifting the complexity to somewhere else. For example it is not only defmacro, lisps quasiquotes have the same behaviour. and it makes it even more complicated if the macro comes from somewhere else (like a library or another file) |
| 17:36:16 | → | sourcetarius joins (~sourcetar@user/sourcetarius) |
| 17:38:12 | <geekosaur> | right, but the only way to build the AST correctly requires you to either recognize macros or have a post-parsing step that completely rewires the AST |
| 17:38:27 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:38:36 | <geekosaur> | (ghc doees the latter to deal with fixity, it's not pretty. but the Haskell language definition requires it) |
| 17:39:51 | <dolio> | Having written a parser that tries to resolve things like fixity up front, I think that is even less pretty. |
| 17:39:52 | <lxsameer> | geekosaur: cheers, I probably have to do it in multiple phases as well |
| 17:40:14 | <geekosaur> | specifically: fixity can be declared anywhere in the same source file as the operator or function, so expressions have to be parsed as flat and fixity adjusted later when it's known |
| 17:41:13 | × | kimiamania20 quits (~65804703@user/kimiamania) (Quit: PegeLinux) |
| 17:41:23 | <dolio> | Unless the fixity is completely static in the grammar, I think some fixup pass is the way to go. |
| 17:42:28 | <geekosaur> | right, but in this case the question isn't fixity, it's knowing source positions of definitions |
| 17:42:34 | <monochrom> | . o O ( There may be a recursion scheme for that. >:) ) |
| 17:42:35 | → | kimiamania20 joins (~65804703@user/kimiamania) |
| 17:42:55 | <geekosaur> | I think `getSourcePos` is not so expensive that you can't reasonably call it on every definition |
| 17:43:14 | <geekosaur> | unless your grammar is such that identifying definitions is difficult |
| 17:43:28 | <geekosaur> | (I can imagine this for Scheme-like languages) |
| 17:45:07 | <erisco> | geekosaur, oh I see, but only for some types. Prelude seems okay, but other imports have no doc link. Hm. |
| 17:45:32 | <erisco> | briandaed, in intellisense, for example, you can go to the definition, even for imported libraries |
| 17:46:19 | <erisco> | the tooltip tells me where it is defined, but this is not useful alone... one also needs the haddock or something |
| 17:46:29 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 17:46:40 | <geekosaur> | erisco, I think it has to be something which HLS has indexed |
| 17:46:58 | <geekosaur> | I don't know how you make it index external libs, though |
| 17:47:07 | × | aljustiet quits (aljustiet@2607:5300:60:8796::105) (Changing host) |
| 17:47:07 | → | aljustiet joins (aljustiet@user/meow/aljustiet) |
| 17:48:04 | <geekosaur> | hm, I wonder if having local haddocks (`documentation: True` in cabal config) would also be sufficient |
| 17:49:04 | <dolio> | For another aside, the situation is even worse than you mentionedd. Fixity declarations can be local. |
| 17:49:55 | <dolio> | > let foo x y = x + y * y where w + z = 2*w Prelude.+ 2*z ; infixl 9 + in foo 1 2 |
| 17:49:56 | <lambdabot> | 12 |
| 17:50:02 | <erisco> | geekosaur, good idea https://haskell-language-server.readthedocs.io/en/latest/configuration.html#how-to-show-local-documentation-on-hover |
| 17:51:49 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 17:52:18 | <erisco> | stack build ~one eternity leightair~ |
| 17:52:49 | <ski> | > let foo (+) x y = x + y * y where infixl 9 + in foo (+) 1 2 |
| 17:52:50 | <lambdabot> | error: |
| 17:52:50 | <lambdabot> | The fixity signature for ‘+’ lacks an accompanying binding |
| 17:52:50 | <lambdabot> | (The fixity signature must be given where ‘+’ is declared) |
| 17:53:18 | <monochrom> | Wait, import cannot be local but fixity can?! :( |
| 17:53:23 | <ski> | yes |
| 17:53:49 | <monochrom> | This is so sad. |
| 17:54:05 | <geekosaur> | yes, in any scope where you can declare an operator (or a function, which can be used as an operator via ``) you can declare a fixity for it |
| 17:54:26 | <ski> | unfortunately, you can't attach a fixity declaration to a lambda, or an infix operator pattern in a defining equation for a function |
| 17:56:27 | <geekosaur> | pesky lambdas, always spoiling the party |
| 17:57:12 | <monochrom> | It is not like I will be writing 5 `\x y -> 2*x - 3*y` 7 |
| 17:57:33 | × | ash3en quits (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) (Ping timeout: 246 seconds) |
| 17:59:24 | <monochrom> | Oh hey if you don't like $ being infixr, consider infixl 0 `id` >:) |
| 17:59:59 | <monochrom> | Oh darn, can't declare it independently. |
| 18:00:42 | × | auri quits (~auri@fsf/member/auri) (Ping timeout: 246 seconds) |
| 18:01:29 | → | athan joins (~athan@syn-098-153-145-140.biz.spectrum.com) |
| 18:01:43 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 18:02:15 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 18:02:27 | <monochrom> | And no local pattern synonyms. :( |
| 18:02:55 | <ski> | "can't declare it independently" -- yes, that's what i lamented, in the non-definition binding case |
| 18:03:31 | → | auri joins (~auri@fsf/member/auri) |
| 18:03:33 | <probie> | > let{($-)=flip($);infixr 2 $-;(-$)=id;infixl 1 -$} in 5 $-(\x y -> 2*x - 3*y)-$ 7 |
| 18:03:34 | <lambdabot> | -11 |
| 18:03:57 | → | ash3en joins (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) |
| 18:04:00 | ski | wants recursive pattern synonyms |
| 18:06:59 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 18:17:40 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 18:21:02 | → | tabi joins (~tabi@static.151.210.203.116.clients.your-server.de) |
| 18:22:26 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 18:26:16 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 18:31:39 | → | hgolden_ joins (~hgolden@146.70.174.37) |
| 18:33:28 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 18:34:08 | × | hgolden quits (~hgolden@169.150.203.10) (Ping timeout: 245 seconds) |
| 18:38:23 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 18:39:42 | × | ash3en quits (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) (Ping timeout: 265 seconds) |
| 18:40:02 | → | ash3en joins (~Thunderbi@146.70.124.222) |
| 18:43:24 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
| 18:48:28 | → | rvalue- joins (~rvalue@user/rvalue) |
| 18:48:45 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 252 seconds) |
| 18:49:15 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 18:51:19 | × | sourcetarius quits (~sourcetar@user/sourcetarius) (Ping timeout: 260 seconds) |
| 18:54:14 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 18:54:26 | rvalue- | is now known as rvalue |
| 19:00:04 | × | caconym9 quits (~caconym@user/caconym) (Quit: bye) |
| 19:00:40 | → | caconym9 joins (~caconym@user/caconym) |
| 19:05:02 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 19:05:15 | × | mulk quits (~mulk@p5b112b2e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 19:05:51 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 260 seconds) |
| 19:06:06 | → | mulk joins (~mulk@p5b112a06.dip0.t-ipconnect.de) |
| 19:09:37 | × | Squared quits (~Square@user/square) (Ping timeout: 248 seconds) |
| 19:09:38 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 19:11:04 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 19:11:04 | × | briandaed quits (~root@185.234.210.211.r.toneticgroup.pl) (Remote host closed the connection) |
| 19:19:49 | → | machinedgod joins (~machinedg@d50-99-47-73.abhsia.telus.net) |
| 19:20:49 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 19:22:12 | <[exa]> | is there some good idiom for traversing a structure (chainging the elements in the process) while at the same looking at "zipped" elements from another structure (which I'm sure about that it's got the same number of elements)? On lists this would be easy traverse + zip, for others I don't see a sufficiently unique natural way to do this best |
| 19:23:04 | × | mulk quits (~mulk@p5b112a06.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 19:23:09 | <monochrom> | You would write a zip for that data structure. |
| 19:23:20 | <[exa]> | the "correct" way would be to have a proper structural zip for the structures I guess |
| 19:23:55 | <EvanR> | both structures come with a type parameter which must match before you can zip them |
| 19:24:11 | <EvanR> | law and order |
| 19:24:53 | <monochrom> | Or, it's a Reader on the 2nd thing, and you keep using local when you recurse. |
| 19:25:18 | <[exa]> | yeah that's what I have now |
| 19:25:43 | <monochrom> | Nah, zip it, it's more Haskell. |
| 19:25:48 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 19:25:58 | <tomsmeding> | [exa]: toList the "other structure", and extend the Applicative that you're traversing with, with (State [a]) |
| 19:26:01 | <[exa]> | yeah, the `local` way is ugly recursive |
| 19:26:17 | <tomsmeding> | overhead of allocating list cons cells, but O(1) extra space |
| 19:26:17 | <monochrom> | basically some kind of separation of concerns. |
| 19:26:44 | <[exa]> | having a zipWithM for the structure would pretty much do it |
| 19:26:46 | <tomsmeding> | my solution does assume quite heavily that the number of elements is indeed the same, and the structure is indeed equal |
| 19:27:25 | <tomsmeding> | you could wrap this in a function called simultaneousTraverse that only requires Traversable (and the unchecked assumption of equal structures) |
| 19:27:38 | <tomsmeding> | it is also ugly |
| 19:28:05 | <[exa]> | tomsmeding: hm yeah I guess this is going to be the immediate solution now |
| 19:28:13 | <[exa]> | take the ugliness I have in like 6 places now |
| 19:28:18 | <[exa]> | put it in a module |
| 19:28:21 | <[exa]> | forget its face |
| 19:29:01 | <[exa]> | ..........so anyway, is there a typeclass for zippable stuff? :D |
| 19:29:25 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 19:29:29 | <erisco> | geekosaur, it does include the doc in the tooltip, but not a link to hackage... almost :) |
| 19:30:32 | <sm> | erisco, isn't there some Hoogle extension for VS Code ? |
| 19:32:14 | <monochrom> | [exa]: I think it's called Applicative >:) |
| 19:32:25 | <tomsmeding> | that doesn't necessarily zip :p |
| 19:32:51 | → | mulk joins (~mulk@p5b112a06.dip0.t-ipconnect.de) |
| 19:33:31 | <[exa]> | tbh I might probably just need to rethink the data structures |
| 19:34:10 | <erisco> | sm, doesn't seem to work, neither the hotkey nor the command palette =\ |
| 19:34:12 | <[exa]> | I've got a heap of stuff being kept same size now; might be better to just fix that |
| 19:34:54 | → | kaskal- joins (~kaskal@213-147-165-35.nat.highway.webapn.at) |
| 19:35:39 | × | kaskal quits (~kaskal@2001:4bb8:2c0:e7da:c513:1c36:5f64:6c34) (Ping timeout: 260 seconds) |
| 19:36:36 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 19:37:50 | <tomsmeding> | [exa]: simTraverse f a b = evalStateT (traverse (\x -> state (\(y:ys) -> (y, ys)) >>= lift . f x) a) (toList b) |
| 19:37:59 | <[exa]> | hm regarding the data structures, is there some well-known name for a "simpler" form of an interval tree, where when you insert an interval over other intervals they merge into a single one? (Used e.g. for keeping info about coverage of something continuous.) |
| 19:38:02 | <[exa]> | tomsmeding: <3 |
| 19:39:04 | × | michalz quits (~michalz@185.246.207.205) (Remote host closed the connection) |
| 19:39:23 | → | ash3en1 joins (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) |
| 19:39:28 | <geekosaur> | quick search suggests that isn't "simpler", you have to do a merge pass on insert |
| 19:39:31 | <tomsmeding> | [exa]: https://hackage.haskell.org/package/data-interval-2.1.2/docs/Data-IntervalSet.html |
| 19:39:55 | <tomsmeding> | (never used the package, this is not a recommendation, just an observation that it exists) |
| 19:40:01 | × | ash3en quits (~Thunderbi@146.70.124.222) (Ping timeout: 248 seconds) |
| 19:40:02 | ash3en1 | is now known as ash3en |
| 19:40:11 | <geekosaur> | although if someone's done it for you already… |
| 19:40:18 | <[exa]> | oh wow |
| 19:40:45 | <[exa]> | geekosaur: it doesn't have to remember all intervals so I thought it could simplify itself |
| 19:40:51 | <[exa]> | tomsmeding: thanks again I think that's it |
| 19:41:04 | <[exa]> | all problems solved for the next week! |
| 19:41:07 | <[exa]> | thanks #haskell |
| 19:41:30 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 19:41:33 | <tomsmeding> | data-interval does seem to have some gratuitous dependencies |
| 19:41:43 | <geekosaur> | the problem being that on insert it must determine any overlapping intervals and combine them. which may remove other intervals if they are caused to be overlapping by the insert |
| 19:42:10 | <tomsmeding> | ('lattices' has a bunch of deps) |
| 19:42:54 | <tomsmeding> | geekosaur: that isn't terribly difficult, right? Upon insert of [a, b], remove all intervals with end-point or start-point inside [a, b], then add the new interval |
| 19:43:03 | <tomsmeding> | that maintains the invariant |
| 19:43:23 | <tomsmeding> | oh uh |
| 19:43:39 | <geekosaur> | not difficult but does require a full scan because you don't know a priori what those intervals might be |
| 19:43:40 | <tomsmeding> | don't just remove, take the minimal start-point of them and the maximal end-point of them, and union that with [a, b] |
| 19:44:00 | <tomsmeding> | geekosaur: surely the intervals are stored in an ordered container so that this is just two binary searches |
| 19:44:20 | <tomsmeding> | one for 'a', one for 'b'; all leaves between those two binary search results can be removed |
| 19:44:41 | <tomsmeding> | you have to think carefully about one-off errors near the results of those binary searches, though |
| 19:44:58 | <tomsmeding> | but this is firmly O(log(n)) |
| 19:44:59 | <geekosaur> | hopefully yes, although I then wonder about performance with many intervals. but I suppose you'd need millions for it to be significant |
| 19:45:17 | <[exa]> | I think this is ok |
| 19:45:40 | <[exa]> | like, if someone decides to smash on a big interval, the cost for removing the covered small ones is OK because it simplifies the structure |
| 19:45:48 | <tomsmeding> | indeed, it amortises |
| 19:45:52 | <[exa]> | I think it amortizes nicely because .. yes |
| 19:46:08 | × | youthlic quits (~Thunderbi@user/youthlic) (Quit: youthlic) |
| 19:46:16 | <monochrom> | Oh, that will be an exam question next year >:) |
| 19:46:24 | <tomsmeding> | inserting n intervals is O(n log(n)), because you visit every interval at most twice: once when inserting it, and once (potentially) when deleting it |
| 19:46:45 | <[exa]> | monochrom: is too easy, they can solve it on #haskell in 5 minutes |
| 19:46:50 | <monochrom> | (Amortization questions are hard to come by. So far I have been exploiting lazy data structures only.) |
| 19:47:13 | <monochrom> | Oh don't worry, the course is in an imperative context. |
| 19:47:25 | <[exa]> | lol |
| 19:47:54 | <[exa]> | nvm let's code this, thanks all! |
| 19:52:23 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 19:55:37 | × | meygerjos quits (~meygerjos@syn-024-090-143-083.res.spectrum.com) (Ping timeout: 244 seconds) |
| 19:57:54 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 19:58:04 | <tomsmeding> | monochrom: elementwise (i.e. leaf-) addition of a bunch of sparse trees is linear in the total size of those sparse trees |
| 19:58:07 | <tomsmeding> | by amortisation |
| 19:58:39 | <tomsmeding> | or, huh |
| 19:58:49 | <tomsmeding> | I guess that's too obvious |
| 20:00:29 | × | athan quits (~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!) |
| 20:03:07 | <tomsmeding> | monochrom: okay, the claim holds regardless of in which order the sparse trees are added |
| 20:03:12 | <tomsmeding> | that's less trivial |
| 20:03:42 | <tomsmeding> | (phew, I knew this was non-trivial enough to spend a few paragraphs on in a paper) |
| 20:04:22 | <tomsmeding> | (a PL paper, though, not an algorithmics paper -- in an algorithmics context this would probably have been half a sentence at most :p) |
| 20:08:13 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 20:13:08 | × | erisco quits (~erisco@d24-141-66-165.home.cgocable.net) (Quit: Leaving) |
| 20:13:28 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 20:13:45 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 20:23:57 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 20:29:19 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 20:29:42 | × | ash3en quits (~Thunderbi@2a01:c23:9557:5f00:94f4:207e:5021:7ec4) (Quit: ash3en) |
| 20:39:44 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 20:44:50 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 20:45:51 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
| 20:49:59 | → | lol_ joins (~lol@2603:3016:1e01:b9e0:8939:8175:d5c:835) |
| 20:51:07 | → | weary-traveler joins (~user@user/user363627) |
| 20:52:20 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 20:53:49 | × | jcarpenter2 quits (~lol@2603:3016:1e01:b9e0:d5ba:7298:a21a:356f) (Ping timeout: 260 seconds) |
| 20:55:31 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 20:59:04 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 21:00:49 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 21:01:36 | × | kimiamania20 quits (~65804703@user/kimiamania) (Quit: PegeLinux) |
| 21:01:59 | → | kimiamania20 joins (~65804703@user/kimiamania) |
| 21:02:06 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 21:03:08 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:06:04 | × | mreh quits (~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 260 seconds) |
| 21:08:40 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 21:11:17 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 21:12:29 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds) |
| 21:13:28 | → | meygerjos joins (~meygerjos@syn-024-090-143-083.res.spectrum.com) |
| 21:16:48 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 21:27:04 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 21:27:23 | × | rdcdr quits (~rdcdr@user/rdcdr) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 21:28:12 | → | rdcdr joins (~rdcdr@user/rdcdr) |
| 21:32:00 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 21:36:59 | × | meygerjos quits (~meygerjos@syn-024-090-143-083.res.spectrum.com) (Ping timeout: 260 seconds) |
| 21:38:51 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 21:39:06 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 246 seconds) |
| 21:42:51 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 21:47:45 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 21:58:38 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 22:03:32 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 22:06:12 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds) |
| 22:08:43 | × | rdcdr quits (~rdcdr@user/rdcdr) (Quit: ZNC 1.8.2+deb3.1+deb12u1 - https://znc.in) |
| 22:09:34 | → | rdcdr joins (~rdcdr@user/rdcdr) |
| 22:14:24 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 22:19:34 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 22:29:47 | × | tabi quits (~tabi@static.151.210.203.116.clients.your-server.de) (Quit: Leaving.) |
| 22:30:13 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 22:33:13 | <haskellbridge> | <thirdofmay18081814goya> what's a good intro to algebraic effects? |
| 22:35:06 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 22:44:43 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:45:58 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 22:50:23 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 22:55:54 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:56:08 | × | acidjnk quits (~acidjnk@p200300d6e72cfb55f40f4d37683d20bb.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 22:58:52 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 23:00:48 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 23:01:31 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 23:01:51 | <d34df00d> | https://arxiv.org/abs/1807.05923 this one is good I think. |
| 23:02:07 | <haskellbridge> | <thirdofmay18081814goya> d34df00d: ty! |
| 23:02:15 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 23:02:22 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 23:02:58 | <JuanDaugherty> | ur in monad country |
| 23:03:42 | <haskellbridge> | <thirdofmay18081814goya> it's ok i think they're just free monads |
| 23:03:57 | <d34df00d> | Exactly! |
| 23:04:03 | <d34df00d> | (more or less) |
| 23:06:13 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 23:14:07 | <monochrom> | I second that paper. :) |
| 23:15:22 | <monochrom> | As for freeness, I would say: monad : algebraic effect :: free monad : free algebraic effect |
| 23:17:17 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 23:21:22 | → | mrmr155334346318 joins (~mrmr@user/mrmr) |
| 23:22:00 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 23:33:03 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 23:36:02 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 23:37:53 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 23:39:30 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:40:30 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
| 23:44:16 | × | _________ quits (~nobody@user/noodly) (Ping timeout: 272 seconds) |
| 23:44:42 | <haskellbridge> | <magic_rb> Free algebraic effect? Thats a thing? |
| 23:45:02 | → | _________ joins (~nobody@user/noodly) |
| 23:45:23 | × | merijn quits (~merijn@204-220-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 23:56:16 | → | merijn joins (~merijn@204-220-045-062.dynamic.caiway.nl) |
All times are in UTC on 2024-09-13.