Logs on 2024-12-02 (liberachat/#haskell)
| 00:01:05 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:04:26 | × | gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds) |
| 00:06:10 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 00:14:21 | → | gmg joins (~user@user/gehmehgeh) |
| 00:16:07 | → | banner_ joins (~banner@202.137.173.5) |
| 00:16:21 | × | banner quits (~banner@202.137.173.5) (Read error: Connection reset by peer) |
| 00:16:52 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:19:02 | × | zenmov quits (~zenmov@user/zenmov) (Ping timeout: 255 seconds) |
| 00:19:57 | × | poopiedookie quits (~poopiedoo@syn-069-206-166-125.res.spectrum.com) (Quit: Client closed) |
| 00:20:50 | × | Everything quits (~Everythin@46.211.118.149) (Ping timeout: 252 seconds) |
| 00:21:37 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 00:22:47 | → | Everything joins (~Everythin@46-133-39-1.mobile.vf-ua.net) |
| 00:26:15 | × | xff0x quits (~xff0x@2405:6580:b080:900:bdb1:25e1:e64a:22aa) (Ping timeout: 252 seconds) |
| 00:28:40 | × | sprotte24 quits (~sprotte24@p200300d16f31c000346c7ccb6d0f74ba.dip0.t-ipconnect.de) (Quit: Leaving) |
| 00:29:59 | × | KicksonButt quits (~quassel@187.21.174.221) (Ping timeout: 252 seconds) |
| 00:30:57 | × | banner_ quits (~banner@202.137.173.5) (Quit: Leaving) |
| 00:31:39 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:32:40 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:37:45 | → | tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) |
| 00:39:27 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 00:44:55 | × | tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 260 seconds) |
| 00:48:14 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds) |
| 00:50:44 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:55:23 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 00:58:36 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 00:59:51 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
| 01:01:35 | → | gvg joins (~dcd@user/gvg) |
| 01:04:02 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
| 01:05:34 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:10:21 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
| 01:14:22 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:19:04 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 01:19:08 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 01:25:55 | → | Smiles joins (uid551636@id-551636.lymington.irccloud.com) |
| 01:27:13 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:30:09 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:35:05 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 01:43:00 | → | mange joins (~user@user/mange) |
| 01:45:58 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 01:50:40 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 01:51:11 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
| 01:53:58 | → | tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) |
| 01:57:56 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:59:09 | × | tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 245 seconds) |
| 02:01:11 | → | billchenchina joins (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) |
| 02:01:44 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:06:39 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 02:15:36 | × | Enviosity quits (~Enviosity@2.219.56.221) (Quit: Connection error?!) |
| 02:16:11 | × | robobub quits (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
| 02:17:30 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:18:25 | × | euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds) |
| 02:22:09 | × | machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds) |
| 02:22:42 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 02:22:48 | → | Square joins (~Square@user/square) |
| 02:25:52 | → | zenmov joins (~zenmov@user/zenmov) |
| 02:33:21 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:34:41 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 02:35:10 | → | Enviosity joins (~Enviosity@2.219.56.221) |
| 02:38:28 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 02:43:12 | → | tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) |
| 02:47:53 | → | euleritian joins (~euleritia@77.22.252.159) |
| 02:49:05 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 02:53:33 | × | tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 246 seconds) |
| 02:54:17 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 02:58:17 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
| 02:59:36 | → | Enviosity_ joins (~Enviosity@2.219.56.221) |
| 03:02:09 | × | Enviosity quits (~Enviosity@2.219.56.221) (Ping timeout: 252 seconds) |
| 03:04:09 | → | ezzieyguywuf joins (~Unknown@user/ezzieyguywuf) |
| 03:04:53 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:08:46 | × | td_ quits (~td@i53870919.versanet.de) (Ping timeout: 252 seconds) |
| 03:09:52 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 03:10:33 | → | td_ joins (~td@i5387091A.versanet.de) |
| 03:20:42 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:27:26 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 03:27:42 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 03:30:20 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 03:33:18 | × | tv quits (~tv@user/tv) (Read error: Connection reset by peer) |
| 03:35:44 | → | tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) |
| 03:38:45 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:40:18 | × | tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 252 seconds) |
| 03:43:09 | × | Everything quits (~Everythin@46-133-39-1.mobile.vf-ua.net) (Quit: leaving) |
| 03:43:14 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 03:50:10 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 03:54:07 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 03:58:59 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 04:07:03 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
| 04:09:48 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:14:46 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 04:19:39 | → | aforemny_ joins (~aforemny@2001:9e8:6cc2:7300:b057:b2c0:d48e:e441) |
| 04:20:05 | × | aforemny quits (~aforemny@2001:9e8:6ce8:7100:2a57:7115:ef6a:199f) (Ping timeout: 248 seconds) |
| 04:25:14 | → | KicksonButt joins (~quassel@187.21.174.221) |
| 04:25:35 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:30:13 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 04:40:49 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 04:41:22 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:46:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 04:48:34 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 260 seconds) |
| 04:50:01 | → | gorignak joins (~gorignak@user/gorignak) |
| 04:55:17 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 04:59:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 05:02:03 | × | KicksonButt quits (~quassel@187.21.174.221) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 05:10:51 | × | zlqrvx quits (~zlqrvx@user/zlqrvx) (Ping timeout: 252 seconds) |
| 05:11:04 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:14:56 | → | zlqrvx joins (~zlqrvx@user/zlqrvx) |
| 05:15:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 05:24:41 | → | michalz joins (~michalz@185.246.207.218) |
| 05:26:51 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:27:17 | × | tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 248 seconds) |
| 05:32:30 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 05:42:39 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 05:47:33 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 05:58:26 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:05:05 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 06:05:23 | × | anpad quits (~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in) |
| 06:07:29 | → | anpad joins (~pandeyan@user/anpad) |
| 06:08:13 | → | tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl) |
| 06:10:48 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:15:45 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 06:17:33 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 06:24:59 | → | leif joins (~leif@210.54.33.112) |
| 06:26:35 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:31:11 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:31:54 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
| 06:37:24 | × | mange quits (~user@user/mange) (Quit: Quittin' time!) |
| 06:42:23 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 06:47:00 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 06:56:35 | → | acidjnk_new3 joins (~acidjnk@p200300d6e7283f25b46ec29f1d31fbc6.dip0.t-ipconnect.de) |
| 06:57:42 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 06:58:11 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 07:02:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
| 07:11:27 | → | billchenchina- joins (~billchenc@103.118.42.229) |
| 07:11:48 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 07:13:44 | × | billchenchina quits (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Ping timeout: 245 seconds) |
| 07:16:33 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 07:16:34 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 248 seconds) |
| 07:24:57 | × | tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 276 seconds) |
| 07:27:36 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 07:32:40 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 07:33:57 | → | CiaoSen joins (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da) |
| 07:35:49 | × | euleritian quits (~euleritia@77.22.252.159) (Ping timeout: 248 seconds) |
| 07:36:16 | → | euleritian joins (~euleritia@dynamic-176-006-142-190.176.6.pool.telefonica.de) |
| 07:38:21 | → | tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl) |
| 07:40:27 | → | briandaed joins (~root@user/briandaed) |
| 07:43:23 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 07:43:50 | × | ft quits (~ft@p508db9c7.dip0.t-ipconnect.de) (Quit: leaving) |
| 07:45:23 | × | tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 265 seconds) |
| 07:47:52 | → | Square2 joins (~Square4@user/square) |
| 07:48:05 | × | APic quits (apic@apic.name) (Ping timeout: 248 seconds) |
| 07:50:00 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 07:51:10 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 07:51:36 | × | Square quits (~Square@user/square) (Ping timeout: 276 seconds) |
| 07:53:51 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:56:08 | → | ubert joins (~Thunderbi@p200300ecdf42fd867c5a9f24741cb45b.dip0.t-ipconnect.de) |
| 08:00:05 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 08:00:06 | → | tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl) |
| 08:00:50 | → | caconym joins (~caconym@user/caconym) |
| 08:01:26 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 08:07:37 | × | CiaoSen quits (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da) (Ping timeout: 265 seconds) |
| 08:15:29 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 08:18:13 | × | tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 252 seconds) |
| 08:19:42 | → | APic joins (apic@apic.name) |
| 08:20:16 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
| 08:21:01 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 08:26:37 | → | Smiles joins (uid551636@id-551636.lymington.irccloud.com) |
| 08:29:47 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:29:57 | → | Square joins (~Square@user/square) |
| 08:32:53 | × | acidjnk_new3 quits (~acidjnk@p200300d6e7283f25b46ec29f1d31fbc6.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 08:33:12 | × | vanishingideal quits (~vanishing@user/vanishingideal) (Quit: leaving) |
| 08:34:09 | → | tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl) |
| 08:36:53 | × | alp_ quits (~alp@128-79-174-146.hfc.dyn.abo.bbox.fr) (Remote host closed the connection) |
| 08:37:25 | × | Square quits (~Square@user/square) (Ping timeout: 260 seconds) |
| 08:38:12 | → | alp joins (~alp@2001:861:8ca0:4940:a36a:bc17:9bfc:9786) |
| 08:43:00 | × | gorignak quits (~gorignak@user/gorignak) (Remote host closed the connection) |
| 08:56:13 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 09:00:43 | × | APic quits (apic@apic.name) (Ping timeout: 264 seconds) |
| 09:02:58 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 09:03:37 | → | acidjnk_new3 joins (~acidjnk@p200300d6e7283f25b46ec29f1d31fbc6.dip0.t-ipconnect.de) |
| 09:05:10 | <tomsmeding> | why do we now have 9.8.4 in ghcup without having 9.8.3 :p |
| 09:05:21 | → | chele joins (~chele@user/chele) |
| 09:05:27 | <haskellbridge> | <maerwald> because 9.8.3 is BUSTED |
| 09:05:49 | <haskellbridge> | <maerwald> well, not exactly, but shipping a bugged filepath :) |
| 09:06:23 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 09:06:23 | <tomsmeding> | ah I see :p |
| 09:06:35 | <tomsmeding> | maerwald: thanks for going the good work :) |
| 09:07:06 | <tomsmeding> | *doing |
| 09:11:23 | <haskellbridge> | <maerwald> 9.6.7 I think is supposed to come too soon |
| 09:11:33 | <haskellbridge> | <maerwald> it will then be the target of the next "recommended" release |
| 09:13:35 | × | tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 260 seconds) |
| 09:13:58 | → | tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl) |
| 09:15:53 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 09:16:56 | → | califax joins (~califax@user/califx) |
| 09:21:44 | × | tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 255 seconds) |
| 09:23:59 | → | APic joins (apic@apic.name) |
| 09:30:12 | × | m1dnight quits (~m1dnight@141.134.25.8) (Quit: WeeChat 3.0) |
| 09:33:22 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:35:56 | → | tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl) |
| 09:36:25 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 09:37:36 | → | CiaoSen joins (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da) |
| 09:37:56 | → | califax joins (~califax@user/califx) |
| 09:40:07 | × | APic quits (apic@apic.name) (Ping timeout: 252 seconds) |
| 09:43:53 | × | euleritian quits (~euleritia@dynamic-176-006-142-190.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 09:44:14 | → | euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) |
| 09:50:16 | → | JamesMowery439 joins (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) |
| 09:50:55 | × | euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 09:51:26 | × | JamesMowery43 quits (~JamesMowe@ip68-228-212-232.ph.ph.cox.net) (Ping timeout: 255 seconds) |
| 09:51:26 | JamesMowery439 | is now known as JamesMowery43 |
| 09:51:29 | → | euleritian joins (~euleritia@dynamic-176-006-129-106.176.6.pool.telefonica.de) |
| 09:56:04 | × | koolazer quits (~koo@user/koolazer) (Remote host closed the connection) |
| 09:56:05 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 09:57:13 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds) |
| 09:57:15 | → | califax joins (~califax@user/califx) |
| 09:59:35 | × | euleritian quits (~euleritia@dynamic-176-006-129-106.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 10:00:06 | → | euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) |
| 10:00:54 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 10:00:54 | × | euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 10:01:37 | → | gmg joins (~user@user/gehmehgeh) |
| 10:02:14 | → | euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) |
| 10:09:11 | <tomsmeding> | playground now has 9.8.4 :) |
| 10:10:55 | → | __monty__ joins (~toonn@user/toonn) |
| 10:15:48 | → | m1dnight joins (~m1dnight@d8D861908.access.telenet.be) |
| 10:19:08 | × | m1dnight quits (~m1dnight@d8D861908.access.telenet.be) (Client Quit) |
| 10:23:02 | → | m1dnight joins (~m1dnight@d8D861908.access.telenet.be) |
| 10:27:57 | × | tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 252 seconds) |
| 10:28:27 | → | tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl) |
| 10:38:52 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 10:39:00 | → | fp joins (~Thunderbi@2001:708:20:1406::1370) |
| 10:40:54 | × | CiaoSen quits (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds) |
| 10:42:23 | <fp> | Hey there, I have two lists that I'm trying to get the absolute difference of, ie the absolute value of their element-wise difference. I'm trying to do this with =zipWith=, but I'm getting errors that I'm having a hard time understanding. If I do =zipWith (abs $ (-)) [1, 2, 3] [3, 2, 1]=, it says "No instance for (Num (Int -> Int -> Int)) arising from a use of ‘abs’". Does this mean =abs= isn't meeting the =Num= constraint? |
| 10:44:12 | <int-e> | @pl \x y -> abs (x - y) |
| 10:44:12 | <lambdabot> | (abs .) . (-) |
| 10:44:28 | <int-e> | you're applying abs to a function |
| 10:45:40 | <fp> | Is it better to use what you wrote or what lambdabot wrote |
| 10:45:58 | <fp> | int-e |
| 10:45:59 | <int-e> | I'd use the function |
| 10:46:08 | <int-e> | that is what I wrote |
| 10:46:08 | <fp> | kk thank you |
| 10:46:15 | × | sawilagar quits (~sawilagar@user/sawilagar) (Quit: Leaving) |
| 10:49:53 | <haskellbridge> | <Morj> fp: This means that you're trying to use a function (int -> int -> int) as a number. In your example the function is "(-)", and you're using it in "abs (-)" (you can remove $ here). For such expressions I recommend first writing it in point-ful style, like "zipWith (\a b -> abs $ a - b)", and then removing the points by hand, because what lambdabot recommends is wow (= |
| 10:50:19 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
| 10:50:36 | <haskellbridge> | <Morj> Maybe something like "map (abs . uncurry (-)) $ zip [1,2,3] [3,2,1]" would look better |
| 10:50:48 | → | tv joins (~tv@user/tv) |
| 10:51:35 | <geekosaur> | I'd avoid the ($) as well since you seem to be confused about the difference between it and (.) |
| 10:51:57 | <fp> | Morj point-ful style refers to this sort of closure thing, \x y -> abs x - y |
| 10:52:11 | <fp> | I am indeed confused by the many symbols |
| 10:52:24 | <int-e> | beware that abs x - y is different from abs (x - y) |
| 10:52:38 | <fp> | right I just wrote that without thinking too hard |
| 10:53:55 | <haskellbridge> | <Morj> Pointful and pointfree refers to the points as in maths, that is inputs to functions. Like if you write "graph of f(x)", x is a point on a line. Similarily, in haskell you can either write "f = \x -> abs x", or "f = abs" - the second one is point-free because you don't mention x. It's a bit confusing, everyone agrees :D |
| 10:54:22 | × | tinjamin4 quits (~tinjamin@banshee.h4x0r.space) (Remote host closed the connection) |
| 10:54:36 | <fp> | I see, ok |
| 10:56:38 | → | tinjamin4 joins (~tinjamin@banshee.h4x0r.space) |
| 10:59:06 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 11:01:09 | → | kuribas joins (~user@ptr-17d51emmusfz7zv97iv.18120a2.ip6.access.telenet.be) |
| 11:05:27 | × | arahael quits (~arahael@user/arahael) (Quit: Lost terminal) |
| 11:12:07 | × | kmein quits (~weechat@user/kmein) (Ping timeout: 264 seconds) |
| 11:13:57 | → | kmein joins (~weechat@user/kmein) |
| 11:23:31 | × | tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 264 seconds) |
| 11:23:42 | ski | normally avoids using `$' altogether |
| 11:23:47 | <ski> | (with a few exceptions) |
| 11:23:55 | → | tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl) |
| 11:25:41 | <ski> | fp : `(f .) . g' is a known pattern for `\x y -> f (g x y)' (i defined `(.:) = (.) . (.)', many years ago, which would enable writing `f .: g'. generalizes to more curried parameters). many people prefer not using either of these, either using a function abstraction expression (lambda), or naming the function |
| 11:27:17 | × | fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 248 seconds) |
| 11:35:51 | × | tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 276 seconds) |
| 11:45:52 | → | fp joins (~Thunderbi@130.233.70.205) |
| 11:47:18 | → | pavonia joins (~user@user/siracusa) |
| 11:49:25 | → | xff0x joins (~xff0x@2405:6580:b080:900:2e90:f46e:2f28:18f7) |
| 11:51:39 | × | ubert quits (~Thunderbi@p200300ecdf42fd867c5a9f24741cb45b.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 11:55:18 | → | CiaoSen joins (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da) |
| 11:56:44 | → | APic joins (apic@apic.name) |
| 11:56:58 | → | tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl) |
| 11:57:30 | × | kmein quits (~weechat@user/kmein) (Quit: ciao kakao) |
| 11:58:20 | → | kmein joins (~weechat@user/kmein) |
| 12:00:12 | → | Guest87 joins (~Guest87@81.144.164.210) |
| 12:02:00 | → | billchenchina joins (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) |
| 12:04:05 | × | billchenchina- quits (~billchenc@103.118.42.229) (Ping timeout: 248 seconds) |
| 12:04:59 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 12:08:48 | × | euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 265 seconds) |
| 12:09:23 | <ski> | (with `(.::) = (.) . (.) . (.)' (same number of dots, number of characters tells how many parameters are passed to the inner/right/first function), `f .:: g' is `((f .) .) . g' is `\x y z -> f (g x y z)'. btw, note that `(f .: g) x y z is `f (g x y) z', passing on two parameters to `g') |
| 12:09:28 | <ski> | fp ^ |
| 12:10:57 | → | euleritian joins (~euleritia@dynamic-176-006-139-191.176.6.pool.telefonica.de) |
| 12:11:03 | <fp> | Gosh how do you disable thunderbird from turning haskell into emojis |
| 12:11:54 | × | tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 252 seconds) |
| 12:11:56 | <dminuoso> | fp: You can disable "Display emoticons as graphics" globally |
| 12:12:04 | <dminuoso> | Pick your poison. |
| 12:12:29 | × | fp quits (~Thunderbi@130.233.70.205) (Quit: fp) |
| 12:12:51 | → | fp joins (~Thunderbi@2001:708:20:1406::1370) |
| 12:14:40 | <fp> | But so in the case of (f .) . g, is (f .) as an operator using (.), or is it its own thing |
| 12:15:49 | <dminuoso> | fp: It is called a section |
| 12:16:48 | <dminuoso> | For operators (functions whose name are not alphanumeric but other characters) there's a special shorthand where you can partially apply the second argument (and the first argument) by writing `(a .)` or `(. b)` - we call these sections. |
| 12:17:24 | <dminuoso> | So (a .) is the same as `\x -> (a . x)` and `(. b)` is the same as `\x -> (x . b)` |
| 12:18:40 | <dminuoso> | And also (a .) is obviously the same as ((.) a) |
| 12:18:51 | <dminuoso> | Though (b .) has no equivalent here except the lambda form above. |
| 12:19:03 | <ski> | (fp : see PM for what you missed, before) |
| 12:19:54 | <ski> | `(^ 2)' is the squaring function, and `(2 ^)' is the power-of-two function |
| 12:20:03 | <dminuoso> | I think there may be a small difference with respect to strictness between `\x -> a . x` and `((.) a`, let me check real quick |
| 12:21:04 | × | euleritian quits (~euleritia@dynamic-176-006-139-191.176.6.pool.telefonica.de) (Ping timeout: 272 seconds) |
| 12:21:15 | × | biberu quits (~biberu@user/biberu) (Ping timeout: 252 seconds) |
| 12:22:08 | → | euleritian joins (~euleritia@dynamic-176-004-023-074.176.4.pool.telefonica.de) |
| 12:22:21 | <dminuoso> | % (...) True = \_ -> True; (...) _ = \_ -> False |
| 12:22:21 | <yahb2> | <no output> |
| 12:22:31 | <dminuoso> | % (...) undefined `seq` () |
| 12:22:31 | <yahb2> | () |
| 12:22:34 | <dminuoso> | Why does this not diverge? |
| 12:22:48 | <geekosaur> | dminuoso, the standard requires them to be identical, I think ghc bends that slightly in some cases |
| 12:24:35 | <fp> | Is (f .) . g similar to (\p, x -> f (g (p x))) ? |
| 12:25:32 | <dminuoso> | What is `\p, x -> ...` supposed to denote? |
| 12:25:51 | <fp> | p I suppose is some function and x some value |
| 12:26:01 | × | euleritian quits (~euleritia@dynamic-176-004-023-074.176.4.pool.telefonica.de) (Read error: Connection reset by peer) |
| 12:26:04 | <dminuoso> | And that comma? |
| 12:26:13 | <fp> | Me forgetting the syntax |
| 12:26:18 | → | euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) |
| 12:26:37 | <Leary> | % :set -fpedantic-bottoms |
| 12:26:37 | <yahb2> | <no output> |
| 12:26:40 | <Leary> | % (...) True = \_ -> True; (...) _ = \_ -> False |
| 12:26:40 | <yahb2> | <no output> |
| 12:26:44 | <Leary> | % (...) undefined `seq` () |
| 12:26:44 | <yahb2> | *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:101:7 in interactive:Ghci24 |
| 12:27:20 | <fp> | so more correctly, (\p x -> f (g (p x))) |
| 12:27:43 | <ncf> | that doesn't even have the same type as (f .) . g |
| 12:27:58 | <dminuoso> | Leary: Err. I am confused, is GHC diverging from the haskell standard with respect to function argument pattern matching without that flag? |
| 12:28:05 | <geekosaur> | yes |
| 12:28:18 | <dminuoso> | Well okay.. :S |
| 12:28:19 | <Leary> | dminuoso: Without -fpedantic-bottoms, ghc allows some transformations that make code "more defined". |
| 12:28:45 | <merijn> | dminuoso: I mean, GHC diverges from the Haskell standard in, like, 20 different ways :p |
| 12:28:52 | <geekosaur> | https://downloads.haskell.org/ghc/latest/docs/users_guide/bugs.html#expressions-and-patterns |
| 12:29:08 | <fp> | So where is my logic breaking down? Here's how I got to that expression: (f .) . g becomes (\p -> (f . p)) . g becomes (\p x -> f (p x)) . g becomes (\p x -> (f . g) (p x)) becomes (\p x -> f (g (p x))) |
| 12:29:51 | <merijn> | dminuoso: In fact, this divergence is even documented |
| 12:29:58 | <merijn> | ah, geekosaur beat me |
| 12:30:03 | <ncf> | (f .) . g |
| 12:30:04 | <ncf> | = \p -> (f .) (g p) |
| 12:30:05 | <ncf> | = \p -> f . g p |
| 12:30:06 | <ncf> | = \p x -> f (g p x) |
| 12:30:31 | <ncf> | your first step is wrong |
| 12:30:47 | <ski> | fp : "Is (f .) . g similar to (\p, x -> f (g (p x))) ?" -- no |
| 12:30:54 | <fp> | I don't understand the first step |
| 12:31:05 | <ncf> | i am applying the definition of (.) |
| 12:31:07 | <ncf> | @src (.) |
| 12:31:07 | <lambdabot> | (f . g) x = f (g x) |
| 12:31:25 | <ncf> | with f := (f .) |
| 12:31:29 | <dminuoso> | % (undefined .) `seq` () |
| 12:31:30 | <ski> | ((f .) . g) p = (f .) (g p) |
| 12:31:35 | <dminuoso> | % (undefined .) `seq` ()b |
| 12:31:35 | <yahb2> | <interactive>:113:23: error: [GHC-88464] Variable not in scope: b |
| 12:31:39 | <dminuoso> | % (undefined .) `seq` () |
| 12:31:39 | <yahb2> | () |
| 12:31:39 | <fp> | I see ok |
| 12:31:42 | <dminuoso> | % (. undefined) `seq` () |
| 12:31:42 | <yahb2> | () |
| 12:32:03 | <dminuoso> | Okay so (undefined .) is strictly (heh the pun) speaking not the same as ((.) undefined) |
| 12:32:23 | <dminuoso> | But since GHC is non-pedantic about bottoms, I guess this makes no difference in practice |
| 12:32:42 | × | j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 12:32:48 | <dminuoso> | Leary: Thanks for the pointer./ |
| 12:33:05 | <geekosaur> | I was looking for where there IIRC used to be a discussion of how ghc deviates from the standard there, but IIRC the standard is actually at fault there because sections introduce a little extra laziness |
| 12:33:46 | <geekosaur> | since they aren't rewritten to the prefix partial application, but to lambdas |
| 12:34:34 | <ski> | `(<expr> <op>)' could have been specified as `(<op>) <expr>', and `(<op> <expr>)' as `flip (<op>) <expr>', i suppose |
| 12:34:40 | <ski> | (abstract, not concrete, syntax) |
| 12:35:55 | <geekosaur> | oh, it's in https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/rebindable_syntax.html#postfix-operators |
| 12:36:26 | <geekosaur> | which says ghc actually does the rewrite I mentioned for left sections, instead of using a lambda like the Report says |
| 12:38:21 | <dminuoso> | geekosaur: Oh I think you may have misread my statement about strictness difference between ``\x -> a . x` and `((.) a` - note that the second part is not a section but just a regular application. |
| 12:38:42 | <dminuoso> | Not that it's really important, but I was still trying to understand how you could say the language report requires them to be identical. |
| 12:38:50 | <geekosaur> | no, this was a side thing set off by a statement before that |
| 12:39:14 | <geekosaur> | [02 12:22:48] <geekosaur> dminuoso, the standard requires them to be identical, I think ghc bends that slightly in some cases |
| 12:39:25 | <geekosaur> | this is that bending |
| 12:39:32 | <dminuoso> | Yeah I meant that, it seemed to be in response to `12:20:03 dminuoso │ I think there may be a small difference with respect to strictness between `\x -> a . x` and `((.) a`, let me check real quick` |
| 12:40:09 | <geekosaur> | right, the answer to that is that sections aren;t rewritten to the prefix form normally, they use a lambda which introduces a little laziness |
| 12:40:27 | <geekosaur> | but "in some cases" was the PostfixOperators thing, which I wanted to verify |
| 12:40:49 | <dminuoso> | I was not aware of the PostfixOperators extension and the interaction here, either. |
| 12:42:59 | <dminuoso> | Im curious why allowing eta-expansion through case-of allows for better transformations. |
| 12:43:10 | × | Guest87 quits (~Guest87@81.144.164.210) (Quit: Client closed) |
| 12:45:54 | <geekosaur> | that might be a question for #ghc although I think at the moment they're a bit busy (gitlab seems to have fallen over) |
| 12:46:11 | <dminuoso> | Well, gitlab regularly falls over. :-) |
| 12:46:24 | <geekosaur> | yes, but it usually recovers |
| 12:46:59 | <geekosaur> | something got corruped by out of disk space and various things aren't working right including updating MRs and CI |
| 12:47:25 | <fp> | Could (f .) . g be interpreted generally to mean "unary f of a g that takes two arguments"? |
| 12:47:49 | × | rvalue quits (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
| 12:48:22 | → | rvalue joins (~rvalue@user/rvalue) |
| 12:48:45 | <dminuoso> | 1. (f .) . g ===> \x -> (f .) (g x) |
| 12:49:13 | <dminuoso> | 2. \x -> (f .) (g x) ===> (\y -> f . y) (g x) |
| 12:49:33 | → | j1n37 joins (j1n37@user/j1n37) |
| 12:49:45 | <dminuoso> | 3. (\y -> f . y) (g x) ==> f . (g x) |
| 12:50:34 | <dminuoso> | 4. f . (g x) ==> \z -> f (g x z) |
| 12:51:57 | <dminuoso> | Oh hold on, I dropped a \x along the way. |
| 12:52:37 | <fp> | I believe understand the desugaring at this point, I'm trying to understand more abstractly what the symbols mean together, i.e. how does it add meaning beyond extra points in code golf |
| 12:52:38 | <dminuoso> | 2. \x -> (f .) (g x) ===> \x -> (\y -> f . y) (g x) |
| 12:52:54 | <fp> | or fewer points as it were |
| 12:54:29 | → | tdammers joins (~tdammers@240-117-146-85.ftth.glasoperator.nl) |
| 12:55:31 | → | j1n37- joins (j1n37@user/j1n37) |
| 12:55:55 | × | j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 12:58:42 | × | tdammers quits (~tdammers@240-117-146-85.ftth.glasoperator.nl) (Ping timeout: 246 seconds) |
| 12:59:59 | <dminuoso> | fp: https://paste.tomsmeding.com/xOBZd15y |
| 13:00:54 | <dminuoso> | Sometimes you find an operator called (.:) for this defined as (f .: g) x y = f (g x y) |
| 13:00:54 | × | ridcully quits (~ridcully@pd951f245.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 13:01:30 | <dminuoso> | Idea is that its sort of like `f . g` except g gets applied to two arguments before passing its result to f |
| 13:01:45 | <dminuoso> | "compose after second argument" maybe? |
| 13:01:57 | <ski> | dminuoso : where is eta through `case'-`of' mentioned ? |
| 13:02:34 | <ski> | (yea, i mentioned coming up with `(.:)', years ago, above) |
| 13:02:56 | <dminuoso> | ski: fun True = \_ -> True; fun _ = \_ -> False desugars into `fun x = case x of True -> \_ -> True; ....` |
| 13:03:37 | <dminuoso> | And yet it will eta-expand through that case-of into `fun x y = case x of ...` |
| 13:03:54 | <dminuoso> | i.e. `fun x y = case x of True -> True; ...` |
| 13:04:01 | <ski> | ah, right |
| 13:04:43 | × | j1n37- quits (j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 13:05:50 | → | j1n37 joins (j1n37@user/j1n37) |
| 13:10:56 | → | gorignak joins (~gorignak@user/gorignak) |
| 13:11:02 | <ski> | (.. i was thinking about a general ("commuting") eta-conversion for sum, not just having `case e of Left x0 -> Left x0; Right x1 -> Right x1 = e', but even `case e of Left x0 -> e0[y := Left x0]; e1[y := Right x1] = e0[y := e]' (which obviously breaks bottoms)) |
| 13:11:24 | → | billchenchina- joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) |
| 13:12:03 | × | billchenchina- quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Max SendQ exceeded) |
| 13:12:39 | × | j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 13:12:56 | → | billchenchina- joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) |
| 13:13:49 | × | billchenchina- quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Max SendQ exceeded) |
| 13:13:55 | × | billchenchina quits (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Ping timeout: 260 seconds) |
| 13:15:03 | → | billchenchina joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) |
| 13:15:27 | × | gorignak quits (~gorignak@user/gorignak) (Read error: Connection reset by peer) |
| 13:15:55 | × | billchenchina quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Max SendQ exceeded) |
| 13:16:43 | <briandaed> | not strictly Haskell but persistent, does it handle 'IN' clause, can't find it in docs |
| 13:17:31 | → | billchenchina joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) |
| 13:18:30 | × | billchenchina quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Max SendQ exceeded) |
| 13:19:14 | <dminuoso> | briandaed: https://hackage.haskell.org/package/persistent-2.14.6.3/docs/Database-Persist-Types.html#t:PersistFilter seems like |
| 13:19:33 | → | billchenchina joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) |
| 13:19:56 | × | billchenchina quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Remote host closed the connection) |
| 13:20:14 | <briandaed> | dminuoso: ha! thanks! |
| 13:20:40 | <dminuoso> | It is unclear how to construct that filter.. but hey you wanted some opaque layer ontop of SQL apparently! :-) |
| 13:21:16 | <dminuoso> | Probably have to manually construct a Filter https://hackage.haskell.org/package/persistent-2.14.6.3/docs/Database-Persist-Types.html#t:Filter |
| 13:21:21 | → | j1n37 joins (j1n37@user/j1n37) |
| 13:21:23 | <briandaed> | dminuoso: will play with that, still better than some folding with different constraints |
| 13:21:50 | → | billchenchina joins (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) |
| 13:21:54 | <dminuoso> | "It is possible to construct values using this that will create malformed runtime bvalues." |
| 13:22:08 | <dminuoso> | Comments like this make me wonder why you would pick a library like this in the first place. |
| 13:22:25 | <dminuoso> | If at least you had some compile-time guarantee of generating healthy SQL I might get it. |
| 13:22:51 | <briandaed> | dminuoso: if it would be me, I would stay with stored procedures, but I have to use what is there |
| 13:28:18 | → | billchenchina- joins (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) |
| 13:29:29 | × | billchenchina- quits (~billchenc@2a0d:2580:ff0c:201:47cf:ca1:a674:8042) (Remote host closed the connection) |
| 13:31:49 | × | billchenchina quits (~billchenc@2408:844f:1530:9ede:7991:4790:c6ad:9331) (Ping timeout: 260 seconds) |
| 13:31:51 | → | j1n37- joins (j1n37@user/j1n37) |
| 13:31:52 | × | j1n37 quits (j1n37@user/j1n37) (Ping timeout: 244 seconds) |
| 13:33:19 | × | notzmv quits (~umar@user/notzmv) (Ping timeout: 252 seconds) |
| 13:38:51 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 13:39:05 | → | notzmv joins (~umar@user/notzmv) |
| 13:39:14 | → | gentauro joins (~gentauro@user/gentauro) |
| 13:40:15 | × | j1n37- quits (j1n37@user/j1n37) (Ping timeout: 272 seconds) |
| 13:49:51 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 13:51:23 | → | j1n37 joins (j1n37@user/j1n37) |
| 13:51:27 | <merijn> | dminuoso: Compile time guarantees of healthy SQL are nonsense anyway |
| 13:51:46 | <merijn> | because how do you guarantee the database at runtime is the one you had at compile time |
| 13:53:07 | <briandaed> | fair point |
| 13:53:08 | <dminuoso> | merijn: Well, that is just an operational question, not one worth exploring honestly. |
| 13:53:34 | <dminuoso> | It's like saying "How do you guarantee Haskell code does what it does at runtime, when someone can just take an editor and manipulate your object files" |
| 13:53:47 | <dminuoso> | If we just assume it does not happen, it's not an issue. |
| 13:54:26 | <dminuoso> | Here at work we dont have people log onto databases and change the DDL, because it's not part of how we deal with database. |
| 13:54:39 | <dminuoso> | Just like people dont just make arbitrary modifications to filesystems |
| 13:55:08 | <merijn> | dminuoso: My point was that I'd rather have a simple "validate at runtime and fail loudly" |
| 13:55:13 | <merijn> | over "validate at compile time" |
| 13:55:26 | <dminuoso> | Well there's different levels of compile time validation. |
| 13:55:44 | <merijn> | dminuoso: We don't have people touch our database directly anyway and yet there's been like 3 incidents of unanticipated changes in the past year |
| 13:55:59 | <dminuoso> | hasql for example has this cool nifty TH helper that has the postgresql syntax embedded and can at least guarantee syntactically valid SQL. |
| 13:56:03 | <merijn> | because it turns out the backup/restore didn't catch things, etc. |
| 13:56:19 | <dminuoso> | It just speeds up the feedback loop for typos. |
| 13:56:26 | <haskellbridge> | <maerwald> dminuoso: I hacked on that |
| 13:56:48 | <haskellbridge> | <maerwald> upstream is not very contribution friendly though |
| 13:56:55 | <dminuoso> | maerwald: Oh hey there. |
| 13:57:13 | <dminuoso> | Oh okay, how are they unfriendly towards contribution? |
| 13:58:26 | <haskellbridge> | <maerwald> I worked on some blockchain nonsense that generates SQL and then used https://hackage.haskell.org/package/postgresql-syntax and added quasi quoters and then manipulated part of the AST |
| 13:59:24 | <haskellbridge> | <maerwald> He did not want to add quasiquoters and instead expected me to do that in a new package (hell no... it'll break on any adjustment of the AST) |
| 13:59:41 | <merijn> | dminuoso: That only speeds up the feedback loop for typos if the TH doesn't slow down your over all feedback cycle :p |
| 14:00:55 | <dminuoso> | merijn: It's not that Im a big fan of hasql either, I have a long list of issues with most database interface libraries, no matter how simple or complex, I think most have bad smells to them. |
| 14:01:15 | <haskellbridge> | <maerwald> people are resistant to learning SQL |
| 14:02:20 | <dminuoso> | Say in Haskell even the ones requiring you to write SQL have their issues. postgresql-simple is highly imperformant and uses a hand-crafted interpolation syntax instead of using the existing robust one. |
| 14:02:28 | <dminuoso> | hasql drags this huge universe of nikitas libraries along |
| 14:02:39 | <dminuoso> | I dislike all of them for one reason or another. |
| 14:03:17 | <haskellbridge> | <maerwald> dminuoso: it's modular, but then yes... if you want to contribute, he expects you to write a new package and then you get dragged along on any chances that there may be in the future |
| 14:03:29 | <haskellbridge> | <maerwald> * changes |
| 14:03:35 | → | j1n37- joins (j1n37@user/j1n37) |
| 14:03:48 | <geekosaur> | the flip side of that is nobody wants to get saddled with supporting drive-by code |
| 14:04:03 | → | ridcully joins (~ridcully@p508acf2e.dip0.t-ipconnect.de) |
| 14:04:22 | <haskellbridge> | <maerwald> yeah, I'm known as a drive-by maintainer :D |
| 14:04:44 | × | j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 14:04:54 | <dminuoso> | Well you yourself implied that this was work related. |
| 14:05:07 | <haskellbridge> | <maerwald> I think the reason is the human interaction causing overhead |
| 14:05:18 | <dminuoso> | Regardless of your personal ambition, if your work projects or employment changes, will you carry on the torch for all prior work related submissions? |
| 14:05:31 | <haskellbridge> | <maerwald> as in: if he wants to make a new release, he now has to inquire |
| 14:06:49 | <dminuoso> | At any rate. The one library across all language I think approaches database interaction the right way is ActiveRecord. It has generally good ergonomics, is very expressible, but - and this is the crucial part - It has this universal trap door of exposing the underlying relational algebra as a tree, or injecting a partial relational algebra tree in any spot. |
| 14:07:23 | <dminuoso> | So if at some point you no longer care to cater its somewhat arbitrary interface or you need some prorgrammatic access, the relational algebra representation is as universal as SQL. |
| 14:07:50 | <dminuoso> | Perhaps not as intuitive to the casual user, but its far more modular. |
| 14:08:02 | → | alexherbo2 joins (~alexherbo@2a02-8440-3314-645c-9913-39d7-dad5-8363.rev.sfr.net) |
| 14:08:34 | × | ridcully quits (~ridcully@p508acf2e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 14:09:09 | × | CiaoSen quits (~Jura@2a05:5800:2dc:8a00:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds) |
| 14:10:11 | <dminuoso> | Though since you can just write `Arel.SQL("...")` you can use your traditional SQL intuition and conjure up these cool fragments that can be used |
| 14:10:48 | <dminuoso> | At some point I should explore this idea in Haskell to introduce the 17th library to finally make SQL usable in Haskell. |
| 14:13:41 | → | gorignak joins (~gorignak@user/gorignak) |
| 14:14:50 | → | vanishingideal joins (~vanishing@user/vanishingideal) |
| 14:15:14 | → | j1n37 joins (j1n37@user/j1n37) |
| 14:15:21 | × | j1n37- quits (j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 14:18:58 | × | pounce quits (~pounce@user/cute/pounce) (Ping timeout: 252 seconds) |
| 14:21:14 | × | euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
| 14:22:15 | → | euleritian joins (~euleritia@dynamic-176-004-023-074.176.4.pool.telefonica.de) |
| 14:26:44 | × | euleritian quits (~euleritia@dynamic-176-004-023-074.176.4.pool.telefonica.de) (Ping timeout: 252 seconds) |
| 14:27:14 | × | pierrot quits (~pi@user/pierrot) (Quit: ZNC 1.8.2 - http://znc.in) |
| 14:27:34 | → | pierrot joins (~pi@user/pierrot) |
| 14:28:36 | → | euleritian joins (~euleritia@dynamic-176-003-035-162.176.3.pool.telefonica.de) |
| 14:30:47 | → | j1n37- joins (j1n37@user/j1n37) |
| 14:31:06 | × | j1n37 quits (j1n37@user/j1n37) (Ping timeout: 246 seconds) |
| 14:32:11 | → | ridcully joins (~ridcully@p57b52f42.dip0.t-ipconnect.de) |
| 14:33:15 | × | euleritian quits (~euleritia@dynamic-176-003-035-162.176.3.pool.telefonica.de) (Ping timeout: 252 seconds) |
| 14:37:56 | <michaelis> | Hi! I'm completely new to Haskell. Could someone explain the meaning of ->? I see it everywhere but no explanation. For example Pt -> a -> a -> Point. What does this mean? |
| 14:38:20 | <merijn> | michaelis: That's a function type |
| 14:39:16 | <merijn> | michaelis: "Int -> Int" is a function that takes an Int argument and returns an Int |
| 14:39:44 | → | j1n37 joins (j1n37@user/j1n37) |
| 14:39:47 | dminuoso | suggests a better example than an endofunction |
| 14:40:25 | × | j1n37- quits (j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 14:42:38 | → | Guest31 joins (~Guest31@185.176.244.77) |
| 14:42:58 | <michaelis> | merijn: But what does it mean that the type of a binary data constructor Pt is a -> a -> -> Point a? |
| 14:43:17 | <dminuoso> | michaelis: It is a right-associative operator . That means `Int -> Double -> Char` associates as `Int -> (Double -> Char)` |
| 14:43:27 | <michaelis> | Sorry, too many -> before point. Should only be one. |
| 14:43:50 | <haskellbridge> | <Morj> You can usually read "a -> b -> c" as "(a, b) -> c" |
| 14:44:01 | <dminuoso> | So given that most recent example it is a function taking an `Int` and returning a function, which itself takes a Double and returns a Char. This roughly acts as if this was a function taking both an Int and a Double and returning a Char. |
| 14:44:41 | <dminuoso> | michaelis: Note strictly speaking the former is the correct way to look at it, the second way (thinking of this as a two argument function) is more often useful. |
| 14:45:09 | <michaelis> | dminuoso: Thank you. I'm trying to understand it. |
| 14:45:19 | <dminuoso> | michaelis: Let me give you a second bit that might help |
| 14:45:20 | <michaelis> | And thank you merijn. |
| 14:45:54 | <dminuoso> | michaelis: On the value level, if you apply a function `f` to two arguments `f 1 3.7` it is now left associative, that is `(f 1) 3.7`, so you could think of this as two applications after another. |
| 14:46:25 | <dminuoso> | So `(f 1)` first applies `f` to `f`, to get that function `Double -> Char` back, and then apply that function to `3.7` to get some Char back. |
| 14:46:39 | → | j1n37- joins (j1n37@user/j1n37) |
| 14:46:40 | <dminuoso> | err: "first applies `f` to `1`" |
| 14:46:51 | × | Square2 quits (~Square4@user/square) (Ping timeout: 265 seconds) |
| 14:47:16 | <dminuoso> | michaelis: So these two ideas belong together in a way. |
| 14:47:32 | × | j1n37 quits (j1n37@user/j1n37) (Ping timeout: 255 seconds) |
| 14:48:52 | <michaelis> | dminuoso: Thank you. I will have to contemplate it for a while. :) |
| 14:48:59 | <dminuoso> | michaelis: So similarly, we could think of `f x y = ...` as `f = \x -> \y -> ...` if that makes sense. |
| 14:49:07 | <dminuoso> | (For the defining side of a function) |
| 14:49:14 | <dminuoso> | So add that to your puzzle pieces. |
| 14:50:13 | → | Square joins (~Square@user/square) |
| 14:51:14 | <michaelis> | It doesn't since I don't know where the backslash is coming from but as I said it will take some time understanding all this. |
| 14:51:31 | <dminuoso> | michaelis: `\x -> ...` is an anonymous function taking an argument x |
| 14:51:40 | <michaelis> | I understand. |
| 14:51:44 | <dminuoso> | yahb2: fun = \x -> x * 2 |
| 14:51:51 | <dminuoso> | % fun = \x -> x * 2 |
| 14:51:51 | <yahb2> | <no output> |
| 14:51:53 | <dminuoso> | % fun 10 |
| 14:51:53 | <yahb2> | 20 |
| 14:52:04 | <dminuoso> | % add = \x -> \y -> x + y |
| 14:52:04 | <yahb2> | <no output> |
| 14:52:09 | <dminuoso> | % :t add |
| 14:52:09 | <yahb2> | add :: Num a => a -> a -> a |
| 14:52:12 | <dminuoso> | % :t add 10 |
| 14:52:12 | <yahb2> | add 10 :: Num a => a -> a |
| 14:52:14 | <dminuoso> | % :t add 10 20 |
| 14:52:14 | <yahb2> | add 10 20 :: Num a => a |
| 14:52:17 | <dminuoso> | % add 10 20 |
| 14:52:17 | <yahb2> | 30 |
| 14:52:42 | <dminuoso> | michaelis: If that type confuses you, feel free to imagine `a` read `Int` and ignore that Num => part. |
| 14:52:45 | <mauke> | > (\x -> [x,x,x]) 42 |
| 14:52:46 | <lambdabot> | [42,42,42] |
| 14:53:06 | <mauke> | > ((\x -> (\y -> [x,y,x]) 42) 3 |
| 14:53:08 | <lambdabot> | <hint>:1:30: error: |
| 14:53:08 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
| 14:53:18 | <mauke> | > (\x -> (\y -> [x,y,x]) 42) 3 |
| 14:53:19 | <lambdabot> | [3,42,3] |
| 14:54:02 | <mauke> | > ((\x -> (\y -> [x,y,x])) 42) 3 |
| 14:54:03 | <lambdabot> | [42,3,42] |
| 14:54:13 | → | halloy1972 joins (~halloy197@ptr-fyq2h23bzewebp3qgjx.18120a2.ip6.access.telenet.be) |
| 14:54:49 | <mauke> | > ((\x -> \y -> [x,y,x]) 42) 3 |
| 14:54:50 | <lambdabot> | [42,3,42] |
| 14:55:00 | <mauke> | > ((\x y -> [x,y,x]) 42) 3 |
| 14:55:01 | <lambdabot> | [42,3,42] |
| 14:55:08 | halloy1972 | is now known as Piegie |
| 14:55:16 | <mauke> | > (\x y -> [x,y,x]) 42 3 |
| 14:55:17 | <lambdabot> | [42,3,42] |
| 14:55:28 | <mauke> | > let f = \x y -> [x,y,x] in f 42 3 |
| 14:55:30 | <lambdabot> | [42,3,42] |
| 14:55:37 | <mauke> | > let f x y = [x,y,x] in f 42 3 |
| 14:55:39 | <lambdabot> | [42,3,42] |
| 14:56:00 | → | euandreh1 joins (~Thunderbi@189.6.105.228) |
| 14:56:11 | → | j1n37 joins (j1n37@user/j1n37) |
| 14:56:15 | <michaelis> | Thank you. |
| 14:56:48 | × | j1n37- quits (j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 14:58:22 | × | Guest31 quits (~Guest31@185.176.244.77) (Quit: Client closed) |
| 15:08:42 | → | j1n37- joins (j1n37@user/j1n37) |
| 15:09:38 | × | j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 15:13:21 | × | acidjnk_new3 quits (~acidjnk@p200300d6e7283f25b46ec29f1d31fbc6.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 15:14:57 | × | j1n37- quits (j1n37@user/j1n37) (Ping timeout: 248 seconds) |
| 15:15:10 | → | weary-traveler joins (~user@user/user363627) |
| 15:17:44 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:21:22 | × | Square quits (~Square@user/square) (Ping timeout: 252 seconds) |
| 15:23:51 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.4.2) |
| 15:30:43 | → | acidjnk_new3 joins (~acidjnk@p200300d6e7283f25b46ec29f1d31fbc6.dip0.t-ipconnect.de) |
| 15:33:45 | → | SlackCoder joins (~SlackCode@208.26.70.132) |
| 15:33:48 | → | j1n37 joins (j1n37@user/j1n37) |
| 15:34:59 | × | SlackCoder quits (~SlackCode@208.26.70.132) (Remote host closed the connection) |
| 15:35:06 | → | euleritian joins (~euleritia@dynamic-176-003-035-162.176.3.pool.telefonica.de) |
| 15:35:27 | → | SlackCoder joins (~SlackCode@208.26.70.132) |
| 15:36:59 | × | SlackCoder quits (~SlackCode@208.26.70.132) (Remote host closed the connection) |
| 15:37:26 | → | SlackCoder joins (~SlackCode@208.26.70.132) |
| 15:39:36 | × | Alleria quits (~Alleria@user/alleria) (Remote host closed the connection) |
| 15:40:10 | → | Alleria joins (~Alleria@user/alleria) |
| 15:43:05 | euandreh1 | is now known as euandreh |
| 15:43:49 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 15:44:21 | → | gorignak joins (~gorignak@user/gorignak) |
| 15:44:28 | × | j1n37 quits (j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 15:44:49 | × | Alleria quits (~Alleria@user/alleria) (Ping timeout: 260 seconds) |
| 15:54:01 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 15:54:33 | → | gorignak joins (~gorignak@user/gorignak) |
| 16:02:02 | <fp> | I've made a method diff that computes the difference of an [Int], much like np.diff. I made it with =diff (x:xs) = (head xs - x) : diff xs= and with diff of 1- or 0-element arrays returning []. Is this an idiomatic solution? It felt odd not to use like scanl or something |
| 16:04:12 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 16:04:44 | → | gorignak joins (~gorignak@user/gorignak) |
| 16:04:53 | <mauke> | > (\xs -> zipWith (-) xs (drop 1 xs)) [1,10,4,4,5,2,4] |
| 16:04:54 | <lambdabot> | [-9,6,0,-1,3,-2] |
| 16:05:09 | <mauke> | > (\xs -> zipWith subtract xs (drop 1 xs)) [1,10,4,4,5,2,4] |
| 16:05:10 | <lambdabot> | [9,-6,0,1,-3,2] |
| 16:05:47 | <mauke> | (someone else can add the <*>) |
| 16:07:55 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:08:09 | <ncf> | @where zip.ap.tail |
| 16:08:09 | <lambdabot> | I know nothing about zip.ap.tail. |
| 16:09:06 | <ncf> | @quote zip.ap.tail |
| 16:09:07 | <lambdabot> | quicksilver says: zip`ap`tail - the Aztec god of consecutive numbers |
| 16:14:23 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 16:14:54 | → | gorignak joins (~gorignak@user/gorignak) |
| 16:16:36 | → | Alleria joins (~Alleria@user/alleria) |
| 16:18:00 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:22:18 | <ski> | (`tail' works fine in place of `drop 1', there) |
| 16:24:34 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 16:24:53 | → | Alleria_ joins (~Alleria@user/alleria) |
| 16:25:05 | → | gorignak joins (~gorignak@user/gorignak) |
| 16:27:07 | × | Alleria quits (~Alleria@user/alleria) (Ping timeout: 252 seconds) |
| 16:29:52 | → | Ritual12 joins (~Ritual12@85-76-13-113-nat.elisa-mobile.fi) |
| 16:30:23 | <merijn> | ski: drop 1 has the nicety of not randomly crashing, though :p |
| 16:31:12 | <int-e> | > zip [] (tail []) |
| 16:31:14 | <lambdabot> | [] |
| 16:31:40 | <int-e> | all ski said is that it works fine in this case |
| 16:31:47 | <ski> | > (\xs -> getZipList ((-) <$> ZipList xs <*> ZipList (tail xs))) [1,10,4,4,5,2,4] |
| 16:31:49 | <lambdabot> | [-9,6,0,-1,3,-2] |
| 16:31:54 | <ski> | > (\xs -> getZipList (liftA2 (-) (ZipList xs) (ZipList (tail xs)))) [1,10,4,4,5,2,4] |
| 16:31:56 | <lambdabot> | [-9,6,0,-1,3,-2] |
| 16:32:12 | × | Alleria_ quits (~Alleria@user/alleria) (Ping timeout: 246 seconds) |
| 16:32:15 | <Ritual12> | When listing what functions to import from given module, is it better for readability to list functions with symbolic names before functions with alphanumeric names? |
| 16:32:18 | <ski> | > ((getZipList .) . (. ZipList)) (liftA2 (-) <$> id <*> ((ZipList .) . (. getZipList)) tail) [1,10,4,4,5,2,4] |
| 16:32:19 | <lambdabot> | [-9,6,0,-1,3,-2] |
| 16:32:26 | <ski> | > ((getZipList .) . (. ZipList)) ((liftA2 . liftA2) (-) id (((ZipList .) . (. getZipList)) tail)) [1,10,4,4,5,2,4] |
| 16:32:28 | <lambdabot> | [-9,6,0,-1,3,-2] |
| 16:33:10 | <ski> | (last two are pretty ugly, with the `ZipList'&`getZipList' nonsense) |
| 16:33:39 | <ski> | Ritual12 : usually i'd list them in groups of related functions |
| 16:34:11 | <int-e> | but they all come from a single module, so aren't they automaticall related :) |
| 16:34:24 | × | notzmv quits (~umar@user/notzmv) (Ping timeout: 260 seconds) |
| 16:34:45 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 16:35:02 | <fp> | Neat, thanks for the tips |
| 16:35:07 | <Ritual12> | I am importing LiftA2 and (<*>) from Control.Applicative and was wondering which to list first. |
| 16:35:16 | → | gorignak joins (~gorignak@user/gorignak) |
| 16:35:37 | → | Alleria joins (~Alleria@user/alleria) |
| 16:36:14 | <int-e> | I don't think it makes a difference for just two imports. |
| 16:36:40 | <int-e> | doesn't Prelude export <*> these days |
| 16:36:58 | <ski> | @index (<*>) |
| 16:36:59 | <lambdabot> | Control.Applicative, Prelude, Compiler.Hoopl |
| 16:38:02 | <Ritual12> | So I do not need to import <*>? |
| 16:38:38 | <ski> | (of course, instead of `((post .) . (. pre)) f', you can type `post . f . pre', i just wanted to localize/separate the `pre' & `post' (`ZipList' and `getZipList', above) together. would probably be more readable without that) |
| 16:38:46 | <ski> | correct, Ritual12 |
| 16:38:59 | <ski> | @index liftA2 |
| 16:38:59 | <lambdabot> | Control.Applicative |
| 16:40:11 | × | Alleria quits (~Alleria@user/alleria) (Ping timeout: 252 seconds) |
| 16:43:49 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:44:36 | × | machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 16:44:56 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 16:45:27 | → | gorignak joins (~gorignak@user/gorignak) |
| 16:46:15 | → | Alleria joins (~Alleria@user/alleria) |
| 16:46:20 | <Ritual12> | @index (&&&) |
| 16:46:21 | <lambdabot> | Control.Arrow |
| 16:52:27 | → | Alleria_ joins (~Alleria@user/alleria) |
| 16:53:01 | × | Alleria quits (~Alleria@user/alleria) (Ping timeout: 252 seconds) |
| 16:55:07 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 16:55:38 | → | gorignak joins (~gorignak@user/gorignak) |
| 17:00:13 | × | sawilagar quits (~sawilagar@user/sawilagar) (Remote host closed the connection) |
| 17:00:37 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 17:02:59 | × | SlackCoder quits (~SlackCode@208.26.70.132) (Ping timeout: 260 seconds) |
| 17:05:18 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 17:05:50 | → | gorignak joins (~gorignak@user/gorignak) |
| 17:08:47 | × | Alleria_ quits (~Alleria@user/alleria) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:11:35 | <Ritual12> | @pl liftA2 (&&) (>= lower) (<= upper) |
| 17:11:35 | <lambdabot> | liftA2 (&&) (>= lower) (<= upper) |
| 17:12:31 | <Ritual12> | @pl \lower upper -> liftA2 (&&) (>= lower) (<= upper) |
| 17:12:31 | <lambdabot> | (. flip (<=)) . liftA2 (&&) . flip (>=) |
| 17:14:55 | → | Alleria joins (~Alleria@user/alleria) |
| 17:15:29 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 17:16:01 | → | gorignak joins (~gorignak@user/gorignak) |
| 17:16:03 | <Ritual12> | Why flip (<=) and flip(>=) instead of just using (>=) and (<=)? |
| 17:16:52 | × | euleritian quits (~euleritia@dynamic-176-003-035-162.176.3.pool.telefonica.de) (Read error: Connection reset by peer) |
| 17:17:10 | → | euleritian joins (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) |
| 17:17:17 | <int-e> | because @pl is unaware of the Ord class |
| 17:19:20 | × | Piegie quits (~halloy197@ptr-fyq2h23bzewebp3qgjx.18120a2.ip6.access.telenet.be) (Ping timeout: 264 seconds) |
| 17:21:15 | × | briandaed quits (~root@user/briandaed) (Quit: Lost terminal) |
| 17:21:27 | × | euleritian quits (~euleritia@ip4d16fc9f.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 17:22:08 | → | euleritian joins (~euleritia@77.22.252.159) |
| 17:25:40 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 17:26:11 | → | gorignak joins (~gorignak@user/gorignak) |
| 17:32:28 | → | budabudabee joins (~budabudab@2600:100e:b308:e5d4:2c68:9c6f:c307:d044) |
| 17:33:11 | → | ft joins (~ft@p508db9c7.dip0.t-ipconnect.de) |
| 17:35:51 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 17:35:59 | → | j1n37 joins (j1n37@user/j1n37) |
| 17:36:22 | → | gorignak joins (~gorignak@user/gorignak) |
| 17:36:33 | × | kuribas quits (~user@ptr-17d51emmusfz7zv97iv.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 17:38:00 | × | j1n37 quits (j1n37@user/j1n37) (Read error: Connection reset by peer) |
| 17:41:42 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 17:44:54 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:46:02 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 17:46:30 | <hellwolf> | > even . not . fst |
| 17:46:31 | <lambdabot> | error: |
| 17:46:31 | <lambdabot> | • No instance for (Integral Bool) arising from a use of ‘even’ |
| 17:46:31 | <lambdabot> | • In the first argument of ‘(.)’, namely ‘even’ |
| 17:46:33 | → | gorignak joins (~gorignak@user/gorignak) |
| 17:47:37 | <hellwolf> | > Just . negate . curry |
| 17:47:39 | <lambdabot> | error: |
| 17:47:39 | <lambdabot> | • No instance for (Typeable a0) |
| 17:47:39 | <lambdabot> | arising from a use of ‘show_M56331944392192085928’ |
| 17:48:13 | <int-e> | :t Just . negate . curry |
| 17:48:14 | <lambdabot> | Num (a -> b -> c) => ((a, b) -> c) -> Maybe (a -> b -> c) |
| 17:48:38 | <int-e> | :t Just . negate . uncurry |
| 17:48:39 | <lambdabot> | Num ((a, b) -> c) => (a -> b -> c) -> Maybe ((a, b) -> c) |
| 17:48:57 | <int-e> | :t (Just . negate .) . uncurry |
| 17:48:58 | <lambdabot> | error: |
| 17:48:58 | <lambdabot> | The operator ‘.’ [infixr 9] of a section |
| 17:48:58 | <lambdabot> | must have lower precedence than that of the operand, |
| 17:49:11 | <int-e> | :t ((Just . negate) .) . uncurry |
| 17:49:11 | <lambdabot> | Num a1 => (a2 -> b -> a1) -> (a2, b) -> Maybe a1 |
| 17:50:13 | <int-e> | (TBH the fact that (a . b .) is invalid annoys me a little bit. It's associative after all...) |
| 17:50:28 | <int-e> | :t (. id . id) |
| 17:50:29 | <lambdabot> | (b -> c) -> b -> c |
| 17:50:41 | <int-e> | and *this* is allowed |
| 17:50:56 | <hellwolf> | the power is in the dot? |
| 17:51:15 | <int-e> | hellwolf: it's the mark of pointfree code |
| 17:51:41 | <hellwolf> | not all code has a point, but pointless code is definitely pointfree |
| 17:52:01 | <int-e> | @help pl |
| 17:52:01 | <lambdabot> | pointless <expr>. Play with pointfree code. |
| 17:52:12 | <int-e> | (that particular pun is ancient) |
| 17:54:39 | <Ritual12> | :t ap |
| 17:54:39 | <lambdabot> | Monad m => m (a -> b) -> m a -> m b |
| 17:54:58 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:55:59 | <Ritual12> | What is monad? |
| 17:56:12 | ← | JuanDaugherty parts (~juan@user/JuanDaugherty) () |
| 17:56:13 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 17:56:44 | → | gorignak joins (~gorignak@user/gorignak) |
| 17:56:52 | <Ritual12> | @index ap |
| 17:56:52 | <lambdabot> | Control.Monad |
| 17:57:32 | <int-e> | :t (<*>) |
| 17:57:33 | <lambdabot> | Applicative f => f (a -> b) -> f a -> f b |
| 17:57:55 | <int-e> | (`ap` mostly exists for historical reasons) |
| 17:58:27 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:58:31 | × | budabudabee quits (~budabudab@2600:100e:b308:e5d4:2c68:9c6f:c307:d044) (Read error: Connection reset by peer) |
| 17:59:05 | <Ritual12> | Is it similar to <*>? |
| 17:59:08 | <haskellbridge> | <Morj> "ap" is useful when you're doing monads in a language without operator overloading ;) |
| 17:59:29 | <haskellbridge> | <Morj> When you're translating you stuff from haskell to it I mean |
| 18:01:04 | <c_wraith> | <*> and ap have the same type, and are usually the same operation. but ap is implemented in terms of >>= |
| 18:01:35 | <int-e> | `ap` existed before Applicative |
| 18:01:41 | <c_wraith> | So on rare occasions ap can be more efficient for a specific data type |
| 18:02:32 | <c_wraith> | It still exists *mostly* so that you can define the Applicative instance in terms of the Monad operations |
| 18:02:40 | <c_wraith> | just like liftM |
| 18:02:40 | <int-e> | Hmm why would the Applicative instance not use the more efficient implementation then? |
| 18:02:54 | <c_wraith> | mostly in the case of a transformer |
| 18:02:54 | <int-e> | (<*>) is a class method |
| 18:03:23 | <int-e> | Ah |
| 18:03:23 | <c_wraith> | where you want the Applicative instance to only require Applicative from the wrapped type |
| 18:03:46 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 18:03:57 | <c_wraith> | It's not common to be in that situation. |
| 18:04:10 | <int-e> | Right, adding another level of abstraction may do it. |
| 18:04:47 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 18:05:36 | → | notzmv joins (~umar@user/notzmv) |
| 18:06:05 | <hellwolf> | to overthink about it. I am glad it was named applicable, not sure what's the essential difference etymologically between -able and -tive |
| 18:06:14 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 18:06:18 | <hellwolf> | *it was not named applicable |
| 18:06:23 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 18:06:28 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
| 18:06:54 | → | gorignak joins (~gorignak@user/gorignak) |
| 18:07:06 | → | tokie joins (~tokie@user/strtok) |
| 18:07:35 | Lord_of_Life_ | is now known as Lord_of_Life |
| 18:10:45 | → | j1n37 joins (j1n37@user/j1n37) |
| 18:12:04 | × | fp quits (~Thunderbi@2001:708:20:1406::1370) (Ping timeout: 245 seconds) |
| 18:12:04 | × | j1n37 quits (j1n37@user/j1n37) (Read error: Connection reset by peer) |
| 18:16:34 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 18:17:05 | → | gorignak joins (~gorignak@user/gorignak) |
| 18:26:45 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 18:27:16 | → | gorignak joins (~gorignak@user/gorignak) |
| 18:28:08 | → | biberu joins (~biberu@user/biberu) |
| 18:36:26 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:36:30 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 18:36:56 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 18:37:27 | → | gorignak joins (~gorignak@user/gorignak) |
| 18:40:18 | × | sawilagar quits (~sawilagar@user/sawilagar) (Ping timeout: 276 seconds) |
| 18:43:01 | <monochrom> | mappative is better than mappable, too >:) |
| 18:45:00 | → | rvalue- joins (~rvalue@user/rvalue) |
| 18:45:33 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 246 seconds) |
| 18:46:06 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 265 seconds) |
| 18:47:07 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 18:47:38 | → | gorignak joins (~gorignak@user/gorignak) |
| 18:47:39 | × | alexherbo2 quits (~alexherbo@2a02-8440-3314-645c-9913-39d7-dad5-8363.rev.sfr.net) (Ping timeout: 256 seconds) |
| 18:49:22 | <mauke> | Ritual12: inRange? |
| 18:51:00 | rvalue- | is now known as rvalue |
| 18:54:16 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 18:57:18 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 18:57:49 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:04:56 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:07:29 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 19:08:00 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:08:17 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 19:09:56 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 19:09:59 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 19:12:45 | <Ritual12> | Mauke what about inRange? |
| 19:14:18 | <mauke> | simplifies liftA2 (&&) (>= lower) (<= upper) |
| 19:14:31 | <mauke> | :t inRange (?lower, ?upper) |
| 19:14:32 | <lambdabot> | (Ix a, ?lower::a, ?upper::a) => a -> Bool |
| 19:16:43 | <haskellbridge> | <hellwolf> hmmm, could there be a hypeyhoogle... where you put example values and expected output, and it finds a function that produces that... :) |
| 19:16:49 | → | OftenFaded joins (~OftenFade@user/tisktisk) |
| 19:16:56 | <haskellbridge> | <hellwolf> *hyperhoogle |
| 19:17:11 | → | Jackneill joins (~Jackneill@178-164-253-185.pool.digikabel.hu) |
| 19:17:40 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 19:18:11 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:19:49 | <geekosaur> | not in the general case. there are specific cases, e.g. OEIS |
| 19:21:03 | → | sprotte24 joins (~sprotte24@p200300d16f395d001484d78db1444af0.dip0.t-ipconnect.de) |
| 19:21:31 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 19:27:51 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 19:28:08 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 19:28:22 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:33:11 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 19:36:01 | → | TheCoffeMaker_ joins (~TheCoffeM@186.136.173.70) |
| 19:36:11 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer) |
| 19:38:02 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 19:38:33 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:39:34 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 19:39:49 | <sprotte24> | Hi, I´m looking for help for my new Haskell problem which executes too slowly |
| 19:39:55 | <sprotte24> | https://paste.tomsmeding.com/yhuKGov3 |
| 19:41:26 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 19:44:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
| 19:45:08 | <monochrom> | I don't find it slow. |
| 19:48:13 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 19:48:19 | <haskellbridge> | <Bowuigi> For a single item x, "iterate (x:) []" should be faster |
| 19:48:44 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:49:39 | <haskellbridge> | <Bowuigi> Making the contained item strict on the list is another option |
| 19:51:08 | <sprotte24> | It is my homework for our university. the automatic tests say: heck allCombinations |
| 19:51:08 | <sprotte24> | All tests successful |
| 19:51:08 | <sprotte24> | ***time limit exceeded*** 0 from 3 points |
| 19:51:34 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 19:53:22 | <sprotte24> | haskellbridge, I am beginner, can you show me the iteration code? |
| 19:54:35 | <haskellbridge> | <Bowuigi> Notice the pattern that emerges when you transpose the list |
| 19:54:41 | <monochrom> | I am already trying "print $ take 50000 (allCombinations [True, False])" and it is instantaneous (0.07 seconds if redirected to /dev/null) and also seems to be O(1)-space. |
| 19:55:20 | <monochrom> | At this point I would ask: did you submit the very same code to school? |
| 19:55:20 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 19:55:27 | <haskellbridge> | <Bowuigi> If you don't actually need an infinite list, generating its transposition and printing it in a fancier way may be faster |
| 19:55:46 | × | Smiles quits (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 19:55:56 | × | sawilagar quits (~sawilagar@user/sawilagar) (Remote host closed the connection) |
| 19:56:09 | → | sawilagar joins (~sawilagar@user/sawilagar) |
| 19:56:16 | <haskellbridge> | <Bowuigi> It shouldn't actually be that slow as is though |
| 19:56:52 | <monochrom> | It's also a 2017 laptop I tested on. |
| 19:57:45 | <sprotte24> | Unfortunately, a machine judges my submitted solution, and it executes about 100 partly exotic tests |
| 19:58:24 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 19:58:55 | → | gorignak joins (~gorignak@user/gorignak) |
| 19:59:22 | <monochrom> | I know, but I can't reproduce "slow". |
| 19:59:59 | <monochrom> | Can't solve an irreproducible problem. |
| 20:00:01 | × | caconym quits (~caconym@user/caconym) (Quit: bye) |
| 20:00:21 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 20:00:38 | → | caconym joins (~caconym@user/caconym) |
| 20:00:50 | <haskellbridge> | <Bowuigi> Since the list is infinite, some functions can't terminate when executed on them. Do the tests execute anything related to those functions? (length, transpose, etc) |
| 20:01:30 | <haskellbridge> | <Bowuigi> If yes, just drop a "take 50000" before the definition or similar |
| 20:02:04 | × | sawilagar quits (~sawilagar@user/sawilagar) (Quit: Leaving) |
| 20:05:39 | <sprotte24> | perhaps the only way ist to test alternate algorithms for this task |
| 20:06:59 | <haskellbridge> | <Bowuigi> Note that testing for infiniteness is impossible since such a test would fail to terminate on an infinite list |
| 20:08:35 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 20:09:06 | → | gorignak joins (~gorignak@user/gorignak) |
| 20:11:09 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:12:44 | <sprotte24> | yes. Another task with generation of a sorted infinite list could be fixed by sorting while inserting each element just in the sorted position. |
| 20:16:30 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
| 20:17:37 | × | Ritual12 quits (~Ritual12@85-76-13-113-nat.elisa-mobile.fi) (Quit: Client closed) |
| 20:18:46 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 20:19:01 | → | weary-traveler joins (~user@user/user363627) |
| 20:19:18 | → | gorignak joins (~gorignak@user/gorignak) |
| 20:21:54 | × | eL_Bart0 quits (eL_Bart0@dietunichtguten.org) (Ping timeout: 260 seconds) |
| 20:22:51 | <sprotte24> | also allCombinations :: [a] -> [[a]] |
| 20:22:51 | <sprotte24> | allCombinations xs = sequence =<< iterate (xs :) [] was too slow |
| 20:26:00 | → | tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl) |
| 20:26:56 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:28:57 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 20:29:28 | → | gorignak joins (~gorignak@user/gorignak) |
| 20:31:27 | × | tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 276 seconds) |
| 20:31:36 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 20:33:02 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:37:14 | <hellwolf> | :type replicateM Int [a] |
| 20:38:07 | <hellwolf> | > :type replicateM 10 |
| 20:38:08 | <lambdabot> | <hint>:1:1: error: parse error on input ‘:’ |
| 20:38:45 | <Rembane> | :t replicateM Int [a] |
| 20:38:46 | <lambdabot> | error: |
| 20:38:46 | <lambdabot> | • Data constructor not in scope: Int :: Int |
| 20:38:46 | <lambdabot> | • Perhaps you meant variable ‘int’ (imported from Text.PrettyPrint.HughesPJ) |
| 20:38:47 | <Rembane> | :D |
| 20:38:59 | <Rembane> | :t replicateM (0 :: Int) |
| 20:39:00 | <lambdabot> | Applicative m => m a -> m [a] |
| 20:39:08 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 20:39:34 | <hellwolf> | when m = List, you get a [a] -> [[a]] |
| 20:39:39 | → | gorignak joins (~gorignak@user/gorignak) |
| 20:40:31 | <hellwolf> | > replicate 2 [True, False] |
| 20:40:33 | <lambdabot> | [[True,False],[True,False]] |
| 20:40:54 | <hellwolf> | oh, wait. |
| 20:41:09 | <hellwolf> | > replicateM 2 [True, False] |
| 20:41:10 | <lambdabot> | [[True,True],[True,False],[False,True],[False,False]] |
| 20:41:16 | <hellwolf> | here you go, big difference.. |
| 20:41:57 | <hellwolf> | I sometimes still don't know how it works, unless you think about it mathematically. |
| 20:42:46 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:44:24 | × | Jackneill quits (~Jackneill@178-164-253-185.pool.digikabel.hu) (Remote host closed the connection) |
| 20:45:12 | → | simendsjo-web joins (34b0550437@2a03:6000:1812:100::1441) |
| 20:47:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 20:49:19 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 20:49:19 | → | zmt01 joins (~zmt00@user/zmt00) |
| 20:49:49 | → | tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl) |
| 20:49:51 | → | gorignak joins (~gorignak@user/gorignak) |
| 20:50:44 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 20:52:27 | × | zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 252 seconds) |
| 20:52:50 | → | swamp_ joins (~zmt00@user/zmt00) |
| 20:55:03 | <xerox> | @src replicateM |
| 20:55:03 | <lambdabot> | replicateM n x = sequence (replicate n x) |
| 20:55:16 | × | simendsjo-web quits (34b0550437@2a03:6000:1812:100::1441) (Remote host closed the connection) |
| 20:55:26 | → | simendsjo_ joins (34b0550437@2a03:6000:1812:100::1441) |
| 20:55:33 | <Rembane> | @src replicate |
| 20:55:33 | <lambdabot> | replicate n x = take n (repeat x) |
| 20:55:43 | <Rembane> | Lovely! |
| 20:55:46 | × | zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 252 seconds) |
| 20:56:01 | <xerox> | agreed |
| 20:57:49 | → | zmt01 joins (~zmt00@user/zmt00) |
| 20:58:32 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 20:58:48 | × | tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds) |
| 20:58:57 | simendsjo_ | is now known as simendsjo |
| 20:59:30 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:00:01 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:01:05 | × | swamp_ quits (~zmt00@user/zmt00) (Ping timeout: 248 seconds) |
| 21:01:33 | → | zmt00 joins (~zmt00@user/zmt00) |
| 21:03:30 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 21:04:05 | × | zmt01 quits (~zmt00@user/zmt00) (Ping timeout: 260 seconds) |
| 21:04:55 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:05:33 | × | visilii quits (~visilii@188.254.126.79) (Quit: ZNC - https://znc.in) |
| 21:05:52 | → | visilii joins (~visilii@188.254.126.79) |
| 21:09:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 21:09:41 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:10:12 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:10:22 | × | Alleria quits (~Alleria@user/alleria) (Read error: Connection reset by peer) |
| 21:10:27 | <sprotte24> | many nice code lines. Which can I use for my problem infinite listes? |
| 21:15:21 | <haskellbridge> | <Bowuigi> The same trick doesn't seem to apply to "repeat" sadly, "sequence (repeat [True, False])" loops |
| 21:16:08 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:19:52 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:20:23 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:20:49 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 21:22:00 | <int-e> | Well, it can never decide whether the result is empty. |
| 21:22:38 | <int-e> | > sequence (replicate 42 "01" ++ [""]) |
| 21:22:39 | <lambdabot> | [] |
| 21:22:44 | <int-e> | > sequence (replicate 42 "01") |
| 21:22:45 | <lambdabot> | ["000000000000000000000000000000000000000000","00000000000000000000000000000... |
| 21:24:40 | <sprotte24> | in my task allCombinations [] = [[]] |
| 21:30:03 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:30:34 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:31:55 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:36:21 | <haskellbridge> | <hellwolf> Repeats allowed No Repeats |
| 21:36:21 | <haskellbridge> | ... long message truncated: https://kf8nh.com/_heisenbridge/media/kf8nh.com/nxZBNsHrMMJJURRtUnXdnFKt/PyxkJhr_m-A (4 lines) |
| 21:36:42 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 21:38:57 | → | tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl) |
| 21:39:17 | → | Square joins (~Square@user/square) |
| 21:39:33 | <hellwolf> | the `replicateM Int` does repeated permutations, I guess? |
| 21:40:09 | <dminuoso> | What does `replicateM Int` mean? |
| 21:40:14 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:40:29 | <hellwolf> | > replicateM 2 ['a', 'b', 'c'] |
| 21:40:31 | <lambdabot> | ["aa","ab","ac","ba","bb","bc","ca","cb","cc"] |
| 21:40:45 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:40:48 | <sprotte24> | [02.12.24|21:41:08] <hellwolf> > replicateM 2 [True, False] |
| 21:40:48 | <sprotte24> | [02.12.24|21:41:10] <lambdabot> [[True,True],[True,False],[False,True],[False,False]] |
| 21:41:23 | <dminuoso> | hellwolf: So with a bit of squinting you could think of [] modelling non-determinism. |
| 21:41:50 | <dminuoso> | Squinting because lists have an order, so there's a slight bit of extra structure there. |
| 21:41:55 | <hellwolf> | my math memory of this party gets blurry... I can't what is asked here, I guess it's either someone's home work, or advent calendar coding challenges. |
| 21:42:09 | <sprotte24> | [[],[True],[False]...] ist misssingand the tail |
| 21:42:51 | <dminuoso> | hellwolf: So ['a', 'b', 'c'] could be seen as "some non-deterministic choice of 'a", "b" and c" |
| 21:42:59 | <dminuoso> | Gah enter a bit early, but anyhow. |
| 21:43:29 | × | tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 265 seconds) |
| 21:43:35 | <dminuoso> | In that sense it gives you permutations. |
| 21:46:18 | <sprotte24> | Yes. For permutation, I add the next number in front, in the middle and the end of the current list. [[],[1],[1,2].[2,1] and so on |
| 21:47:43 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 21:47:55 | <hellwolf> | I wonder what's the clever one-liner one for combinations. |
| 21:48:38 | <hellwolf> | repeat or non-repeat |
| 21:49:06 | <hellwolf> | without post processing the permuntation. |
| 21:49:19 | <dminuoso> | Depends on whether you want it performant or not. |
| 21:49:34 | <sprotte24> | these were non-repeat |
| 21:50:09 | <dminuoso> | If you dont care about performance, you can just take list monad, sort and nub it (maybe via Data.Set) |
| 21:50:25 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 21:50:56 | → | gorignak joins (~gorignak@user/gorignak) |
| 21:51:04 | <sprotte24> | But that would not work for a infinite list to be sorted later |
| 21:52:06 | → | Everything joins (~Everythin@46.211.103.42) |
| 21:52:35 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 21:54:35 | <dminuoso> | The solution for infinite lists would fall in the performant category. |
| 21:54:54 | <hellwolf> | let me try with splitAt and recursion |
| 21:55:05 | <hellwolf> | one sec |
| 21:55:19 | <hellwolf> | unlikely a one-liner anymore |
| 21:59:05 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:59:24 | <sprotte24> | oksplits :: [a] -> [([a], [a])] |
| 21:59:24 | <sprotte24> | splits [] = [([], [])] |
| 21:59:24 | <sprotte24> | splits (y:ys) = ([], y:ys) : [(y:ys1, ys2) |
| 21:59:25 | <sprotte24> | | (ys1, ys2) <- splits ys] |
| 22:00:08 | → | alexherbo2 joins (~alexherbo@13.135.22.93.rev.sfr.net) |
| 22:00:36 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 22:01:08 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:01:38 | → | tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl) |
| 22:03:29 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:04:03 | → | pounce joins (~pounce@user/cute/pounce) |
| 22:05:33 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 22:05:47 | × | gorignak quits (~gorignak@user/gorignak) (Client Quit) |
| 22:06:20 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:07:32 | × | tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 272 seconds) |
| 22:10:35 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 22:10:59 | × | gorignak quits (~gorignak@user/gorignak) (Client Quit) |
| 22:11:31 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:16:10 | × | gorignak quits (~gorignak@user/gorignak) (Client Quit) |
| 22:16:41 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:20:22 | → | tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl) |
| 22:21:21 | × | gorignak quits (~gorignak@user/gorignak) (Client Quit) |
| 22:21:33 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:21:52 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:22:51 | × | michalz quits (~michalz@185.246.207.218) (Remote host closed the connection) |
| 22:26:32 | × | gorignak quits (~gorignak@user/gorignak) (Client Quit) |
| 22:26:44 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
| 22:27:04 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:27:05 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 22:29:14 | × | tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 255 seconds) |
| 22:29:38 | × | Everything quits (~Everythin@46.211.103.42) (Ping timeout: 252 seconds) |
| 22:29:43 | → | tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl) |
| 22:31:34 | → | Everything joins (~Everythin@46.211.80.247) |
| 22:31:43 | × | gorignak quits (~gorignak@user/gorignak) (Client Quit) |
| 22:32:14 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:34:57 | × | tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 276 seconds) |
| 22:35:18 | × | gorignak quits (~gorignak@user/gorignak) (Client Quit) |
| 22:35:49 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:36:21 | × | gorignak quits (~gorignak@user/gorignak) (Client Quit) |
| 22:36:52 | → | gorignak joins (~gorignak@user/gorignak) |
| 22:37:19 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:39:02 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:40:07 | × | alp quits (~alp@2001:861:8ca0:4940:a36a:bc17:9bfc:9786) (Remote host closed the connection) |
| 22:40:24 | → | alp joins (~alp@2001:861:8ca0:4940:6caf:2993:1558:2dee) |
| 22:41:22 | × | alp quits (~alp@2001:861:8ca0:4940:6caf:2993:1558:2dee) (Remote host closed the connection) |
| 22:41:38 | × | gorignak quits (~gorignak@user/gorignak) (Remote host closed the connection) |
| 22:41:39 | → | alp joins (~alp@2001:861:8ca0:4940:18f3:4eb6:59be:b60) |
| 22:42:06 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 22:43:04 | × | alp quits (~alp@2001:861:8ca0:4940:18f3:4eb6:59be:b60) (Remote host closed the connection) |
| 22:43:21 | → | alp joins (~alp@2001:861:8ca0:4940:53b0:728a:4a19:6af2) |
| 22:43:29 | × | hgolden_ quits (~hgolden@2603:8000:9d00:3ed1:6c70:1ac0:d127:74dd) (Remote host closed the connection) |
| 22:44:45 | × | alp quits (~alp@2001:861:8ca0:4940:53b0:728a:4a19:6af2) (Remote host closed the connection) |
| 22:45:03 | → | alp joins (~alp@2001:861:8ca0:4940:11eb:6be:450d:4949) |
| 22:45:42 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 22:45:50 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
| 22:46:27 | × | alp quits (~alp@2001:861:8ca0:4940:11eb:6be:450d:4949) (Remote host closed the connection) |
| 22:46:44 | → | alp joins (~alp@2001:861:8ca0:4940:3097:3d6d:8b01:fcba) |
| 22:47:55 | → | tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl) |
| 22:48:08 | × | alp quits (~alp@2001:861:8ca0:4940:3097:3d6d:8b01:fcba) (Remote host closed the connection) |
| 22:48:26 | → | alp joins (~alp@2001:861:8ca0:4940:442:919:bd8c:d19c) |
| 22:50:04 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 22:50:08 | → | alp_ joins (~alp@2001:861:8ca0:4940:2fb9:3073:3158:62ef) |
| 22:51:32 | × | alp_ quits (~alp@2001:861:8ca0:4940:2fb9:3073:3158:62ef) (Remote host closed the connection) |
| 22:51:49 | → | alp_ joins (~alp@2001:861:8ca0:4940:36d2:d74a:8e91:a2c6) |
| 22:53:06 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 22:53:12 | → | j1n37 joins (~j1n37@user/j1n37) |
| 22:53:15 | × | alp_ quits (~alp@2001:861:8ca0:4940:36d2:d74a:8e91:a2c6) (Remote host closed the connection) |
| 22:53:33 | → | alp_ joins (~alp@2001:861:8ca0:4940:7755:1baa:b171:8d8d) |
| 22:53:37 | × | alp quits (~alp@2001:861:8ca0:4940:442:919:bd8c:d19c) (Ping timeout: 248 seconds) |
| 22:55:16 | → | alp__ joins (~alp@2001:861:8ca0:4940:9b41:1bdc:3efe:5d7f) |
| 22:56:31 | × | tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds) |
| 22:58:09 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 22:58:25 | × | alp_ quits (~alp@2001:861:8ca0:4940:7755:1baa:b171:8d8d) (Ping timeout: 248 seconds) |
| 22:58:48 | → | emmanuelux joins (~emmanuelu@user/emmanuelux) |
| 22:58:59 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 23:00:01 | × | alp__ quits (~alp@2001:861:8ca0:4940:9b41:1bdc:3efe:5d7f) (Ping timeout: 248 seconds) |
| 23:08:54 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:11:55 | × | koz quits (~koz@121.99.240.58) (Quit: ZNC 1.8.2 - https://znc.in) |
| 23:13:15 | → | koz joins (~koz@121.99.240.58) |
| 23:13:38 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
| 23:24:18 | × | malte quits (~malte@mal.tc) (Remote host closed the connection) |
| 23:24:40 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:27:33 | × | Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Quit: Ping timeout (120 seconds)) |
| 23:27:43 | × | MironZ3 quits (~MironZ@nat-infra.ehlab.uk) (Quit: Ping timeout (120 seconds)) |
| 23:27:50 | → | malte joins (~malte@mal.tc) |
| 23:27:52 | → | Sciencentistguy joins (~sciencent@hacksoc/ordinary-member) |
| 23:28:03 | → | MironZ3 joins (~MironZ@nat-infra.ehlab.uk) |
| 23:29:24 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
| 23:34:56 | → | hgolden joins (~hgolden@2603:8000:9d00:3ed1:6c70:1ac0:d127:74dd) |
| 23:37:02 | → | tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl) |
| 23:40:28 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:41:29 | × | tdammers quits (~tdammers@82-150-212-87.ftth.glasoperator.nl) (Ping timeout: 252 seconds) |
| 23:42:16 | → | tdammers joins (~tdammers@82-150-212-87.ftth.glasoperator.nl) |
| 23:45:19 | <hellwolf> | I am back. This is one that works: https://play.haskell.org/saved/SyfciPGn not the most pretty code, but kinda works. |
| 23:47:05 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
| 23:47:13 | × | Square quits (~Square@user/square) (Ping timeout: 265 seconds) |
| 23:48:36 | → | merijn joins (~merijn@128-137-045-062.dynamic.caiway.nl) |
| 23:53:25 | × | merijn quits (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
| 23:55:20 | × | alexherbo2 quits (~alexherbo@13.135.22.93.rev.sfr.net) (Remote host closed the connection) |
All times are in UTC on 2024-12-02.