2024-08-12 00:01:31 +0200 | hayk | (~hayk@37.252.90.243) (Quit: hayk) |
2024-08-12 00:02:17 +0200 | ThePenguin | (~ThePengui@cust-95-80-24-166.csbnet.se) (Remote host closed the connection) |
2024-08-12 00:02:54 +0200 | ThePenguin | (~ThePengui@cust-95-80-24-166.csbnet.se) |
2024-08-12 00:03:07 +0200 | neuroevolutus17 | (~neuroevol@37.19.200.158) (Ping timeout: 256 seconds) |
2024-08-12 00:05:12 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 272 seconds) |
2024-08-12 00:05:36 +0200 | hayk | (~hayk@37.252.90.243) |
2024-08-12 00:07:15 +0200 | hayk | (~hayk@37.252.90.243) (Client Quit) |
2024-08-12 00:07:55 +0200 | Batzy | (~quassel@user/batzy) (Ping timeout: 264 seconds) |
2024-08-12 00:08:57 +0200 | Sgeo_ | (~Sgeo@user/sgeo) |
2024-08-12 00:09:02 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-08-12 00:09:47 +0200 | oo_miguel | (~Thunderbi@78.10.207.46) (Ping timeout: 258 seconds) |
2024-08-12 00:14:47 +0200 | greybaloon | (~greybaloo@user/greybaloon) |
2024-08-12 00:24:53 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 248 seconds) |
2024-08-12 00:26:04 +0200 | AlexZenon | (~alzenon@94.233.240.239) (Ping timeout: 260 seconds) |
2024-08-12 00:26:06 +0200 | fuag1_ | (~fuag1@45.14.193.50) (Read error: Connection reset by peer) |
2024-08-12 00:30:29 +0200 | AlexZenon | (~alzenon@94.233.240.239) |
2024-08-12 00:30:42 +0200 | spew | (~spew@201.141.102.132) |
2024-08-12 00:34:56 +0200 | female_student_5 | (~female_st@79.79.255.40) (Quit: Client closed) |
2024-08-12 00:37:44 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-08-12 00:40:50 +0200 | female_student_5 | (~female_st@79.79.255.40) |
2024-08-12 00:41:07 +0200 | female_student_5 | (~female_st@79.79.255.40) (Client Quit) |
2024-08-12 00:52:33 +0200 | neuroevolutus | (~neuroevol@37.19.200.158) |
2024-08-12 00:59:15 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds) |
2024-08-12 01:05:51 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 252 seconds) |
2024-08-12 01:08:37 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e72cfb372ddfc4847e48f7b9.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2024-08-12 01:10:02 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-08-12 01:19:04 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) |
2024-08-12 01:24:26 +0200 | neuroevolutus | (~neuroevol@37.19.200.158) (Quit: Client closed) |
2024-08-12 01:26:23 +0200 | neuroevolutus | (~neuroevol@37.19.200.158) |
2024-08-12 01:30:29 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-08-12 01:30:32 +0200 | spew | (~spew@201.141.102.132) (Read error: Connection reset by peer) |
2024-08-12 01:31:09 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 252 seconds) |
2024-08-12 01:33:03 +0200 | greybaloon | (~greybaloo@user/greybaloon) (Quit: Client closed) |
2024-08-12 01:38:56 +0200 | xff0x | (~xff0x@2405:6580:b080:900:a420:6e17:7585:c4d9) (Ping timeout: 272 seconds) |
2024-08-12 01:40:20 +0200 | xff0x | (~xff0x@2405:6580:b080:900:9cab:87b:80dd:616a) |
2024-08-12 02:00:57 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 258 seconds) |
2024-08-12 02:10:38 +0200 | pavonia | (~user@user/siracusa) |
2024-08-12 02:13:45 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-08-12 02:18:10 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) |
2024-08-12 02:28:33 +0200 | <remexre> | I've been relatively away from Haskell for a few years, but I heard that delimited control got added to allow implementing effects more efficiently; is this in a (nearly) "prod-ready" state nowadays? |
2024-08-12 02:32:36 +0200 | <geekosaur> | I don't know if anyone is using it yet, but it's been around for a few ghc versions and I don't recall any changes being made to it so it's likely ready for use |
2024-08-12 02:34:13 +0200 | <geekosaur> | https://downloads.haskell.org/ghc/9.6.1/docs/users_guide/9.6.1-notes.html#runtime-system |
2024-08-12 02:36:48 +0200 | misterfish | (~misterfis@22.1-12-147.kabelnoord.net) (Ping timeout: 252 seconds) |
2024-08-12 02:37:25 +0200 | <remexre> | Sorry, I meant, is there an effect system that uses them that's prod-ready (or nearly prod-ready) |
2024-08-12 02:42:46 +0200 | ticat | (~ticat@156.251.248.134) |
2024-08-12 02:45:19 +0200 | ticat | (~ticat@156.251.248.134) (Client Quit) |
2024-08-12 02:45:24 +0200 | <jackdk> | remexre: effectful is probably my default choice if I want to go to effect-land. cleff seems really similar but I don't remember the differences, and bluefin is a newer entry that requires you to pass explicit handles to effect-using functions (which has benefits and drawbacks) |
2024-08-12 02:45:35 +0200 | fp | (~fp@156.251.248.134) |
2024-08-12 02:46:18 +0200 | <geekosaur> | effectful doesn't use delimited continuations, though. eff does but apparently this causes problems (see https://github.com/hasura/eff/issues/13 for example) |
2024-08-12 02:49:46 +0200 | <geekosaur> | (well, not delimited continuations per se but how they interact with other facilities) |
2024-08-12 02:51:24 +0200 | <Axman6> | Do/can linear types help at all there? |
2024-08-12 02:51:55 +0200 | <geekosaur> | you're asking the wrong person 🙂 |
2024-08-12 02:52:33 +0200 | neuroevolutus | (~neuroevol@37.19.200.158) (Ping timeout: 256 seconds) |
2024-08-12 02:54:04 +0200 | <geekosaur> | as I read it, though, it's a problem of scope, not of multiplicity |
2024-08-12 03:01:45 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-08-12 03:23:09 +0200 | starburst | (~starburst@2601:602:480:9390:d6d2:52ff:fed8:1599) |
2024-08-12 03:26:13 +0200 | Square | (~Square@user/square) (Ping timeout: 248 seconds) |
2024-08-12 03:27:39 +0200 | starburst | (~starburst@2601:602:480:9390:d6d2:52ff:fed8:1599) (Client Quit) |
2024-08-12 03:34:36 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-08-12 04:10:18 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2024-08-12 04:10:32 +0200 | euleritian | (~euleritia@dynamic-176-007-159-197.176.7.pool.telefonica.de) |
2024-08-12 04:19:07 +0200 | ZharMeny | (~user@user/ZharMeny) (Quit: () |
2024-08-12 04:26:03 +0200 | td_ | (~td@i5387091D.versanet.de) (Ping timeout: 252 seconds) |
2024-08-12 04:28:00 +0200 | td_ | (~td@i5387090C.versanet.de) |
2024-08-12 04:35:42 +0200 | euleritian | (~euleritia@dynamic-176-007-159-197.176.7.pool.telefonica.de) (Ping timeout: 252 seconds) |
2024-08-12 04:37:48 +0200 | euleritian | (~euleritia@dynamic-176-007-159-197.176.7.pool.telefonica.de) |
2024-08-12 04:42:08 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds) |
2024-08-12 04:47:11 +0200 | dysthesis | (~dysthesis@user/dysthesis) |
2024-08-12 04:47:22 +0200 | spew | (~spew@201.141.102.132) |
2024-08-12 04:55:49 +0200 | tomku | (~tomku@user/tomku) (Ping timeout: 248 seconds) |
2024-08-12 04:56:02 +0200 | tomku | (~tomku@user/tomku) |
2024-08-12 05:11:44 +0200 | euleritian | (~euleritia@dynamic-176-007-159-197.176.7.pool.telefonica.de) (Ping timeout: 272 seconds) |
2024-08-12 05:12:26 +0200 | euleritian | (~euleritia@dynamic-176-000-157-209.176.0.pool.telefonica.de) |
2024-08-12 05:13:00 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds) |
2024-08-12 05:13:03 +0200 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2024-08-12 05:14:24 +0200 | Lord_of_Life_ | Lord_of_Life |
2024-08-12 05:18:13 +0200 | dysthesis | (~dysthesis@user/dysthesis) (Quit: WeeChat 4.3.5) |
2024-08-12 05:25:25 +0200 | ddellacosta | (~ddellacos@ool-44c73b99.dyn.optonline.net) |
2024-08-12 05:26:39 +0200 | fp | (~fp@156.251.248.134) () |
2024-08-12 05:31:12 +0200 | smalltalkman | (uid545680@id-545680.hampstead.irccloud.com) |
2024-08-12 05:38:40 +0200 | euleritian | (~euleritia@dynamic-176-000-157-209.176.0.pool.telefonica.de) (Ping timeout: 252 seconds) |
2024-08-12 05:39:22 +0200 | euleritian | (~euleritia@dynamic-176-004-137-229.176.4.pool.telefonica.de) |
2024-08-12 05:39:44 +0200 | spew | (~spew@201.141.102.132) (Quit: spew) |
2024-08-12 05:50:23 +0200 | euleritian | (~euleritia@dynamic-176-004-137-229.176.4.pool.telefonica.de) (Ping timeout: 252 seconds) |
2024-08-12 05:51:27 +0200 | euleritian | (~euleritia@dynamic-176-000-009-143.176.0.pool.telefonica.de) |
2024-08-12 05:53:25 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 248 seconds) |
2024-08-12 05:57:05 +0200 | aforemny_ | (~aforemny@2001:9e8:6cef:5a00:2895:51b4:d10f:29a8) |
2024-08-12 05:58:05 +0200 | aforemny | (~aforemny@2001:9e8:6ccb:c300:522d:c042:a9ff:c506) (Ping timeout: 252 seconds) |
2024-08-12 05:58:52 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) |
2024-08-12 06:07:49 +0200 | ethantwardy | (user@user/ethantwardy) (Ping timeout: 248 seconds) |
2024-08-12 06:08:13 +0200 | ethantwardy | (user@user/ethantwardy) |
2024-08-12 06:12:02 +0200 | ddellacosta | (~ddellacos@ool-44c73b99.dyn.optonline.net) (Ping timeout: 258 seconds) |
2024-08-12 06:13:11 +0200 | ddellacosta | (~ddellacos@ool-44c73b99.dyn.optonline.net) |
2024-08-12 06:15:26 +0200 | dysthesis | (~dysthesis@user/dysthesis) |
2024-08-12 06:19:21 +0200 | ddellacosta | (~ddellacos@ool-44c73b99.dyn.optonline.net) (Ping timeout: 252 seconds) |
2024-08-12 06:19:44 +0200 | ddellacosta | (~ddellacos@ool-44c73b99.dyn.optonline.net) |
2024-08-12 06:20:40 +0200 | dysthesi1 | (~dysthesis@user/dysthesis) |
2024-08-12 06:20:47 +0200 | dysthesis | (~dysthesis@user/dysthesis) (Quit: WeeChat 4.3.5) |
2024-08-12 06:20:49 +0200 | dysthesi1 | (~dysthesis@user/dysthesis) (Client Quit) |
2024-08-12 06:21:02 +0200 | dysthesis | (~dysthesis@user/dysthesis) |
2024-08-12 06:21:32 +0200 | dysthesis | (~dysthesis@user/dysthesis) (Client Quit) |
2024-08-12 06:22:10 +0200 | neuroevolutus | (~neuroevol@206.217.206.90) |
2024-08-12 06:26:46 +0200 | zmt00 | (~zmt00@user/zmt00) |
2024-08-12 06:29:37 +0200 | swamp_ | (~zmt00@user/zmt00) (Ping timeout: 248 seconds) |
2024-08-12 06:49:03 +0200 | dolio | (~dolio@130.44.140.168) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-08-12 06:52:55 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 264 seconds) |
2024-08-12 06:54:34 +0200 | tomku | (~tomku@user/tomku) (Ping timeout: 260 seconds) |
2024-08-12 06:54:48 +0200 | tomku | (~tomku@user/tomku) |
2024-08-12 06:56:41 +0200 | dolio | (~dolio@130.44.140.168) |
2024-08-12 06:59:23 +0200 | Inst | (~Inst@user/Inst) (Ping timeout: 255 seconds) |
2024-08-12 07:02:45 +0200 | tabemann_ | (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
2024-08-12 07:03:23 +0200 | tabemann_ | (~tabemann@2600:1700:7990:24e0:c5ab:f023:302e:c870) |
2024-08-12 07:07:01 +0200 | euleritian | (~euleritia@dynamic-176-000-009-143.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-12 07:07:16 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-12 07:08:30 +0200 | Inst | (~Inst@user/Inst) |
2024-08-12 07:10:04 +0200 | michalz | (~michalz@185.246.207.197) |
2024-08-12 07:14:38 +0200 | oo_miguel | (~Thunderbi@78.10.207.46) |
2024-08-12 07:16:28 +0200 | <jackdk> | I completely blanked on the delimited continuations part of the question, sorry |
2024-08-12 07:17:08 +0200 | dsrt^ | (dsrt@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 272 seconds) |
2024-08-12 07:20:04 +0200 | ddellacosta | (~ddellacos@ool-44c73b99.dyn.optonline.net) (Ping timeout: 260 seconds) |
2024-08-12 07:20:25 +0200 | ddellacosta | (~ddellacos@ool-44c73b99.dyn.optonline.net) |
2024-08-12 07:28:34 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-08-12 07:30:04 +0200 | Sgeo_ | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-08-12 07:32:28 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
2024-08-12 07:33:32 +0200 | euleritian | (~euleritia@dynamic-176-000-009-143.176.0.pool.telefonica.de) |
2024-08-12 07:33:41 +0200 | xdminsy | (~xdminsy@117.147.71.180) (Ping timeout: 248 seconds) |
2024-08-12 07:34:03 +0200 | xdminsy | (~xdminsy@117.147.71.180) |
2024-08-12 07:36:11 +0200 | xdminsy | (~xdminsy@117.147.71.180) (Client Quit) |
2024-08-12 07:41:12 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds) |
2024-08-12 07:43:17 +0200 | tomku | (~tomku@user/tomku) (Ping timeout: 248 seconds) |
2024-08-12 07:43:31 +0200 | tomku | (~tomku@user/tomku) |
2024-08-12 07:46:16 +0200 | rvalue- | (~rvalue@user/rvalue) |
2024-08-12 07:46:49 +0200 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 265 seconds) |
2024-08-12 07:50:01 +0200 | CiaoSen | (~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) |
2024-08-12 07:50:22 +0200 | rvalue- | rvalue |
2024-08-12 08:04:01 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-08-12 08:04:28 +0200 | <Axman6> | I was trying to implement something the other day and failing for I'm sure stupid reasons. I wanted to represent vectors up to a certain length: data DVec (n :: Nat) a where DNil :: DVec n a; DCons :: a -> DVec n a -> DVec (n+1) a |
2024-08-12 08:05:16 +0200 | <Axman6> | I wanted to be able to go from Vec n a to DVec n a (or DVec (n+m) a) but couldn't make it work. |
2024-08-12 08:05:26 +0200 | dysthesis | (~dysthesis@user/dysthesis) |
2024-08-12 08:08:37 +0200 | euphores | (~SASL_euph@user/euphores) |
2024-08-12 08:09:41 +0200 | <Axman6> | (making an example on play.haskell.org, one sec...) |
2024-08-12 08:12:13 +0200 | <Axman6> | https://play.haskell.org/saved/D1z1yTs6 |
2024-08-12 08:13:02 +0200 | neuroevolutus | (~neuroevol@206.217.206.90) (Quit: Client closed) |
2024-08-12 08:20:42 +0200 | <Axman6> | https://play.haskell.org/saved/Rbhufctg is what I tried to make it clear what n and m should be when recursing, and I would have thought that the pattern matching on Cons would show that n ~ (n1 + 1), which it shows in the error, but I don't have access to n1 (or do I?) |
2024-08-12 08:27:51 +0200 | <Leary> | Axman6: IIRC literal type nats don't have any real cleverness on the GHC-side, so you have to either use a plugin (there's a library for this) or use the usual inductive data kind `data Nat = Z | S Nat` so it can infer things from structure. |
2024-08-12 08:29:29 +0200 | <Axman6> | Can you link to the plugin? I've been trying to find it for a while because I've seen it in the past, but haven't been able to |
2024-08-12 08:29:44 +0200 | <Leary> | I don't recall its name, sorry. |
2024-08-12 08:30:57 +0200 | <Axman6> | Ah, i think it's https://hackage.haskell.org/package/ghc-typelits-natnormalise (which of course is from the developers of Clash, since that's where I originally saw it!) |
2024-08-12 08:38:14 +0200 | <Axman6> | ok, well apparently I did actually already find it, and still couldn't get things to work :( |
2024-08-12 08:41:54 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 260 seconds) |
2024-08-12 08:45:40 +0200 | <Axman6> | I'm also not sure if this is even the right representation for a vector of up to sixe n |
2024-08-12 08:45:42 +0200 | <Axman6> | size* |
2024-08-12 08:52:12 +0200 | <Leary> | There are a couple of other options, but this one should work. If you really want nice inter-operation between Vec and DVec, I would consider using `data DVec l a where DVec :: Vec m a -> SNat n -> DVec (m + n) a` instead. |
2024-08-12 08:55:21 +0200 | lol_ | (~lol@2603:3016:1e01:b980:2886:e337:fa1b:385a) |
2024-08-12 08:55:29 +0200 | zmt01 | (~zmt00@user/zmt00) |
2024-08-12 08:56:22 +0200 | <Axman6> | Hmm, interesting. I'm not sure if that would work for my specific use case, I'm working in Clash and need an instance of its BitPack class, which means I need to be able to go from a BitVector (BitSize (DVec n a)) to DVec n a, and the SNat is not something i'm sure I can represent in a BitVector |
2024-08-12 08:56:47 +0200 | <Axman6> | the recursive GADT is pretty easy to map to and from bitvectors |
2024-08-12 08:56:54 +0200 | h2t | (~h2t@user/h2t) (Ping timeout: 260 seconds) |
2024-08-12 08:57:29 +0200 | delyan_ | (sid523379@id-523379.hampstead.irccloud.com) (Ping timeout: 260 seconds) |
2024-08-12 08:57:29 +0200 | sa1 | (sid7690@id-7690.ilkley.irccloud.com) (Ping timeout: 260 seconds) |
2024-08-12 08:57:29 +0200 | jonrh | (sid5185@id-5185.ilkley.irccloud.com) (Ping timeout: 260 seconds) |
2024-08-12 08:57:40 +0200 | <Axman6> | (You end up with BitSize (DVec n a = n * (1 + BitSize a), where the +1 is a Cons/Nil tag) |
2024-08-12 08:57:49 +0200 | h2t | (~h2t@user/h2t) |
2024-08-12 08:57:54 +0200 | Hobbyboy|BNC | (Hobbyboy@hobbyboy.co.uk) |
2024-08-12 08:58:04 +0200 | Hobbyboy | (Hobbyboy@hobbyboy.co.uk) (Ping timeout: 260 seconds) |
2024-08-12 08:58:04 +0200 | bjs | (sid190364@user/bjs) (Ping timeout: 260 seconds) |
2024-08-12 08:58:04 +0200 | gmc | (sid58314@id-58314.ilkley.irccloud.com) (Ping timeout: 260 seconds) |
2024-08-12 08:58:05 +0200 | bsima- | (~bsima@2604:a880:400:d0::19f1:7001) |
2024-08-12 08:58:39 +0200 | CiaoSen | (~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds) |
2024-08-12 08:58:39 +0200 | zmt00 | (~zmt00@user/zmt00) (Ping timeout: 260 seconds) |
2024-08-12 08:58:39 +0200 | jcarpenter2 | (~lol@2603:3016:1e01:b980:dd5c:a977:63e6:618d) (Ping timeout: 260 seconds) |
2024-08-12 08:58:39 +0200 | nisstyre | (wes@user/nisstyre) (Ping timeout: 260 seconds) |
2024-08-12 08:58:39 +0200 | hadronized | (~phaazon@2001:41d0:a:fe76::1) (Ping timeout: 260 seconds) |
2024-08-12 08:58:39 +0200 | landonf | (landonf@mac68k.info) (Ping timeout: 260 seconds) |
2024-08-12 08:58:39 +0200 | NemesisD | (sid24071@id-24071.lymington.irccloud.com) (Ping timeout: 260 seconds) |
2024-08-12 08:58:39 +0200 | integral | (sid296274@user/integral) (Ping timeout: 260 seconds) |
2024-08-12 08:58:39 +0200 | bsima | (~bsima@2604:a880:400:d0::19f1:7001) (Ping timeout: 260 seconds) |
2024-08-12 08:58:39 +0200 | nshepperd | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Ping timeout: 260 seconds) |
2024-08-12 08:59:13 +0200 | beaky_ | (~beaky@2a03:b0c0:0:1010::1e:a001) |
2024-08-12 08:59:14 +0200 | [_________] | (~oos95GWG@user/oos95GWG) (Ping timeout: 260 seconds) |
2024-08-12 08:59:14 +0200 | liskin | (~liskin@xmonad/liskin) (Ping timeout: 260 seconds) |
2024-08-12 08:59:14 +0200 | mal1 | (~mal@ns2.wyrd.be) (Ping timeout: 260 seconds) |
2024-08-12 08:59:14 +0200 | beaky | (~beaky@2a03:b0c0:0:1010::1e:a001) (Ping timeout: 260 seconds) |
2024-08-12 08:59:14 +0200 | welterde | (welterde@thinkbase.srv.welterde.de) (Ping timeout: 260 seconds) |
2024-08-12 09:00:13 +0200 | delyan_ | (sid523379@id-523379.hampstead.irccloud.com) |
2024-08-12 09:00:18 +0200 | bjs | (sid190364@user/bjs) |
2024-08-12 09:00:19 +0200 | integral | (sid296274@user/integral) |
2024-08-12 09:00:19 +0200 | jonrh | (sid5185@id-5185.ilkley.irccloud.com) |
2024-08-12 09:00:30 +0200 | NemesisD | (sid24071@id-24071.lymington.irccloud.com) |
2024-08-12 09:00:32 +0200 | nshepperd | (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) |
2024-08-12 09:00:35 +0200 | phaazon | (~phaazon@2001:41d0:a:fe76::1) |
2024-08-12 09:00:37 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-12 09:00:43 +0200 | liskin | (~liskin@xmonad/liskin) |
2024-08-12 09:00:48 +0200 | [_________] | (~oos95GWG@user/oos95GWG) |
2024-08-12 09:00:49 +0200 | mal1 | (~mal@ns2.wyrd.be) |
2024-08-12 09:00:53 +0200 | gmc | (sid58314@id-58314.ilkley.irccloud.com) |
2024-08-12 09:02:14 +0200 | Hobbyboy|BNC | Hobbyboy |
2024-08-12 09:03:45 +0200 | landonf | (landonf@mac68k.info) |
2024-08-12 09:06:56 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) |
2024-08-12 09:07:58 +0200 | CiaoSen | (~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) |
2024-08-12 09:11:36 +0200 | nisstyre | (wes@user/nisstyre) |
2024-08-12 09:12:28 +0200 | sa1 | (sid7690@id-7690.ilkley.irccloud.com) |
2024-08-12 09:12:42 +0200 | welterde | (welterde@thinkbase.srv.welterde.de) |
2024-08-12 09:17:58 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-08-12 09:21:05 +0200 | euleritian | (~euleritia@dynamic-176-000-009-143.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-12 09:21:22 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-12 09:25:27 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2024-08-12 09:39:12 +0200 | misterfish | (~misterfis@22.1-12-147.kabelnoord.net) |
2024-08-12 09:41:26 +0200 | bailsman | (~Mm1@revspace/participant/bailsman) (WeeChat 1.9.1) |
2024-08-12 09:44:30 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2024-08-12 09:50:11 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Quit: on the move) |
2024-08-12 09:51:29 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-08-12 09:54:08 +0200 | dysthesis | (~dysthesis@user/dysthesis) (Remote host closed the connection) |
2024-08-12 09:54:42 +0200 | dysthesis | (~dysthesis@user/dysthesis) |
2024-08-12 09:55:57 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) |
2024-08-12 10:02:34 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-12 10:10:01 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) |
2024-08-12 10:10:18 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e72cfb650c5b23d5a7eb2b97.dip0.t-ipconnect.de) |
2024-08-12 10:14:11 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-08-12 10:15:11 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-08-12 10:17:38 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-08-12 10:30:14 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 260 seconds) |
2024-08-12 10:31:58 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-08-12 10:32:31 +0200 | dysthesis | (~dysthesis@user/dysthesis) (Ping timeout: 260 seconds) |
2024-08-12 10:34:23 +0200 | gehmehgeh | (~user@user/gehmehgeh) |
2024-08-12 10:34:42 +0200 | gehmehgeh | gmg |
2024-08-12 10:39:30 +0200 | chele | (~chele@user/chele) |
2024-08-12 10:43:04 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) (Remote host closed the connection) |
2024-08-12 10:43:24 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) |
2024-08-12 10:45:06 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Ping timeout: 248 seconds) |
2024-08-12 10:52:37 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-08-12 11:01:47 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-12 11:05:32 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 255 seconds) |
2024-08-12 11:10:59 +0200 | sawilagar | (~sawilagar@user/sawilagar) |
2024-08-12 11:25:28 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) |
2024-08-12 11:28:43 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) (Remote host closed the connection) |
2024-08-12 11:29:02 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) |
2024-08-12 11:29:26 +0200 | ZharMeny | (~user@user/ZharMeny) |
2024-08-12 11:29:50 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Ping timeout: 255 seconds) |
2024-08-12 11:31:41 +0200 | hseg | (~gesh@46.120.21.97) |
2024-08-12 11:41:24 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 252 seconds) |
2024-08-12 11:42:44 +0200 | dysthesis | (~dysthesis@user/dysthesis) |
2024-08-12 11:56:16 +0200 | CiaoSen | (~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) (Ping timeout: 258 seconds) |
2024-08-12 12:02:30 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-08-12 12:07:04 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
2024-08-12 12:09:07 +0200 | euphores | (~SASL_euph@user/euphores) (Ping timeout: 264 seconds) |
2024-08-12 12:15:09 +0200 | euphores | (~SASL_euph@user/euphores) |
2024-08-12 12:16:11 +0200 | hayk | (~hayk@37.252.90.243) |
2024-08-12 12:19:57 +0200 | <fr33domlover> | [exa]: Writing an actor system where a Chan needs to be able to hold one of the possible message types an actor can receive :) |
2024-08-12 12:20:37 +0200 | <fr33domlover> | Leary: Thanks!! The gift is very helpful & package seems like what I need ^_^ |
2024-08-12 12:20:41 +0200 | <fr33domlover> | *gist |
2024-08-12 12:25:22 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2024-08-12 12:26:24 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded) |
2024-08-12 12:26:25 +0200 | <Leary> | fr33domlover: NP. However, with this context in mind, I suspect you don't actually want `match`. Instead, you probably want something like `handle :: Sum f xs -> Prod (Handler r f) xs -> r`, where `newtype Handler r f x = Handler (f x -> r)` and `data Prod f xs where { Nil :: Prod f '[]; (:~) :: f x -> Prod f xs -> Prod f (x:xs) }`. |
2024-08-12 12:27:07 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2024-08-12 12:27:55 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded) |
2024-08-12 12:29:33 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
2024-08-12 12:43:24 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) (Remote host closed the connection) |
2024-08-12 12:43:44 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) |
2024-08-12 12:45:31 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2024-08-12 12:45:41 +0200 | <haskellbridge> | <sm> @where stack-guide |
2024-08-12 12:45:58 +0200 | <sm> | @where stack-guide |
2024-08-12 12:45:58 +0200 | <lambdabot> | https://docs.haskellstack.org/en/stable/GUIDE Stack User Guide |
2024-08-12 12:46:05 +0200 | <sm> | @where+ stack-guide https://docs.haskellstack.org |
2024-08-12 12:46:05 +0200 | <lambdabot> | Done. |
2024-08-12 12:46:21 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded) |
2024-08-12 12:46:44 +0200 | <sm> | @where+ stack-script https://docs.haskellstack.org/en/stable/topics/scripts |
2024-08-12 12:46:44 +0200 | <lambdabot> | Done. |
2024-08-12 12:46:52 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e72cfb650c5b23d5a7eb2b97.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
2024-08-12 12:47:01 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2024-08-12 12:47:46 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded) |
2024-08-12 12:48:25 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2024-08-12 12:49:45 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-08-12 12:52:47 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded) |
2024-08-12 12:55:20 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e72cfb65b49b2612b9f25dee.dip0.t-ipconnect.de) |
2024-08-12 12:57:56 +0200 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) |
2024-08-12 13:00:05 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e72cfb65b49b2612b9f25dee.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2024-08-12 13:00:55 +0200 | m5zs7k | (aquares@web10.mydevil.net) (Ping timeout: 244 seconds) |
2024-08-12 13:01:33 +0200 | Din | (~Din@201.20.110.242) |
2024-08-12 13:01:38 +0200 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) (Client Quit) |
2024-08-12 13:01:56 +0200 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) |
2024-08-12 13:02:26 +0200 | Din | (~Din@201.20.110.242) (Client Quit) |
2024-08-12 13:02:51 +0200 | m5zs7k | (aquares@web10.mydevil.net) |
2024-08-12 13:10:24 +0200 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 252 seconds) |
2024-08-12 13:13:00 +0200 | lortabac | (~lortabac@88-125-6-227.subs.proxad.net) |
2024-08-12 13:17:41 +0200 | CiaoSen | (~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) |
2024-08-12 13:21:06 +0200 | dysthesis | (~dysthesis@user/dysthesis) (Ping timeout: 260 seconds) |
2024-08-12 13:22:55 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2024-08-12 13:23:40 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded) |
2024-08-12 13:24:09 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2024-08-12 13:30:55 +0200 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving) |
2024-08-12 13:31:12 +0200 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) |
2024-08-12 13:31:32 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) (Remote host closed the connection) |
2024-08-12 13:31:52 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) |
2024-08-12 13:32:14 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2024-08-12 13:33:34 +0200 | noumenon | (~noumenon@113.51-175-156.customer.lyse.net) (Client Quit) |
2024-08-12 13:33:50 +0200 | ephilalethes | (~noumenon@113.51-175-156.customer.lyse.net) |
2024-08-12 13:34:23 +0200 | ephilalethes | (~noumenon@113.51-175-156.customer.lyse.net) (Client Quit) |
2024-08-12 13:38:43 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-12 13:41:16 +0200 | Raito_Bezarius | (~Raito@wireguard/tunneler/raito-bezarius) |
2024-08-12 13:47:48 +0200 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 252 seconds) |
2024-08-12 14:00:44 +0200 | rvalue | (~rvalue@user/rvalue) |
2024-08-12 14:01:31 +0200 | phaazon | hadronized |
2024-08-12 14:03:26 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-12 14:04:40 +0200 | tomku | (~tomku@user/tomku) (Ping timeout: 252 seconds) |
2024-08-12 14:04:54 +0200 | tomku | (~tomku@user/tomku) |
2024-08-12 14:08:10 +0200 | ddellacosta | (~ddellacos@ool-44c73b99.dyn.optonline.net) (Ping timeout: 272 seconds) |
2024-08-12 14:08:42 +0200 | pkal | (~pkal@2a01:4f8:1c1b:a321::1) |
2024-08-12 14:09:49 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-08-12 14:14:54 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Quit: lunch) |
2024-08-12 14:16:21 +0200 | misterfish | (~misterfis@22.1-12-147.kabelnoord.net) (Ping timeout: 244 seconds) |
2024-08-12 14:23:44 +0200 | kuribas | (~user@ptr-17d51em4eigy5w8x89o.18120a2.ip6.access.telenet.be) |
2024-08-12 14:31:38 +0200 | Square3 | (~Square4@user/square) |
2024-08-12 14:50:26 +0200 | misterfish | (~misterfis@22.1-12-147.kabelnoord.net) |
2024-08-12 14:55:47 +0200 | Digitteknohippie | (~user@user/digit) |
2024-08-12 14:56:26 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-12 14:56:31 +0200 | Digit | (~user@user/digit) (Ping timeout: 264 seconds) |
2024-08-12 15:10:37 +0200 | CiaoSen | (~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) (Ping timeout: 258 seconds) |
2024-08-12 15:11:47 +0200 | Digitteknohippie | Digit |
2024-08-12 15:12:43 +0200 | caubert | (~caubert@user/caubert) (Ping timeout: 264 seconds) |
2024-08-12 15:12:46 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Quit: power) |
2024-08-12 15:14:06 +0200 | caubert | (~caubert@user/caubert) |
2024-08-12 15:17:21 +0200 | CrunchyFlakes | (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-08-12 15:19:45 +0200 | CrunchyFlakes | (~CrunchyFl@146.52.130.128) |
2024-08-12 15:22:18 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-12 15:24:14 +0200 | xelxebar_ | (~xelxebar@wilsonb.com) |
2024-08-12 15:24:33 +0200 | xelxebar | (~xelxebar@wilsonb.com) (Ping timeout: 244 seconds) |
2024-08-12 15:27:55 +0200 | jrm | (~jrm@user/jrm) (Read error: Connection reset by peer) |
2024-08-12 15:28:13 +0200 | jrm | (~jrm@user/jrm) |
2024-08-12 15:29:22 +0200 | pointlessslippe1 | (~pointless@212.82.82.3) (Ping timeout: 265 seconds) |
2024-08-12 15:31:39 +0200 | pointlessslippe1 | (~pointless@212.82.82.3) |
2024-08-12 15:39:32 +0200 | hayk | (~hayk@37.252.90.243) (Quit: hayk) |
2024-08-12 15:44:36 +0200 | Guest25 | (~Guest25@user-5-173-144-2.play-internet.pl) |
2024-08-12 15:44:41 +0200 | Guest25 | (~Guest25@user-5-173-144-2.play-internet.pl) (Client Quit) |
2024-08-12 15:44:55 +0200 | Guest25 | (~Guest25@user-5-173-144-2.play-internet.pl) |
2024-08-12 15:46:08 +0200 | <Guest25> | Hi, do you know if there are any haskellers groups in Poland? I tried to find somebody on #haskell-pl, but nobody is there |
2024-08-12 15:50:34 +0200 | Guest25 | (~Guest25@user-5-173-144-2.play-internet.pl) (Quit: Client closed) |
2024-08-12 15:52:11 +0200 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds) |
2024-08-12 15:58:29 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out) |
2024-08-12 15:59:37 +0200 | ZharMeny | (~user@user/ZharMeny) (Read error: Connection reset by peer) |
2024-08-12 16:00:43 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds) |
2024-08-12 16:02:03 +0200 | lortabac | (~lortabac@88-125-6-227.subs.proxad.net) (Quit: WeeChat 4.2.2) |
2024-08-12 16:02:29 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 248 seconds) |
2024-08-12 16:05:19 +0200 | euleritian | (~euleritia@dynamic-176-006-145-119.176.6.pool.telefonica.de) |
2024-08-12 16:05:36 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) |
2024-08-12 16:08:33 +0200 | <haskellbridge> | <sm> maybe they hang out somewhere else ? try to find some local user groups or haskell employers and see where they chat |
2024-08-12 16:09:17 +0200 | <haskellbridge> | <sm> you could also try searching matrix, discord, telegram, etc |
2024-08-12 16:10:53 +0200 | ZharMeny | (~user@user/ZharMeny) |
2024-08-12 16:18:05 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) |
2024-08-12 16:27:00 +0200 | danse-221 | (~danse-nr3@user/danse-nr3) |
2024-08-12 16:29:05 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) (Ping timeout: 248 seconds) |
2024-08-12 16:39:29 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2024-08-12 16:39:58 +0200 | Square | (~Square@user/square) |
2024-08-12 16:41:51 +0200 | euleritian | (~euleritia@dynamic-176-006-145-119.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-08-12 16:42:08 +0200 | euleritian | (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) |
2024-08-12 16:43:20 +0200 | Square3 | (~Square4@user/square) (Ping timeout: 272 seconds) |
2024-08-12 16:49:55 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
2024-08-12 16:50:31 +0200 | cheater | (~Username@user/cheater) (Ping timeout: 264 seconds) |
2024-08-12 16:53:16 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-08-12 16:57:25 +0200 | ZharMeny | (~user@user/ZharMeny) (Ping timeout: 248 seconds) |
2024-08-12 17:01:04 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds) |
2024-08-12 17:02:15 +0200 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2024-08-12 17:06:13 +0200 | ZharMeny | (~user@user/ZharMeny) |
2024-08-12 17:08:31 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-08-12 17:14:29 +0200 | misterfish | (~misterfis@22.1-12-147.kabelnoord.net) (Ping timeout: 260 seconds) |
2024-08-12 17:31:29 +0200 | danse-221 | is developing with `undefined` today |
2024-08-12 17:35:41 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
2024-08-12 17:36:18 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) |
2024-08-12 17:49:15 +0200 | <Hecate> | danse-221: hello https://github.com/ekmett/placeholder/ |
2024-08-12 17:50:07 +0200 | <danse-221> | @hackage placeholder |
2024-08-12 17:50:07 +0200 | <lambdabot> | https://hackage.haskell.org/package/placeholder |
2024-08-12 17:52:15 +0200 | <danse-221> | well, i don't mind using `undefined`, want to understand its semantics better. Have some very very blurry memories about some post i've read showcasing meaningful usage of it. Thanks anyway |
2024-08-12 17:52:34 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2024-08-12 17:53:31 +0200 | <mauke> | @src undefined |
2024-08-12 17:53:31 +0200 | <lambdabot> | undefined = error "Prelude.undefined" |
2024-08-12 17:53:46 +0200 | <mauke> | @src error |
2024-08-12 17:53:46 +0200 | <lambdabot> | error s = throw (ErrorCall s) |
2024-08-12 17:54:21 +0200 | <danse-221> | hmm way less mysterious than i thought... maybe i recall wrong |
2024-08-12 17:54:42 +0200 | <mauke> | @src throw |
2024-08-12 17:54:42 +0200 | <lambdabot> | throw exception = raise# exception |
2024-08-12 17:54:50 +0200 | <mauke> | @src raise# |
2024-08-12 17:54:51 +0200 | <lambdabot> | Source not found. I am sorry. |
2024-08-12 17:55:01 +0200 | <danse-221> | i want to play with these more |
2024-08-12 17:55:09 +0200 | <danse-221> | @src listToMaybe |
2024-08-12 17:55:09 +0200 | <lambdabot> | listToMaybe [] = Nothing |
2024-08-12 17:55:09 +0200 | <lambdabot> | listToMaybe (a:_) = Just a |
2024-08-12 17:55:13 +0200 | <danse-221> | :P |
2024-08-12 17:57:41 +0200 | <danse-221> | i think that in the post, `undefined` was used to placehold bottom or something similar |
2024-08-12 17:58:21 +0200 | <danse-221> | maybe it was the common usage of it as a didactical tool to explain on-demand evaluation |
2024-08-12 18:05:49 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 260 seconds) |
2024-08-12 18:13:33 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds) |
2024-08-12 18:19:53 +0200 | kuribas | (~user@ptr-17d51em4eigy5w8x89o.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2024-08-12 18:20:59 +0200 | hseg | (~gesh@46.120.21.97) (Ping timeout: 260 seconds) |
2024-08-12 18:29:31 +0200 | Square3 | (~Square4@user/square) |
2024-08-12 18:32:42 +0200 | Square | (~Square@user/square) (Ping timeout: 252 seconds) |
2024-08-12 18:35:12 +0200 | <haskellbridge> | <mauke> O great lambdabot, |
2024-08-12 18:35:12 +0200 | <haskellbridge> | :t traverse_ |
2024-08-12 18:35:13 +0200 | <lambdabot> | (Foldable t, Applicative f) => (a -> f b) -> t a -> f () |
2024-08-12 18:35:39 +0200 | <stefan-__> | how can I enable the hls semanticTokens plugin when using https://github.com/rockofox/intellij-haskell-lsp ? |
2024-08-12 18:41:10 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) (Remote host closed the connection) |
2024-08-12 18:43:26 +0200 | danse-221 | (~danse-nr3@user/danse-nr3) (Quit: nice evening) |
2024-08-12 18:43:53 +0200 | <EvanR> | undefined can be used correctly in a place that is provably never going to be evaluated |
2024-08-12 18:44:35 +0200 | <EvanR> | when unfortunately the type system can't do that proof for you, in which case it's probably not necessary to use the undefined case |
2024-08-12 18:45:20 +0200 | <EvanR> | when the types say it can never be evaluated you can probably get away without an undefined |
2024-08-12 18:52:11 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
2024-08-12 19:02:44 +0200 | tremon | (~tremon@83.80.159.219) |
2024-08-12 19:05:32 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) |
2024-08-12 19:14:46 +0200 | waleee | (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) |
2024-08-12 19:16:55 +0200 | Guest54 | (~Guest54@ip-046-005-000-201.um12.pools.vodafone-ip.de) |
2024-08-12 19:17:01 +0200 | Guest54 | (~Guest54@ip-046-005-000-201.um12.pools.vodafone-ip.de) (Client Quit) |
2024-08-12 19:17:26 +0200 | Guest54 | (~Guest54@ip-046-005-000-201.um12.pools.vodafone-ip.de) |
2024-08-12 19:17:27 +0200 | Guest54 | (~Guest54@ip-046-005-000-201.um12.pools.vodafone-ip.de) () |
2024-08-12 19:28:01 +0200 | ss4 | (~wootehfoo@user/wootehfoot) |
2024-08-12 19:29:13 +0200 | Guest25 | (~Guest25@user-5-173-208-28.play-internet.pl) |
2024-08-12 19:31:56 +0200 | <Inst> | i wonder what the relationship between listToMaybe and safeHead is? |
2024-08-12 19:32:11 +0200 | <Inst> | since head usage is being strongly discouraged, and iirc safeHead isn't in base |
2024-08-12 19:32:30 +0200 | <Inst> | do people actually use listToMaybe as a surrogate for safeHead? |
2024-08-12 19:33:02 +0200 | Fijxu_ | (~Fijxu@user/fijxu) (Quit: XD!!) |
2024-08-12 19:33:17 +0200 | <danse-nr3> | i got pointed at it here after complaining about head's partiality |
2024-08-12 19:33:43 +0200 | <dolio> | When would you use safeHead? |
2024-08-12 19:33:57 +0200 | <danse-nr3> | me? |
2024-08-12 19:34:12 +0200 | <dolio> | Anyone. |
2024-08-12 19:34:31 +0200 | Fijxu | (~Fijxu@user/fijxu) |
2024-08-12 19:34:36 +0200 | Guest25 | (~Guest25@user-5-173-208-28.play-internet.pl) (Quit: Client closed) |
2024-08-12 19:34:41 +0200 | <danse-nr3> | i'd just alias that to `head` and use it everywhere |
2024-08-12 19:34:59 +0200 | <danse-nr3> | (same for tail, last, and the rest) |
2024-08-12 19:35:00 +0200 | <dolio> | Would you, though? |
2024-08-12 19:35:05 +0200 | <danse-nr3> | sure |
2024-08-12 19:35:22 +0200 | <dolio> | Why not just match on the list insteada of getting a maybe head and matching on a maybe? |
2024-08-12 19:35:33 +0200 | <Leary> | Usually there's no point in it, relative to just pattern matching. I /would/ use it in a context that already expects a `Maybe` value. |
2024-08-12 19:35:46 +0200 | <danse-nr3> | for composition dolio |
2024-08-12 19:36:48 +0200 | <danse-nr3> | also, i don't really see a point for partial functions in my haskell |
2024-08-12 19:39:18 +0200 | <dolio> | If you have a function already written with a Maybe, then it makes sense. Hence listToMaybe. But you don't need to convert to Maybe in situ. |
2024-08-12 19:42:44 +0200 | <dolio> | E.G. maybe n f . safeHead = foldr (const . f) n |
2024-08-12 19:43:29 +0200 | cfricke | (~cfricke@user/cfricke) |
2024-08-12 19:46:53 +0200 | <EvanR> | safeHead is the same thing as listToMaybe right |
2024-08-12 19:47:04 +0200 | <dolio> | That's my assumption. |
2024-08-12 19:47:12 +0200 | <Franciman> | maybe you can prove it using free theorems by wadler? |
2024-08-12 19:47:17 +0200 | <EvanR> | in which case I point out safeHead is potentially not really safe |
2024-08-12 19:47:18 +0200 | <Franciman> | since its a natural transformation from list to maybe |
2024-08-12 19:47:20 +0200 | <Franciman> | etc? |
2024-08-12 19:47:35 +0200 | <EvanR> | in situations where Nothing is supposed to be impossible |
2024-08-12 19:47:52 +0200 | <EvanR> | or already known to be impossible |
2024-08-12 19:48:18 +0200 | <dolio> | Franciman: Nah. Either one could be picking any element. |
2024-08-12 19:48:27 +0200 | <danse-nr3> | that would at most be wasteful, not unsafe EvanR |
2024-08-12 19:48:31 +0200 | <Franciman> | dolio: how? |
2024-08-12 19:48:35 +0200 | <Franciman> | it must be a natural transformation |
2024-08-12 19:48:39 +0200 | <Franciman> | it can't depend on the type |
2024-08-12 19:48:52 +0200 | <EvanR> | after you verified one way or another than Nothing or empty list is impossible, what would you do, crash? |
2024-08-12 19:48:53 +0200 | <Franciman> | err i mean, assume that its type is: f :: List a -> Maybe a |
2024-08-12 19:49:00 +0200 | <Franciman> | how do you lick a value of Maybe a, independent of a |
2024-08-12 19:49:03 +0200 | <Franciman> | ah fuck undefined! |
2024-08-12 19:49:05 +0200 | <dolio> | Every safe'nth'value is a natural transformation. |
2024-08-12 19:49:11 +0200 | <c_wraith> | Ugh. I really don't like Data.List.NonEmpty. I understand maximizing shared representation with [] for fast conversion, but it's really an annoying representation to work with |
2024-08-12 19:49:22 +0200 | <danse-nr3> | just handle the Maybe EvanR |
2024-08-12 19:49:31 +0200 | <Franciman> | yes but i mean [] con only be mapped to nithing |
2024-08-12 19:49:31 +0200 | <danse-nr3> | with a branch that's a waste |
2024-08-12 19:49:35 +0200 | <danse-nr3> | nothing unsafe |
2024-08-12 19:49:46 +0200 | <EvanR> | you handled it already or proved it's impossible |
2024-08-12 19:50:00 +0200 | <danse-nr3> | if you handled there is no maybe |
2024-08-12 19:50:03 +0200 | <EvanR> | after a certain point handling it the original way makes no sense |
2024-08-12 19:50:06 +0200 | <danse-nr3> | if you proved it, here's the waste |
2024-08-12 19:50:33 +0200 | <EvanR> | you're too late |
2024-08-12 19:50:55 +0200 | <EvanR> | c_wraith, mentioned NonEmpty as being a way to use types to tag the check as having been made or whatever |
2024-08-12 19:51:07 +0200 | <danse-nr3> | yeah NonEmpty is cool |
2024-08-12 19:51:08 +0200 | <EvanR> | but you may just want to use list anyway |
2024-08-12 19:51:13 +0200 | <Franciman> | dolio: ah i see what you mean sorry xd |
2024-08-12 19:51:16 +0200 | <EvanR> | then the Nothing would be impossible later |
2024-08-12 19:51:25 +0200 | <dolio> | :) |
2024-08-12 19:51:35 +0200 | <danse-nr3> | so what? Where's the unsafety? |
2024-08-12 19:51:54 +0200 | <EvanR> | because there is not always a sensible way to "handle" the impossible thing |
2024-08-12 19:52:12 +0200 | <EvanR> | usually, I struggle to figure out what to do, and put crash |
2024-08-12 19:52:25 +0200 | <danse-nr3> | use NonEmpty then |
2024-08-12 19:52:37 +0200 | <EvanR> | as an example, the output of the group gives a list of non empty things |
2024-08-12 19:52:47 +0200 | <EvanR> | there's no "handling" the empty group |
2024-08-12 19:53:04 +0200 | <danse-nr3> | % :t group |
2024-08-12 19:53:04 +0200 | <yahb2> | <interactive>:1:1: error: Variable not in scope: group |
2024-08-12 19:53:09 +0200 | <EvanR> | or you could put crash, then what's the difference between "unsafe" functions |
2024-08-12 19:53:15 +0200 | <danse-nr3> | % :t Data.List.group |
2024-08-12 19:53:15 +0200 | <yahb2> | Data.List.group :: Eq a => [a] -> [[a]] |
2024-08-12 19:53:39 +0200 | <danse-nr3> | yeah why would i put crash? Answer: i wouldn't |
2024-08-12 19:53:47 +0200 | <mauke> | % :t Data.List.NonEmpty.group |
2024-08-12 19:53:47 +0200 | <yahb2> | Data.List.NonEmpty.group ; :: (Foldable f, Eq a) => f a -> [GHC.Base.NonEmpty a] |
2024-08-12 19:53:57 +0200 | <EvanR> | you could use NonEmpty for this case |
2024-08-12 19:54:17 +0200 | <danse-nr3> | mauke reading your mind =D |
2024-08-12 19:54:19 +0200 | <EvanR> | but in some cases there may not be a NonEmpty blessed function for it |
2024-08-12 19:54:29 +0200 | <EvanR> | and it's up to you to implement it |
2024-08-12 19:54:48 +0200 | <EvanR> | making the type system 100% satisfied may not be feasible |
2024-08-12 19:55:01 +0200 | <EvanR> | also NonEmpty is a pain sometimes |
2024-08-12 19:55:43 +0200 | danse-nr3 | shrugs |
2024-08-12 19:56:17 +0200 | <EvanR> | so the safe can be misleading and listToMaybe is more like "does what it says on the tin" |
2024-08-12 19:56:42 +0200 | <danse-nr3> | i disagree |
2024-08-12 19:57:20 +0200 | <EvanR> | if you try to write java using a type system that wraps literally everything in Maybe, that doesn't make it more safe |
2024-08-12 19:57:32 +0200 | <EvanR> | when you handle each nothing by throwing an exception |
2024-08-12 19:58:03 +0200 | <danse-nr3> | that due to how you handle, not what you handle |
2024-08-12 19:58:38 +0200 | <EvanR> | it's easier to let the exception be thrown in that case and not write all the extra code |
2024-08-12 19:58:48 +0200 | <EvanR> | and not less safe |
2024-08-12 19:58:52 +0200 | <danse-nr3> | pfff |
2024-08-12 20:00:06 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e72cfb65b0b5f270b6019fe0.dip0.t-ipconnect.de) |
2024-08-12 20:00:47 +0200 | misterfish | (~misterfis@22.1-12-147.kabelnoord.net) |
2024-08-12 20:05:24 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 258 seconds) |
2024-08-12 20:07:19 +0200 | lxsameer | (lxsameer@Serene/lxsameer) |
2024-08-12 20:15:25 +0200 | target_i | (~target_i@user/target-i/x-6023099) |
2024-08-12 20:17:33 +0200 | danse-nr3 | (~danse-nr3@user/danse-nr3) () |
2024-08-12 20:22:19 +0200 | driib3 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2024-08-12 20:27:34 +0200 | neuroevolutus | (~neuroevol@146.70.211.135) |
2024-08-12 20:31:23 +0200 | driib3 | (~driib@vmi931078.contaboserver.net) |
2024-08-12 20:33:40 +0200 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2) |
2024-08-12 20:35:03 +0200 | neuroevolutus | (~neuroevol@146.70.211.135) (Ping timeout: 256 seconds) |
2024-08-12 20:40:36 +0200 | vgtw | (~vgtw@user/vgtw) (Quit: ZNC - https://znc.in) |
2024-08-12 20:41:57 +0200 | <Inst> | so it's actually more idiomatic to use nonempty these days? |
2024-08-12 20:42:02 +0200 | <Inst> | and just skip lists? |
2024-08-12 20:42:17 +0200 | CiaoSen | (~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) |
2024-08-12 20:45:53 +0200 | driib3 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2024-08-12 20:46:19 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) (Remote host closed the connection) |
2024-08-12 20:47:14 +0200 | Fischmiep | (~Fischmiep@user/Fischmiep) |
2024-08-12 20:48:16 +0200 | driib3 | (~driib@vmi931078.contaboserver.net) |
2024-08-12 20:51:38 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) |
2024-08-12 20:55:19 +0200 | ZharMeny | (~user@user/ZharMeny) (Ping timeout: 264 seconds) |
2024-08-12 20:57:37 +0200 | hseg | (~gesh@46.120.21.97) |
2024-08-12 21:00:00 +0200 | vgtw | (~vgtw@user/vgtw) |
2024-08-12 21:00:24 +0200 | neuroevolutus | (~neuroevol@37.19.200.148) |
2024-08-12 21:04:42 +0200 | <EvanR> | yes lists are out. Maybe (NonEmpty a) is in |
2024-08-12 21:05:09 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-08-12 21:05:10 +0200 | ZharMeny | (~user@user/ZharMeny) |
2024-08-12 21:06:24 +0200 | <mauke> | I don't think I've ever used skiplists |
2024-08-12 21:06:51 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
2024-08-12 21:07:41 +0200 | <Inst> | sarcasm noted |
2024-08-12 21:07:45 +0200 | <c_wraith> | skiplists are kinda like "what if a binary tree fell over?" |
2024-08-12 21:07:58 +0200 | <Inst> | wtf |
2024-08-12 21:07:59 +0200 | <Inst> | https://en.wikipedia.org/wiki/Skip_list |
2024-08-12 21:09:23 +0200 | <Inst> | yeah i saw the nonempty interface, it has to use lists |
2024-08-12 21:09:29 +0200 | <Inst> | since if you filter it returns a list |
2024-08-12 21:09:53 +0200 | <Inst> | wait, you're being sarcastic, right, EvanR? |
2024-08-12 21:10:09 +0200 | <EvanR> | lol |
2024-08-12 21:12:49 +0200 | segfaultfizzbuzz | (~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds) |
2024-08-12 21:13:40 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-08-12 21:18:07 +0200 | neuroevolutus | (~neuroevol@37.19.200.148) (Ping timeout: 256 seconds) |
2024-08-12 21:22:19 +0200 | hseg | (~gesh@46.120.21.97) (Quit: WeeChat 4.3.5) |
2024-08-12 21:23:54 +0200 | neuroevolutus | (~neuroevol@37.19.200.148) |
2024-08-12 21:24:05 +0200 | <Inst> | https://www.imn.htwk-leipzig.de/~waldmann/etc/untutorial/list-or-not-list/ |
2024-08-12 21:34:45 +0200 | CiaoSen | (~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) (Ping timeout: 248 seconds) |
2024-08-12 21:39:16 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) |
2024-08-12 21:40:00 +0200 | zrubi | (~halloy540@147.235.212.157) |
2024-08-12 21:41:07 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-08-12 21:46:56 +0200 | <zrubi> | i want to implement function `removeAt` which get an Int and a String and give back a tuple with the Char and the String without this Char. |
2024-08-12 21:47:00 +0200 | <zrubi> | so for example removeAt 2 "asdf" will give back ('s',"adf"). i implemented it using give and take (you can see it here: t.ly/uqlei). but i always frustrated that i don't know how to implement things without built in function. i want to try to implement it without drop and take or any other non trivial haskell function, but i don't have a clue how to do it. can you please guide me on how can i achieve this only using "simple" haskell code? |
2024-08-12 21:47:32 +0200 | <geekosaur> | recursion and pattern matching |
2024-08-12 21:48:18 +0200 | <zrubi> | geekosaur: yes this is the thing that i know. i don't know hot to get this done with recursion. |
2024-08-12 21:50:19 +0200 | <geekosaur> | then you need to learn about recursion in Haskell. https://en.wikibooks.org/wiki/Haskell/Recursion |
2024-08-12 21:50:43 +0200 | <haskellbridge> | <bdub> https://books.goalkicker.com/HaskellBook/ |
2024-08-12 21:51:41 +0200 | <zrubi> | i know about recursion on haskell :-). but there are functions that are not so "easy" to implement. this function is one of them. |
2024-08-12 21:52:03 +0200 | <haskellbridge> | <bdub> Sounds like you about to learn something new ;) |
2024-08-12 21:52:31 +0200 | <haskellbridge> | <thirdofmay18081814goya> "sum [1, 2, 3]" produces "couldn't match expected type List Int with [Int]", how come? |
2024-08-12 21:52:39 +0200 | <geekosaur> | I know how I would do it. One hint: use a helper function with a different tuple type |
2024-08-12 21:52:47 +0200 | <haskellbridge> | <thirdofmay18081814goya> * [a0]", |
2024-08-12 21:53:02 +0200 | <monochrom> | For this one you may better first aim at something like splitAt, e.g., splitAt 2 "asdf" = ("a", "sdf"). splitAt is in the library, but is also a straightforward DIY recursion. |
2024-08-12 21:53:03 +0200 | <Inst> | thirdofmay18081814goya: what's the type signature on your function? |
2024-08-12 21:53:27 +0200 | <haskellbridge> | <thirdofmay18081814goya> Inst: "List Int -> Int" |
2024-08-12 21:53:31 +0200 | <monochrom> | (and the library splitAt is pretty much the same DIY recursion anyone would try) |
2024-08-12 21:53:41 +0200 | ezzieygu1wuf | (~Unknown@user/ezzieyguywuf) |
2024-08-12 21:54:00 +0200 | <Inst> | i can guess what List is, but how do you define the binding List in your module? |
2024-08-12 21:54:06 +0200 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 252 seconds) |
2024-08-12 21:54:26 +0200 | <haskellbridge> | <thirdofmay18081814goya> ah |
2024-08-12 21:54:36 +0200 | <haskellbridge> | <thirdofmay18081814goya> a module was shadowing normal usage |
2024-08-12 21:54:44 +0200 | <monochrom> | This is no harder than loops. Whether recursion or loops, the hard part is identifying the right helper problem to aim at, which is usually not the original problem. |
2024-08-12 21:54:48 +0200 | <haskellbridge> | <thirdofmay18081814goya> thanks for the help! |
2024-08-12 21:54:49 +0200 | <geekosaur> | guessing what it is isn't the issue. the issue is that Haskell won't treat a user-defined `List` type the same as the built-in list type |
2024-08-12 21:55:25 +0200 | <zrubi> | monochrom: exactly! |
2024-08-12 21:55:39 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
2024-08-12 21:55:52 +0200 | <zrubi> | i mean you said what i felt :) |
2024-08-12 21:56:22 +0200 | <monochrom> | This is also why computing suffers the halting problem and math/logic suffers the incompleteness theorem. |
2024-08-12 21:57:46 +0200 | <monochrom> | One way to rephrase them is that in the most general case you never know what is the helper function/lemma you need. |
2024-08-12 21:57:53 +0200 | <zzz> | geekosaur: it wont? |
2024-08-12 21:58:02 +0200 | lbseale_ | (~quassel@user/ep1ctetus) (Ping timeout: 255 seconds) |
2024-08-12 21:58:21 +0200 | <geekosaur> | no? they're ddifferent types as far as the typechecker is concerned |
2024-08-12 21:58:31 +0200 | <geekosaur> | a `Foldable` instance would paper over it |
2024-08-12 21:58:40 +0200 | lbseale | (~quassel@user/ep1ctetus) |
2024-08-12 21:59:06 +0200 | <geekosaur> | :t sum |
2024-08-12 21:59:07 +0200 | <lambdabot> | (Foldable t, Num a) => t a -> a |
2024-08-12 22:00:56 +0200 | <zzz> | ah sry i see what you mean. |
2024-08-12 22:02:35 +0200 | alexherbo2 | (~alexherbo@2a02-8440-320d-0f2a-505d-a57d-46e4-6611.rev.sfr.net) |
2024-08-12 22:12:17 +0200 | <Inst> | also zrubi: tbh, what's the type of your function? |
2024-08-12 22:14:22 +0200 | <zrubi> | Inst: removeAt :: Int -> [a] -> (a,[a]) |
2024-08-12 22:16:55 +0200 | lxsameer | (lxsameer@Serene/lxsameer) (Ping timeout: 264 seconds) |
2024-08-12 22:18:53 +0200 | dysthesis | (~dysthesis@user/dysthesis) |
2024-08-12 22:25:16 +0200 | sawilagar_ | (~sawilagar@user/sawilagar) |
2024-08-12 22:27:44 +0200 | sawilagar | (~sawilagar@user/sawilagar) (Ping timeout: 260 seconds) |
2024-08-12 22:54:39 +0200 | Batzy | (~quassel@user/batzy) |
2024-08-12 22:55:24 +0200 | rdcdr | (~rdcdr@user/rdcdr) |
2024-08-12 22:55:36 +0200 | rdcdr_ | (~rdcdr@75-172-30-214.tukw.qwest.net) (Ping timeout: 244 seconds) |
2024-08-12 22:57:28 +0200 | neuroevolutus | (~neuroevol@37.19.200.148) (Quit: Client closed) |
2024-08-12 22:59:19 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-08-12 22:59:44 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-08-12 23:04:38 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2024-08-12 23:04:57 +0200 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2024-08-12 23:10:41 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
2024-08-12 23:11:31 +0200 | cheater | (~Username@user/cheater) |
2024-08-12 23:12:58 +0200 | <zrubi> | i think i nailed it: https://paste.tomsmeding.com/ro6VWeE3/raw/1 ("simple" haskell only using helper function that collect a list of elements i by pass till i found the right one. i don't know what to do when someone enter 0 or lower but this is a minor issue for me. i'm gald anyway) |
2024-08-12 23:17:47 +0200 | <zrubi> | im very happy with the `baba` name LOL |
2024-08-12 23:17:59 +0200 | <Rembane> | BABA IS YOU? |
2024-08-12 23:19:07 +0200 | <zrubi> | no, i dont know where is it from. maybe forrest gump got in my head? (i see it is written differently) |
2024-08-12 23:19:16 +0200 | <monochrom> | Ugh please use 0-based indexing. |
2024-08-12 23:19:49 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2024-08-12 23:19:58 +0200 | <Inst> | zrubi: do you have spare time or are you up for a challenge? |
2024-08-12 23:21:56 +0200 | <zrubi> | Inst: well i have spare time but i don't know if i'm up for a challenge but i'll try (and maybe i'm failed today, i'll try another day) |
2024-08-12 23:22:36 +0200 | <Inst> | ++ is O(n), with the recursion, you're effectively O(n^2) |
2024-08-12 23:22:37 +0200 | <zrubi> | monochrom: what do tou mean by that? |
2024-08-12 23:24:56 +0200 | dyniec | (~dyniec@dybiec.info) (Quit: WeeChat 4.2.2) |
2024-08-12 23:25:10 +0200 | <zrubi> | Inst: i saw those creatures before but i didn't studied computer science so i don't know the difference. i understand (i think) that the one is more time consuming than the other. os what is the question? |
2024-08-12 23:25:25 +0200 | <zrubi> | os = so |
2024-08-12 23:25:32 +0200 | <zrubi> | if i can make it faster? |
2024-08-12 23:25:38 +0200 | <zrubi> | efficient? |
2024-08-12 23:25:49 +0200 | <Inst> | ya, try to use a bit more pattern matching |
2024-08-12 23:26:10 +0200 | <haskellbridge> | <thirdofmay18081814goya> what the usecase for "Dynamic"? |
2024-08-12 23:26:13 +0200 | <Inst> | without ++ or reverse |
2024-08-12 23:28:52 +0200 | <Inst> | but tbh this particular pattern of recursion is, at least for me, hard, might be for you as well, so you might not want to spend too much time on trying to do it without (++) or reverse |
2024-08-12 23:29:36 +0200 | <monochrom> | In "asdf", 'a' is at index 0, 's' is at index 1. |
2024-08-12 23:29:53 +0200 | <monochrom> | One of the few things that Python got right. |
2024-08-12 23:30:56 +0200 | michalz | (~michalz@185.246.207.197) (Remote host closed the connection) |
2024-08-12 23:31:53 +0200 | <Inst> | matlab usually defaults to 1-based indexing (the first term is indexed 1), fortran does 1 based indexing, julia does 1 based indexing |
2024-08-12 23:32:22 +0200 | <Inst> | Haskell and most other languages default to 0 |
2024-08-12 23:32:34 +0200 | <monochrom> | Notice how they aim at traditional mathematicians not enlightened computer scientists. :) |
2024-08-12 23:32:38 +0200 | <Franciman> | cringe |
2024-08-12 23:33:37 +0200 | <Rembane> | Dyalog APL does both |
2024-08-12 23:34:12 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
2024-08-12 23:34:12 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
2024-08-12 23:34:44 +0200 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) |
2024-08-12 23:34:45 +0200 | <darkling> | Visual Basic had an option to do either. So, I think, did perl. And lua doesn't care, because everything's a map. :) |
2024-08-12 23:35:14 +0200 | chiselfuse | (~chiselfus@user/chiselfuse) |
2024-08-12 23:35:39 +0200 | ZharMeny | (~user@user/ZharMeny) (Remote host closed the connection) |
2024-08-12 23:35:52 +0200 | ZharMeny | (~user@user/ZharMeny) |
2024-08-12 23:35:54 +0200 | <Inst> | but when you're designing a function, people in Haskell will assume 0-based indexing, and if you don't stick to that convention, you'll create annoying bugs for your users who assume the norm |
2024-08-12 23:37:15 +0200 | <Inst> | hence why many people can be very opinionated about it |
2024-08-12 23:37:25 +0200 | <c_wraith> | did someone expect consistency in indexing? https://xkcd.com/163/ |
2024-08-12 23:37:37 +0200 | <geekosaur> | perl used to, yes ($[) |
2024-08-12 23:38:22 +0200 | <geekosaur> | meanwhile mathematicians can't even decide whether 0 is a valid number for this kind of thing 🙂 |
2024-08-12 23:38:30 +0200 | <c_wraith> | also, the array library allows basically any indexing. |
2024-08-12 23:38:38 +0200 | <darkling> | Remind me, what's a number? :) |
2024-08-12 23:39:13 +0200 | <c_wraith> | oh, I asked a bunch of mathematicians about that once. they finally agreed: a number is a thing that looks and acts like a number |
2024-08-12 23:39:22 +0200 | <monochrom> | :) |
2024-08-12 23:39:33 +0200 | acidjnk_new3 | (~acidjnk@p200300d6e72cfb65b0b5f270b6019fe0.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2024-08-12 23:39:48 +0200 | <darkling> | :) |
2024-08-12 23:40:12 +0200 | <Inst> | so a number is a bottom? |
2024-08-12 23:40:24 +0200 | <monochrom> | I agree with that. They are saying the equivalent of the Num class. >:D |
2024-08-12 23:42:58 +0200 | Ellenor | (ellenor@callbox.trd.is) (Now, I'm the vixen with a knife, and I want blood.) |
2024-08-12 23:43:48 +0200 | <monochrom> | When I taught monads, I began with "I won't answer 'what is a monad?', unless you know how to answer 'what is a number?'". I explained that we are looking at axioms and APIs, asking for examples and more examples is fair, asking "what is" is not. |
2024-08-12 23:45:34 +0200 | <dolio> | A number is a decategorification of a set. |
2024-08-12 23:45:46 +0200 | <monochrom> | :( |
2024-08-12 23:45:53 +0200 | <monochrom> | :) |
2024-08-12 23:52:11 +0200 | target_i | (~target_i@user/target-i/x-6023099) (Quit: leaving) |