2024/04/07

2024-04-07 00:00:02 +0000mhatta(~mhatta@www21123ui.sakura.ne.jp)
2024-04-07 00:08:16 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
2024-04-07 00:48:28 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-07 00:58:31 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 00:59:16 +0000waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2024-04-07 01:02:41 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 252 seconds)
2024-04-07 01:03:43 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 260 seconds)
2024-04-07 01:09:21 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 01:12:20 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2024-04-07 01:16:45 +0000saftl``(~user@p200300f91740f5006069ab261fee2afc.dip0.t-ipconnect.de)
2024-04-07 01:18:11 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-04-07 01:18:18 +0000saftl(~user@p200300f9173af1001d6b7e3ec038aab9.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2024-04-07 01:21:45 +0000saftl``(~user@p200300f91740f5006069ab261fee2afc.dip0.t-ipconnect.de) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1))
2024-04-07 01:25:08 +0000Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-04-07 01:35:29 +0000sadie_(~sadie@c-76-155-235-153.hsd1.co.comcast.net)
2024-04-07 01:40:48 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 255 seconds)
2024-04-07 01:51:05 +0000poscat0x04(~poscat@user/poscat)
2024-04-07 01:52:11 +0000poscat(~poscat@user/poscat) (Ping timeout: 252 seconds)
2024-04-07 01:55:25 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-04-07 01:56:59 +0000otto_s(~user@p4ff27a75.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-04-07 01:58:08 +0000otto_s(~user@p4ff27276.dip0.t-ipconnect.de)
2024-04-07 02:05:03 +0000op_4(~tslil@user/op-4/x-9116473) (Remote host closed the connection)
2024-04-07 02:05:32 +0000op_4(~tslil@user/op-4/x-9116473)
2024-04-07 02:11:38 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 02:16:13 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Ping timeout: 268 seconds)
2024-04-07 02:16:58 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 02:27:25 +0000masterbuilder(~quassel@user/masterbuilder) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2024-04-07 02:29:10 +0000zetef(~quassel@5.2.182.99) (Ping timeout: 268 seconds)
2024-04-07 02:30:41 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
2024-04-07 02:32:17 +0000tri_(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 02:32:17 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Read error: Connection reset by peer)
2024-04-07 02:33:14 +0000mei(~mei@user/mei) (Remote host closed the connection)
2024-04-07 02:35:40 +0000mei(~mei@user/mei)
2024-04-07 02:42:43 +0000terrorjack(~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
2024-04-07 02:46:07 +0000terrorjack(~terrorjac@2a01:4f8:c17:87f8::)
2024-04-07 02:55:00 +0000igemnace(~ian@user/igemnace)
2024-04-07 02:56:01 +0000td_(~td@i53870929.versanet.de) (Ping timeout: 272 seconds)
2024-04-07 02:56:35 +0000xdminsy(~xdminsy@117.147.70.203)
2024-04-07 02:57:11 +0000td_(~td@i53870921.versanet.de)
2024-04-07 03:06:56 +0000tri_(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-07 03:07:28 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 03:22:22 +0000igemnace(~ian@user/igemnace) (Quit: WeeChat 4.2.1)
2024-04-07 03:22:25 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-07 03:22:37 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net)
2024-04-07 03:24:23 +0000aforemny(~aforemny@2001:9e8:6cf1:9700:d84c:da2d:5fb6:63cf)
2024-04-07 03:25:48 +0000aforemny_(~aforemny@2001:9e8:6ccc:cd00:83d5:fd83:d24c:2c05) (Ping timeout: 260 seconds)
2024-04-07 03:47:08 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com)
2024-04-07 04:09:55 +0000travgm(~travgm@fsf/member/travgm)
2024-04-07 04:25:17 +0000byte(~byte@149.28.222.189) (Ping timeout: 240 seconds)
2024-04-07 04:25:36 +0000byte(~byte@149.28.222.189)
2024-04-07 04:25:41 +0000snek(sid280155@id-280155.lymington.irccloud.com) (Ping timeout: 240 seconds)
2024-04-07 04:25:41 +0000tritlo_(sid58727@id-58727.hampstead.irccloud.com) (Ping timeout: 240 seconds)
2024-04-07 04:25:41 +0000diagprov(sid348783@user/diagprov) (Ping timeout: 240 seconds)
2024-04-07 04:25:52 +0000tritlo_(sid58727@id-58727.hampstead.irccloud.com)
2024-04-07 04:26:05 +0000scav(sid309693@user/scav) (Ping timeout: 240 seconds)
2024-04-07 04:26:05 +0000integral(sid296274@user/integral) (Ping timeout: 240 seconds)
2024-04-07 04:26:43 +0000scav(sid309693@user/scav)
2024-04-07 04:27:33 +0000integral(sid296274@user/integral)
2024-04-07 04:28:19 +0000snek(sid280155@id-280155.lymington.irccloud.com)
2024-04-07 04:28:22 +0000diagprov(sid348783@user/diagprov)
2024-04-07 04:30:29 +0000mei(~mei@user/mei) (Remote host closed the connection)
2024-04-07 04:32:55 +0000mei(~mei@user/mei)
2024-04-07 04:52:06 +0000n8n(~n8n@user/n8n) (Quit: WeeChat 4.2.1)
2024-04-07 05:09:30 +0000pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 268 seconds)
2024-04-07 05:11:09 +0000pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-04-07 05:30:14 +0000takuan(~takuan@178-116-218-225.access.telenet.be)
2024-04-07 05:43:34 +0000qqq(~qqq@92.43.167.61)
2024-04-07 05:59:01 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-04-07 05:59:24 +0000ec__(~ec@gateway/tor-sasl/ec)
2024-04-07 06:00:05 +0000pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds)
2024-04-07 06:01:06 +0000ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds)
2024-04-07 06:01:29 +0000gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2024-04-07 06:02:27 +0000tri(~tri@ool-18bc2e74.dyn.optonline.net) (Remote host closed the connection)
2024-04-07 06:07:26 +0000gentauro(~gentauro@user/gentauro)
2024-04-07 06:27:24 +0000euphores(~SASL_euph@user/euphores)
2024-04-07 06:34:35 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-04-07 06:35:12 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 06:39:59 +0000ubert1(~Thunderbi@p200300ecdf39571b9c90c5889e4dd262.dip0.t-ipconnect.de)
2024-04-07 06:40:52 +0000ubert(~Thunderbi@p200300ecdf395731c4a2a707ba473843.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-04-07 06:40:52 +0000ubert1ubert
2024-04-07 06:46:40 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2024-04-07 06:47:06 +0000tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net) (Quit: zzz)
2024-04-07 06:54:16 +0000bliminse(~bliminse@user/bliminse) (Quit: leaving)
2024-04-07 06:54:27 +0000vnogueira_(~vnogueira@user/vnogueira)
2024-04-07 06:55:42 +0000ec__(~ec@gateway/tor-sasl/ec) (Ping timeout: 260 seconds)
2024-04-07 06:57:14 +0000bliminse(~bliminse@user/bliminse)
2024-04-07 06:57:34 +0000vnogueira(~vnogueira@user/vnogueira) (Ping timeout: 260 seconds)
2024-04-07 07:00:07 +0000tt12310(~tt1231@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com) (Quit: The Lounge - https://thelounge.chat)
2024-04-07 07:00:21 +0000jle`(~jle`@2603-8001-3b02-84d4-fc90-a9ba-a756-93bd.res6.spectrum.com) (Quit: WeeChat 4.2.1)
2024-04-07 07:02:39 +0000tt12310(~tt1231@2603-6010-8700-4a81-219f-50d3-618a-a6ee.res6.spectrum.com)
2024-04-07 07:10:56 +0000nek0(~nek0@user/nek0) (Quit: The Lounge - https://thelounge.chat)
2024-04-07 07:13:12 +0000michalz(~michalz@185.246.207.222)
2024-04-07 07:13:40 +0000yeitrafferin(~user@2a04:4540:7210:ce00:a5f0:fa46:a764:974e)
2024-04-07 07:22:25 +0000Square2(~Square@user/square)
2024-04-07 07:25:32 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 07:35:22 +0000acidjnk_new(~acidjnk@p5dd87bdf.dip0.t-ipconnect.de)
2024-04-07 07:38:31 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-04-07 07:39:48 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 07:41:43 +0000philopsos(~caecilius@user/philopsos) (Ping timeout: 255 seconds)
2024-04-07 07:44:05 +0000jle`(~jle`@2603-8001-3b02-84d4-6afd-70f5-ecb9-5dde.res6.spectrum.com)
2024-04-07 07:47:10 +0000fireking04(~fireking0@112.206.74.47)
2024-04-07 07:48:46 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 07:51:52 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 07:53:39 +0000nek0(~nek0@2a01:4f8:222:2b41::12)
2024-04-07 07:53:39 +0000nek0(~nek0@2a01:4f8:222:2b41::12) (Changing host)
2024-04-07 07:53:39 +0000nek0(~nek0@user/nek0)
2024-04-07 08:06:11 +0000jorj(~jorj@user/jorj) (Quit: jorj)
2024-04-07 08:17:01 +0000simendsjo(~user@84.209.170.3)
2024-04-07 08:18:36 +0000zetef(~quassel@5.2.182.99)
2024-04-07 08:29:49 +0000sadie_(~sadie@c-76-155-235-153.hsd1.co.comcast.net) (Remote host closed the connection)
2024-04-07 08:32:07 +0000arthurvl(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net) (Quit: ein reboot macht gut)
2024-04-07 08:34:15 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 08:42:15 +0000Cale(~cale@2607:fea8:995f:f126:15c3:35a5:81ac:187c) (Ping timeout: 256 seconds)
2024-04-07 08:43:48 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 08:44:07 +0000euleritian(~euleritia@77.22.252.56)
2024-04-07 08:51:03 +0000tititest(~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de)
2024-04-07 08:51:44 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 08:53:23 +0000oo_miguel(~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
2024-04-07 08:54:04 +0000Cale(~cale@2607:fea8:995f:f126:15c3:35a5:81ac:187c)
2024-04-07 08:54:33 +0000fireking04(~fireking0@112.206.74.47) (Quit: Leaving)
2024-04-07 08:56:06 +0000euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-04-07 08:57:17 +0000 <mesaoptimizer> What is the next book you'd recommend after Graham Hutton's textbook?
2024-04-07 08:59:58 +0000 <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 09:00:55 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 09:02:02 +0000 <tomsmeding> use it :p
2024-04-07 09:02:34 +0000 <tomsmeding> a good way to better understand the ideas is to use them yourself to build programs
2024-04-07 09:02:48 +0000 <tomsmeding> the programs don't need to be useful per se ;)
2024-04-07 09:02:59 +0000Square2(~Square@user/square) (Ping timeout: 264 seconds)
2024-04-07 09:03:41 +0000simendsjo(~user@84.209.170.3) (Ping timeout: 240 seconds)
2024-04-07 09:05:11 +0000 <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 09:05:39 +0000int-eis looking up guides on leaving a cult (sorry, maybe a bit too dark for Sunday)
2024-04-07 09:06:07 +0000 <int-e> But there are books on this. :-P
2024-04-07 09:06:54 +0000 <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 09:07:36 +0000 <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 09:09:17 +0000 <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 09:09:53 +0000gmg(~user@user/gehmehgeh)
2024-04-07 09:10:31 +0000 <tomsmeding> that's a big library :)
2024-04-07 09:12:19 +0000 <tomsmeding> ah there is a tutorial
2024-04-07 09:12:24 +0000CiaoSen(~Jura@2a05:5800:298:af00:e6b9:7aff:fe80:3d03)
2024-04-07 09:16:59 +0000CiaoSen(~Jura@2a05:5800:298:af00:e6b9:7aff:fe80:3d03) (Ping timeout: 260 seconds)
2024-04-07 09:24:02 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 09:32:31 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 09:33:27 +0000arthurvl(~arthurvl@2a02-a469-f5e2-1-83d2-ca43-57a2-dc81.fixed6.kpn.net)
2024-04-07 09:33:44 +0000sawilagar(~sawilagar@user/sawilagar)
2024-04-07 09:35:51 +0000Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-04-07 09:37:16 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds)
2024-04-07 09:38:06 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 09:39:41 +0000Luj(~Luj@2a01:e0a:5f9:9681:e6d6:c9c5:5502:ad12)
2024-04-07 09:40:56 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 09:41:13 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 09:48:55 +0000Square2(~Square@user/square)
2024-04-07 09:57:18 +0000coldtom(~coldtom@coldrick.cc) (Quit: Ping timeout (120 seconds))
2024-04-07 09:57:33 +0000coldtom(~coldtom@coldrick.cc)
2024-04-07 09:58:29 +0000Square2(~Square@user/square) (Ping timeout: 240 seconds)
2024-04-07 09:59:36 +0000econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-04-07 10:11:42 +0000yeitrafferin(~user@2a04:4540:7210:ce00:a5f0:fa46:a764:974e) (Quit: Leaving)
2024-04-07 10:11:49 +0000noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-04-07 10:15:19 +0000sanpo(~sanpo@user/sanpo)
2024-04-07 10:17:27 +0000 <Inst> ugh, given a random generator
2024-04-07 10:18:29 +0000 <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 10:22:25 +0000 <ncf> what's a random generator
2024-04-07 10:22:58 +0000 <Rembane> Inst: Do you have an example with the points?
2024-04-07 10:24:22 +0000 <Inst> import Control.Arrow ((***), first, second)
2024-04-07 10:24:22 +0000 <Inst> genRange :: IO [Int]
2024-04-07 10:24:22 +0000 <Inst> genRange = do
2024-04-07 10:24:22 +0000 <Inst> initial <- first pure . uniformR (1,20) <$> newStdGen
2024-04-07 10:24:26 +0000 <Inst> pure . take 30 . fst $ iterate (uniformR (1,20) =<< )) initial
2024-04-07 10:24:29 +0000 <Inst> ugh, should have pastebinned it, too large
2024-04-07 10:24:57 +0000 <Inst> i'd rather do it without arrows if possible
2024-04-07 10:27:58 +0000 <Rembane> You can use first and second from BiFunctor instead.
2024-04-07 10:31:53 +0000 <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 10:32:27 +0000 <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 10:32:34 +0000 <ncf> this is just replicateM 30 in a state monad
2024-04-07 10:32:47 +0000 <Rembane> zfnmxt: Then we're at least two. :)
2024-04-07 10:32:50 +0000 <ncf> zfnmxt: because it's bifunctor and not biFunctor?
2024-04-07 10:33:10 +0000 <ncf> do you write BiCycle
2024-04-07 10:33:49 +0000Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-04-07 10:34:19 +0000 <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 10:34:40 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2024-04-07 10:35:26 +0000 <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 10:36:45 +0000Lord_of_Life_Lord_of_Life
2024-04-07 10:39:02 +0000 <Inst> oh doip :(
2024-04-07 10:39:07 +0000 <Inst> the unfoldr solution is best
2024-04-07 10:42:02 +0000 <Inst> grrr, ugh
2024-04-07 10:42:14 +0000 <Inst> i feel like it's cheating to just get out to unfoldr
2024-04-07 10:43:01 +0000 <Rembane> Inst: How does it feel like cheating?
2024-04-07 10:45:58 +0000 <Inst> i'm just copy pasting from the manual
2024-04-07 10:46:07 +0000 <Inst> genRange :: IO [Int]
2024-04-07 10:46:07 +0000 <Inst> genRange = do initial <- uniformR (1,20 :: Int) <$> newStdGen
2024-04-07 10:46:07 +0000 <Inst> pure . fmap fst . take 30 $ iterate ( uniformR (1,20 :: Int) . snd ) initial
2024-04-07 10:46:59 +0000xdminsy(~xdminsy@117.147.70.203) (Read error: Connection reset by peer)
2024-04-07 10:47:10 +0000 <Inst> there, this verrsion has no dependencies other than System.Random
2024-04-07 10:48:00 +0000Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-04-07 10:48:02 +0000 <ncf> why is that a goal
2024-04-07 10:49:43 +0000xdminsy(~xdminsy@117.147.70.203)
2024-04-07 10:50:02 +0000 <Inst> quick and dirty test-writing... which should be handled by Quickcheck, tbh
2024-04-07 10:52:06 +0000 <Inst> genRange = fmap fst . iterate ( uniformR (1,20 :: Int) . snd ). uniformR (1,20 :: Int) <$> newStdGen
2024-04-07 10:52:15 +0000 <Inst> this works, but i want to get the doubled uniformR out :(
2024-04-07 10:52:57 +0000 <Inst> which, incidentally, is the entire point of unfoldr :(
2024-04-07 10:56:11 +0000 <ncf> i would really just move to a stateful monad and use replicateM
2024-04-07 10:56:44 +0000 <ncf> see the second code snippet in that page
2024-04-07 10:57:24 +0000 <ncf> or you know, use randomRs
2024-04-07 10:57:29 +0000 <ncf> https://hackage.haskell.org/package/random-1.2.1.2/docs/System-Random.html#v:randomRs
2024-04-07 11:00:50 +0000mrmr155334(~mrmr@user/mrmr) (Quit: Bye, See ya later!)
2024-04-07 11:10:29 +0000 <Inst> randomRs is depreciated
2024-04-07 11:11:52 +0000 <ncf> is it?
2024-04-07 11:14:58 +0000 <tomsmeding> > Random [ed. the class] exists primarily for backwards compatibility with version 1.1 of this library.
2024-04-07 11:16:10 +0000 <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 11:16:19 +0000mrmr155334(~mrmr@user/mrmr)
2024-04-07 11:19:08 +0000son0p(~ff@191.104.17.254) (Quit: Leaving)
2024-04-07 11:20:22 +0000xff0x(~xff0x@2405:6580:b080:900:2bd3:fa41:7b29:56d9) (Ping timeout: 246 seconds)
2024-04-07 11:20:29 +0000 <Inst> no one parallelized quickcheck yet?
2024-04-07 11:20:36 +0000 <Inst> I'm testing my mergesort and I think it's space leaking :(
2024-04-07 11:20:45 +0000 <tomsmeding> check out hedgehog
2024-04-07 11:21:16 +0000xff0x(~xff0x@2405:6580:b080:900:a090:2214:6013:5d1f)
2024-04-07 11:21:58 +0000 <ski> genRange = take 30 . unfoldr (Just . uniformR (1,20)) <$> newStdGen
2024-04-07 11:22:48 +0000billchenchina-(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2024-04-07 11:22:52 +0000 <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 11:23:15 +0000yeitrafferin(~user@2a04:4540:7210:ce00:a5f0:fa46:a764:974e)
2024-04-07 11:23:28 +0000 <mesaoptimizer> oh jeez, wrong channel sorry guys
2024-04-07 11:23:36 +0000 <Inst> which is the right channel? :)
2024-04-07 11:24:04 +0000 <Inst> Oh, it's just a lesswrong mirror, not a splinter
2024-04-07 11:24:25 +0000 <mesaoptimizer> yeah, an alternative front-end
2024-04-07 11:27:21 +0000 <Inst> btw anyone have any idea why it spaceleaks?
2024-04-07 11:27:29 +0000 <Inst> of course this isn't as efficient as Data.List.sort
2024-04-07 11:27:31 +0000 <Inst> https://paste.tomsmeding.com/kCrIz5tQ
2024-04-07 11:27:41 +0000 <ski> Inst : `unfoldr' like above ?
2024-04-07 11:28:12 +0000 <tomsmeding> Inst: can you substantiate "space leak"?
2024-04-07 11:28:27 +0000 <Inst> well, i have no idea why it's so unperformant
2024-04-07 11:28:30 +0000 <ski> strictness annotations on base cases of `merge' are redundant
2024-04-07 11:28:50 +0000 <Inst> and they don't really work for list because you just get exposure (usually) of the constructor
2024-04-07 11:29:00 +0000 <Inst> thank you for recommending hedgehog
2024-04-07 11:29:07 +0000travgm(~travgm@fsf/member/travgm) (Remote host closed the connection)
2024-04-07 11:29:19 +0000 <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 11:29:20 +0000 <tomsmeding> Inst: why is 'merge' calling mergesort on its arguments at each step of the 'merge' recursion
2024-04-07 11:30:13 +0000 <tomsmeding> tip: use view patterns less :p
2024-04-07 11:30:47 +0000 <Inst> because i wanted comedy mutual recursion
2024-04-07 11:31:04 +0000 <Inst> i've been trolling them by pretending that their terse function notation foo(x,y) indicates pure
2024-04-07 11:31:19 +0000 <Inst> then i wrote out everything as a single expression using let
2024-04-07 11:31:39 +0000 <Inst> and screwed over their syntax to force a Haskell-like evaluation, which was, of course, utterly unreadable
2024-04-07 11:31:43 +0000 <Inst> they didn't bite :(
2024-04-07 11:31:46 +0000 <Inst> wanna see?
2024-04-07 11:32:49 +0000 <tomsmeding> Inst: https://paste.tomsmeding.com/DeYSb30M
2024-04-07 11:32:53 +0000 <ski> Inst : you're repeatedly sorting the tails in `merge', uselessly
2024-04-07 11:33:08 +0000 <Inst> ah, thanks
2024-04-07 11:33:22 +0000 <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 11:33:30 +0000 <ski> (sorting them when they're already sorted, apart from the initial recursive `mergesort' calls, from `merge')
2024-04-07 11:33:36 +0000 <Inst> ummm, i did that, with single recursion
2024-04-07 11:34:43 +0000 <tomsmeding> the more interesting question is, what was the complexity of the original algorithm
2024-04-07 11:34:54 +0000 <Inst> probably O(n^2)?
2024-04-07 11:34:58 +0000 <tomsmeding> far more I think
2024-04-07 11:36:09 +0000 <Inst> wait, are there any real ways to get O(k^n)?
2024-04-07 11:36:10 +0000xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 255 seconds)
2024-04-07 11:36:59 +0000xdminsy(~xdminsy@117.147.70.203)
2024-04-07 11:37:23 +0000 <Inst> whoops, i mean O(n^n)
2024-04-07 11:37:29 +0000 <tomsmeding> think about that one yourself for a while :)
2024-04-07 11:39:14 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-04-07 11:42:39 +0000xff0x(~xff0x@2405:6580:b080:900:a090:2214:6013:5d1f) (Quit: xff0x)
2024-04-07 11:42:51 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 11:43:40 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 11:43:57 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 11:44:50 +0000 <darkling> A clue for that: you may be interested in Stirling's approximation.
2024-04-07 11:45:43 +0000xff0x(~xff0x@2405:6580:b080:900:bb82:210b:4257:7a0f)
2024-04-07 11:48:53 +0000xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 240 seconds)
2024-04-07 11:48:57 +0000pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-04-07 11:49:16 +0000xdminsy(~xdminsy@117.147.70.203)
2024-04-07 11:50:47 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 12:05:47 +0000 <Inst> yeah, i looked it up, DFS is O(n^n)
2024-04-07 12:06:13 +0000 <Inst> btw, quick question, this wouldn't turn on multicore on ghci, right?
2024-04-07 12:06:15 +0000 <Inst> ghci -package hedgehog -threaded +RTS -N
2024-04-07 12:06:32 +0000 <tomsmeding> have you tried?
2024-04-07 12:06:58 +0000 <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 12:07:37 +0000 <tomsmeding> oh I can
2024-04-07 12:10:47 +0000 <tomsmeding> the fit is not perfect but I'll accept it as decent
2024-04-07 12:10:58 +0000 <tomsmeding> a * n^2 + b * exp(sqrt(n))
2024-04-07 12:17:23 +0000 <tomsmeding> https://tomsmeding.com/vang/5TxoyR/inst-plot.png
2024-04-07 12:17:25 +0000 <tomsmeding> without the n^2 term
2024-04-07 12:18:40 +0000son0p(~ff@191.104.17.254)
2024-04-07 12:20:29 +0000ubert(~Thunderbi@p200300ecdf39571b9c90c5889e4dd262.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2024-04-07 12:22:28 +0000acidjnk_new(~acidjnk@p5dd87bdf.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2024-04-07 12:24:07 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds)
2024-04-07 12:25:09 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 12:40:33 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 12:42:31 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 13:12:18 +0000dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net)
2024-04-07 13:17:14 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 13:21:37 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-04-07 13:21:58 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 13:29:39 +0000todi(~todi@p57803331.dip0.t-ipconnect.de)
2024-04-07 13:39:08 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 13:39:25 +0000euleritian(~euleritia@77.22.252.56)
2024-04-07 13:40:09 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 13:45:15 +0000eugenrh_(~eugenrh@2a01:4f9:c011:265::1) (Changing host)
2024-04-07 13:45:15 +0000eugenrh_(~eugenrh@user/eugenrh)
2024-04-07 13:45:30 +0000eugenrh_(~eugenrh@user/eugenrh) (Quit: WeeChat 3.7.1)
2024-04-07 13:49:38 +0000waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-04-07 13:50:45 +0000eugenrh(~eugenrh@user/eugenrh)
2024-04-07 13:54:22 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 14:05:33 +0000zetef(~quassel@5.2.182.99) (Remote host closed the connection)
2024-04-07 14:17:07 +0000michalz(~michalz@185.246.207.222) (Ping timeout: 246 seconds)
2024-04-07 14:17:48 +0000ec_(~ec@gateway/tor-sasl/ec)
2024-04-07 14:22:10 +0000__monty__(~toonn@user/toonn)
2024-04-07 14:25:28 +0000 <Inst> thanks :)
2024-04-07 14:25:46 +0000 <Inst> i wonder if i should just memorize the Data.List.sort instead
2024-04-07 14:26:04 +0000 <Inst> since that is a canonically good mergesort, no? Btu I'd assume it's limited to laziness
2024-04-07 14:35:19 +0000 <ski> "limited to laziness" meaning ?
2024-04-07 14:38:30 +0000jrm(~jrm@user/jrm) (Quit: ciao)
2024-04-07 14:39:59 +0000jrm(~jrm@user/jrm)
2024-04-07 14:43:16 +0000target_i(~target_i@user/target-i/x-6023099)
2024-04-07 14:52:55 +0000r5c4571lh01987(~rscastilh@179.221.142.8)
2024-04-07 14:54:54 +0000michalz(~michalz@185.246.207.221)
2024-04-07 15:01:01 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 15:14:20 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 15:16:18 +0000ddellacosta(~ddellacos@ool-44c73d29.dyn.optonline.net) (Ping timeout: 252 seconds)
2024-04-07 15:19:53 +0000noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-04-07 15:21:14 +0000poxel(~lennart@user/poxel)
2024-04-07 15:24:06 +0000tititest(~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) (Quit: Leaving.)
2024-04-07 15:28:27 +0000paddymahoney(~paddymaho@99.250.26.190) (Ping timeout: 260 seconds)
2024-04-07 15:30:35 +0000michalz(~michalz@185.246.207.221) (Ping timeout: 264 seconds)
2024-04-07 15:31:16 +0000ania123(~ania123@94-43-231-47.dsl.utg.ge)
2024-04-07 15:32:05 +0000michalz(~michalz@185.246.207.201)
2024-04-07 15:33:08 +0000ania123(~ania123@94-43-231-47.dsl.utg.ge) (Client Quit)
2024-04-07 15:36:24 +0000paddymahoney(~paddymaho@99.250.26.190)
2024-04-07 15:37:14 +0000acidjnk_new(~acidjnk@p200300d6e714dc26d1056ca2ae8c08a8.dip0.t-ipconnect.de)
2024-04-07 15:43:12 +0000euleritian(~euleritia@77.22.252.56) (Ping timeout: 255 seconds)
2024-04-07 15:44:34 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de)
2024-04-07 15:48:48 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Read error: Connection reset by peer)
2024-04-07 15:49:42 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-04-07 15:50:27 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2024-04-07 15:51:17 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 15:51:27 +0000Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-04-07 15:55:21 +0000euleritian(~euleritia@dynamic-176-006-184-177.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-04-07 15:55:45 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 15:58:48 +0000philopsos(~caecilius@user/philopsos)
2024-04-07 16:03:28 +0000machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-04-07 16:04:17 +0000tzh(~tzh@c-73-164-206-160.hsd1.or.comcast.net)
2024-04-07 16:04:42 +0000todi(~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-04-07 16:09:08 +0000ania123(~ania123@94-43-231-47.dsl.utg.ge)
2024-04-07 16:10:29 +0000machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds)
2024-04-07 16:28:07 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 16:29:13 +0000son0p(~ff@191.104.17.254) (Quit: Leaving)
2024-04-07 16:33:35 +0000 <Inst> ski: that is to say, the good performance of Haskell mergesort assumes laziness
2024-04-07 16:36:10 +0000qqq(~qqq@92.43.167.61) (Remote host closed the connection)
2024-04-07 16:37:43 +0000zetef(~quassel@5.2.182.99)
2024-04-07 16:41:48 +0000rvalue-(~rvalue@user/rvalue)
2024-04-07 16:42:55 +0000rvalue(~rvalue@user/rvalue) (Ping timeout: 256 seconds)
2024-04-07 16:45:52 +0000rvalue-rvalue
2024-04-07 16:49:52 +0000 <tomsmeding> I don't think it does
2024-04-07 16:50:23 +0000 <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 16:50:31 +0000 <tomsmeding> but in a strict language the algorithm would work fine
2024-04-07 16:56:26 +0000son0p(~ff@191.104.17.254)
2024-04-07 16:57:57 +0000todi(~todi@p57803331.dip0.t-ipconnect.de)
2024-04-07 16:59:04 +0000ania123(~ania123@94-43-231-47.dsl.utg.ge) (Quit: Client closed)
2024-04-07 16:59:34 +0000chexum(~quassel@gateway/tor-sasl/chexum) (Ping timeout: 260 seconds)
2024-04-07 16:59:59 +0000chexum(~quassel@gateway/tor-sasl/chexum)
2024-04-07 17:02:22 +0000zetef(~quassel@5.2.182.99) (Remote host closed the connection)
2024-04-07 17:04:01 +0000hocrdoac^(~cd@c-98-242-74-66.hsd1.ga.comcast.net)
2024-04-07 17:08:04 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 17:11:07 +0000esph(~weechat@user/esph) (Ping timeout: 260 seconds)
2024-04-07 17:22:46 +0000tititest(~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de)
2024-04-07 17:22:56 +0000Square2(~Square@user/square)
2024-04-07 17:23:28 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 17:27:25 +0000qqq(~qqq@92.43.167.61)
2024-04-07 17:30:17 +0000Rembane(~Rembane@li346-36.members.linode.com) (Changing host)
2024-04-07 17:30:17 +0000Rembane(~Rembane@user/Rembane)
2024-04-07 17:30:25 +0000billchenchina-(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Quit: Leaving)
2024-04-07 17:32:21 +0000sadie-sorceress(~sadie-sor@c-76-155-235-153.hsd1.co.comcast.net)
2024-04-07 17:33:34 +0000 <dolio> Have you heard of Timsort? That is a bottom-up merge sort.
2024-04-07 17:33:43 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-07 17:34:18 +0000 <dolio> Fancier than the one on on lists in GHC, but similar in strategy.
2024-04-07 17:34:30 +0000 <dolio> It was originally written for Python.
2024-04-07 17:35:53 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 17:37:37 +0000sanpo(~sanpo@user/sanpo) (Quit: Client closed)
2024-04-07 17:39:14 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 260 seconds)
2024-04-07 17:39:42 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 17:41:30 +0000sadie-sorceress(~sadie-sor@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Client closed)
2024-04-07 17:41:58 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-04-07 17:42:36 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-04-07 17:43:06 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-04-07 17:47:59 +0000euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-04-07 17:53:59 +0000esph(~weechat@user/esph)
2024-04-07 18:00:31 +0000r5c4571lh01987(~rscastilh@179.221.142.8) (Remote host closed the connection)
2024-04-07 18:02:23 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-04-07 18:05:19 +0000euphores(~SASL_euph@user/euphores)
2024-04-07 18:08:45 +0000r5c4571lh01987(~rscastilh@179.221.142.8)
2024-04-07 18:11:25 +0000yeitrafferin(~user@2a04:4540:7210:ce00:a5f0:fa46:a764:974e) (Quit: Leaving)
2024-04-07 18:11:26 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-04-07 18:17:44 +0000machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-04-07 18:19:09 +0000xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 268 seconds)
2024-04-07 18:20:31 +0000xdminsy(~xdminsy@117.147.70.203)
2024-04-07 18:21:21 +0000 <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 18:22:18 +0000akegalj(~akegalj@141-136-147-171.dsl.iskon.hr)
2024-04-07 18:24:17 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 18:24:26 +0000 <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 18:24:34 +0000 <int-e> O(n + k log n)
2024-04-07 18:29:59 +0000 <Inst> I'm familiar with the standard typeclasses, slightly less familiar with Foldable / Traversable
2024-04-07 18:30:52 +0000dtman34(~dtman34@c-75-72-163-222.hsd1.mn.comcast.net) (Ping timeout: 268 seconds)
2024-04-07 18:32:12 +0000xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 256 seconds)
2024-04-07 18:33:07 +0000xdminsy(~xdminsy@117.147.70.203)
2024-04-07 18:33:32 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 18:35:58 +0000 <Inst> mildly curious: did anyone try to solve namespacing in Haskell via list / vector abuse?
2024-04-07 18:36:16 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-07 18:38:23 +0000xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 264 seconds)
2024-04-07 18:38:42 +0000xdminsy(~xdminsy@117.147.70.203)
2024-04-07 18:38:47 +0000 <int-e> please speak plainly
2024-04-07 18:39:22 +0000 <Inst> stuff lambdas into vectors
2024-04-07 18:40:08 +0000 <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 18:40:23 +0000 <Inst> then the name of the vector is a namespace, of sorts
2024-04-07 18:41:10 +0000 <Inst> you can pass data between them by having them share a TVar
2024-04-07 18:42:49 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 18:43:58 +0000 <Inst> sorry, i'll probably stop annoying you folks for a while, I need to get my github working again
2024-04-07 18:47:15 +0000xdminsy(~xdminsy@117.147.70.203) (Ping timeout: 255 seconds)
2024-04-07 18:53:29 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 19:03:16 +0000hocrdoac^(~cd@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
2024-04-07 19:05:20 +0000 <monochrom> We already know stuffing lambdas into a record. Then they don't even have to be the same type.
2024-04-07 19:07:11 +0000 <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 19:07:54 +0000 <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 19:08:11 +0000pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 272 seconds)
2024-04-07 19:09:06 +0000Sgeo(~Sgeo@user/sgeo)
2024-04-07 19:09:19 +0000 <Inst> foo@[name1, name2, name3] = [fun1, fun2, fun3]
2024-04-07 19:09:33 +0000 <Inst> module MyModule (foo) where...
2024-04-07 19:09:53 +0000pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2024-04-07 19:10:27 +0000 <Inst> could set up some newtypes with custom getters and setters
2024-04-07 19:11:06 +0000bionade24(~quassel@2a03:4000:33:45b::1) (Quit: Apocalypse Incoming!)
2024-04-07 19:11:12 +0000 <Inst> typeclass overloaded accessor dot, instances, etc. But it's essentially objects if it's mutable.
2024-04-07 19:11:54 +0000bionade24(~quassel@2a03:4000:33:45b::1)
2024-04-07 19:12:00 +0000 <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 19:12:07 +0000 <Inst> but I guess you folks knew that decades ago
2024-04-07 19:12:23 +0000 <ski> object-orientation does not require mutability
2024-04-07 19:12:24 +0000 <Inst> but take out the mutation, you still have namespacing
2024-04-07 19:12:39 +0000 <Inst> what's an example of an OOP language without mutation?
2024-04-07 19:12:57 +0000 <ski> Ocaml has OO support for immutable objects
2024-04-07 19:13:21 +0000 <Inst> but OO is about encapsulating and managing state
2024-04-07 19:13:27 +0000 <c_wraith> I don't see how that idea is functionally different from adding a prefix to a bunch of names.
2024-04-07 19:13:48 +0000 <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 19:13:52 +0000 <c_wraith> so it's just more typing and language features to avoid choosing unique names
2024-04-07 19:14:08 +0000 <Inst> ski: you mean with shadowing?
2024-04-07 19:14:12 +0000 <ski> no
2024-04-07 19:14:27 +0000 <ski> similar to `foo {x = ...}' in Haskell
2024-04-07 19:14:38 +0000 <ski> (but for objects)
2024-04-07 19:14:48 +0000 <Inst> essentially method chaining?
2024-04-07 19:14:59 +0000 <ski> "but OO is about encapsulating and managing state" -- "instance state" does not need to be mutable
2024-04-07 19:15:16 +0000 <ski> no, copy-with-update
2024-04-07 19:15:19 +0000 <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 19:15:33 +0000 <Inst> you need to have a semi-permanent reference, though
2024-04-07 19:16:38 +0000 <ski> and i'd replace "heterogenous lists / arrays" with "records"
2024-04-07 19:16:58 +0000 <Inst> IIRC a big feature of OOP is extensible records, though
2024-04-07 19:17:15 +0000 <Inst> it's really painful to handle without arbitrarily-sized lists / dictionaries
2024-04-07 19:17:50 +0000 <ski> O'Haskell / Timber had extensible records
2024-04-07 19:17:51 +0000aforemny_(~aforemny@i59F516C7.versanet.de)
2024-04-07 19:18:06 +0000aforemny(~aforemny@2001:9e8:6cf1:9700:d84c:da2d:5fb6:63cf) (Ping timeout: 256 seconds)
2024-04-07 19:18:06 +0000 <ski> (and subtyping in general)
2024-04-07 19:18:58 +0000 <ski> afaiac, mutability is orthogonal to OO
2024-04-07 19:22:21 +0000 <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 19:22:51 +0000 <Inst> oh yeah, the dependent types waiting game
2024-04-07 19:23:20 +0000 <monochrom> parse? unparse?
2024-04-07 19:23:56 +0000 <Inst> iirc template haskell has a missing feature to expand the AST of a function / variable definition
2024-04-07 19:24:07 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-04-07 19:24:24 +0000 <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 19:24:38 +0000 <monochrom> below? above?
2024-04-07 19:25:27 +0000 <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 19:27:42 +0000 <Inst> might still be doable by converting every function and value into a tuple
2024-04-07 19:28:04 +0000skiglances around nervously
2024-04-07 19:29:38 +0000 <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 19:30:07 +0000siw5ohs0(~aiw5ohs0@user/aiw5ohs0)
2024-04-07 19:30:54 +0000siw5ohs0(~aiw5ohs0@user/aiw5ohs0) ()
2024-04-07 19:31:32 +0000 <monochrom> Every function f can be converted to a tuple (f, ()). This goes for values, too. >:)
2024-04-07 19:31:59 +0000 <Inst> i'm sort of surprised no one has tried to build, as a joke, a TypeT monad transformer
2024-04-07 19:39:21 +0000 <ncf> a what
2024-04-07 19:40:09 +0000 <Inst> a monad transformer that puts code underneath it into a secondary type system
2024-04-07 19:40:24 +0000 <Inst> iirc Haskell already has unergonomic simulated dependent types
2024-04-07 19:40:46 +0000 <ski> no
2024-04-07 19:43:59 +0000 <dolio> Not every function is a list of tuples.
2024-04-07 19:44:09 +0000 <dolio> Unless you're in classical fantasy land.
2024-04-07 19:44:44 +0000 <dolio> Even then you have to stretch the meaning of 'list' a lot.
2024-04-07 19:49:07 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2024-04-07 19:51:17 +0000__monty__(~toonn@user/toonn)
2024-04-07 19:55:51 +0000 <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 20:01:05 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 20:04:22 +0000tititest(~tititest@ip-037-201-154-121.um10.pools.vodafone-ip.de) (Quit: Leaving.)
2024-04-07 20:16:35 +0000r5c4571lh01987(~rscastilh@179.221.142.8) (Remote host closed the connection)
2024-04-07 20:17:13 +0000_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-04-07 20:19:54 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-04-07 20:41:59 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-04-07 20:42:17 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-04-07 20:47:52 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-07 20:53:56 +0000dbaoty1(~dbaoty@tptn-04-0838.dsl.iowatelecom.net)
2024-04-07 20:54:50 +0000werneta(~werneta@071-083-160-242.res.spectrum.com)
2024-04-07 20:55:47 +0000dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net) (Ping timeout: 264 seconds)
2024-04-07 20:58:24 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2024-04-07 20:59:17 +0000dbaoty(~dbaoty@tptn-04-0838.dsl.iowatelecom.net)
2024-04-07 21:00:17 +0000__monty__(~toonn@user/toonn)
2024-04-07 21:01:21 +0000dbaoty1(~dbaoty@tptn-04-0838.dsl.iowatelecom.net) (Ping timeout: 255 seconds)
2024-04-07 21:14:23 +0000qqq(~qqq@92.43.167.61) (Ping timeout: 264 seconds)
2024-04-07 21:16:46 +0000sanpo(~sanpo@user/sanpo)
2024-04-07 21:20:42 +0000Square2(~Square@user/square) (Ping timeout: 255 seconds)
2024-04-07 21:22:04 +0000qqq(~qqq@92.43.167.61)
2024-04-07 21:22:49 +0000takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-04-07 21:25:36 +0000__monty__(~toonn@user/toonn) (Ping timeout: 256 seconds)
2024-04-07 21:26:49 +0000noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-04-07 21:27:15 +0000__monty__(~toonn@user/toonn)
2024-04-07 21:29:44 +0000noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Client Quit)
2024-04-07 21:31:49 +0000michalz(~michalz@185.246.207.201) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-07 21:35:33 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-04-07 21:38:17 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-04-07 21:41:22 +0000dispater(~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-07 21:41:22 +0000orcus(~orcus@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-07 21:42:43 +0000Nixkernal(~Nixkernal@240.17.194.178.dynamic.wline.res.cust.swisscom.ch) (Ping timeout: 272 seconds)
2024-04-07 21:43:07 +0000dispater(~dispater@mail.brprice.uk)
2024-04-07 21:43:38 +0000orcus(~orcus@mail.brprice.uk)
2024-04-07 21:47:11 +0000Inst(~Inst@user/Inst) (Remote host closed the connection)
2024-04-07 21:54:06 +0000target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-04-07 21:57:27 +0000dcoutts(~duncan@cpc69399-oxfd27-2-0-cust684.4-3.cable.virginm.net)
2024-04-07 21:58:07 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-07 22:00:03 +0000Inst(~Inst@user/Inst)
2024-04-07 22:00:18 +0000Inst(~Inst@user/Inst) (Remote host closed the connection)
2024-04-07 22:07:57 +0000akegalj(~akegalj@141-136-147-171.dsl.iskon.hr) (Quit: leaving)
2024-04-07 22:09:51 +0000dcoutts_(~duncan@cpc69400-oxfd27-2-0-cust750.4-3.cable.virginm.net)
2024-04-07 22:10:28 +0000dcoutts(~duncan@cpc69399-oxfd27-2-0-cust684.4-3.cable.virginm.net) (Ping timeout: 260 seconds)
2024-04-07 22:12:00 +0000dcoutts__(~duncan@cpc69400-oxfd27-2-0-cust750.4-3.cable.virginm.net)
2024-04-07 22:14:31 +0000dcoutts_(~duncan@cpc69400-oxfd27-2-0-cust750.4-3.cable.virginm.net) (Ping timeout: 246 seconds)
2024-04-07 22:18:42 +0000euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-04-07 22:18:59 +0000euleritian(~euleritia@77.22.252.56)
2024-04-07 22:19:07 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-04-07 22:32:09 +0000shoggouth(uid607148@user/shoggouth)
2024-04-07 22:35:28 +0000__monty__(~toonn@user/toonn) (Quit: leaving)
2024-04-07 22:40:40 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-04-07 22:43:47 +0000poxel(~lennart@user/poxel) (Quit: WeeChat 4.2.1)
2024-04-07 22:48:59 +0000sudden(~cat@user/sudden) (Ping timeout: 260 seconds)
2024-04-07 22:49:14 +0000paddymahoney(~paddymaho@99.250.26.190) (Remote host closed the connection)
2024-04-07 23:05:16 +0000sudden(~cat@user/sudden)
2024-04-07 23:14:13 +0000acidjnk_new(~acidjnk@p200300d6e714dc26d1056ca2ae8c08a8.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2024-04-07 23:20:25 +0000peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-04-07 23:23:34 +0000sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 255 seconds)
2024-04-07 23:35:39 +0000 <c_wraith> are there any pure-haskell syntax highlight projects other than skylighting?
2024-04-07 23:36:36 +0000dispater(~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-07 23:36:37 +0000orcus(~orcus@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in)
2024-04-07 23:38:20 +0000dispater(~dispater@mail.brprice.uk)
2024-04-07 23:38:51 +0000orcus(~orcus@mail.brprice.uk)
2024-04-07 23:39:16 +0000 <c_wraith> I guess there's highlighter2. Which still builds, despite the date on it.
2024-04-07 23:40:06 +0000finsternis(~X@23.226.237.192) (Read error: Connection reset by peer)
2024-04-07 23:45:16 +0000ftweedal(~ftweedal@159.196.12.92)
2024-04-07 23:54:23 +0000mesaoptimizer(~mesaoptim@user/PapuaHardyNet) (Ping timeout: 252 seconds)
2024-04-07 23:59:34 +0000forell(~forell@user/forell) (Quit: ZNC - https://znc.in)