2024/04/07

2024-04-07 00:00:30 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2024-04-07 00:01:26 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-04-07 00:01:28 +0200acidjnk_new(~acidjnk@p200300d6e714dc22c1009207f5f0377f.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-04-07 00:01:34 +0200polyphem(~rod@p200300ef2737840025b5ae4e52515c0b.dip0.t-ipconnect.de) (Quit: WeeChat 4.1.1)
2024-04-07 00:03:40 +0200zetef(~quassel@5.2.182.98) (Ping timeout: 256 seconds)
2024-04-07 00:03:41 +0200polyphem(~rod@p200300ef2737840025b5ae4e52515c0b.dip0.t-ipconnect.de)
2024-04-07 00:04:01 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
2024-04-07 00:05:05 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-04-07 00:06:06 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-04-07 00:09:35 +0200zetef(~quassel@5.2.182.99)
2024-04-07 00:13:14 +0200 <EvanR> and then after 1001 formulas you
2024-04-07 00:13:41 +0200 <EvanR> five million something words something
2024-04-07 00:14:13 +0200 <EvanR> billion?
2024-04-07 00:14:16 +0200 <EvanR> too many words
2024-04-07 00:19:41 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-04-07 00:33:24 +0200sadie-sorceress(~sadie-sor@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Client closed)
2024-04-07 00:37:00 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
2024-04-07 00:37:35 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2024-04-07 00:59:35 +0200ftweedal(~ftweedal@211.30.152.176) (Ping timeout: 260 seconds)
2024-04-07 01:03:21 +0200 <tri> hi, is StateT Text Identity (Either String a) == State Text (Either String a)
2024-04-07 01:04:58 +0200 <EvanR> the first type doesn't look right since StateT works on a monad
2024-04-07 01:05:07 +0200 <EvanR> :k StateT
2024-04-07 01:05:08 +0200 <lambdabot> * -> (* -> *) -> * -> *
2024-04-07 01:05:12 +0200 <EvanR> oh
2024-04-07 01:05:18 +0200 <geekosaur> yes https://downloads.haskell.org/ghc/9.2.5/docs/html/libraries/mtl-2.2.2/Control-Monad-State-Lazy.htm…
2024-04-07 01:05:57 +0200 <tri> I have state :: State Text (Either String a)
2024-04-07 01:06:09 +0200 <tri> and f :: a -> b
2024-04-07 01:06:24 +0200 <EvanR> :t state
2024-04-07 01:06:25 +0200 <lambdabot> MonadState s m => (s -> (a, s)) -> m a
2024-04-07 01:06:29 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-04-07 01:06:36 +0200 <tri> then fmap . fmap f state the compiler will give StateT TExt Identity (Either String b)
2024-04-07 01:06:45 +0200 <tri> which is confusing for me
2024-04-07 01:07:05 +0200 <tri> i expect it to show State Text (Either String b)
2024-04-07 01:07:05 +0200 <EvanR> type synonyms might not get restored after a bunch of type checking
2024-04-07 01:07:31 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2024-04-07 01:07:43 +0200 <tri> thank you
2024-04-07 01:08:05 +0200 <geekosaur> right, tracking type synonyms through the typechecker is problematic at best
2024-04-07 01:08:18 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-04-07 01:08:25 +0200 <geekosaur> likewise you can find things that started out as String turn into [Char] in the typechecker
2024-04-07 01:08:49 +0200 <tri> oh so you would annotate type directly? I mean i already do that above each function
2024-04-07 01:08:56 +0200 <geekosaur> (in particular, if you apply functions from Data.List / GHC.OldList on them)
2024-04-07 01:09:04 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-04-07 01:09:15 +0200 <EvanR> you can put more type signatures if it helps
2024-04-07 01:09:30 +0200 <tri> EvanR: yea alraedy put it above each function
2024-04-07 01:09:35 +0200 <tri> but this happens inside a function
2024-04-07 01:09:42 +0200 <EvanR> though it may require ScopedTypeVariables when they involve type variables
2024-04-07 01:10:07 +0200 <EvanR> yes you can put type signatures in where clauses for example
2024-04-07 01:10:14 +0200 <EvanR> or let bindings
2024-04-07 01:10:26 +0200 <tri> yea sure I could do that
2024-04-07 01:10:55 +0200 <geekosaur> you can also annotate expressions, although that's usually annoying enough that people don't bother unless the compiler needs the help
2024-04-07 01:12:12 +0200 <tri> sure
2024-04-07 01:15:51 +0200mhatta(~mhatta@www21123ui.sakura.ne.jp) (Quit: ZNC 1.8.2+deb4+b2 - https://znc.in)
2024-04-07 01:17:28 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-04-07 01:18:23 +0200sadie-sorceress(~sadie-sor@c-76-155-235-153.hsd1.co.comcast.net)
2024-04-07 01:19:02 +0200polyphem(~rod@p200300ef2737840025b5ae4e52515c0b.dip0.t-ipconnect.de) (Quit: WeeChat 4.1.1)
2024-04-07 01:19:12 +0200nek0(~nek0@2a01:4f8:222:2b41::12) (Changing host)
2024-04-07 01:19:12 +0200nek0(~nek0@user/nek0)
2024-04-07 01:20:03 +0200pavonia(~user@user/siracusa)
2024-04-07 01:20:24 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 255 seconds)
2024-04-07 01:23:44 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-04-07 01:23:59 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2024-04-07 01:29:37 +0200Sgeo(~Sgeo@user/sgeo)
2024-04-07 01:39:34 +0200sadie-sorceress(~sadie-sor@c-76-155-235-153.hsd1.co.comcast.net) (Ping timeout: 250 seconds)
2024-04-07 01:45:04 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-07 02:00:02 +0200mhatta(~mhatta@www21123ui.sakura.ne.jp)
2024-04-07 02:08:16 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2024-04-07 02:48:28 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-07 02:58:31 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 02:59:16 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2024-04-07 03:02:41 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 252 seconds)
2024-04-07 03:03:43 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 260 seconds)
2024-04-07 03:09:21 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 03:12:20 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2024-04-07 03:16:45 +0200saftl``(~user@p200300f91740f5006069ab261fee2afc.dip0.t-ipconnect.de)
2024-04-07 03:18:11 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-04-07 03:18:18 +0200saftl(~user@p200300f9173af1001d6b7e3ec038aab9.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2024-04-07 03:21:45 +0200saftl``(~user@p200300f91740f5006069ab261fee2afc.dip0.t-ipconnect.de) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1))
2024-04-07 03:25:08 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-04-07 03:35:29 +0200sadie_(~sadie@c-76-155-235-153.hsd1.co.comcast.net)
2024-04-07 03:40:48 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 255 seconds)
2024-04-07 03:51:05 +0200poscat0x04(~poscat@user/poscat)
2024-04-07 03:52:11 +0200poscat(~poscat@user/poscat) (Ping timeout: 252 seconds)
2024-04-07 03:55:25 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-04-07 03:56:59 +0200otto_s(~user@p4ff27a75.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-04-07 03:58:08 +0200otto_s(~user@p4ff27276.dip0.t-ipconnect.de)
2024-04-07 04:05:03 +0200op_4(~tslil@user/op-4/x-9116473) (Remote host closed the connection)
2024-04-07 04:05:32 +0200op_4(~tslil@user/op-4/x-9116473)
2024-04-07 04:11:38 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 04:16:13 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-04-07 04:16:58 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 04:27:25 +0200masterbuilder(~quassel@user/masterbuilder) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2024-04-07 04:29:10 +0200zetef(~quassel@5.2.182.99) (Ping timeout: 268 seconds)
2024-04-07 04:30:41 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
2024-04-07 04:32:17 +0200tri_(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 04:32:17 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Read error: Connection reset by peer)
2024-04-07 04:33:14 +0200mei(~mei@user/mei) (Remote host closed the connection)
2024-04-07 04:35:40 +0200mei(~mei@user/mei)
2024-04-07 04:42:43 +0200terrorjack(~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
2024-04-07 04:46:07 +0200terrorjack(~terrorjac@2a01:4f8:c17:87f8::)
2024-04-07 04:55:00 +0200igemnace(~ian@user/igemnace)
2024-04-07 04:56:01 +0200td_(~td@i53870929.versanet.de) (Ping timeout: 272 seconds)
2024-04-07 04:56:35 +0200xdminsy(~xdminsy@117.147.70.203)
2024-04-07 04:57:11 +0200td_(~td@i53870921.versanet.de)
2024-04-07 05:06:56 +0200tri_(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-07 05:07:28 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 05:22:22 +0200igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-04-07 05:22:25 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-07 05:22:37 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 05:24:23 +0200aforemny(~aforemny@2001:9e8:6cf1:9700:d84c:da2d:5fb6:63cf)
2024-04-07 05:25:48 +0200aforemny_(~aforemny@2001:9e8:6ccc:cd00:83d5:fd83:d24c:2c05) (Ping timeout: 260 seconds)
2024-04-07 05:47:08 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com)
2024-04-07 06:09:55 +0200travgm(~travgm@fsf/member/travgm)
2024-04-07 06:25:17 +0200byte(~byte@149.28.222.189) (Ping timeout: 240 seconds)
2024-04-07 06:25:36 +0200byte(~byte@149.28.222.189)
2024-04-07 06:25:41 +0200snek(sid280155@id-280155.lymington.irccloud.com) (Ping timeout: 240 seconds)
2024-04-07 06:25:41 +0200tritlo_(sid58727@id-58727.hampstead.irccloud.com) (Ping timeout: 240 seconds)
2024-04-07 06:25:41 +0200diagprov(sid348783@user/diagprov) (Ping timeout: 240 seconds)
2024-04-07 06:25:52 +0200tritlo_(sid58727@id-58727.hampstead.irccloud.com)
2024-04-07 06:26:05 +0200scav(sid309693@user/scav) (Ping timeout: 240 seconds)
2024-04-07 06:26:05 +0200integral(sid296274@user/integral) (Ping timeout: 240 seconds)
2024-04-07 06:26:43 +0200scav(sid309693@user/scav)
2024-04-07 06:27:33 +0200integral(sid296274@user/integral)
2024-04-07 06:28:19 +0200snek(sid280155@id-280155.lymington.irccloud.com)
2024-04-07 06:28:22 +0200diagprov(sid348783@user/diagprov)
2024-04-07 06:30:29 +0200mei(~mei@user/mei) (Remote host closed the connection)
2024-04-07 06:32:55 +0200mei(~mei@user/mei)
2024-04-07 06:52:06 +0200n8n(~n8n@user/n8n) (Quit: WeeChat 4.2.1)
2024-04-07 07:09:30 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 268 seconds)
2024-04-07 07:11:09 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-04-07 07:30:14 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2024-04-07 07:43:34 +0200qqq(~qqq@92.43.167.61)
2024-04-07 07:59:01 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-04-07 07:59:24 +0200ec__(~ec@gateway/tor-sasl/ec)
2024-04-07 08:00:05 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds)
2024-04-07 08:01:06 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds)
2024-04-07 08:01:29 +0200gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2024-04-07 08:02:27 +0200tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-07 08:07:26 +0200gentauro(~gentauro@user/gentauro)
2024-04-07 08:27:24 +0200euphores(~SASL_euph@user/euphores)
2024-04-07 08:34:35 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-04-07 08:35:12 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 08:39:59 +0200ubert1(~Thunderbi@p200300ecdf39571b9c90c5889e4dd262.dip0.t-ipconnect.de)
2024-04-07 08:40:52 +0200ubert(~Thunderbi@p200300ecdf395731c4a2a707ba473843.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-04-07 08:40:52 +0200ubert1ubert
2024-04-07 08:46:40 +0200lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-04-07 08:47:06 +0200tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
2024-04-07 08:54:16 +0200bliminse(~bliminse@user/bliminse) (Quit: leaving)
2024-04-07 08:54:27 +0200vnogueira_(~vnogueira@user/vnogueira)
2024-04-07 08:55:42 +0200ec__(~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds)
2024-04-07 08:57:14 +0200bliminse(~bliminse@user/bliminse)
2024-04-07 08:57:34 +0200vnogueira(~vnogueira@user/vnogueira) (Ping timeout: 260 seconds)
2024-04-07 09:00:07 +0200tt12310(~tt1231@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Quit: The Lounge - https://thelounge.chat)
2024-04-07 09:00:21 +0200jle`(~jle`@2603-8001-3b02-84d4-fc90-a9ba-a756-93bd.res6.spectrum.com) (Quit: WeeChat 4.2.1)
2024-04-07 09:02:39 +0200tt12310(~tt1231@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-04-07 09:10:56 +0200nek0(~nek0@user/nek0) (Quit: The Lounge - https://thelounge.chat)
2024-04-07 09:13:12 +0200michalz(~michalz@185.246.207.222)
2024-04-07 09:13:40 +0200yeitrafferin(~user@2a04:4540:7210:ce00:a5f0:fa46:a764:974e)
2024-04-07 09:22:25 +0200Square2(~Square@user/square)
2024-04-07 09:25:32 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 09:35:22 +0200acidjnk_new(~acidjnk@p5dd87bdf.dip0.t-ipconnect.de)
2024-04-07 09:38:31 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-04-07 09:39:48 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 09:41:43 +0200philopsos(~caecilius@user/philopsos) (Ping timeout: 255 seconds)
2024-04-07 09:44:05 +0200jle`(~jle`@2603-8001-3b02-84d4-6afd-70f5-ecb9-5dde.res6.spectrum.com)
2024-04-07 09:47:10 +0200fireking04(~fireking0@112.206.74.47)
2024-04-07 09:48:46 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 09:51:52 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 09:53:39 +0200nek0(~nek0@2a01:4f8:222:2b41::12)
2024-04-07 09:53:39 +0200nek0(~nek0@2a01:4f8:222:2b41::12) (Changing host)
2024-04-07 09:53:39 +0200nek0(~nek0@user/nek0)
2024-04-07 10:06:11 +0200jorj(~jorj@user/jorj) (Quit: jorj)
2024-04-07 10:17:01 +0200simendsjo(~user@84.209.170.3)
2024-04-07 10:18:36 +0200zetef(~quassel@5.2.182.99)
2024-04-07 10:29:49 +0200sadie_(~sadie@c-76-155-235-153.hsd1.co.comcast.net) (Remote host closed the connection)
2024-04-07 10:32:07 +0200arthurvl(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Quit: ein reboot macht gut)
2024-04-07 10:34:15 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 10:42:15 +0200Cale(~cale@2607:fea8:995f:f126:15c3:35a5:81ac:187c) (Ping timeout: 256 seconds)
2024-04-07 10:43:48 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 10:44:07 +0200euleritian(~euleritia@77.22.252.56)
2024-04-07 10:51:03 +0200tititest(~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de)
2024-04-07 10:51:44 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 10:53:23 +0200oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
2024-04-07 10:54:04 +0200Cale(~cale@2607:fea8:995f:f126:15c3:35a5:81ac:187c)
2024-04-07 10:54:33 +0200fireking04(~fireking0@112.206.74.47) (Quit: Leaving)
2024-04-07 10:56:06 +0200euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-04-07 10:57:17 +0200 <mesaoptimizer> What is the next book you'd recommend after Graham Hutton's textbook?
2024-04-07 10:59:58 +0200 <mesaoptimizer> I don't have a concrete goal right now -- I'm mostly exploring Haskell and its concepts and find it fun. I also find myself not really using Haskell to write any useful programs, although I do intend to experiment with using a static-site-generator like hakyll soon
2024-04-07 11:00:55 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 11:02:02 +0200 <tomsmeding> use it :p
2024-04-07 11:02:34 +0200 <tomsmeding> a good way to better understand the ideas is to use them yourself to build programs
2024-04-07 11:02:48 +0200 <tomsmeding> the programs don't need to be useful per se ;)
2024-04-07 11:02:59 +0200Square2(~Square@user/square) (Ping timeout: 264 seconds)
2024-04-07 11:03:41 +0200simendsjo(~user@84.209.170.3) (Ping timeout: 240 seconds)
2024-04-07 11:05:11 +0200 <tomsmeding> depending on what you're interested in, ideas could be: a small calculator (which you can extend to a small programming language -- this one allows sticking in a whole bunch of fancy haskell if you want to), Project Euler like things, Advent of Code like things (can get a bit messy, because the problems sometimes are)
2024-04-07 11:05:39 +0200int-eis looking up guides on leaving a cult (sorry, maybe a bit too dark for Sunday)
2024-04-07 11:06:07 +0200 <int-e> But there are books on this. :-P
2024-04-07 11:06:54 +0200 <tomsmeding> mesaoptimizer: unless you think you like wrangling with effective separation of IO and non-IO code, I don't recommend IO-heavy programs like web scrapers, games, TODO apps, etc. (the standard list of "small things to build" for imperative languages)
2024-04-07 11:07:36 +0200 <tomsmeding> there are certainly books on this but I posit that you should do _something_ with what you read if you want to truly understand what you've just read :)
2024-04-07 11:09:17 +0200 <mesaoptimizer> tomsmeding: that's useful. I guess I might take a look at hasktorch and mess around with it. For context, jax (the python deep learning library) is what got me enthusiastic about Haskell.
2024-04-07 11:09:53 +0200gmg(~user@user/gehmehgeh)
2024-04-07 11:10:31 +0200 <tomsmeding> that's a big library :)
2024-04-07 11:12:19 +0200 <tomsmeding> ah there is a tutorial
2024-04-07 11:12:24 +0200CiaoSen(~Jura@2a05:5800:298:af00:e6b9:7aff:fe80:3d03)
2024-04-07 11:16:59 +0200CiaoSen(~Jura@2a05:5800:298:af00:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds)
2024-04-07 11:24:02 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 11:32:31 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 11:33:27 +0200arthurvl(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net)
2024-04-07 11:33:44 +0200sawilagar(~sawilagar@user/sawilagar)
2024-04-07 11:35:51 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-04-07 11:37:16 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-04-07 11:38:06 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 11:39:41 +0200Luj(~Luj@2a01:e0a:5f9:9681:e6d6:c9c5:5502:ad12)
2024-04-07 11:40:56 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 11:41:13 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 11:48:55 +0200Square2(~Square@user/square)
2024-04-07 11:57:18 +0200coldtom(~coldtom@coldrick.cc) (Quit: Ping timeout (120 seconds))
2024-04-07 11:57:33 +0200coldtom(~coldtom@coldrick.cc)
2024-04-07 11:58:29 +0200Square2(~Square@user/square) (Ping timeout: 240 seconds)
2024-04-07 11:59:36 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-04-07 12:11:42 +0200yeitrafferin(~user@2a04:4540:7210:ce00:a5f0:fa46:a764:974e) (Quit: Leaving)
2024-04-07 12:11:49 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-04-07 12:15:19 +0200sanpo(~sanpo@user/sanpo)
2024-04-07 12:17:27 +0200 <Inst> ugh, given a random generator
2024-04-07 12:18:29 +0200 <Inst> how do you, in pointfree or semi point free style, convert it to a list of items generated from the generator?
2024-04-07 12:22:25 +0200 <ncf> what's a random generator
2024-04-07 12:22:58 +0200 <Rembane> Inst: Do you have an example with the points?
2024-04-07 12:24:22 +0200 <Inst> import Control.Arrow ((***), first, second)
2024-04-07 12:24:22 +0200 <Inst> genRange :: IO [Int]
2024-04-07 12:24:22 +0200 <Inst> genRange = do
2024-04-07 12:24:22 +0200 <Inst> initial <- first pure . uniformR (1,20) <$> newStdGen
2024-04-07 12:24:26 +0200 <Inst> pure . take 30 . fst $ iterate (uniformR (1,20) =<< )) initial
2024-04-07 12:24:29 +0200 <Inst> ugh, should have pastebinned it, too large
2024-04-07 12:24:57 +0200 <Inst> i'd rather do it without arrows if possible
2024-04-07 12:27:58 +0200 <Rembane> You can use first and second from BiFunctor instead.
2024-04-07 12:31:53 +0200 <Rembane> Inst: I think basing your code in the example here should make it a bit more straightforward: https://hackage.haskell.org/package/random-1.2.1.2/docs/System-Random.html#g:2
2024-04-07 12:32:27 +0200 <zfnmxt> I've always wondered why it's `Bifunctor` and not `BiFunctor`. I make that capitalization mistake every time I import it.
2024-04-07 12:32:34 +0200 <ncf> this is just replicateM 30 in a state monad
2024-04-07 12:32:47 +0200 <Rembane> zfnmxt: Then we're at least two. :)
2024-04-07 12:32:50 +0200 <ncf> zfnmxt: because it's bifunctor and not biFunctor?
2024-04-07 12:33:10 +0200 <ncf> do you write BiCycle
2024-04-07 12:33:49 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-04-07 12:34:19 +0200 <zfnmxt> ncf: You have a point there. And I might write "BiCycle" if the thing I usually have is a Cycle and a BiCycle is somehow a derivative of it where the Bi prefix makes sense.
2024-04-07 12:34:40 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2024-04-07 12:35:26 +0200 <zfnmxt> For bifunctor I see the "bi" as a prefix modifier and so in my brain it makes sense to distinguish it from "functor" by capitalizing the "F". But your argument makes sense too.
2024-04-07 12:36:45 +0200Lord_of_Life_Lord_of_Life
2024-04-07 12:39:02 +0200 <Inst> oh doip :(
2024-04-07 12:39:07 +0200 <Inst> the unfoldr solution is best
2024-04-07 12:42:02 +0200 <Inst> grrr, ugh
2024-04-07 12:42:14 +0200 <Inst> i feel like it's cheating to just get out to unfoldr
2024-04-07 12:43:01 +0200 <Rembane> Inst: How does it feel like cheating?
2024-04-07 12:45:58 +0200 <Inst> i'm just copy pasting from the manual
2024-04-07 12:46:07 +0200 <Inst> genRange :: IO [Int]
2024-04-07 12:46:07 +0200 <Inst> genRange = do initial <- uniformR (1,20 :: Int) <$> newStdGen
2024-04-07 12:46:07 +0200 <Inst> pure . fmap fst . take 30 $ iterate ( uniformR (1,20 :: Int) . snd ) initial
2024-04-07 12:46:59 +0200xdminsy(~xdminsy@117.147.70.203) (Read error: Connection reset by peer)
2024-04-07 12:47:10 +0200 <Inst> there, this verrsion has no dependencies other than System.Random
2024-04-07 12:48:00 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-04-07 12:48:02 +0200 <ncf> why is that a goal
2024-04-07 12:49:43 +0200xdminsy(~xdminsy@117.147.70.203)
2024-04-07 12:50:02 +0200 <Inst> quick and dirty test-writing... which should be handled by Quickcheck, tbh
2024-04-07 12:52:06 +0200 <Inst> genRange = fmap fst . iterate ( uniformR (1,20 :: Int) . snd ). uniformR (1,20 :: Int) <$> newStdGen
2024-04-07 12:52:15 +0200 <Inst> this works, but i want to get the doubled uniformR out :(
2024-04-07 12:52:57 +0200 <Inst> which, incidentally, is the entire point of unfoldr :(
2024-04-07 12:56:11 +0200 <ncf> i would really just move to a stateful monad and use replicateM
2024-04-07 12:56:44 +0200 <ncf> see the second code snippet in that page
2024-04-07 12:57:24 +0200 <ncf> or you know, use randomRs
2024-04-07 12:57:29 +0200 <ncf> https://hackage.haskell.org/package/random-1.2.1.2/docs/System-Random.html#v:randomRs
2024-04-07 13:00:50 +0200mrmr155334(~mrmr@user/mrmr) (Quit: Bye, See ya later!)
2024-04-07 13:10:29 +0200 <Inst> randomRs is depreciated
2024-04-07 13:11:52 +0200 <ncf> is it?
2024-04-07 13:14:58 +0200 <tomsmeding> > Random [ed. the class] exists primarily for backwards compatibility with version 1.1 of this library.
2024-04-07 13:16:10 +0200 <tomsmeding> a bit strange that they didn't provide a full set of replacement functions using Uniform (although the missing ones are easily written)
2024-04-07 13:16:19 +0200mrmr155334(~mrmr@user/mrmr)
2024-04-07 13:19:08 +0200son0p(~ff@191.104.17.254) (Quit: Leaving)
2024-04-07 13:20:22 +0200xff0x(~xff0x@2405:6580:b080:900:2bd3:fa41:7b29:56d9) (Ping timeout: 246 seconds)
2024-04-07 13:20:29 +0200 <Inst> no one parallelized quickcheck yet?
2024-04-07 13:20:36 +0200 <Inst> I'm testing my mergesort and I think it's space leaking :(
2024-04-07 13:20:45 +0200 <tomsmeding> check out hedgehog
2024-04-07 13:21:16 +0200xff0x(~xff0x@2405:6580:b080:900:a090:2214:6013:5d1f)
2024-04-07 13:21:58 +0200 <ski> genRange = take 30 . unfoldr (Just . uniformR (1,20)) <$> newStdGen
2024-04-07 13:22:48 +0200billchenchina-(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2024-04-07 13:22:52 +0200 <mesaoptimizer> "I don’t feel the weight of the world. Because it does not weigh on me." https://www.greaterwrong.com/posts/ur9TCRnHJighHmLCW/on-caring#comment-ZsMLu8JqAiTrATCaL
2024-04-07 13:23:15 +0200yeitrafferin(~user@2a04:4540:7210:ce00:a5f0:fa46:a764:974e)
2024-04-07 13:23:28 +0200 <mesaoptimizer> oh jeez, wrong channel sorry guys
2024-04-07 13:23:36 +0200 <Inst> which is the right channel? :)
2024-04-07 13:24:04 +0200 <Inst> Oh, it's just a lesswrong mirror, not a splinter
2024-04-07 13:24:25 +0200 <mesaoptimizer> yeah, an alternative front-end
2024-04-07 13:27:21 +0200 <Inst> btw anyone have any idea why it spaceleaks?
2024-04-07 13:27:29 +0200 <Inst> of course this isn't as efficient as Data.List.sort
2024-04-07 13:27:31 +0200 <Inst> https://paste.tomsmeding.com/kCrIz5tQ
2024-04-07 13:27:41 +0200 <ski> Inst : `unfoldr' like above ?
2024-04-07 13:28:12 +0200 <tomsmeding> Inst: can you substantiate "space leak"?
2024-04-07 13:28:27 +0200 <Inst> well, i have no idea why it's so unperformant
2024-04-07 13:28:30 +0200 <ski> strictness annotations on base cases of `merge' are redundant
2024-04-07 13:28:50 +0200 <Inst> and they don't really work for list because you just get exposure (usually) of the constructor
2024-04-07 13:29:00 +0200 <Inst> thank you for recommending hedgehog
2024-04-07 13:29:07 +0200travgm(~travgm@fsf/member/travgm) (Remote host closed the connection)
2024-04-07 13:29:19 +0200 <Inst> i'm getting into testing more professionally, since I'm trying to pick up Julia and make friends with Julia, and you know what their language is notorious for
2024-04-07 13:29:20 +0200 <tomsmeding> Inst: why is 'merge' calling mergesort on its arguments at each step of the 'merge' recursion
2024-04-07 13:30:13 +0200 <tomsmeding> tip: use view patterns less :p
2024-04-07 13:30:47 +0200 <Inst> because i wanted comedy mutual recursion
2024-04-07 13:31:04 +0200 <Inst> i've been trolling them by pretending that their terse function notation foo(x,y) indicates pure
2024-04-07 13:31:19 +0200 <Inst> then i wrote out everything as a single expression using let
2024-04-07 13:31:39 +0200 <Inst> and screwed over their syntax to force a Haskell-like evaluation, which was, of course, utterly unreadable
2024-04-07 13:31:43 +0200 <Inst> they didn't bite :(
2024-04-07 13:31:46 +0200 <Inst> wanna see?
2024-04-07 13:32:49 +0200 <tomsmeding> Inst: https://paste.tomsmeding.com/DeYSb30M
2024-04-07 13:32:53 +0200 <ski> Inst : you're repeatedly sorting the tails in `merge', uselessly
2024-04-07 13:33:08 +0200 <Inst> ah, thanks
2024-04-07 13:33:22 +0200 <tomsmeding> (that's what I was trying to say as well, but less explicitly so that you could figure it out yourself :p)
2024-04-07 13:33:30 +0200 <ski> (sorting them when they're already sorted, apart from the initial recursive `mergesort' calls, from `merge')
2024-04-07 13:33:36 +0200 <Inst> ummm, i did that, with single recursion
2024-04-07 13:34:43 +0200 <tomsmeding> the more interesting question is, what was the complexity of the original algorithm
2024-04-07 13:34:54 +0200 <Inst> probably O(n^2)?
2024-04-07 13:34:58 +0200 <tomsmeding> far more I think
2024-04-07 13:36:09 +0200 <Inst> wait, are there any real ways to get O(k^n)?
2024-04-07 13:36:10 +0200xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 255 seconds)
2024-04-07 13:36:59 +0200xdminsy(~xdminsy@117.147.70.203)
2024-04-07 13:37:23 +0200 <Inst> whoops, i mean O(n^n)
2024-04-07 13:37:29 +0200 <tomsmeding> think about that one yourself for a while :)
2024-04-07 13:39:14 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-04-07 13:42:39 +0200xff0x(~xff0x@2405:6580:b080:900:a090:2214:6013:5d1f) (Quit: xff0x)
2024-04-07 13:42:51 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 13:43:40 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 13:43:57 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 13:44:50 +0200 <darkling> A clue for that: you may be interested in Stirling's approximation.
2024-04-07 13:45:43 +0200xff0x(~xff0x@2405:6580:b080:900:bb82:210b:4257:7a0f)
2024-04-07 13:48:53 +0200xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 240 seconds)
2024-04-07 13:48:57 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-04-07 13:49:16 +0200xdminsy(~xdminsy@117.147.70.203)
2024-04-07 13:50:47 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 14:05:47 +0200 <Inst> yeah, i looked it up, DFS is O(n^n)
2024-04-07 14:06:13 +0200 <Inst> btw, quick question, this wouldn't turn on multicore on ghci, right?
2024-04-07 14:06:15 +0200 <Inst> ghci -package hedgehog -threaded +RTS -N
2024-04-07 14:06:32 +0200 <tomsmeding> have you tried?
2024-04-07 14:06:58 +0200 <tomsmeding> I can't figure the math out for the complexity of Inst's original code, and I can't figure out a fit of the timing data either :p
2024-04-07 14:07:37 +0200 <tomsmeding> oh I can
2024-04-07 14:10:47 +0200 <tomsmeding> the fit is not perfect but I'll accept it as decent
2024-04-07 14:10:58 +0200 <tomsmeding> a * n^2 + b * exp(sqrt(n))
2024-04-07 14:17:23 +0200 <tomsmeding> https://tomsmeding.com/vang/5TxoyR/inst-plot.png
2024-04-07 14:17:25 +0200 <tomsmeding> without the n^2 term
2024-04-07 14:18:40 +0200son0p(~ff@191.104.17.254)
2024-04-07 14:20:29 +0200ubert(~Thunderbi@p200300ecdf39571b9c90c5889e4dd262.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2024-04-07 14:22:28 +0200acidjnk_new(~acidjnk@p5dd87bdf.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-04-07 14:24:07 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2024-04-07 14:25:09 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 14:40:33 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 14:42:31 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 15:12:18 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net)
2024-04-07 15:17:14 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 15:21:37 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-04-07 15:21:58 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 15:29:39 +0200todi(~todi@p57803331.dip0.t-ipconnect.de)
2024-04-07 15:39:08 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 15:39:25 +0200euleritian(~euleritia@77.22.252.56)
2024-04-07 15:40:09 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 15:45:15 +0200eugenrh_(~eugenrh@2a01:4f9:c011:265::1) (Changing host)
2024-04-07 15:45:15 +0200eugenrh_(~eugenrh@user/eugenrh)
2024-04-07 15:45:30 +0200eugenrh_(~eugenrh@user/eugenrh) (Quit: WeeChat 3.7.1)
2024-04-07 15:49:38 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-04-07 15:50:45 +0200eugenrh(~eugenrh@user/eugenrh)
2024-04-07 15:54:22 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 16:05:33 +0200zetef(~quassel@5.2.182.99) (Remote host closed the connection)
2024-04-07 16:17:07 +0200michalz(~michalz@185.246.207.222) (Ping timeout: 246 seconds)
2024-04-07 16:17:48 +0200ec_(~ec@gateway/tor-sasl/ec)
2024-04-07 16:22:10 +0200__monty__(~toonn@user/toonn)
2024-04-07 16:25:28 +0200 <Inst> thanks :)
2024-04-07 16:25:46 +0200 <Inst> i wonder if i should just memorize the Data.List.sort instead
2024-04-07 16:26:04 +0200 <Inst> since that is a canonically good mergesort, no? Btu I'd assume it's limited to laziness
2024-04-07 16:35:19 +0200 <ski> "limited to laziness" meaning ?
2024-04-07 16:38:30 +0200jrm(~jrm@user/jrm) (Quit: ciao)
2024-04-07 16:39:59 +0200jrm(~jrm@user/jrm)
2024-04-07 16:43:16 +0200target_i(~target_i@user/target-i/x-6023099)
2024-04-07 16:52:55 +0200r5c4571lh01987(~rscastilh@179.221.142.8)
2024-04-07 16:54:54 +0200michalz(~michalz@185.246.207.221)
2024-04-07 17:01:01 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 17:14:20 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 17:16:18 +0200ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 252 seconds)
2024-04-07 17:19:53 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-04-07 17:21:14 +0200poxel(~lennart@user/poxel)
2024-04-07 17:24:06 +0200tititest(~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) (Quit: Leaving.)
2024-04-07 17:28:27 +0200paddymahoney(~paddymaho@99.250.26.190) (Ping timeout: 260 seconds)
2024-04-07 17:30:35 +0200michalz(~michalz@185.246.207.221) (Ping timeout: 264 seconds)
2024-04-07 17:31:16 +0200ania123(~ania123@94-43-231-47.dsl.utg.ge)
2024-04-07 17:32:05 +0200michalz(~michalz@185.246.207.201)
2024-04-07 17:33:08 +0200ania123(~ania123@94-43-231-47.dsl.utg.ge) (Client Quit)
2024-04-07 17:36:24 +0200paddymahoney(~paddymaho@99.250.26.190)
2024-04-07 17:37:14 +0200acidjnk_new(~acidjnk@p200300d6e714dc26d1056ca2ae8c08a8.dip0.t-ipconnect.de)
2024-04-07 17:43:12 +0200euleritian(~euleritia@77.22.252.56) (Ping timeout: 255 seconds)
2024-04-07 17:44:34 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 17:48:48 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Read error: Connection reset by peer)
2024-04-07 17:49:42 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-04-07 17:50:27 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2024-04-07 17:51:17 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 17:51:27 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-04-07 17:55:21 +0200euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 17:55:45 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 17:58:48 +0200philopsos(~caecilius@user/philopsos)
2024-04-07 18:03:28 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-04-07 18:04:17 +0200tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net)
2024-04-07 18:04:42 +0200todi(~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-04-07 18:09:08 +0200ania123(~ania123@94-43-231-47.dsl.utg.ge)
2024-04-07 18:10:29 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds)
2024-04-07 18:28:07 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 18:29:13 +0200son0p(~ff@191.104.17.254) (Quit: Leaving)
2024-04-07 18:33:35 +0200 <Inst> ski: that is to say, the good performance of Haskell mergesort assumes laziness
2024-04-07 18:36:10 +0200qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2024-04-07 18:37:43 +0200zetef(~quassel@5.2.182.99)
2024-04-07 18:41:48 +0200rvalue-(~rvalue@user/rvalue)
2024-04-07 18:42:55 +0200rvalue(~rvalue@user/rvalue) (Ping timeout: 256 seconds)
2024-04-07 18:45:52 +0200rvalue-rvalue
2024-04-07 18:49:52 +0200 <tomsmeding> I don't think it does
2024-04-07 18:50:23 +0200 <tomsmeding> it's written in such a way that it can produce elements before the whole list has been sorted using laziness
2024-04-07 18:50:31 +0200 <tomsmeding> but in a strict language the algorithm would work fine
2024-04-07 18:56:26 +0200son0p(~ff@191.104.17.254)
2024-04-07 18:57:57 +0200todi(~todi@p57803331.dip0.t-ipconnect.de)
2024-04-07 18:59:04 +0200ania123(~ania123@94-43-231-47.dsl.utg.ge) (Quit: Client closed)
2024-04-07 18:59:34 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 260 seconds)
2024-04-07 18:59:59 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2024-04-07 19:02:22 +0200zetef(~quassel@5.2.182.99) (Remote host closed the connection)
2024-04-07 19:04:01 +0200hocrdoac^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-04-07 19:08:04 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 19:11:07 +0200esph(~weechat@user/esph) (Ping timeout: 260 seconds)
2024-04-07 19:22:46 +0200tititest(~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de)
2024-04-07 19:22:56 +0200Square2(~Square@user/square)
2024-04-07 19:23:28 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 19:27:25 +0200qqq(~qqq@92.43.167.61)
2024-04-07 19:30:17 +0200Rembane(~Rembane@li346-36.members.linode.com) (Changing host)
2024-04-07 19:30:17 +0200Rembane(~Rembane@user/Rembane)
2024-04-07 19:30:25 +0200billchenchina-(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Quit: Leaving)
2024-04-07 19:32:21 +0200sadie-sorceress(~sadie-sor@c-76-155-235-153.hsd1.co.comcast.net)
2024-04-07 19:33:34 +0200 <dolio> Have you heard of Timsort? That is a bottom-up merge sort.
2024-04-07 19:33:43 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-07 19:34:18 +0200 <dolio> Fancier than the one on on lists in GHC, but similar in strategy.
2024-04-07 19:34:30 +0200 <dolio> It was originally written for Python.
2024-04-07 19:35:53 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 19:37:37 +0200sanpo(~sanpo@user/sanpo) (Quit: Client closed)
2024-04-07 19:39:14 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
2024-04-07 19:39:42 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 19:41:30 +0200sadie-sorceress(~sadie-sor@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Client closed)
2024-04-07 19:41:58 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-04-07 19:42:36 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-04-07 19:43:06 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-04-07 19:47:59 +0200euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-04-07 19:53:59 +0200esph(~weechat@user/esph)
2024-04-07 20:00:31 +0200r5c4571lh01987(~rscastilh@179.221.142.8) (Remote host closed the connection)
2024-04-07 20:02:23 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-04-07 20:05:19 +0200euphores(~SASL_euph@user/euphores)
2024-04-07 20:08:45 +0200r5c4571lh01987(~rscastilh@179.221.142.8)
2024-04-07 20:11:25 +0200yeitrafferin(~user@2a04:4540:7210:ce00:a5f0:fa46:a764:974e) (Quit: Leaving)
2024-04-07 20:11:26 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-04-07 20:17:44 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-04-07 20:19:09 +0200xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 268 seconds)
2024-04-07 20:20:31 +0200xdminsy(~xdminsy@117.147.70.203)
2024-04-07 20:21:21 +0200 <c_wraith> the only real performance issue from Data.List.sort is that it... works on lists. but doing so does allow it to be lazy - generating a prefix of length k is O(n * log k)
2024-04-07 20:22:18 +0200akegalj(~akegalj@141-136-147-171.dsl.iskon.hr)
2024-04-07 20:24:17 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 20:24:26 +0200 <sm> Inst: I hear you about typeclasses. If you haven't already, spending a bit of time with typeclassopedia is a good way to make friends with them
2024-04-07 20:24:34 +0200 <int-e> O(n + k log n)
2024-04-07 20:29:59 +0200 <Inst> I'm familiar with the standard typeclasses, slightly less familiar with Foldable / Traversable
2024-04-07 20:30:52 +0200dtman34(~dtman34@c-75-72-163-222.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
2024-04-07 20:32:12 +0200xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 256 seconds)
2024-04-07 20:33:07 +0200xdminsy(~xdminsy@117.147.70.203)
2024-04-07 20:33:32 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 20:35:58 +0200 <Inst> mildly curious: did anyone try to solve namespacing in Haskell via list / vector abuse?
2024-04-07 20:36:16 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-07 20:38:23 +0200xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 264 seconds)
2024-04-07 20:38:42 +0200xdminsy(~xdminsy@117.147.70.203)
2024-04-07 20:38:47 +0200 <int-e> please speak plainly
2024-04-07 20:39:22 +0200 <Inst> stuff lambdas into vectors
2024-04-07 20:40:08 +0200 <Inst> all of them have to be the same type, but it works fine for procedures which can all have a bind type of ()
2024-04-07 20:40:23 +0200 <Inst> then the name of the vector is a namespace, of sorts
2024-04-07 20:41:10 +0200 <Inst> you can pass data between them by having them share a TVar
2024-04-07 20:42:49 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 20:43:58 +0200 <Inst> sorry, i'll probably stop annoying you folks for a while, I need to get my github working again
2024-04-07 20:47:15 +0200xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 255 seconds)
2024-04-07 20:53:29 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 21:03:16 +0200hocrdoac^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
2024-04-07 21:05:20 +0200 <monochrom> We already know stuffing lambdas into a record. Then they don't even have to be the same type.
2024-04-07 21:07:11 +0200 <monochrom> BTW this is when one line of sample code (so a formula) is worth a thousand pictures, despite what all you detractors said yesterday.
2024-04-07 21:07:54 +0200 <monochrom> "solve namespacing in Haskell via list / vector abuse" may look like only 8 words, but since no one understands it, it may as well be a million words.
2024-04-07 21:08:11 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 272 seconds)
2024-04-07 21:09:06 +0200Sgeo(~Sgeo@user/sgeo)
2024-04-07 21:09:19 +0200 <Inst> foo@[name1, name2, name3] = [fun1, fun2, fun3]
2024-04-07 21:09:33 +0200 <Inst> module MyModule (foo) where...
2024-04-07 21:09:53 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-04-07 21:10:27 +0200 <Inst> could set up some newtypes with custom getters and setters
2024-04-07 21:11:06 +0200bionade24(~quassel@2a03:4000:33:45b::1) (Quit: Apocalypse Incoming!)
2024-04-07 21:11:12 +0200 <Inst> typeclass overloaded accessor dot, instances, etc. But it's essentially objects if it's mutable.
2024-04-07 21:11:54 +0200bionade24(~quassel@2a03:4000:33:45b::1)
2024-04-07 21:12:00 +0200 <Inst> I just realized that any language with first-class functions, a sufficiently flexible type system to allow heterogenous lists / arrays, and mutation is an OOP language
2024-04-07 21:12:07 +0200 <Inst> but I guess you folks knew that decades ago
2024-04-07 21:12:23 +0200 <ski> object-orientation does not require mutability
2024-04-07 21:12:24 +0200 <Inst> but take out the mutation, you still have namespacing
2024-04-07 21:12:39 +0200 <Inst> what's an example of an OOP language without mutation?
2024-04-07 21:12:57 +0200 <ski> Ocaml has OO support for immutable objects
2024-04-07 21:13:21 +0200 <Inst> but OO is about encapsulating and managing state
2024-04-07 21:13:27 +0200 <c_wraith> I don't see how that idea is functionally different from adding a prefix to a bunch of names.
2024-04-07 21:13:48 +0200 <ski> (you can easily compute a clone of the current object, with some (immutable) fields swapped out with other values, and return that from a method)
2024-04-07 21:13:52 +0200 <c_wraith> so it's just more typing and language features to avoid choosing unique names
2024-04-07 21:14:08 +0200 <Inst> ski: you mean with shadowing?
2024-04-07 21:14:12 +0200 <ski> no
2024-04-07 21:14:27 +0200 <ski> similar to `foo {x = ...}' in Haskell
2024-04-07 21:14:38 +0200 <ski> (but for objects)
2024-04-07 21:14:48 +0200 <Inst> essentially method chaining?
2024-04-07 21:14:59 +0200 <ski> "but OO is about encapsulating and managing state" -- "instance state" does not need to be mutable
2024-04-07 21:15:16 +0200 <ski> no, copy-with-update
2024-04-07 21:15:19 +0200 <c_wraith> Inst: look at the String class in just about any language. for performance and reasoning, they tend to be immutable. so you've already seen OO with immutable data.
2024-04-07 21:15:33 +0200 <Inst> you need to have a semi-permanent reference, though
2024-04-07 21:16:38 +0200 <ski> and i'd replace "heterogenous lists / arrays" with "records"
2024-04-07 21:16:58 +0200 <Inst> IIRC a big feature of OOP is extensible records, though
2024-04-07 21:17:15 +0200 <Inst> it's really painful to handle without arbitrarily-sized lists / dictionaries
2024-04-07 21:17:50 +0200 <ski> O'Haskell / Timber had extensible records
2024-04-07 21:17:51 +0200aforemny_(~aforemny@i59F516C7.versanet.de)
2024-04-07 21:18:06 +0200aforemny(~aforemny@2001:9e8:6cf1:9700:d84c:da2d:5fb6:63cf) (Ping timeout: 256 seconds)
2024-04-07 21:18:06 +0200 <ski> (and subtyping in general)
2024-04-07 21:18:58 +0200 <ski> afaiac, mutability is orthogonal to OO
2024-04-07 21:22:21 +0200 <Inst> tbh, one question, what is the limit of FP, as in, what can't first-class functions do? About the only limitation I think of Haskell is the inability to parse the innards of function and variable definitions
2024-04-07 21:22:51 +0200 <Inst> oh yeah, the dependent types waiting game
2024-04-07 21:23:20 +0200 <monochrom> parse? unparse?
2024-04-07 21:23:56 +0200 <Inst> iirc template haskell has a missing feature to expand the AST of a function / variable definition
2024-04-07 21:24:07 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-04-07 21:24:24 +0200 <Inst> i'm also wondering if it's possible, with functions only, to implement yet another type system below the Haskell type system
2024-04-07 21:24:38 +0200 <monochrom> below? above?
2024-04-07 21:25:27 +0200 <Inst> i mean that, your code wouldn't compile if it doesn't type-check within your custom type system that's not integrated into GHC, but implemented only with Haskell functions
2024-04-07 21:27:42 +0200 <Inst> might still be doable by converting every function and value into a tuple
2024-04-07 21:28:04 +0200skiglances around nervously
2024-04-07 21:29:38 +0200 <c_wraith> I guess there's some theoretical sense in which every function is a list of tuples, but in general I'd recommend using functions for functions
2024-04-07 21:30:07 +0200siw5ohs0(~aiw5ohs0@user/aiw5ohs0)
2024-04-07 21:30:54 +0200siw5ohs0(~aiw5ohs0@user/aiw5ohs0) ()
2024-04-07 21:31:32 +0200 <monochrom> Every function f can be converted to a tuple (f, ()). This goes for values, too. >:)
2024-04-07 21:31:59 +0200 <Inst> i'm sort of surprised no one has tried to build, as a joke, a TypeT monad transformer
2024-04-07 21:39:21 +0200 <ncf> a what
2024-04-07 21:40:09 +0200 <Inst> a monad transformer that puts code underneath it into a secondary type system
2024-04-07 21:40:24 +0200 <Inst> iirc Haskell already has unergonomic simulated dependent types
2024-04-07 21:40:46 +0200 <ski> no
2024-04-07 21:43:59 +0200 <dolio> Not every function is a list of tuples.
2024-04-07 21:44:09 +0200 <dolio> Unless you're in classical fantasy land.
2024-04-07 21:44:44 +0200 <dolio> Even then you have to stretch the meaning of 'list' a lot.
2024-04-07 21:49:07 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-04-07 21:51:17 +0200__monty__(~toonn@user/toonn)
2024-04-07 21:55:51 +0200 <monochrom> But that's what I did. I stretched "list" all the way to arbitrary functors to understand the Löb combinator, representable functors, and the Yoneda lemma. :)
2024-04-07 22:01:05 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 22:04:22 +0200tititest(~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) (Quit: Leaving.)
2024-04-07 22:16:35 +0200r5c4571lh01987(~rscastilh@179.221.142.8) (Remote host closed the connection)
2024-04-07 22:17:13 +0200_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-04-07 22:19:54 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 22:41:59 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-04-07 22:42:17 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 22:47:52 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-07 22:53:56 +0200dbaoty1(~dbaoty@tptn-04-0838.dsl.iowatelecom.net)
2024-04-07 22:54:50 +0200werneta(~werneta@071-083-160-242.res.spectrum.com)
2024-04-07 22:55:47 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net) (Ping timeout: 264 seconds)
2024-04-07 22:58:24 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-04-07 22:59:17 +0200dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net)
2024-04-07 23:00:17 +0200__monty__(~toonn@user/toonn)
2024-04-07 23:01:21 +0200dbaoty1(~dbaoty@tptn-04-0838.dsl.iowatelecom.net) (Ping timeout: 255 seconds)
2024-04-07 23:14:23 +0200qqq(~qqq@92.43.167.61) (Ping timeout: 264 seconds)
2024-04-07 23:16:46 +0200sanpo(~sanpo@user/sanpo)
2024-04-07 23:20:42 +0200Square2(~Square@user/square) (Ping timeout: 255 seconds)
2024-04-07 23:22:04 +0200qqq(~qqq@92.43.167.61)
2024-04-07 23:22:49 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-04-07 23:25:36 +0200__monty__(~toonn@user/toonn) (Ping timeout: 256 seconds)
2024-04-07 23:26:49 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-04-07 23:27:15 +0200__monty__(~toonn@user/toonn)
2024-04-07 23:29:44 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Client Quit)
2024-04-07 23:31:49 +0200michalz(~michalz@185.246.207.201) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-07 23:35:33 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-04-07 23:38:17 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 23:41:22 +0200dispater(~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-07 23:41:22 +0200orcus(~orcus@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-07 23:42:43 +0200Nixkernal(~Nixkernal@240.17.194.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 272 seconds)
2024-04-07 23:43:07 +0200dispater(~dispater@mail.brprice.uk)
2024-04-07 23:43:38 +0200orcus(~orcus@mail.brprice.uk)
2024-04-07 23:47:11 +0200Inst(~Inst@user/Inst) (Remote host closed the connection)
2024-04-07 23:54:06 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-04-07 23:57:27 +0200dcoutts(~duncan@cpc69399-oxfd27-2-0-cust684.4-3.cable.virginm.net)
2024-04-07 23:58:07 +0200peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)