2024/08/12

2024-08-12 00:01:31 +0200hayk(~hayk@37.252.90.243) (Quit: hayk)
2024-08-12 00:02:17 +0200ThePenguin(~ThePengui@cust-95-80-24-166.csbnet.se) (Remote host closed the connection)
2024-08-12 00:02:54 +0200ThePenguin(~ThePengui@cust-95-80-24-166.csbnet.se)
2024-08-12 00:03:07 +0200neuroevolutus17(~neuroevol@37.19.200.158) (Ping timeout: 256 seconds)
2024-08-12 00:05:12 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 272 seconds)
2024-08-12 00:05:36 +0200hayk(~hayk@37.252.90.243)
2024-08-12 00:07:15 +0200hayk(~hayk@37.252.90.243) (Client Quit)
2024-08-12 00:07:55 +0200Batzy(~quassel@user/batzy) (Ping timeout: 264 seconds)
2024-08-12 00:08:57 +0200Sgeo_(~Sgeo@user/sgeo)
2024-08-12 00:09:02 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-08-12 00:09:47 +0200oo_miguel(~Thunderbi@78.10.207.46) (Ping timeout: 258 seconds)
2024-08-12 00:14:47 +0200greybaloon(~greybaloo@user/greybaloon)
2024-08-12 00:24:53 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
2024-08-12 00:26:04 +0200AlexZenon(~alzenon@94.233.240.239) (Ping timeout: 260 seconds)
2024-08-12 00:26:06 +0200fuag1_(~fuag1@45.14.193.50) (Read error: Connection reset by peer)
2024-08-12 00:30:29 +0200AlexZenon(~alzenon@94.233.240.239)
2024-08-12 00:30:42 +0200spew(~spew@201.141.102.132)
2024-08-12 00:34:56 +0200female_student_5(~female_st@79.79.255.40) (Quit: Client closed)
2024-08-12 00:37:44 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-08-12 00:40:50 +0200female_student_5(~female_st@79.79.255.40)
2024-08-12 00:41:07 +0200female_student_5(~female_st@79.79.255.40) (Client Quit)
2024-08-12 00:52:33 +0200neuroevolutus(~neuroevol@37.19.200.158)
2024-08-12 00:59:15 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2024-08-12 01:05:51 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 252 seconds)
2024-08-12 01:08:37 +0200acidjnk_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 +0200JuanDaugherty(~juan@user/JuanDaugherty)
2024-08-12 01:24:26 +0200neuroevolutus(~neuroevol@37.19.200.158) (Quit: Client closed)
2024-08-12 01:26:23 +0200neuroevolutus(~neuroevol@37.19.200.158)
2024-08-12 01:30:29 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-08-12 01:30:32 +0200spew(~spew@201.141.102.132) (Read error: Connection reset by peer)
2024-08-12 01:31:09 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 252 seconds)
2024-08-12 01:33:03 +0200greybaloon(~greybaloo@user/greybaloon) (Quit: Client closed)
2024-08-12 01:38:56 +0200xff0x(~xff0x@2405:6580:b080:900:a420:6e17:7585:c4d9) (Ping timeout: 272 seconds)
2024-08-12 01:40:20 +0200xff0x(~xff0x@2405:6580:b080:900:9cab:87b:80dd:616a)
2024-08-12 02:00:57 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 258 seconds)
2024-08-12 02:10:38 +0200pavonia(~user@user/siracusa)
2024-08-12 02:13:45 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-08-12 02:18:10 +0200machinedgod(~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 +0200misterfish(~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 +0200ticat(~ticat@156.251.248.134)
2024-08-12 02:45:19 +0200ticat(~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 +0200fp(~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 +0200neuroevolutus(~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 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-08-12 03:23:09 +0200starburst(~starburst@2601:602:480:9390:d6d2:52ff:fed8:1599)
2024-08-12 03:26:13 +0200Square(~Square@user/square) (Ping timeout: 248 seconds)
2024-08-12 03:27:39 +0200starburst(~starburst@2601:602:480:9390:d6d2:52ff:fed8:1599) (Client Quit)
2024-08-12 03:34:36 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-08-12 04:10:18 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-08-12 04:10:32 +0200euleritian(~euleritia@dynamic-176-007-159-197.176.7.pool.telefonica.de)
2024-08-12 04:19:07 +0200ZharMeny(~user@user/ZharMeny) (Quit: ()
2024-08-12 04:26:03 +0200td_(~td@i5387091D.versanet.de) (Ping timeout: 252 seconds)
2024-08-12 04:28:00 +0200td_(~td@i5387090C.versanet.de)
2024-08-12 04:35:42 +0200euleritian(~euleritia@dynamic-176-007-159-197.176.7.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-08-12 04:37:48 +0200euleritian(~euleritia@dynamic-176-007-159-197.176.7.pool.telefonica.de)
2024-08-12 04:42:08 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 255 seconds)
2024-08-12 04:47:11 +0200dysthesis(~dysthesis@user/dysthesis)
2024-08-12 04:47:22 +0200spew(~spew@201.141.102.132)
2024-08-12 04:55:49 +0200tomku(~tomku@user/tomku) (Ping timeout: 248 seconds)
2024-08-12 04:56:02 +0200tomku(~tomku@user/tomku)
2024-08-12 05:11:44 +0200euleritian(~euleritia@dynamic-176-007-159-197.176.7.pool.telefonica.de) (Ping timeout: 272 seconds)
2024-08-12 05:12:26 +0200euleritian(~euleritia@dynamic-176-000-157-209.176.0.pool.telefonica.de)
2024-08-12 05:13:00 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
2024-08-12 05:13:03 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2024-08-12 05:14:24 +0200Lord_of_Life_Lord_of_Life
2024-08-12 05:18:13 +0200dysthesis(~dysthesis@user/dysthesis) (Quit: WeeChat 4.3.5)
2024-08-12 05:25:25 +0200ddellacosta(~ddellacos@ool-44c73b99.dyn.optonline.net)
2024-08-12 05:26:39 +0200fp(~fp@156.251.248.134) ()
2024-08-12 05:31:12 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com)
2024-08-12 05:38:40 +0200euleritian(~euleritia@dynamic-176-000-157-209.176.0.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-08-12 05:39:22 +0200euleritian(~euleritia@dynamic-176-004-137-229.176.4.pool.telefonica.de)
2024-08-12 05:39:44 +0200spew(~spew@201.141.102.132) (Quit: spew)
2024-08-12 05:50:23 +0200euleritian(~euleritia@dynamic-176-004-137-229.176.4.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-08-12 05:51:27 +0200euleritian(~euleritia@dynamic-176-000-009-143.176.0.pool.telefonica.de)
2024-08-12 05:53:25 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 248 seconds)
2024-08-12 05:57:05 +0200aforemny_(~aforemny@2001:9e8:6cef:5a00:2895:51b4:d10f:29a8)
2024-08-12 05:58:05 +0200aforemny(~aforemny@2001:9e8:6ccb:c300:522d:c042:a9ff:c506) (Ping timeout: 252 seconds)
2024-08-12 05:58:52 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net)
2024-08-12 06:07:49 +0200ethantwardy(user@user/ethantwardy) (Ping timeout: 248 seconds)
2024-08-12 06:08:13 +0200ethantwardy(user@user/ethantwardy)
2024-08-12 06:12:02 +0200ddellacosta(~ddellacos@ool-44c73b99.dyn.optonline.net) (Ping timeout: 258 seconds)
2024-08-12 06:13:11 +0200ddellacosta(~ddellacos@ool-44c73b99.dyn.optonline.net)
2024-08-12 06:15:26 +0200dysthesis(~dysthesis@user/dysthesis)
2024-08-12 06:19:21 +0200ddellacosta(~ddellacos@ool-44c73b99.dyn.optonline.net) (Ping timeout: 252 seconds)
2024-08-12 06:19:44 +0200ddellacosta(~ddellacos@ool-44c73b99.dyn.optonline.net)
2024-08-12 06:20:40 +0200dysthesi1(~dysthesis@user/dysthesis)
2024-08-12 06:20:47 +0200dysthesis(~dysthesis@user/dysthesis) (Quit: WeeChat 4.3.5)
2024-08-12 06:20:49 +0200dysthesi1(~dysthesis@user/dysthesis) (Client Quit)
2024-08-12 06:21:02 +0200dysthesis(~dysthesis@user/dysthesis)
2024-08-12 06:21:32 +0200dysthesis(~dysthesis@user/dysthesis) (Client Quit)
2024-08-12 06:22:10 +0200neuroevolutus(~neuroevol@206.217.206.90)
2024-08-12 06:26:46 +0200zmt00(~zmt00@user/zmt00)
2024-08-12 06:29:37 +0200swamp_(~zmt00@user/zmt00) (Ping timeout: 248 seconds)
2024-08-12 06:49:03 +0200dolio(~dolio@130.44.140.168) (Quit: ZNC 1.8.2 - https://znc.in)
2024-08-12 06:52:55 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 264 seconds)
2024-08-12 06:54:34 +0200tomku(~tomku@user/tomku) (Ping timeout: 260 seconds)
2024-08-12 06:54:48 +0200tomku(~tomku@user/tomku)
2024-08-12 06:56:41 +0200dolio(~dolio@130.44.140.168)
2024-08-12 06:59:23 +0200Inst(~Inst@user/Inst) (Ping timeout: 255 seconds)
2024-08-12 07:02:45 +0200tabemann_(~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection)
2024-08-12 07:03:23 +0200tabemann_(~tabemann@2600:1700:7990:24e0:c5ab:f023:302e:c870)
2024-08-12 07:07:01 +0200euleritian(~euleritia@dynamic-176-000-009-143.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-08-12 07:07:16 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-08-12 07:08:30 +0200Inst(~Inst@user/Inst)
2024-08-12 07:10:04 +0200michalz(~michalz@185.246.207.197)
2024-08-12 07:14:38 +0200oo_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 +0200dsrt^(dsrt@c-98-242-74-66.hsd1.ga.comcast.net) (Ping timeout: 272 seconds)
2024-08-12 07:20:04 +0200ddellacosta(~ddellacos@ool-44c73b99.dyn.optonline.net) (Ping timeout: 260 seconds)
2024-08-12 07:20:25 +0200ddellacosta(~ddellacos@ool-44c73b99.dyn.optonline.net)
2024-08-12 07:28:34 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-08-12 07:30:04 +0200Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-08-12 07:32:28 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2024-08-12 07:33:32 +0200euleritian(~euleritia@dynamic-176-000-009-143.176.0.pool.telefonica.de)
2024-08-12 07:33:41 +0200xdminsy(~xdminsy@117.147.71.180) (Ping timeout: 248 seconds)
2024-08-12 07:34:03 +0200xdminsy(~xdminsy@117.147.71.180)
2024-08-12 07:36:11 +0200xdminsy(~xdminsy@117.147.71.180) (Client Quit)
2024-08-12 07:41:12 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
2024-08-12 07:43:17 +0200tomku(~tomku@user/tomku) (Ping timeout: 248 seconds)
2024-08-12 07:43:31 +0200tomku(~tomku@user/tomku)
2024-08-12 07:46:16 +0200rvalue-(~rvalue@user/rvalue)
2024-08-12 07:46:49 +0200rvalue(~rvalue@user/rvalue) (Ping timeout: 265 seconds)
2024-08-12 07:50:01 +0200CiaoSen(~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da)
2024-08-12 07:50:22 +0200rvalue-rvalue
2024-08-12 08:04:01 +0200euphores(~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 +0200dysthesis(~dysthesis@user/dysthesis)
2024-08-12 08:08:37 +0200euphores(~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 +0200neuroevolutus(~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 +0200Raito_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 +0200lol_(~lol@2603:3016:1e01:b980:2886:e337:fa1b:385a)
2024-08-12 08:55:29 +0200zmt01(~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 +0200h2t(~h2t@user/h2t) (Ping timeout: 260 seconds)
2024-08-12 08:57:29 +0200delyan_(sid523379@id-523379.hampstead.irccloud.com) (Ping timeout: 260 seconds)
2024-08-12 08:57:29 +0200sa1(sid7690@id-7690.ilkley.irccloud.com) (Ping timeout: 260 seconds)
2024-08-12 08:57:29 +0200jonrh(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 +0200h2t(~h2t@user/h2t)
2024-08-12 08:57:54 +0200Hobbyboy|BNC(Hobbyboy@hobbyboy.co.uk)
2024-08-12 08:58:04 +0200Hobbyboy(Hobbyboy@hobbyboy.co.uk) (Ping timeout: 260 seconds)
2024-08-12 08:58:04 +0200bjs(sid190364@user/bjs) (Ping timeout: 260 seconds)
2024-08-12 08:58:04 +0200gmc(sid58314@id-58314.ilkley.irccloud.com) (Ping timeout: 260 seconds)
2024-08-12 08:58:05 +0200bsima-(~bsima@2604:a880:400:d0::19f1:7001)
2024-08-12 08:58:39 +0200CiaoSen(~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) (Ping timeout: 260 seconds)
2024-08-12 08:58:39 +0200zmt00(~zmt00@user/zmt00) (Ping timeout: 260 seconds)
2024-08-12 08:58:39 +0200jcarpenter2(~lol@2603:3016:1e01:b980:dd5c:a977:63e6:618d) (Ping timeout: 260 seconds)
2024-08-12 08:58:39 +0200nisstyre(wes@user/nisstyre) (Ping timeout: 260 seconds)
2024-08-12 08:58:39 +0200hadronized(~phaazon@2001:41d0:a:fe76::1) (Ping timeout: 260 seconds)
2024-08-12 08:58:39 +0200landonf(landonf@mac68k.info) (Ping timeout: 260 seconds)
2024-08-12 08:58:39 +0200NemesisD(sid24071@id-24071.lymington.irccloud.com) (Ping timeout: 260 seconds)
2024-08-12 08:58:39 +0200integral(sid296274@user/integral) (Ping timeout: 260 seconds)
2024-08-12 08:58:39 +0200bsima(~bsima@2604:a880:400:d0::19f1:7001) (Ping timeout: 260 seconds)
2024-08-12 08:58:39 +0200nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Ping timeout: 260 seconds)
2024-08-12 08:59:13 +0200beaky_(~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 +0200liskin(~liskin@xmonad/liskin) (Ping timeout: 260 seconds)
2024-08-12 08:59:14 +0200mal1(~mal@ns2.wyrd.be) (Ping timeout: 260 seconds)
2024-08-12 08:59:14 +0200beaky(~beaky@2a03:b0c0:0:1010::1e:a001) (Ping timeout: 260 seconds)
2024-08-12 08:59:14 +0200welterde(welterde@thinkbase.srv.welterde.de) (Ping timeout: 260 seconds)
2024-08-12 09:00:13 +0200delyan_(sid523379@id-523379.hampstead.irccloud.com)
2024-08-12 09:00:18 +0200bjs(sid190364@user/bjs)
2024-08-12 09:00:19 +0200integral(sid296274@user/integral)
2024-08-12 09:00:19 +0200jonrh(sid5185@id-5185.ilkley.irccloud.com)
2024-08-12 09:00:30 +0200NemesisD(sid24071@id-24071.lymington.irccloud.com)
2024-08-12 09:00:32 +0200nshepperd(nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
2024-08-12 09:00:35 +0200phaazon(~phaazon@2001:41d0:a:fe76::1)
2024-08-12 09:00:37 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-12 09:00:43 +0200liskin(~liskin@xmonad/liskin)
2024-08-12 09:00:48 +0200[_________](~oos95GWG@user/oos95GWG)
2024-08-12 09:00:49 +0200mal1(~mal@ns2.wyrd.be)
2024-08-12 09:00:53 +0200gmc(sid58314@id-58314.ilkley.irccloud.com)
2024-08-12 09:02:14 +0200Hobbyboy|BNCHobbyboy
2024-08-12 09:03:45 +0200landonf(landonf@mac68k.info)
2024-08-12 09:06:56 +0200alexherbo2(~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net)
2024-08-12 09:07:58 +0200CiaoSen(~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da)
2024-08-12 09:11:36 +0200nisstyre(wes@user/nisstyre)
2024-08-12 09:12:28 +0200sa1(sid7690@id-7690.ilkley.irccloud.com)
2024-08-12 09:12:42 +0200welterde(welterde@thinkbase.srv.welterde.de)
2024-08-12 09:17:58 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4)
2024-08-12 09:21:05 +0200euleritian(~euleritia@dynamic-176-000-009-143.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-08-12 09:21:22 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-08-12 09:25:27 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-08-12 09:39:12 +0200misterfish(~misterfis@22.1-12-147.kabelnoord.net)
2024-08-12 09:41:26 +0200bailsman(~Mm1@revspace/participant/bailsman) (WeeChat 1.9.1)
2024-08-12 09:44:30 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-08-12 09:50:11 +0200danse-nr3(~danse-nr3@user/danse-nr3) (Quit: on the move)
2024-08-12 09:51:29 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2024-08-12 09:54:08 +0200dysthesis(~dysthesis@user/dysthesis) (Remote host closed the connection)
2024-08-12 09:54:42 +0200dysthesis(~dysthesis@user/dysthesis)
2024-08-12 09:55:57 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net)
2024-08-12 10:02:34 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-12 10:10:01 +0200lxsameer(~lxsameer@Serene/lxsameer)
2024-08-12 10:10:18 +0200acidjnk_new3(~acidjnk@p200300d6e72cfb650c5b23d5a7eb2b97.dip0.t-ipconnect.de)
2024-08-12 10:14:11 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-08-12 10:15:11 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2024-08-12 10:17:38 +0200cfricke(~cfricke@user/cfricke)
2024-08-12 10:30:14 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 260 seconds)
2024-08-12 10:31:58 +0200cfricke(~cfricke@user/cfricke)
2024-08-12 10:32:31 +0200dysthesis(~dysthesis@user/dysthesis) (Ping timeout: 260 seconds)
2024-08-12 10:34:23 +0200gehmehgeh(~user@user/gehmehgeh)
2024-08-12 10:34:42 +0200gehmehgehgmg
2024-08-12 10:39:30 +0200chele(~chele@user/chele)
2024-08-12 10:43:04 +0200alexherbo2(~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) (Remote host closed the connection)
2024-08-12 10:43:24 +0200alexherbo2(~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net)
2024-08-12 10:45:06 +0200danse-nr3(~danse-nr3@user/danse-nr3) (Ping timeout: 248 seconds)
2024-08-12 10:52:37 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-08-12 11:01:47 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-12 11:05:32 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 255 seconds)
2024-08-12 11:10:59 +0200sawilagar(~sawilagar@user/sawilagar)
2024-08-12 11:25:28 +0200JuanDaugherty(~juan@user/JuanDaugherty)
2024-08-12 11:28:43 +0200alexherbo2(~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) (Remote host closed the connection)
2024-08-12 11:29:02 +0200alexherbo2(~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net)
2024-08-12 11:29:26 +0200ZharMeny(~user@user/ZharMeny)
2024-08-12 11:29:50 +0200danse-nr3(~danse-nr3@user/danse-nr3) (Ping timeout: 255 seconds)
2024-08-12 11:31:41 +0200hseg(~gesh@46.120.21.97)
2024-08-12 11:41:24 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 252 seconds)
2024-08-12 11:42:44 +0200dysthesis(~dysthesis@user/dysthesis)
2024-08-12 11:56:16 +0200CiaoSen(~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) (Ping timeout: 258 seconds)
2024-08-12 12:02:30 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-08-12 12:07:04 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2024-08-12 12:09:07 +0200euphores(~SASL_euph@user/euphores) (Ping timeout: 264 seconds)
2024-08-12 12:15:09 +0200euphores(~SASL_euph@user/euphores)
2024-08-12 12:16:11 +0200hayk(~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 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-08-12 12:26:24 +0200Raito_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 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-08-12 12:27:55 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2024-08-12 12:29:33 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
2024-08-12 12:43:24 +0200alexherbo2(~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) (Remote host closed the connection)
2024-08-12 12:43:44 +0200alexherbo2(~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net)
2024-08-12 12:45:31 +0200Raito_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 +0200Raito_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 +0200acidjnk_new3(~acidjnk@p200300d6e72cfb650c5b23d5a7eb2b97.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
2024-08-12 12:47:01 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-08-12 12:47:46 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2024-08-12 12:48:25 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-08-12 12:49:45 +0200cfricke(~cfricke@user/cfricke)
2024-08-12 12:52:47 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2024-08-12 12:55:20 +0200acidjnk_new3(~acidjnk@p200300d6e72cfb65b49b2612b9f25dee.dip0.t-ipconnect.de)
2024-08-12 12:57:56 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-08-12 13:00:05 +0200acidjnk_new3(~acidjnk@p200300d6e72cfb65b49b2612b9f25dee.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
2024-08-12 13:00:55 +0200m5zs7k(aquares@web10.mydevil.net) (Ping timeout: 244 seconds)
2024-08-12 13:01:33 +0200Din(~Din@201.20.110.242)
2024-08-12 13:01:38 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Client Quit)
2024-08-12 13:01:56 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-08-12 13:02:26 +0200Din(~Din@201.20.110.242) (Client Quit)
2024-08-12 13:02:51 +0200m5zs7k(aquares@web10.mydevil.net)
2024-08-12 13:10:24 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 252 seconds)
2024-08-12 13:13:00 +0200lortabac(~lortabac@88-125-6-227.subs.proxad.net)
2024-08-12 13:17:41 +0200CiaoSen(~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da)
2024-08-12 13:21:06 +0200dysthesis(~dysthesis@user/dysthesis) (Ping timeout: 260 seconds)
2024-08-12 13:22:55 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-08-12 13:23:40 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded)
2024-08-12 13:24:09 +0200Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2024-08-12 13:30:55 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-08-12 13:31:12 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-08-12 13:31:32 +0200alexherbo2(~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) (Remote host closed the connection)
2024-08-12 13:31:52 +0200alexherbo2(~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net)
2024-08-12 13:32:14 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds)
2024-08-12 13:33:34 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Client Quit)
2024-08-12 13:33:50 +0200ephilalethes(~noumenon@113.51-175-156.customer.lyse.net)
2024-08-12 13:34:23 +0200ephilalethes(~noumenon@113.51-175-156.customer.lyse.net) (Client Quit)
2024-08-12 13:38:43 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-08-12 13:41:16 +0200Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2024-08-12 13:47:48 +0200rvalue(~rvalue@user/rvalue) (Ping timeout: 252 seconds)
2024-08-12 14:00:44 +0200rvalue(~rvalue@user/rvalue)
2024-08-12 14:01:31 +0200phaazonhadronized
2024-08-12 14:03:26 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-12 14:04:40 +0200tomku(~tomku@user/tomku) (Ping timeout: 252 seconds)
2024-08-12 14:04:54 +0200tomku(~tomku@user/tomku)
2024-08-12 14:08:10 +0200ddellacosta(~ddellacos@ool-44c73b99.dyn.optonline.net) (Ping timeout: 272 seconds)
2024-08-12 14:08:42 +0200pkal(~pkal@2a01:4f8:1c1b:a321::1)
2024-08-12 14:09:49 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-08-12 14:14:54 +0200danse-nr3(~danse-nr3@user/danse-nr3) (Quit: lunch)
2024-08-12 14:16:21 +0200misterfish(~misterfis@22.1-12-147.kabelnoord.net) (Ping timeout: 244 seconds)
2024-08-12 14:23:44 +0200kuribas(~user@ptr-17d51em4eigy5w8x89o.18120a2.ip6.access.telenet.be)
2024-08-12 14:31:38 +0200Square3(~Square4@user/square)
2024-08-12 14:50:26 +0200misterfish(~misterfis@22.1-12-147.kabelnoord.net)
2024-08-12 14:55:47 +0200Digitteknohippie(~user@user/digit)
2024-08-12 14:56:26 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-12 14:56:31 +0200Digit(~user@user/digit) (Ping timeout: 264 seconds)
2024-08-12 15:10:37 +0200CiaoSen(~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) (Ping timeout: 258 seconds)
2024-08-12 15:11:47 +0200DigitteknohippieDigit
2024-08-12 15:12:43 +0200caubert(~caubert@user/caubert) (Ping timeout: 264 seconds)
2024-08-12 15:12:46 +0200danse-nr3(~danse-nr3@user/danse-nr3) (Quit: power)
2024-08-12 15:14:06 +0200caubert(~caubert@user/caubert)
2024-08-12 15:17:21 +0200CrunchyFlakes(~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-08-12 15:19:45 +0200CrunchyFlakes(~CrunchyFl@146.52.130.128)
2024-08-12 15:22:18 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-12 15:24:14 +0200xelxebar_(~xelxebar@wilsonb.com)
2024-08-12 15:24:33 +0200xelxebar(~xelxebar@wilsonb.com) (Ping timeout: 244 seconds)
2024-08-12 15:27:55 +0200jrm(~jrm@user/jrm) (Read error: Connection reset by peer)
2024-08-12 15:28:13 +0200jrm(~jrm@user/jrm)
2024-08-12 15:29:22 +0200pointlessslippe1(~pointless@212.82.82.3) (Ping timeout: 265 seconds)
2024-08-12 15:31:39 +0200pointlessslippe1(~pointless@212.82.82.3)
2024-08-12 15:39:32 +0200hayk(~hayk@37.252.90.243) (Quit: hayk)
2024-08-12 15:44:36 +0200Guest25(~Guest25@user-5-173-144-2.play-internet.pl)
2024-08-12 15:44:41 +0200Guest25(~Guest25@user-5-173-144-2.play-internet.pl) (Client Quit)
2024-08-12 15:44:55 +0200Guest25(~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 +0200Guest25(~Guest25@user-5-173-144-2.play-internet.pl) (Quit: Client closed)
2024-08-12 15:52:11 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
2024-08-12 15:58:29 +0200L29Ah(~L29Ah@wikipedia/L29Ah) (Read error: Connection timed out)
2024-08-12 15:59:37 +0200ZharMeny(~user@user/ZharMeny) (Read error: Connection reset by peer)
2024-08-12 16:00:43 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2024-08-12 16:02:03 +0200lortabac(~lortabac@88-125-6-227.subs.proxad.net) (Quit: WeeChat 4.2.2)
2024-08-12 16:02:29 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 248 seconds)
2024-08-12 16:05:19 +0200euleritian(~euleritia@dynamic-176-006-145-119.176.6.pool.telefonica.de)
2024-08-12 16:05:36 +0200JuanDaugherty(~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 +0200ZharMeny(~user@user/ZharMeny)
2024-08-12 16:18:05 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net)
2024-08-12 16:27:00 +0200danse-221(~danse-nr3@user/danse-nr3)
2024-08-12 16:29:05 +0200danse-nr3(~danse-nr3@user/danse-nr3) (Ping timeout: 248 seconds)
2024-08-12 16:39:29 +0200L29Ah(~L29Ah@wikipedia/L29Ah)
2024-08-12 16:39:58 +0200Square(~Square@user/square)
2024-08-12 16:41:51 +0200euleritian(~euleritia@dynamic-176-006-145-119.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
2024-08-12 16:42:08 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-08-12 16:43:20 +0200Square3(~Square4@user/square) (Ping timeout: 272 seconds)
2024-08-12 16:49:55 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2024-08-12 16:50:31 +0200cheater(~Username@user/cheater) (Ping timeout: 264 seconds)
2024-08-12 16:53:16 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-08-12 16:57:25 +0200ZharMeny(~user@user/ZharMeny) (Ping timeout: 248 seconds)
2024-08-12 17:01:04 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 260 seconds)
2024-08-12 17:02:15 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2024-08-12 17:06:13 +0200ZharMeny(~user@user/ZharMeny)
2024-08-12 17:08:31 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-08-12 17:14:29 +0200misterfish(~misterfis@22.1-12-147.kabelnoord.net) (Ping timeout: 260 seconds)
2024-08-12 17:31:29 +0200danse-221is developing with `undefined` today
2024-08-12 17:35:41 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2024-08-12 17:36:18 +0200sord937(~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 +0200chele(~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 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 260 seconds)
2024-08-12 18:13:33 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds)
2024-08-12 18:19:53 +0200kuribas(~user@ptr-17d51em4eigy5w8x89o.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
2024-08-12 18:20:59 +0200hseg(~gesh@46.120.21.97) (Ping timeout: 260 seconds)
2024-08-12 18:29:31 +0200Square3(~Square4@user/square)
2024-08-12 18:32:42 +0200Square(~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 +0200alexherbo2(~alexherbo@2a02-8440-320d-0f2a-203f-04a9-9365-acfd.rev.sfr.net) (Remote host closed the connection)
2024-08-12 18:43:26 +0200danse-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 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-08-12 19:02:44 +0200tremon(~tremon@83.80.159.219)
2024-08-12 19:05:32 +0200danse-nr3(~danse-nr3@user/danse-nr3)
2024-08-12 19:14:46 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-08-12 19:16:55 +0200Guest54(~Guest54@ip-046-005-000-201.um12.pools.vodafone-ip.de)
2024-08-12 19:17:01 +0200Guest54(~Guest54@ip-046-005-000-201.um12.pools.vodafone-ip.de) (Client Quit)
2024-08-12 19:17:26 +0200Guest54(~Guest54@ip-046-005-000-201.um12.pools.vodafone-ip.de)
2024-08-12 19:17:27 +0200Guest54(~Guest54@ip-046-005-000-201.um12.pools.vodafone-ip.de) ()
2024-08-12 19:28:01 +0200ss4(~wootehfoo@user/wootehfoot)
2024-08-12 19:29:13 +0200Guest25(~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 +0200Fijxu_(~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 +0200Fijxu(~Fijxu@user/fijxu)
2024-08-12 19:34:36 +0200Guest25(~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 +0200cfricke(~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 +0200danse-nr3shrugs
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 +0200acidjnk_new3(~acidjnk@p200300d6e72cfb65b0b5f270b6019fe0.dip0.t-ipconnect.de)
2024-08-12 20:00:47 +0200misterfish(~misterfis@22.1-12-147.kabelnoord.net)
2024-08-12 20:05:24 +0200lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 258 seconds)
2024-08-12 20:07:19 +0200lxsameer(lxsameer@Serene/lxsameer)
2024-08-12 20:15:25 +0200target_i(~target_i@user/target-i/x-6023099)
2024-08-12 20:17:33 +0200danse-nr3(~danse-nr3@user/danse-nr3) ()
2024-08-12 20:22:19 +0200driib3(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2024-08-12 20:27:34 +0200neuroevolutus(~neuroevol@146.70.211.135)
2024-08-12 20:31:23 +0200driib3(~driib@vmi931078.contaboserver.net)
2024-08-12 20:33:40 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 4.2.2)
2024-08-12 20:35:03 +0200neuroevolutus(~neuroevol@146.70.211.135) (Ping timeout: 256 seconds)
2024-08-12 20:40:36 +0200vgtw(~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 +0200CiaoSen(~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da)
2024-08-12 20:45:53 +0200driib3(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2024-08-12 20:46:19 +0200Fischmiep(~Fischmiep@user/Fischmiep) (Remote host closed the connection)
2024-08-12 20:47:14 +0200Fischmiep(~Fischmiep@user/Fischmiep)
2024-08-12 20:48:16 +0200driib3(~driib@vmi931078.contaboserver.net)
2024-08-12 20:51:38 +0200segfaultfizzbuzz(~segfaultf@23-93-79-84.fiber.dynamic.sonic.net)
2024-08-12 20:55:19 +0200ZharMeny(~user@user/ZharMeny) (Ping timeout: 264 seconds)
2024-08-12 20:57:37 +0200hseg(~gesh@46.120.21.97)
2024-08-12 21:00:00 +0200vgtw(~vgtw@user/vgtw)
2024-08-12 21:00:24 +0200neuroevolutus(~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 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-08-12 21:05:10 +0200ZharMeny(~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 +0200lortabac(~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 +0200segfaultfizzbuzz(~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
2024-08-12 21:13:40 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-08-12 21:18:07 +0200neuroevolutus(~neuroevol@37.19.200.148) (Ping timeout: 256 seconds)
2024-08-12 21:22:19 +0200hseg(~gesh@46.120.21.97) (Quit: WeeChat 4.3.5)
2024-08-12 21:23:54 +0200neuroevolutus(~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 +0200CiaoSen(~Jura@2a05:5800:241:5b00:ca4b:d6ff:fec1:99da) (Ping timeout: 248 seconds)
2024-08-12 21:39:16 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net)
2024-08-12 21:40:00 +0200zrubi(~halloy540@147.235.212.157)
2024-08-12 21:41:07 +0200sord937(~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 +0200ezzieygu1wuf(~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 +0200ezzieyguywuf(~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 +0200lortabac(~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 +0200lbseale_(~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 +0200lbseale(~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 +0200alexherbo2(~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 +0200lxsameer(lxsameer@Serene/lxsameer) (Ping timeout: 264 seconds)
2024-08-12 22:18:53 +0200dysthesis(~dysthesis@user/dysthesis)
2024-08-12 22:25:16 +0200sawilagar_(~sawilagar@user/sawilagar)
2024-08-12 22:27:44 +0200sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 260 seconds)
2024-08-12 22:54:39 +0200Batzy(~quassel@user/batzy)
2024-08-12 22:55:24 +0200rdcdr(~rdcdr@user/rdcdr)
2024-08-12 22:55:36 +0200rdcdr_(~rdcdr@75-172-30-214.tukw.qwest.net) (Ping timeout: 244 seconds)
2024-08-12 22:57:28 +0200neuroevolutus(~neuroevol@37.19.200.148) (Quit: Client closed)
2024-08-12 22:59:19 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-08-12 22:59:44 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2024-08-12 23:04:38 +0200ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-08-12 23:04:57 +0200ChaiTRex(~ChaiTRex@user/chaitrex)
2024-08-12 23:10:41 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-08-12 23:11:31 +0200cheater(~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 +0200peterbecich(~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 +0200dyniec(~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 +0200michalz(~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 +0200chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2024-08-12 23:34:12 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-08-12 23:34:44 +0200FinnElija(~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 +0200chiselfuse(~chiselfus@user/chiselfuse)
2024-08-12 23:35:39 +0200ZharMeny(~user@user/ZharMeny) (Remote host closed the connection)
2024-08-12 23:35:52 +0200ZharMeny(~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 +0200acidjnk_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 +0200Ellenor(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 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)