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