2021-12-14 00:00:55 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2021-12-14 00:02:13 +0100 | kranius_ | (~kranius@222.186.245.213.rev.sfr.net) (Read error: Connection reset by peer) |
2021-12-14 00:02:27 +0100 | kranius_ | (~kranius@222.186.245.213.rev.sfr.net) |
2021-12-14 00:03:18 +0100 | alx741 | (~alx741@181.199.42.79) |
2021-12-14 00:03:28 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 268 seconds) |
2021-12-14 00:04:05 +0100 | slowtyper | (~slowtyper@user/slowtyper) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-14 00:04:21 +0100 | slowtyper | (~slowtyper@user/slowtyper) |
2021-12-14 00:04:58 +0100 | kranius_ | (~kranius@222.186.245.213.rev.sfr.net) (Read error: Connection reset by peer) |
2021-12-14 00:05:15 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2021-12-14 00:05:30 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-14 00:05:46 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-12-14 00:06:11 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-14 00:06:59 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 250 seconds) |
2021-12-14 00:07:27 +0100 | kranius_ | (~kranius@222.186.245.213.rev.sfr.net) |
2021-12-14 00:10:43 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2021-12-14 00:11:31 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Quit: Leaving) |
2021-12-14 00:12:49 +0100 | <jackdk> | Axman6/dibblego: did you read that big ol' snippet I posted? I'm thinking of giving up mocking and splitting `MonadAmazonka` into `Monad m => MonadAmazonka m => MonadAmazonkaPager m`, where `MonadAmazonkaPager` provides the `paginate`/`paginateEither` operations; this makes `MonadAmazonka` GND-able |
2021-12-14 00:14:16 +0100 | <jackdk> | For practical use, people are gonna need `askEnv` and `localEnv`, which essentially locks the class to implementation details of `AmazonkaT` anyway |
2021-12-14 00:14:35 +0100 | dmenz | (~dmenz@2804:14d:5cd4:5e94::1) (Ping timeout: 268 seconds) |
2021-12-14 00:15:04 +0100 | <geekosaur> | @tell BrokenClutch if you're looking for source code, you can start with xmonad and then move on to xmonad-contrib (most modules within being self-contained) |
2021-12-14 00:15:04 +0100 | <lambdabot> | Consider it noted. |
2021-12-14 00:15:19 +0100 | emf | (~emf@2600:1700:841:cc20:184c:c9e0:41bd:a50) |
2021-12-14 00:16:23 +0100 | <dibblego> | haven't had a chance sorry mate, will do it |
2021-12-14 00:18:12 +0100 | alx741 | (~alx741@181.199.42.79) (Read error: Connection reset by peer) |
2021-12-14 00:18:17 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-14 00:18:35 +0100 | <jackdk> | Everyone wants a new release, nobody wants to pick up a shovel and help dig |
2021-12-14 00:18:49 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 00:18:50 +0100 | emf_ | (~emf@2620:10d:c091:480::1:e5d2) |
2021-12-14 00:19:00 +0100 | <jackdk> | (I know you're not in the amazonkaverse, but it's more of a general vent) |
2021-12-14 00:19:35 +0100 | emf | (~emf@2600:1700:841:cc20:184c:c9e0:41bd:a50) (Ping timeout: 252 seconds) |
2021-12-14 00:20:08 +0100 | pfurla | (~pfurla@177.25.178.222) (Ping timeout: 268 seconds) |
2021-12-14 00:20:53 +0100 | <geekosaur> | isn't that how it usually goes? |
2021-12-14 00:21:16 +0100 | <jackdk> | I guess |
2021-12-14 00:22:47 +0100 | nfd | (~nfd@user/nfd) (Ping timeout: 250 seconds) |
2021-12-14 00:24:16 +0100 | psygate | (~psygate@user/psygate) (Quit: Leaving) |
2021-12-14 00:26:21 +0100 | nvmd | (~nvmd@user/nvmd) (Quit: Later, nerds.) |
2021-12-14 00:26:34 +0100 | nvmd | (~nvmd@user/nvmd) |
2021-12-14 00:29:58 +0100 | cheater | (~Username@user/cheater) |
2021-12-14 00:31:15 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 250 seconds) |
2021-12-14 00:31:16 +0100 | <zero> | > length [0,1,2,undefined,7,8,9] |
2021-12-14 00:31:18 +0100 | <lambdabot> | 7 |
2021-12-14 00:31:49 +0100 | <dibblego> | just got an exam on Friday, so that's my spare time atm |
2021-12-14 00:32:29 +0100 | pfurla | (~pfurla@177.25.178.222) |
2021-12-14 00:32:33 +0100 | <zero> | > [0,1,2,undefined,7,8,9] !! 4 |
2021-12-14 00:32:34 +0100 | <lambdabot> | 7 |
2021-12-14 00:32:37 +0100 | <zero> | > [0,1,2,undefined,7,8,9] !! 3 |
2021-12-14 00:32:39 +0100 | <lambdabot> | *Exception: Prelude.undefined |
2021-12-14 00:33:37 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-12-14 00:33:42 +0100 | kranius_ | (~kranius@222.186.245.213.rev.sfr.net) (Ping timeout: 268 seconds) |
2021-12-14 00:33:53 +0100 | cosimone | (~user@93-47-228-207.ip115.fastwebnet.it) (Ping timeout: 252 seconds) |
2021-12-14 00:34:50 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Remote host closed the connection) |
2021-12-14 00:34:54 +0100 | <zero> | is this because Cons is the head in WHNF ? |
2021-12-14 00:35:02 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) |
2021-12-14 00:35:10 +0100 | <zero> | (Cons = (:)) |
2021-12-14 00:35:15 +0100 | acidsys | (~LSD@2.lsd.systems) (Quit: I love you.) |
2021-12-14 00:35:36 +0100 | <geekosaur> | yes, or put otherwise they only access the spine of the list, not the values |
2021-12-14 00:35:41 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 00:35:48 +0100 | acidsys | (~LSD@2.lsd.systems) |
2021-12-14 00:35:52 +0100 | <zero> | all right |
2021-12-14 00:36:19 +0100 | <geekosaur> | in fact !! doesn't touch the value either, it's MuEval's attempt to print it afterward that throws the exception |
2021-12-14 00:36:29 +0100 | <dibblego> | > length [[0,1,2,undefined,7,8,9] !! 3] |
2021-12-14 00:36:31 +0100 | <lambdabot> | 1 |
2021-12-14 00:36:39 +0100 | <c_wraith> | put yet another way: evaluating either argument to (:) doesn't cause any evaluation of the other. |
2021-12-14 00:36:56 +0100 | <EvanR> | > [0, 1, 2, let x = x in x, 3, 4] !! 4 |
2021-12-14 00:36:58 +0100 | <lambdabot> | 3 |
2021-12-14 00:37:35 +0100 | <EvanR> | now we know it's not being touched, as opposed to hiding an exception |
2021-12-14 00:37:57 +0100 | teo | (~teo@user/teo) (Ping timeout: 250 seconds) |
2021-12-14 00:38:43 +0100 | <EvanR> | haskell is such a safe language, just by touching values you may explode, freeze |
2021-12-14 00:39:54 +0100 | <zero> | nice |
2021-12-14 00:40:53 +0100 | <zero> | that reminded me of a beautiful poem by Robert Frost |
2021-12-14 00:40:53 +0100 | <jackdk> | dibblego: I am happy with how I've decided to do things (single typeclass with a haddock note for people writing their own instances), so if you don't get to weigh in, that's cool |
2021-12-14 00:41:05 +0100 | <dibblego> | ok |
2021-12-14 00:41:11 +0100 | <xsperry> | is it really better if the freezing happens right away, before the values are even created? |
2021-12-14 00:41:19 +0100 | <xsperry> | as it would in a strict language |
2021-12-14 00:41:32 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 240 seconds) |
2021-12-14 00:41:58 +0100 | <xsperry> | the end result is still a crashing of freezing program |
2021-12-14 00:42:05 +0100 | <zero> | xsperry: if you think it is in a specific context, you can force its evaluatioon |
2021-12-14 00:42:18 +0100 | <xsperry> | s/of/or |
2021-12-14 00:42:39 +0100 | earendel | (uid498179@user/earendel) (Quit: Connection closed for inactivity) |
2021-12-14 00:42:47 +0100 | <xsperry> | zero, I know, I'm just arguing that this wouldn't make it any better or safer, whether done manually or automatically |
2021-12-14 00:43:01 +0100 | <EvanR> | the beauty is when your program doesn't freeze or crash and produces useful results despite bombs and bottoms |
2021-12-14 00:43:24 +0100 | <EvanR> | unlike a strict language |
2021-12-14 00:44:44 +0100 | mdrake | (~bc8147f2@cerf.good1.com) |
2021-12-14 00:45:48 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Read error: Connection reset by peer) |
2021-12-14 00:46:06 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-14 00:46:19 +0100 | d34df00d | (~d34df00d@2600:1700:8c60:3a10::48) (Remote host closed the connection) |
2021-12-14 00:46:36 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-14 00:46:43 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection) |
2021-12-14 00:47:01 +0100 | Jing | (~hedgehog@2604:a840:3::10c8) (Remote host closed the connection) |
2021-12-14 00:47:02 +0100 | <int-e> | c_wraith: more adventures in dumbo octopus land: there are *long* loops: https://paste.debian.net/1223336/ |
2021-12-14 00:47:04 +0100 | <mdrake> | hi. is it ok to upgrade to 9.2.1 if I only care about linux and windows platforms? |
2021-12-14 00:47:25 +0100 | <mdrake> | or is it still too buggy to make the switch |
2021-12-14 00:47:27 +0100 | <zero> | also there's the fact that you can have considerable guarantees that bombs and botoms don't exist |
2021-12-14 00:47:33 +0100 | <c_wraith> | as far as I know, the big issues are only on ARM, yes |
2021-12-14 00:47:54 +0100 | Jing | (~hedgehog@2604:a840:3::10c8) |
2021-12-14 00:48:14 +0100 | <c_wraith> | int-e: dang. that's one hell of a long cycle |
2021-12-14 00:48:38 +0100 | <mdrake> | when can we expect stack to upgrade to 9.2.1? |
2021-12-14 00:49:01 +0100 | nvmd | (~nvmd@user/nvmd) (Quit: Later, nerds.) |
2021-12-14 00:49:02 +0100 | <monochrom> | Laziness enables more abstractions. |
2021-12-14 00:49:18 +0100 | <c_wraith> | I doubt it will. I suspect stack won't upgrade until 9.2.2 |
2021-12-14 00:49:33 +0100 | <mdrake> | :| |
2021-12-14 00:49:47 +0100 | <c_wraith> | because they don't want a stack release labeled "not for use on new MacBooks" |
2021-12-14 00:49:53 +0100 | <zero> | monochrom: i intuitively agree, but may i ask how so? |
2021-12-14 00:50:28 +0100 | <mdrake> | and how far away is 9.2.2, months? half a year? |
2021-12-14 00:50:32 +0100 | <mdrake> | +away |
2021-12-14 00:50:54 +0100 | <c_wraith> | probably not this month, due to the holidays. but I'd hope for January |
2021-12-14 00:51:01 +0100 | <mdrake> | that's not so bad |
2021-12-14 00:51:03 +0100 | <monochrom> | "f x y z = if x>0 then y else z, don't eval z if x>0, don't eval y if x<=0" cannot be user-defined in an eager language. |
2021-12-14 00:52:02 +0100 | <monochrom> | This explains why a lot of control constructs are merely library functions in Haskell, but have to be at the mercy of the language designers in other languages. |
2021-12-14 00:52:22 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2021-12-14 00:52:44 +0100 | <jackdk> | IIRC there's a mean question in SICP about this exact point |
2021-12-14 00:53:36 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 00:54:08 +0100 | <dibblego> | Has anyone ever asked for a strict if/then/else or && [for whatever reason, for whatever language]? |
2021-12-14 00:54:42 +0100 | <EvanR> | your cpu evaluates both sides and cancels the loser when the bool test is ready xD |
2021-12-14 00:54:51 +0100 | <EvanR> | luckily they can't explode (?) |
2021-12-14 00:54:55 +0100 | <hpc> | dibblego: i think people are more likely to ask for "i don't want to care if it is strict or lazy" |
2021-12-14 00:55:06 +0100 | <monochrom> | "cancel explosion" |
2021-12-14 00:55:21 +0100 | <geekosaur> | > zip "abcdefg" [1..] -- try this in a strict language |
2021-12-14 00:55:23 +0100 | <lambdabot> | [('a',1),('b',2),('c',3),('d',4),('e',5),('f',6),('g',7)] |
2021-12-14 00:55:26 +0100 | <mdrake> | strict if isn't even an if, is it? just two blocks of code executed/evaluated |
2021-12-14 00:55:49 +0100 | <geekosaur> | for that matter |
2021-12-14 00:55:53 +0100 | <geekosaur> | > [1..] |
2021-12-14 00:55:54 +0100 | <lambdabot> | [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,... |
2021-12-14 00:56:05 +0100 | <dibblego> | ...with a value |
2021-12-14 00:56:49 +0100 | <mdrake> | I think this is a nicely written article about all the benefits of laziness. http://augustss.blogspot.com/2011/05/more-points-for-lazy-evaluation-in.html |
2021-12-14 00:58:03 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-14 00:59:13 +0100 | <monochrom> | John Hughes's "why FP matters" is also halfly "why laziness matters". Its many examples assume lazy lists. |
2021-12-14 01:01:33 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-14 01:04:48 +0100 | <monochrom> | In eager languages, you can recover half of laziness (the delaying half, but not the memoizing half) by putting the burden on the user. |
2021-12-14 01:05:01 +0100 | bitmapper | (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-14 01:05:59 +0100 | <monochrom> | You can define "f' x y z = if x>0 then y() else z()", now the user has to write like "f' r (\_ -> 1/r) (\_ -> r*2)" instead of "f r (1/r) (r*2)" |
2021-12-14 01:05:59 +0100 | <dsal> | promise is the memoizing bit, right? |
2021-12-14 01:06:07 +0100 | <monochrom> | I don't know promise. |
2021-12-14 01:06:37 +0100 | <dsal> | https://srfi.schemers.org/srfi-155/srfi-155.html |
2021-12-14 01:06:58 +0100 | <dsal> | you explicitly "delay" to get a promise which can later be "force"d |
2021-12-14 01:06:59 +0100 | <monochrom> | I tried to do that in anger when teaching a course that taught that in Racket Scheme. It got old and error prone and painful very quickly. |
2021-12-14 01:06:59 +0100 | <hpc> | usually the memoizing bit is "put it in redis and be very careful how you access it" in practice |
2021-12-14 01:08:07 +0100 | <hpc> | dsal: that's more about side effects than memoizing i thought |
2021-12-14 01:08:29 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 01:08:32 +0100 | <hpc> | so you could reorder IO or potentially not do it at all |
2021-12-14 01:08:39 +0100 | <hpc> | like very manual unsafeInterleaveIO |
2021-12-14 01:09:30 +0100 | <monochrom> | And Lawrence Paulson agrees. In his SML textbook, he also teaches that technique, then finally concedes "this kind of thing is better in Haskell". |
2021-12-14 01:12:09 +0100 | <snake> | besides a tuple and a list are there any other data structures that are like front-line options that aren't like libraries etc |
2021-12-14 01:12:36 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 256 seconds) |
2021-12-14 01:13:45 +0100 | <geekosaur> | I think they're the only wired-in ones. And lists wouldn't be wired-in were it not for the [x,y,z] syntax (as opposed to x:y:z:[]) |
2021-12-14 01:14:13 +0100 | <dsal> | snake: Is there a reason you're looking for "not in libraries"? |
2021-12-14 01:14:26 +0100 | <dsal> | There are some really common ones you'll see from external libraries. |
2021-12-14 01:14:47 +0100 | <snake> | nah i still have no idea what i'm going ngl |
2021-12-14 01:15:03 +0100 | <monochrom> | x:xs is also wired-in syntax. You cannot do your own "import Prelude hiding ((:)); data F a = Nil | Int : F a" |
2021-12-14 01:15:13 +0100 | <dsal> | snake: you won't write much real world code without https://hackage.haskell.org/package/containers |
2021-12-14 01:15:19 +0100 | <glguy> | number literals, string literals, character literals... |
2021-12-14 01:15:28 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-14 01:15:28 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-14 01:15:28 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-14 01:15:30 +0100 | <snake> | ooh |
2021-12-14 01:15:53 +0100 | <snake> | thankyou |
2021-12-14 01:16:01 +0100 | <monochrom> | Then again Integer is usually not considered "data structure". :) |
2021-12-14 01:16:27 +0100 | <dsal> | Integer is a fine data structure with a few functions applied. |
2021-12-14 01:16:38 +0100 | <dsal> | I made an Integer-backed BitSet a few days ago. |
2021-12-14 01:17:04 +0100 | <geekosaur> | unordered-containers is also pretty useful |
2021-12-14 01:17:28 +0100 | <energizer> | https://reasonablypolymorphic.com/blog/higher-kinded-data/ where it says `data Person' f = Person`, does that define `Person` to be something? |
2021-12-14 01:17:28 +0100 | <dsal> | I don't use unordered-containers much. Too much chaos. |
2021-12-14 01:17:48 +0100 | <dsal> | energizer: Looks like Person is a data constructor. |
2021-12-14 01:18:12 +0100 | <geekosaur> | with a phantom type parameter |
2021-12-14 01:18:16 +0100 | <dsal> | Oh, it's a record. You have to look at the next lines. |
2021-12-14 01:18:26 +0100 | <geekosaur> | oh |
2021-12-14 01:18:44 +0100 | <energizer> | yeah sorry didnt know how to typeset that nicely in here :) |
2021-12-14 01:19:36 +0100 | <geekosaur> | better to use a pastebin |
2021-12-14 01:19:39 +0100 | <geekosaur> | @where paste |
2021-12-14 01:19:39 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2021-12-14 01:19:57 +0100 | <energizer> | well i already linked the code i'm talking about |
2021-12-14 01:21:42 +0100 | <geekosaur> | yeh |
2021-12-14 01:22:19 +0100 | Guest19 | (~Guest19@n110-33-34-202.hum1.act.optusnet.com.au) |
2021-12-14 01:22:42 +0100 | Guest19 | (~Guest19@n110-33-34-202.hum1.act.optusnet.com.au) (Client Quit) |
2021-12-14 01:23:25 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-12-14 01:23:25 +0100 | <energizer> | does Person have to be defined before that? |
2021-12-14 01:24:09 +0100 | <dsal> | What do you mean? That's where Person is defined. |
2021-12-14 01:24:11 +0100 | <hpc> | Person is the data constructor |
2021-12-14 01:24:17 +0100 | <hpc> | Person' is like Bool, Person is like True |
2021-12-14 01:24:24 +0100 | <dsal> | Heh, I was about to use that example. |
2021-12-14 01:24:25 +0100 | <geekosaur> | I think they're asking about the original definition |
2021-12-14 01:24:29 +0100 | <hpc> | data Bool = False | True -- defines all three of those things |
2021-12-14 01:24:33 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 01:24:36 +0100 | <energizer> | i tried https://bpa.st/7ORA and ghc didn't complain |
2021-12-14 01:24:45 +0100 | <geekosaur> | and the answer is no, you need neither Person nor MaybePerson |
2021-12-14 01:24:51 +0100 | <energizer> | but i dont get how it's defining both Person' and Person in the same line |
2021-12-14 01:25:01 +0100 | <geekosaur> | hpc showed you |
2021-12-14 01:25:17 +0100 | <geekosaur> | Person' is a type constructor. Person is the corresponding data constructor |
2021-12-14 01:25:42 +0100 | <energizer> | ok |
2021-12-14 01:26:14 +0100 | <hpc> | maybe it would be easier to see in GADTSyntax? |
2021-12-14 01:26:17 +0100 | <hpc> | data Person' f where |
2021-12-14 01:26:22 +0100 | <hpc> | Person :: Person' f |
2021-12-14 01:26:40 +0100 | <geekosaur> | well, you're missing the record part |
2021-12-14 01:26:49 +0100 | <hpc> | oh, i didn't click the link :P |
2021-12-14 01:27:12 +0100 | <energizer> | `data Colour = Red | Green | Blue` clears it up |
2021-12-14 01:27:16 +0100 | <hpc> | pretend i remember how to write records in GADTSyntax |
2021-12-14 01:28:11 +0100 | BrokenClutch | (~pioneer@2804:d41:c2b2:be00:da32:623d:efa3:7121) |
2021-12-14 01:28:29 +0100 | <mdrake> | that is kind of neat how you can have record with partial fields without having the boilerplate of defining two types |
2021-12-14 01:29:06 +0100 | mmhat | (~mmh@55d455f3.access.ecotel.net) (Quit: WeeChat 3.3) |
2021-12-14 01:29:26 +0100 | <dsal> | I feel like that's mostly a way to write bugs. |
2021-12-14 01:29:54 +0100 | <energizer> | i thought it was cool too, can you explain dsal |
2021-12-14 01:30:24 +0100 | <dsal> | If you have a sum type with records, what does an accessor do that's defined for only one of the branches? |
2021-12-14 01:30:40 +0100 | d34df00d | (~d34df00d@2600:1700:8c60:3a10::48) |
2021-12-14 01:30:48 +0100 | <d34df00d> | Hi! |
2021-12-14 01:30:57 +0100 | <geekosaur> | um? I didn't see it doing that |
2021-12-14 01:31:04 +0100 | <d34df00d> | I just wrote a function of type unsafeShrink :: A.STUArray s Int e -> Int -> A.STUArray s Int e |
2021-12-14 01:31:06 +0100 | <BrokenClutch> | d34df00d hi |
2021-12-14 01:31:14 +0100 | <mdrake> | yeah I'm not sure what you're talking about dsal |
2021-12-14 01:31:21 +0100 | <dmj`> | > do { x@2 <- [1,2,3,2,3]; pure x } |
2021-12-14 01:31:21 +0100 | <d34df00d> | with the implementation unsafeShrink arr@(A.STUArray l _ n marr) cnt = if cnt >= n then arr else A.STUArray l (l + cnt - 1) cnt marr |
2021-12-14 01:31:23 +0100 | <lambdabot> | [2,2] |
2021-12-14 01:31:24 +0100 | <d34df00d> | How bad should I feel? |
2021-12-14 01:31:33 +0100 | <geekosaur> | possibly making an assumption about "partial fields"? |
2021-12-14 01:31:45 +0100 | <mdrake> | good guess |
2021-12-14 01:32:06 +0100 | boxscape_ | (~boxscape_@p4ff0bb6c.dip0.t-ipconnect.de) (Quit: Connection closed) |
2021-12-14 01:32:24 +0100 | <dsal> | I meant doing things like this: data S = A { someA :: Int } | B { someB :: Int} |
2021-12-14 01:32:32 +0100 | <mdrake> | dsal, I was talking about this: https://reasonablypolymorphic.com/blog/higher-kinded-data/ |
2021-12-14 01:32:46 +0100 | <dsal> | Yeah, I guess I didn't understand what you meant by "partial fields" |
2021-12-14 01:33:24 +0100 | <geekosaur> | I thought it was a peculiar way of saying what they intended, since that does normally have the meaning you assumed |
2021-12-14 01:33:52 +0100 | <mdrake> | that's probably true. I just assumed everyone knew the context |
2021-12-14 01:35:09 +0100 | fizbin | (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Quit: Leaving...) |
2021-12-14 01:35:10 +0100 | <mdrake> | partial, as in data could be missing (it could be Nothing). not sure what would be the better way of phrasing it |
2021-12-14 01:35:33 +0100 | <mdrake> | s/data/field |
2021-12-14 01:35:34 +0100 | <geekosaur> | (possibly) incomplete? |
2021-12-14 01:40:32 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::9788) |
2021-12-14 01:42:10 +0100 | <mdrake> | yeah that's probably better |
2021-12-14 01:43:04 +0100 | meinside | (uid24933@id-24933.helmsley.irccloud.com) |
2021-12-14 01:43:19 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 01:44:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-14 01:45:18 +0100 | <energizer> | not sure if this question makes sense. how can you distinguish between instances of the Identity case, which has `= a`, and other instances, which have `= f a`? it's possible that the `a` in the first case could also be an instance of `f _` |
2021-12-14 01:46:43 +0100 | <geekosaur> | do you mean in the definition of HKD? |
2021-12-14 01:48:11 +0100 | <monochrom> | This is a closed type family. If you go to the GHC user's guide and look for "closed type families", it is well explained there. |
2021-12-14 01:49:33 +0100 | <geekosaur> | closed and non-injective, meaning that it can only ever be used in the direction HKD type1 type2 -> type1 type2 or HKD Identity type2 -> type2 |
2021-12-14 01:49:36 +0100 | <energizer> | i mean after HKD is applied `HKD (Identity (foo bar))` or `HKD (foo bar)`, how do i know if i have the left case or thr right case |
2021-12-14 01:50:00 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
2021-12-14 01:50:16 +0100 | <monochrom> | That question is answered in the doc I referred to. |
2021-12-14 01:50:59 +0100 | <energizer> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/type_families.html#closed-type-families |
2021-12-14 01:52:08 +0100 | <geekosaur> | not sure I'd recommend that link as it's for ghc HEAD and sometimes things will be different there. https://downloads.haskell.org/ghc/latest/docs/html/users_guide/index.html |
2021-12-14 01:52:22 +0100 | <geekosaur> | or replace "latest" with the version you want |
2021-12-14 01:52:56 +0100 | <Axman6> | energizer: it would be HKD Identity foo, and would mean all the elements of foo are just their respective types, without being wrapped in Identity |
2021-12-14 01:54:08 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-12-14 01:54:29 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-12-14 01:54:38 +0100 | <geekosaur> | the type family (or type function if you prefer) HKD inspects its first argument and matches it against each specified instance in turn. so HKD Identity … will always match the first case and anything else the second |
2021-12-14 01:55:04 +0100 | <Axman6> | energizer: which library are you using for HKD? |
2021-12-14 01:55:06 +0100 | <geekosaur> | much like case … of at value level |
2021-12-14 01:55:24 +0100 | <geekosaur> | https://downloads.haskell.org/ghc/latest/docs/html/users_guide/index.html |
2021-12-14 01:55:37 +0100 | <geekosaur> | oops |
2021-12-14 01:56:17 +0100 | <geekosaur> | https://reasonablypolymorphic.com/blog/higher-kinded-data/ |
2021-12-14 01:56:24 +0100 | Axman6 | has to go |
2021-12-14 01:57:39 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-14 01:57:58 +0100 | <energizer> | i mean /after/ that. when i have either `a` or `f a`. the `a` that comes out of the first case might be similar to the `f a` that comes out of the second case, so i wont know where I came from, right? |
2021-12-14 01:58:26 +0100 | <energizer> | since once case drops a level of wrapping, and the other doesnt |
2021-12-14 01:59:04 +0100 | dysfigured | dfg |
2021-12-14 01:59:06 +0100 | <geekosaur> | that never comes up, because HKD is non-injective (meaning, it can't be run "backwards") |
2021-12-14 01:59:11 +0100 | <monochrom> | I'm actually quite disappointed at that article. "You won't need TH!" That would be great if not for "But now you need GHC.Generics." That's just a different yak to shave, really. |
2021-12-14 01:59:19 +0100 | dfg | (~dfg@li490-89.members.linode.com) (Changing host) |
2021-12-14 01:59:19 +0100 | dfg | (~dfg@user/dfg) |
2021-12-14 01:59:24 +0100 | <geekosaur> | we run it in only one direction and use the result immediately |
2021-12-14 01:59:45 +0100 | <geekosaur> | monochrom, the article says that in not so many words :) |
2021-12-14 01:59:49 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 01:59:51 +0100 | <monochrom> | Plus the fact that the closed type family is just an distracting optimization to optimize away Identity. |
2021-12-14 02:00:56 +0100 | <geekosaur> | basically, you can never have Identity a because the HKD function disallows it |
2021-12-14 02:01:14 +0100 | <geekosaur> | *type function |
2021-12-14 02:02:01 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 250 seconds) |
2021-12-14 02:03:25 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-14 02:06:10 +0100 | <energizer> | suppose `HKD Identity a = a` produces `Just 4` (if `a` is `Just 4`) and `HKD f a = f a` produces `Just 4` (if `f` is `Just` and `a` is `4`). that can happen, right? |
2021-12-14 02:06:55 +0100 | <monochrom> | For starters, where did that "4" come from?! |
2021-12-14 02:07:13 +0100 | <monochrom> | Why is it not 5? Why is it not a boolean? |
2021-12-14 02:07:17 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-12-14 02:08:26 +0100 | <jackdk> | I do not like the HKD family, it seems to create a bunch of extra noise. I'd rather eat the boilerplate of explicit `Identity` here and there where I can actually see what's going on |
2021-12-14 02:08:28 +0100 | <energizer> | the value of `a` is data, right? so i can suppose it to be 4 |
2021-12-14 02:09:16 +0100 | <monochrom> | So you agree that you, not `HKD Identity a = a`, produced that "4". |
2021-12-14 02:10:03 +0100 | <energizer> | can you ask a more helpful question or something |
2021-12-14 02:10:09 +0100 | nattiestnate | (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) |
2021-12-14 02:11:02 +0100 | <energizer> | if it was `Identity 4` when it comes in, it's `4` when it goes out |
2021-12-14 02:11:02 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 02:11:08 +0100 | <monochrom> | Yes. "What does your question mean?" |
2021-12-14 02:11:43 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2021-12-14 02:11:47 +0100 | <energizer> | what is a plausible value of `a` there? |
2021-12-14 02:11:59 +0100 | <monochrom> | Int, Bool, Char |
2021-12-14 02:12:19 +0100 | <dsal> | Are there any constraints? |
2021-12-14 02:12:21 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 268 seconds) |
2021-12-14 02:12:47 +0100 | <geekosaur> | if I understand your question, you are asking if Just 4 came from HKD Identity (Maybe Int) or from HKD Maybe Int? |
2021-12-14 02:13:00 +0100 | <geekosaur> | and you can't know this |
2021-12-14 02:13:11 +0100 | <energizer> | that is right geekosaur |
2021-12-14 02:13:14 +0100 | <geekosaur> | but then, you can't know it in any other situation either |
2021-12-14 02:14:32 +0100 | <geekosaur> | you know it only if you have just received it from a `Person'` of some variety — but to receive it, you must know whether it was a `Person' Identity` or a `Person' Maybe`, so you must know the answer already |
2021-12-14 02:14:57 +0100 | <geekosaur> | and afterward it is irrelevant |
2021-12-14 02:16:10 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Ping timeout: 260 seconds) |
2021-12-14 02:18:04 +0100 | <geekosaur> | in particular, if you are operating on a `Person` a` for unspecified `a`, you cannot inspect the `Person` because you have to know what `a` is to do so |
2021-12-14 02:18:06 +0100 | <johnw> | monochrom: thank you! |
2021-12-14 02:18:20 +0100 | <geekosaur> | it's the same as |
2021-12-14 02:18:28 +0100 | <geekosaur> | % :t length @[] |
2021-12-14 02:18:28 +0100 | <yahb> | geekosaur: [a] -> Int |
2021-12-14 02:18:46 +0100 | <geekosaur> | length cannot inspect the values in the list because it has no idea what `a` is |
2021-12-14 02:18:54 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-14 02:19:43 +0100 | <geekosaur> | but it can inspect the list nodes themselves because it knows a list is (_ : xs) for some unknown `_` |
2021-12-14 02:19:50 +0100 | slice | (~slice@user/slice) (Quit: zzz) |
2021-12-14 02:21:47 +0100 | <johnw> | monochrom: Conal showed me this article a few weeks ago, but hadn't read it yet |
2021-12-14 02:22:28 +0100 | cjb | (~cjb@user/cjb) (Read error: Connection reset by peer) |
2021-12-14 02:22:30 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-12-14 02:22:32 +0100 | acidjnk | (~acidjnk@p200300d0c7271e77ede7a7f9d267d612.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-12-14 02:23:11 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-12-14 02:23:28 +0100 | <energizer> | that means there's no distinguishing between instances of the types described earlier in the article as MaybePerson and Person, right? whereas they can be distinguished under the other method that doesn't drop the Identity wrapper |
2021-12-14 02:23:29 +0100 | <monochrom> | It's pretty delightful. I have always felt "there are consistent rules behind APL but I can't tell say what". This paper solves it. |
2021-12-14 02:23:31 +0100 | <geekosaur> | now, as it turns out, there is nothing about a `Person'` you can determine without knowing if it is a `Person' Identity` or a `Person' Maybe` or something else, so at the only point where your question has meaning either you know the answer already or it can't come up |
2021-12-14 02:23:43 +0100 | <jackdk> | monochrom: what paper is this? |
2021-12-14 02:24:12 +0100 | <monochrom> | https://link.springer.com/chapter/10.1007/978-3-662-54434-1_21 |
2021-12-14 02:26:26 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2021-12-14 02:27:30 +0100 | <energizer> | geekosaur: that means there's no distinguishing between instances of the types described earlier in the article as MaybePerson and Person, right? whereas they can be distinguished under the other method that doesn't drop the Identity wrapper. so if I'm given a Person' I can't tell if it's been cleaned already |
2021-12-14 02:27:39 +0100 | <geekosaur> | uh? |
2021-12-14 02:27:43 +0100 | Kauto | (~Kauto@wireless-student-pt10-182-232.lut.ac.uk) (Quit: Client closed) |
2021-12-14 02:28:02 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 02:28:03 +0100 | <geekosaur> | you never have a Person'. you have a Person' Identity or a Person' Maybe |
2021-12-14 02:28:29 +0100 | <geekosaur> | and since you have to know which of those you have to do anything with it, you know what a Maybe 4 must mean |
2021-12-14 02:28:58 +0100 | <geekosaur> | the fact that we talk about a Person' Maybe instead of a MaybePerson is not relevant; they're still distinct types |
2021-12-14 02:29:18 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Remote host closed the connection) |
2021-12-14 02:30:31 +0100 | <geekosaur> | if you have a Person' Identity then a Maybe 4 must mean it's a field of type Maybe Int. if you have a Person' Maybe then the field is of type Int. there are no other options and *there is no way to not know which you have* |
2021-12-14 02:30:53 +0100 | <zero> | is there a generalized version of (\\) like a `differenceBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]` ? |
2021-12-14 02:31:07 +0100 | <geekosaur> | your expression will not typecheck unless you know which one you have |
2021-12-14 02:31:19 +0100 | nfd | (~nfd@user/nfd) |
2021-12-14 02:31:41 +0100 | <monochrom> | Does Data.List have it? |
2021-12-14 02:32:07 +0100 | <monochrom> | Oh well it doesn't. |
2021-12-14 02:32:26 +0100 | <geekosaur> | "It is a special case of deleteFirstsBy, which allows the programmer to supply their own equality test." |
2021-12-14 02:32:29 +0100 | <monochrom> | Eh it does, but it is called deleteBy |
2021-12-14 02:33:19 +0100 | jiribenes | (~jiribenes@rosa.jiribenes.com) (Remote host closed the connection) |
2021-12-14 02:34:04 +0100 | jiribenes | (~jiribenes@rosa.jiribenes.com) |
2021-12-14 02:34:11 +0100 | BrokenClutch | (~pioneer@2804:d41:c2b2:be00:da32:623d:efa3:7121) () |
2021-12-14 02:35:13 +0100 | <monochrom> | Then it goes on to give an example that is not even remotely close to any sense of equality test... |
2021-12-14 02:35:59 +0100 | <monochrom> | What's wrong with people... |
2021-12-14 02:36:21 +0100 | emf_ | (~emf@2620:10d:c091:480::1:e5d2) (Ping timeout: 252 seconds) |
2021-12-14 02:37:29 +0100 | <jackdk> | monochrom: thank you for that link, fun paper. |
2021-12-14 02:37:34 +0100 | <energizer> | ok i'll medidate on that. thank you geekosaur |
2021-12-14 02:37:44 +0100 | pfurla[m] | (uid345156@id-345156.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-14 02:37:48 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-14 02:37:50 +0100 | mjacob | (~mjacob@adrastea.uberspace.de) (Ping timeout: 265 seconds) |
2021-12-14 02:37:51 +0100 | AWizzArd | (~code@gehrels.uberspace.de) (Ping timeout: 245 seconds) |
2021-12-14 02:37:58 +0100 | <geekosaur> | basically Person' is not a thing, like Maybe by itself is not a thing |
2021-12-14 02:38:16 +0100 | <geekosaur> | it's always something like Maybe Int. it's always something like Person' Identity |
2021-12-14 02:39:11 +0100 | <geekosaur> | (this is not always true, as Person' itself demonstrates for Maybe. but that's where "higher kinded" comes in; you are talking about types of kinds other than `Type`) |
2021-12-14 02:39:14 +0100 | <zero> | monochrom: thanks. i should have been more dilligent in my search |
2021-12-14 02:40:20 +0100 | shapr | (~user@12.5.211.156) |
2021-12-14 02:40:26 +0100 | <geekosaur> | but there are not *values* of kinds other than `Type`. thus there is never a value of type Person', because Person' has kind `Type -> Type`, not `Type` |
2021-12-14 02:40:55 +0100 | <geekosaur> | (more correctly it's of kind `(Type -> Type) -> Type`) |
2021-12-14 02:40:56 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 02:42:18 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 260 seconds) |
2021-12-14 02:43:30 +0100 | mjacob | (~mjacob@adrastea.uberspace.de) |
2021-12-14 02:45:36 +0100 | AWizzArd | (~code@gehrels.uberspace.de) |
2021-12-14 02:45:55 +0100 | <EvanR> | if values correspond to proofs, and there are no values of anything other than Type, does that mean most things in type level haskell are not true? xD |
2021-12-14 02:46:20 +0100 | shapr | (~user@12.5.211.156) (Remote host closed the connection) |
2021-12-14 02:48:18 +0100 | <monochrom> | In fact you could ask that question of all dependently typed languages. You can ask it of Coq and Agda. |
2021-12-14 02:48:31 +0100 | <zero> | dO(n) . The deleteBy function behaves like delete, but takes a user-supplied equality predicate. |
2021-12-14 02:48:34 +0100 | <zero> | >>> deleteBy (<=) 4 [1..10] |
2021-12-14 02:48:37 +0100 | <zero> | [1,2,3,5,6,7,8,9,10] |
2021-12-14 02:48:43 +0100 | <zero> | what am i not getting here? |
2021-12-14 02:48:49 +0100 | <EvanR> | 4 is gone |
2021-12-14 02:48:51 +0100 | <mniip> | <= is not an equality |
2021-12-14 02:49:01 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-12-14 02:49:24 +0100 | <EvanR> | oh tricky |
2021-12-14 02:49:28 +0100 | <monochrom> | It stops after the first deletion. |
2021-12-14 02:49:38 +0100 | <zero> | why 4 then? |
2021-12-14 02:49:41 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-14 02:49:51 +0100 | <mniip> | the docs doesn't specify which side of the equality predicate the four will appear on |
2021-12-14 02:49:54 +0100 | <monochrom> | 4<=1 is false. |
2021-12-14 02:49:57 +0100 | <mniip> | so it's deleting the first x such taht 4<=x |
2021-12-14 02:50:08 +0100 | nattiestnate | (~nate@2001:448a:20a0:4134:25e:715f:d637:5263) (Quit: WeeChat 3.3) |
2021-12-14 02:50:16 +0100 | <zero> | oh |
2021-12-14 02:50:37 +0100 | <geekosaur> | which is what you get for specifying a non-equality predicate :) |
2021-12-14 02:50:39 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-12-14 02:50:55 +0100 | <monochrom> | But deleteFirstBy is more analogous to (\\) and has a better name. |
2021-12-14 02:51:12 +0100 | g | (x@libera/staff/glguy) |
2021-12-14 02:51:15 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-12-14 02:51:46 +0100 | <EvanR> | > deleteBy (\x y -> (even x && even y) || (odd x && odd y)) 1 [0..9] |
2021-12-14 02:51:48 +0100 | <lambdabot> | [0,2,3,4,5,6,7,8,9] |
2021-12-14 02:52:26 +0100 | <EvanR> | works |
2021-12-14 02:52:31 +0100 | <EvanR> | > deleteBy (\x y -> (even x && even y) || (odd x && odd y)) 7 [0..9] |
2021-12-14 02:52:32 +0100 | <lambdabot> | [0,2,3,4,5,6,7,8,9] |
2021-12-14 02:52:36 +0100 | <g> | even x == even y |
2021-12-14 02:52:51 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 252 seconds) |
2021-12-14 02:53:48 +0100 | <monochrom> | Suppose I want to explain factorial to you. I begin with "it maps a natural number n to the product 1*2*...*n". |
2021-12-14 02:54:09 +0100 | <monochrom> | Then I proceed to say "Example: factorial of 3.5 is 11.6317..." |
2021-12-14 02:54:23 +0100 | <monochrom> | What are you missing? Answer: The fact that I'm nuts. :) |
2021-12-14 02:56:02 +0100 | <monochrom> | Did you know: "even x == even y" is a thing, too. |
2021-12-14 02:57:01 +0100 | <monochrom> | Err g beat me to it, heh |
2021-12-14 02:58:31 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 03:01:53 +0100 | slice | (~slice@user/slice) |
2021-12-14 03:02:56 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) |
2021-12-14 03:03:28 +0100 | <g> | We have pretty good participation this year so far, but if anyone's doing advent of code in Haskell and hasn't joined the private leaderboard in the topic, there's still room! |
2021-12-14 03:04:45 +0100 | <g> | It's ok if your goal isn't speed; it's also a good way to find solutions to compare with |
2021-12-14 03:06:47 +0100 | xff0x | (~xff0x@2001:1a81:5245:500:35c3:4c34:eb85:8494) (Ping timeout: 252 seconds) |
2021-12-14 03:06:55 +0100 | hughjfchen | (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8) |
2021-12-14 03:08:39 +0100 | <mniip> | something about setoids |
2021-12-14 03:08:47 +0100 | xff0x | (~xff0x@2001:1a81:5283:7b00:4425:b1f0:8a15:3e7c) |
2021-12-14 03:11:35 +0100 | slice | (~slice@user/slice) (Quit: zzz) |
2021-12-14 03:11:46 +0100 | vicfred | (~vicfred@user/vicfred) (Quit: Leaving) |
2021-12-14 03:12:26 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
2021-12-14 03:13:19 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-14 03:16:32 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds) |
2021-12-14 03:17:02 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 240 seconds) |
2021-12-14 03:17:25 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-12-14 03:17:25 +0100 | mvk | (~mvk@2607:fea8:5cdd:f000::9788) (Ping timeout: 252 seconds) |
2021-12-14 03:17:44 +0100 | Ferdirand | (~somebody@2001:4c78:2012:5000::2) (Ping timeout: 268 seconds) |
2021-12-14 03:17:50 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds) |
2021-12-14 03:17:51 +0100 | Ferdirand | (~somebody@2001:4c78:2012:5000::2) |
2021-12-14 03:18:05 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-14 03:18:16 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
2021-12-14 03:18:32 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-14 03:18:42 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
2021-12-14 03:19:43 +0100 | slice | (~slice@user/slice) |
2021-12-14 03:23:41 +0100 | aplainzetakind | (~johndoe@captainludd.powered.by.lunarbnc.net) |
2021-12-14 03:28:51 +0100 | Jing | (~hedgehog@2604:a840:3::10c8) (Remote host closed the connection) |
2021-12-14 03:29:24 +0100 | slice | (~slice@user/slice) (Quit: zzz) |
2021-12-14 03:29:38 +0100 | nosewings | (~ngpc@2603-8081-3e05-e2d0-f324-1a41-5d30-c2c5.res6.spectrum.com) |
2021-12-14 03:31:43 +0100 | slice | (~slice@user/slice) |
2021-12-14 03:32:15 +0100 | Jing | (~hedgehog@2604:a840:3::10c8) |
2021-12-14 03:32:31 +0100 | shapr | (~user@12.5.211.156) |
2021-12-14 03:36:27 +0100 | ubert1 | (~Thunderbi@p200300ecdf1abbee60b6487a781d8af1.dip0.t-ipconnect.de) |
2021-12-14 03:37:16 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving) |
2021-12-14 03:37:35 +0100 | ubert | (~Thunderbi@p200300ecdf1abbd3ca03b07f10ffc657.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-12-14 03:37:35 +0100 | ubert1 | ubert |
2021-12-14 03:38:07 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 03:39:13 +0100 | <dsal> | Is there anything in megaparsec for parsing quoted strings? |
2021-12-14 03:41:40 +0100 | <glguy> | between and then your own set of escapes? |
2021-12-14 03:51:38 +0100 | nfd | (~nfd@user/nfd) (Ping timeout: 268 seconds) |
2021-12-14 03:51:45 +0100 | <snake> | why is insert into a map O(log n) |
2021-12-14 03:51:56 +0100 | <snake> | that is slow |
2021-12-14 03:54:44 +0100 | shapr | (~user@12.5.211.156) (Ping timeout: 268 seconds) |
2021-12-14 03:55:55 +0100 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-14 03:56:05 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 03:59:00 +0100 | <zero> | well... it really depends |
2021-12-14 04:00:13 +0100 | <nosewings> | O(log n) is fast |
2021-12-14 04:00:46 +0100 | <nosewings> | Ignoring the constants, log(2^64) ~ 44 |
2021-12-14 04:02:23 +0100 | nosewings | (~ngpc@2603-8081-3e05-e2d0-f324-1a41-5d30-c2c5.res6.spectrum.com) (Remote host closed the connection) |
2021-12-14 04:02:38 +0100 | <zero> | i would say it's fast for a purely functional data structure |
2021-12-14 04:03:40 +0100 | <dsal> | glguy: Yeah… I've done it a few ways, but it seems like something kind of common. |
2021-12-14 04:04:05 +0100 | <dsal> | snake: how would you do it? |
2021-12-14 04:04:29 +0100 | <glguy> | About every language uses a slightly different escape syntax, so I'm not sure what I'd want megaparsec to provide |
2021-12-14 04:04:59 +0100 | <dsal> | Yeah, I guess. I just end up with some basic "x" type strings. |
2021-12-14 04:05:25 +0100 | deadmarshal | (~deadmarsh@95.38.230.166) |
2021-12-14 04:05:47 +0100 | nosewings | (~ngpc@2603-8081-3e05-e2d0-f324-1a41-5d30-c2c5.res6.spectrum.com) |
2021-12-14 04:05:59 +0100 | <snake> | dsal, i'd use an array, O(1) time |
2021-12-14 04:06:12 +0100 | <snake> | zero, sure maybe that is true |
2021-12-14 04:06:28 +0100 | <glguy> | updating an array would be O(n) instead of the faster O(log n) |
2021-12-14 04:07:00 +0100 | <snake> | glguy, what do you mean by "array" |
2021-12-14 04:07:11 +0100 | <snake> | the way i have learned about arrays they are O(1) for access and update |
2021-12-14 04:07:16 +0100 | <glguy> | If you're talking about Map, you're talking about an immutable data structure |
2021-12-14 04:07:29 +0100 | <glguy> | so updating an array would mean to copy it to make a new one with the change |
2021-12-14 04:07:37 +0100 | Guest99 | (~Guest99@pool-100-8-45-127.nwrknj.fios.verizon.net) |
2021-12-14 04:07:42 +0100 | <snake> | no he's asking how i would do it |
2021-12-14 04:07:46 +0100 | <snake> | not how Map would do it |
2021-12-14 04:07:59 +0100 | Guest99 | (~Guest99@pool-100-8-45-127.nwrknj.fios.verizon.net) (Client Quit) |
2021-12-14 04:08:04 +0100 | <dsal> | Yes, and glguy's response suggests that your way would be *significantly* more expensive. |
2021-12-14 04:08:12 +0100 | Guest99 | (~Guest99@pool-100-8-45-127.nwrknj.fios.verizon.net) |
2021-12-14 04:08:22 +0100 | <snake> | not in a language where you can update a single entry in an array |
2021-12-14 04:08:27 +0100 | <snake> | without replacing it |
2021-12-14 04:08:54 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-12-14 04:08:58 +0100 | <dsal> | OK, this conversation is a bit weird because we're not talking about what we'd try to do, but let's assume you're using mutable arrays. How do you decide which element to update? |
2021-12-14 04:09:05 +0100 | <dsal> | What if you didn't build a large enough array in the first place? |
2021-12-14 04:09:05 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 04:09:51 +0100 | deadmarshal | (~deadmarsh@95.38.230.166) (Ping timeout: 252 seconds) |
2021-12-14 04:09:56 +0100 | <snake> | you use a hash algorithm on the key to get a bucket to insert to, and a probing function to handle collisions |
2021-12-14 04:10:21 +0100 | <snake> | the array would have a certain capacity and would resize after its maybe like 75% full for example |
2021-12-14 04:10:22 +0100 | Guest99 | (~Guest99@pool-100-8-45-127.nwrknj.fios.verizon.net) (Client Quit) |
2021-12-14 04:10:47 +0100 | <snake> | this is amortized constant time since you have to resize and rehash every 0.75 N elements you insert |
2021-12-14 04:10:53 +0100 | <snake> | since you only* |
2021-12-14 04:10:53 +0100 | <glguy> | snake: If you're interested in talking about mutable datastructures (which Haskell has) then you wouldn't bring up the complexity of inserting into a Map |
2021-12-14 04:12:29 +0100 | <snake> | what advantage does Map have over the faster data structure and algorithm? |
2021-12-14 04:12:30 +0100 | <glguy> | There are also mutable hashtables and mutable arrays available |
2021-12-14 04:13:06 +0100 | <glguy> | snake: Map is faster and more efficient for rolling back to old versions and having multiple versions active at the same time |
2021-12-14 04:13:39 +0100 | <snake> | ah i see |
2021-12-14 04:13:50 +0100 | <glguy> | and not having mutation makes it easier to maintain invariants, avoid side-effect |
2021-12-14 04:13:59 +0100 | <dsal> | And cheaper to pass your map around. |
2021-12-14 04:15:25 +0100 | <dsal> | It's quite possible that if your program is slow, it's not because of Map. Did you profile? |
2021-12-14 04:15:32 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) |
2021-12-14 04:15:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-14 04:15:59 +0100 | <snake> | no i didn't use it yet, i was just curious because it was theoretically slower than i expected |
2021-12-14 04:16:20 +0100 | <snake> | i think c++ calls hash table a map, so maybe that's why i expected that |
2021-12-14 04:17:00 +0100 | <dsal> | https://en.cppreference.com/w/cpp/container/map |
2021-12-14 04:17:08 +0100 | <dsal> | std::map is not a hash table. |
2021-12-14 04:17:37 +0100 | raghavgururajan | (9fd51d1ea8@user/raghavgururajan) |
2021-12-14 04:17:49 +0100 | <snake> | you are right, thankyou |
2021-12-14 04:18:13 +0100 | <snake> | guess i just assumed maps are hash tables |
2021-12-14 04:20:03 +0100 | <dsal> | You'll learn more about performance issues from the profiler than just guessing. O(log n) isn't a big deal since most data is pretty small. I did find a case where just using lookup in a list was faster (that's O(N)). But it's faster in my program. |
2021-12-14 04:20:40 +0100 | <zero> | aren't Data.Map self-balancing binary search trees? |
2021-12-14 04:20:43 +0100 | <dsal> | There's also the case where the Aeson hash table stuff where badly formed input can do really awful things due to hash collisions. |
2021-12-14 04:21:51 +0100 | <dsal> | zero: https://hackage.haskell.org/package/containers-0.4.0.0/docs/Data-Map.html yeah, the docs suggest it does fancy stuff. |
2021-12-14 04:24:29 +0100 | <Axman6> | snake: it;'s worth mentioning that hash based structures are fundamentally different from ordering based structures like map. an orserding based array implementation would have worse asymtotics than the Map implementation |
2021-12-14 04:24:29 +0100 | Jing | (~hedgehog@2604:a840:3::10c8) (Remote host closed the connection) |
2021-12-14 04:25:11 +0100 | <Axman6> | O(log n) is, IIRC, optimal for comparison bsed maps. hash maps are a differtent beast, and we use a different strucutre for thos (HAMTs) |
2021-12-14 04:25:27 +0100 | <Axman6> | based* those* |
2021-12-14 04:26:36 +0100 | <snake> | yeah i had no idea there was a distinction. i thought map was just an ADT that used keys to access values |
2021-12-14 04:26:47 +0100 | td_ | (~td@94.134.91.178) (Ping timeout: 268 seconds) |
2021-12-14 04:27:21 +0100 | <Axman6> | one of the big benefits of Data.Map is that you can get out the elements in orted order in O(n) time, which you can't do with a hash based structure |
2021-12-14 04:27:43 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 04:27:58 +0100 | td_ | (~td@muedsl-82-207-238-255.citykom.de) |
2021-12-14 04:28:12 +0100 | <Axman6> | Data.HashMap gives you a HAMT, which also has O(log n) operations (though really, you can consider them O(1) because n is bounded to 64 bits) |
2021-12-14 04:28:24 +0100 | <Axman6> | use the right tool for the job |
2021-12-14 04:28:24 +0100 | mbuf | (~Shakthi@122.178.176.47) |
2021-12-14 04:28:44 +0100 | Jing | (~hedgehog@2604:a840:3::10c8) |
2021-12-14 04:29:01 +0100 | <zero> | Ord is also an arguably better consraint to have than Hashable |
2021-12-14 04:32:42 +0100 | Inst | (~Inst@2601:6c4:4080:3f80:1504:5494:6920:c755) |
2021-12-14 04:32:51 +0100 | <dsal> | Ord is certainly easier to get. |
2021-12-14 04:33:26 +0100 | <glguy> | snake: any chance you're doing the advent of code problems this year? |
2021-12-14 04:34:03 +0100 | <snake> | glguy, i was but im also doing final exams this week. i did days 1-5 with java and day 6 with haskell |
2021-12-14 04:36:13 +0100 | BrokenClutch | (~pioneer@2804:d41:c2b2:be00:da32:623d:efa3:7121) |
2021-12-14 04:36:34 +0100 | <snake> | glguy, https://dpaste.com/5GFLBLSEJ this is day 6 |
2021-12-14 04:37:15 +0100 | nfd | (~nfd@user/nfd) |
2021-12-14 04:37:27 +0100 | <glguy> | ah, cool :) |
2021-12-14 04:40:18 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 04:43:34 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-12-14 04:44:11 +0100 | <glguy> | snake: Do you know you can use [x,y,z] list syntax in patterns (instead of needing to write (x:y:z:[])? |
2021-12-14 04:46:10 +0100 | <snake> | no i didnt know that im a bit lost LOL |
2021-12-14 04:49:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-14 04:56:00 +0100 | BrokenClutch | (~pioneer@2804:d41:c2b2:be00:da32:623d:efa3:7121) (Quit: Leaving.) |
2021-12-14 04:58:14 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 04:58:55 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
2021-12-14 05:10:42 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 05:24:07 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-12-14 05:29:11 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 05:35:12 +0100 | kayvank | (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection) |
2021-12-14 05:38:22 +0100 | Nolrai2 | (~Nolrai2@73.240.1.39) |
2021-12-14 05:40:03 +0100 | <Nolrai2> | So if I there is a bug in a library on stackage whats the best way to pull down a local copy of it so I can fix it? |
2021-12-14 05:40:52 +0100 | <dsal> | There's usually a github url |
2021-12-14 05:41:14 +0100 | <dsal> | If you're using stack, you can just clone it and override to your clone in stack.yaml |
2021-12-14 05:41:15 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 05:45:11 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2021-12-14 05:53:49 +0100 | <Nolrai2> | In the stack.yaml does the path to the clone go in packages or extra-deps? |
2021-12-14 05:54:02 +0100 | <dsal> | extra-deps |
2021-12-14 05:54:25 +0100 | <dsal> | You can either put a path there, or a git URL and commit. |
2021-12-14 05:54:51 +0100 | <dsal> | stack gets pretty confused if change code at a reference without changing the version number, though. |
2021-12-14 05:55:52 +0100 | <Nolrai2> | Thanks. I'll keep that in mind! |
2021-12-14 05:59:41 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 06:02:36 +0100 | Nolrai2 | (~Nolrai2@73.240.1.39) (Quit: Client closed) |
2021-12-14 06:04:41 +0100 | rekahsoft | (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 250 seconds) |
2021-12-14 06:06:49 +0100 | osewingsn | (~ngpc@2603-8081-3e05-e2d0-a55f-bbff-7ca5-7d0e.res6.spectrum.com) |
2021-12-14 06:06:50 +0100 | neverwas | (jpneverwas@swissbox.unperson.link) |
2021-12-14 06:07:32 +0100 | osewingsn | (~ngpc@2603-8081-3e05-e2d0-a55f-bbff-7ca5-7d0e.res6.spectrum.com) (Remote host closed the connection) |
2021-12-14 06:08:44 +0100 | osewingsn | (~ngpc@2603-8081-3e05-e2d0-a55f-bbff-7ca5-7d0e.res6.spectrum.com) |
2021-12-14 06:25:06 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-12-14 06:28:04 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 06:30:14 +0100 | ubert | (~Thunderbi@p200300ecdf1abbee60b6487a781d8af1.dip0.t-ipconnect.de) (Remote host closed the connection) |
2021-12-14 06:30:32 +0100 | ubert | (~Thunderbi@p200300ecdf1abbee60b6487a781d8af1.dip0.t-ipconnect.de) |
2021-12-14 06:37:28 +0100 | juhp | (~juhp@128.106.188.82) (Quit: juhp) |
2021-12-14 06:44:44 +0100 | alx741 | (~alx741@181.199.42.79) |
2021-12-14 06:46:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-14 06:47:13 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan) |
2021-12-14 06:54:30 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-12-14 06:58:29 +0100 | alx741 | (~alx741@181.199.42.79) (Read error: Connection reset by peer) |
2021-12-14 06:59:14 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 07:07:30 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-14 07:08:46 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-12-14 07:10:21 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 07:10:59 +0100 | deadmarshal | (~deadmarsh@95.38.230.166) |
2021-12-14 07:11:52 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-12-14 07:12:33 +0100 | Jing | (~hedgehog@2604:a840:3::10c8) (Remote host closed the connection) |
2021-12-14 07:13:17 +0100 | Jing | (~hedgehog@125.106.89.200) |
2021-12-14 07:15:50 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-12-14 07:20:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
2021-12-14 07:25:28 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Ping timeout: 256 seconds) |
2021-12-14 07:27:17 +0100 | alx741 | (~alx741@181.199.42.79) |
2021-12-14 07:28:04 +0100 | monochrom | (trebla@216.138.220.146) (Quit: NO CARRIER) |
2021-12-14 07:29:49 +0100 | monochrom | (trebla@216.138.220.146) |
2021-12-14 07:33:15 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-14 07:34:36 +0100 | osewingsn | (~ngpc@2603-8081-3e05-e2d0-a55f-bbff-7ca5-7d0e.res6.spectrum.com) (Remote host closed the connection) |
2021-12-14 07:40:02 +0100 | alx741 | (~alx741@181.199.42.79) (Read error: Connection reset by peer) |
2021-12-14 07:40:34 +0100 | Akiva | (~Akiva@user/Akiva) |
2021-12-14 07:40:47 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 07:43:44 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-14 07:45:26 +0100 | <xerox> | cyphase: we are tied for 10 :o |
2021-12-14 07:46:09 +0100 | <cyphase> | hmm, perhaps i need to refocus my efforts |
2021-12-14 07:46:26 +0100 | <cyphase> | (no, not really) |
2021-12-14 07:47:17 +0100 | Inst | (~Inst@2601:6c4:4080:3f80:1504:5494:6920:c755) (Ping timeout: 252 seconds) |
2021-12-14 07:47:36 +0100 | <cyphase> | the drop in rank is totally worth the distraction i have to say :) |
2021-12-14 07:55:52 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 07:59:51 +0100 | Jing | (~hedgehog@125.106.89.200) (Read error: Connection reset by peer) |
2021-12-14 08:04:31 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 250 seconds) |
2021-12-14 08:05:27 +0100 | Jing | (~hedgehog@2604:a840:3::10c8) |
2021-12-14 08:05:45 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-14 08:06:04 +0100 | remexre | (~remexre@user/remexre) (Remote host closed the connection) |
2021-12-14 08:06:57 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-14 08:07:42 +0100 | chele | (~chele@user/chele) |
2021-12-14 08:14:22 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 08:17:07 +0100 | <int-e> | > "AoD" > "AoC" -- 'D' is for 'distractions' of course |
2021-12-14 08:17:09 +0100 | <lambdabot> | True |
2021-12-14 08:20:48 +0100 | remexre | (~remexre@user/remexre) |
2021-12-14 08:22:21 +0100 | xff0x | (~xff0x@2001:1a81:5283:7b00:4425:b1f0:8a15:3e7c) (Ping timeout: 268 seconds) |
2021-12-14 08:22:31 +0100 | michalz | (~michalz@185.246.204.109) |
2021-12-14 08:22:59 +0100 | xff0x | (~xff0x@2001:1a81:5283:7b00:6c74:59db:ccc0:34d8) |
2021-12-14 08:23:47 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) |
2021-12-14 08:25:02 +0100 | mncheck | (~mncheck@193.224.205.254) (Quit: Leaving) |
2021-12-14 08:25:35 +0100 | <mjrosenb> | xerox: cyphase: globally? |
2021-12-14 08:26:09 +0100 | <cyphase> | haha, no. the haskell leaderboard; code in the topic |
2021-12-14 08:27:46 +0100 | mdrake | (~bc8147f2@cerf.good1.com) (Quit: CGI:IRC (Session timeout)) |
2021-12-14 08:28:21 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2021-12-14 08:28:32 +0100 | <xerox> | tie... broken! :D |
2021-12-14 08:28:49 +0100 | <mjrosenb> | you're welcome? |
2021-12-14 08:29:27 +0100 | <mjrosenb> | c.c there are people ahead of me that haven't finished today's yet. |
2021-12-14 08:29:40 +0100 | <mjrosenb> | that's what I get for forgetting about it for a couple of days. |
2021-12-14 08:31:37 +0100 | <mjrosenb> | anyhow, I came in here to ask about emacs and flycheck. I just set up haskell-lsp, and it says that flycheck is enabled in my buffers, but I'm not seeing any evidence of it. |
2021-12-14 08:35:04 +0100 | evocatus | (~evocatus@91.211.251.87) |
2021-12-14 08:36:34 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:f458:37c0:1547:7436) (Remote host closed the connection) |
2021-12-14 08:38:40 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-14 08:39:29 +0100 | phma | (phma@2001:5b0:211c:2a58:d0c:f178:6e2:131e) (Read error: Connection reset by peer) |
2021-12-14 08:40:15 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 08:40:25 +0100 | phma | (~phma@host-67-44-208-155.hnremote.net) |
2021-12-14 08:41:01 +0100 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-12-14 08:47:31 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-12-14 08:48:19 +0100 | fr33domlover | (~fr33@2.55.170.123) |
2021-12-14 08:51:07 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-14 08:56:43 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 09:00:44 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:2c0a:74d4:9496:54f1) |
2021-12-14 09:01:45 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) |
2021-12-14 09:08:55 +0100 | <[itchyjunk]> | @where paste |
2021-12-14 09:08:55 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2021-12-14 09:09:30 +0100 | <[itchyjunk]> | Huh, I was expecting this to be harder. does this look correct? https://paste.tomsmeding.com/dzQcCatd |
2021-12-14 09:10:18 +0100 | <[itchyjunk]> | I guess `fib n` should actually generate n terms maybe. but that would just be turning this into a helper and having come other function do the counting and recursion maybe? |
2021-12-14 09:10:33 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 09:11:41 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2021-12-14 09:16:27 +0100 | <[itchyjunk]> | Hm, looks like i still have issues with making lists. |
2021-12-14 09:16:30 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-14 09:16:45 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-14 09:16:47 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-14 09:17:00 +0100 | <[itchyjunk]> | `fib :: Int -> [Int]` I want to take some integer n and produce a list of n integers, so i think the signature is correct |
2021-12-14 09:17:56 +0100 | cosimone | (~user@93-47-231-203.ip115.fastwebnet.it) |
2021-12-14 09:18:36 +0100 | phma_ | (phma@2001:5b0:2144:24c8:3448:3cec:586:a41) |
2021-12-14 09:19:20 +0100 | iteratee_ | (~kyle@162.218.222.107) |
2021-12-14 09:19:32 +0100 | pyook | (~puke@user/puke) |
2021-12-14 09:19:33 +0100 | puke | (~puke@user/puke) (Killed (iridium.libera.chat (Nickname regained by services))) |
2021-12-14 09:19:33 +0100 | pyook | puke |
2021-12-14 09:20:25 +0100 | <mjrosenb> | is there a reason to have fib :: Int -> [Int] rather than just fib :: [Int]? |
2021-12-14 09:20:34 +0100 | <mjrosenb> | [itchyjunk]: ^ |
2021-12-14 09:20:41 +0100 | <[itchyjunk]> | hmmmmmmmmm |
2021-12-14 09:21:13 +0100 | <[itchyjunk]> | I would just produce infinite list of fibbonaci lazyly evaluated? |
2021-12-14 09:21:32 +0100 | <[itchyjunk]> | Didn't realize that was an option. but is this harder? |
2021-12-14 09:21:52 +0100 | iteratee | (~kyle@162.218.222.107) (Read error: Connection reset by peer) |
2021-12-14 09:22:15 +0100 | phma | (~phma@host-67-44-208-155.hnremote.net) (Ping timeout: 252 seconds) |
2021-12-14 09:23:32 +0100 | <mjrosenb> | the lazy list of infinite fibonacci numbers is definitely one of the "wait, haskell can do /that/?!" examples |
2021-12-14 09:26:50 +0100 | <[itchyjunk]> | Hm, idk how a function that take no parameter but produces a list would go |
2021-12-14 09:26:58 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 09:28:25 +0100 | chexum_ | (~quassel@gateway/tor-sasl/chexum) |
2021-12-14 09:28:41 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2021-12-14 09:28:42 +0100 | <mjrosenb> | You can start simple, how about a list that contains only the number 1, an infinite number of times? |
2021-12-14 09:28:50 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-12-14 09:30:53 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) |
2021-12-14 09:31:37 +0100 | <[itchyjunk]> | this does something but running this turned into an infinite loop |
2021-12-14 09:31:38 +0100 | <[itchyjunk]> | https://paste.tomsmeding.com/RfymL3yt |
2021-12-14 09:32:06 +0100 | <[itchyjunk]> | guess this isn't what i want though |
2021-12-14 09:32:22 +0100 | <[itchyjunk]> | But does compile and run @_@ |
2021-12-14 09:32:38 +0100 | slice | (~slice@user/slice) (Quit: cya) |
2021-12-14 09:33:13 +0100 | <mjrosenb> | that looks correct. |
2021-12-14 09:33:26 +0100 | <mjrosenb> | it'll turn into an infinite loop if you try to look at all of ut |
2021-12-14 09:33:52 +0100 | <mjrosenb> | but e.g. `take 300 simple` or `simple !! 9000` should both be fine. |
2021-12-14 09:33:53 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-12-14 09:35:13 +0100 | <[itchyjunk]> | hmm, `take 30 simple` produces a list of 30 1's but `simple !! 30` just outputs 1 |
2021-12-14 09:35:14 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection) |
2021-12-14 09:35:36 +0100 | LiaoTao | (~LiaoTao@gateway/tor-sasl/liaotao) |
2021-12-14 09:36:02 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-12-14 09:36:02 +0100 | <mjrosenb> | yes. (!!) is the index operator, it asks for the 30th element in the list, which is 1 |
2021-12-14 09:36:07 +0100 | <mjrosenb> | since every element in the list is 1. |
2021-12-14 09:36:12 +0100 | <[itchyjunk]> | ah |
2021-12-14 09:36:34 +0100 | <mjrosenb> | ok, next step: how about a list that has the natural numbers? |
2021-12-14 09:36:57 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:158b:cfc1:e7b3:d4ac) |
2021-12-14 09:37:57 +0100 | mncheck | (~mncheck@193.224.205.254) |
2021-12-14 09:38:54 +0100 | evocatus_ | (~evocatus@213.193.2.105) |
2021-12-14 09:39:30 +0100 | evocatus_ | (~evocatus@213.193.2.105) (Remote host closed the connection) |
2021-12-14 09:41:19 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:158b:cfc1:e7b3:d4ac) (Ping timeout: 252 seconds) |
2021-12-14 09:41:54 +0100 | evocatus | (~evocatus@91.211.251.87) (Ping timeout: 268 seconds) |
2021-12-14 09:43:40 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-14 09:44:31 +0100 | <[itchyjunk]> | Do i wanna take the last element, add one to it and add it back to the list? |
2021-12-14 09:44:49 +0100 | <[itchyjunk]> | natList = n+1 : natList where n = 0 was the closest idea i had lol |
2021-12-14 09:46:27 +0100 | <mjrosenb> | that will produce the same thing as simple, since n is always the same. |
2021-12-14 09:48:02 +0100 | <[itchyjunk]> | right |
2021-12-14 09:48:02 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-12-14 09:48:02 +0100 | kuribas | (~user@ptr-25vy0i8khbpxjegyagx.18120a2.ip6.access.telenet.be) |
2021-12-14 09:48:02 +0100 | <[itchyjunk]> | but i might be able to say where n is last thing in natList though.. I think |
2021-12-14 09:48:24 +0100 | <mjrosenb> | so starting with `natList = 1 : natList`, the second element is wrong, since it is 1 rather than 2 |
2021-12-14 09:48:35 +0100 | <mjrosenb> | and you want to affect *every* element after the first |
2021-12-14 09:48:43 +0100 | <mjrosenb> | how do you affect every element in a list? |
2021-12-14 09:48:55 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-12-14 09:49:21 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-14 09:49:38 +0100 | <[itchyjunk]> | Hm, apply a function to each element of list? maybe with map |
2021-12-14 09:50:01 +0100 | <mjrosenb> | sounds right. |
2021-12-14 09:50:43 +0100 | <[itchyjunk]> | This seems to somehow compile and do something weird btw : natList = n+1 : natList where n = last natList |
2021-12-14 09:51:05 +0100 | Inst | (~Inst@2601:6c4:4080:3f80:7939:82b5:8236:6c32) |
2021-12-14 09:51:10 +0100 | <[itchyjunk]> | When i run it, all I see is a `[` |
2021-12-14 09:52:26 +0100 | <mjrosenb> | hah, yeah. taking the last element of an infinite list will take a while. |
2021-12-14 09:52:35 +0100 | <[itchyjunk]> | ah |
2021-12-14 09:54:22 +0100 | <mjrosenb> | so |
2021-12-14 09:54:44 +0100 | <mjrosenb> | `natlist = 1 : ` is definitely correct. You have your base case; the first natural number is 1. |
2021-12-14 09:55:12 +0100 | <mjrosenb> | and you want to continue from there, with something that will evaluate to [2,3,4,5...] |
2021-12-14 09:55:43 +0100 | <[itchyjunk]> | yeah i was testing out how map works `map (+ 1) [1 .. 10] seems to do what i wanted |
2021-12-14 09:56:09 +0100 | <mjrosenb> | but using a range is cheating :-p |
2021-12-14 09:56:22 +0100 | <mjrosenb> | anyhow... |
2021-12-14 09:56:28 +0100 | <[itchyjunk]> | that was for testing |
2021-12-14 09:56:30 +0100 | <[itchyjunk]> | natList = 1 : map (+ 1) natList |
2021-12-14 09:56:45 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-12-14 09:56:47 +0100 | <mjrosenb> | yup, that looks right. |
2021-12-14 09:57:12 +0100 | <[itchyjunk]> | Hmm, I need to think this one through though. Does work |
2021-12-14 09:58:37 +0100 | acidjnk | (~acidjnk@p200300d0c7271e77ede7a7f9d267d612.dip0.t-ipconnect.de) |
2021-12-14 09:58:37 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 09:59:24 +0100 | <[itchyjunk]> | Oh i think it makes sense.. just barely |
2021-12-14 09:59:40 +0100 | <[itchyjunk]> | it hard to mentally follow along what is happening |
2021-12-14 09:59:53 +0100 | <mjrosenb> | it... takes some getting used to |
2021-12-14 10:00:04 +0100 | <mjrosenb> | but it is *very* illustrative |
2021-12-14 10:00:17 +0100 | <[itchyjunk]> | ah, good to know there is a future where i will be used to it |
2021-12-14 10:00:53 +0100 | <mjrosenb> | so, this is the natural numbers; nats 1 = 1; nats n = 1 + nats (n-1) |
2021-12-14 10:01:17 +0100 | <mjrosenb> | we want the fibonacci numbers; fib 1 = 1; fib 2 = 1; fib n = fib (n-1) + fib (n-2) |
2021-12-14 10:02:02 +0100 | <mjrosenb> | just by cargo culting, you can get something like `fibList = 1:1:...` |
2021-12-14 10:02:15 +0100 | <[itchyjunk]> | lol tat's what i had |
2021-12-14 10:02:35 +0100 | <mjrosenb> | but map isn't going to work, since the thing that is being applied isn't a constant, but instead varies depending on where you are in the list |
2021-12-14 10:02:49 +0100 | <mjrosenb> | but, a quirk of this method is... you can't really tell where you are in the list. |
2021-12-14 10:03:37 +0100 | abhixec | (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
2021-12-14 10:04:01 +0100 | <mjrosenb> | so, I guess as another intermediate step, rather than the natural numbers, you can do the powers of two |
2021-12-14 10:04:12 +0100 | <mjrosenb> | which comes in a simple flavor |
2021-12-14 10:04:33 +0100 | <mjrosenb> | powTwoList = 1 : map (2*) powTwoList |
2021-12-14 10:04:58 +0100 | <mjrosenb> | and, knowing that 2*x == x+x, a slightly stranger form |
2021-12-14 10:05:18 +0100 | <mjrosenb> | powTwoList = 1 : zip (+) powTwoList powTwoList |
2021-12-14 10:06:42 +0100 | <[itchyjunk]> | hmm |
2021-12-14 10:10:17 +0100 | <mjrosenb> | err |
2021-12-14 10:10:28 +0100 | <mjrosenb> | powTwoList = 1 : zipWith (+) powTwoList powTwoList |
2021-12-14 10:10:30 +0100 | <mjrosenb> | sorry about that. |
2021-12-14 10:12:39 +0100 | mikail | (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) |
2021-12-14 10:12:46 +0100 | <int-e> | > fix (scanl (+) 1) |
2021-12-14 10:12:47 +0100 | <lambdabot> | [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,2... |
2021-12-14 10:13:13 +0100 | <[itchyjunk]> | looks cheaty |
2021-12-14 10:13:42 +0100 | <int-e> | > fix ((0:) . scanl (+) 1) -- this is the more famous twin |
2021-12-14 10:13:44 +0100 | <lambdabot> | [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,... |
2021-12-14 10:13:52 +0100 | notzmv | (~zmv@user/notzmv) |
2021-12-14 10:14:23 +0100 | <xerox> | who wears a cool hat |
2021-12-14 10:14:59 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 10:15:11 +0100 | <mjrosenb> | int-e: well, I guess that doesn't take away from the solution I was working towards at all :-p |
2021-12-14 10:16:03 +0100 | <int-e> | mjrosenb: I hope you're aiming for the zip-based one |
2021-12-14 10:16:41 +0100 | <int-e> | I would always start at F_0 = 0 though. |
2021-12-14 10:16:47 +0100 | <mjrosenb> | well, I did have zipWith in the last definition I gave :-) |
2021-12-14 10:17:18 +0100 | <mjrosenb> | any reason? |
2021-12-14 10:17:36 +0100 | <mjrosenb> | I know why I don't like it, but it is a dumb reason. |
2021-12-14 10:18:29 +0100 | <mjrosenb> | actually, technically, I don't even like starting with two ones; 1:2:3:5:8... |
2021-12-14 10:18:42 +0100 | <mjrosenb> | but that seems to upset people too much. |
2021-12-14 10:18:50 +0100 | <int-e> | mjrosenb: yes, there is a reason: F_0 = 0 ensures that F_n | F_m when n | m |
2021-12-14 10:19:14 +0100 | cosimone` | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
2021-12-14 10:20:34 +0100 | cosimone | (~user@93-47-231-203.ip115.fastwebnet.it) (Ping timeout: 256 seconds) |
2021-12-14 10:21:39 +0100 | <mjrosenb> | is that n divides evenly into m? |
2021-12-14 10:21:45 +0100 | <int-e> | yes |
2021-12-14 10:22:23 +0100 | <mjrosenb> | that makes sense. |
2021-12-14 10:22:35 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) |
2021-12-14 10:23:29 +0100 | <mjrosenb> | I like [1,2,3,5...] because every integer can be uniquely represented as a sum of non-consecutive fibonacci numbers |
2021-12-14 10:23:41 +0100 | <mjrosenb> | but including a second 1 and a 0 breaks that. |
2021-12-14 10:24:49 +0100 | <int-e> | Oh the Zeckendorf thing. |
2021-12-14 10:27:34 +0100 | <mjrosenb> | is F_0 = 0 required for gcd(F_n, F_m) = F_gcd(n,m)? |
2021-12-14 10:28:40 +0100 | <int-e> | Yes. (If you take n = 0 then this becomes gcd(F_0, F_m) = F_m) |
2021-12-14 10:29:34 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 10:31:26 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-12-14 10:32:04 +0100 | mikail | (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Remote host closed the connection) |
2021-12-14 10:32:28 +0100 | mikail | (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) |
2021-12-14 10:32:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-12-14 10:32:41 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-12-14 10:36:06 +0100 | statusbot4 | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2021-12-14 10:36:59 +0100 | SquidDev9 | (~SquidDev@autoclave.squiddev.cc) |
2021-12-14 10:37:24 +0100 | darkstarx | (~darkstard@50.39.115.145) |
2021-12-14 10:37:44 +0100 | remedan_ | (~remedan@balak.me) |
2021-12-14 10:37:55 +0100 | tubogram4 | (~tubogram@user/tubogram) |
2021-12-14 10:38:03 +0100 | feliix42_ | (~felix@gibbs.uberspace.de) |
2021-12-14 10:38:15 +0100 | SquidDev | (~SquidDev@autoclave.squiddev.cc) (Killed (NickServ (GHOST command used by SquidDev9))) |
2021-12-14 10:38:17 +0100 | eL_Bart0 | (eL_Bart0@dietunichtguten.org) |
2021-12-14 10:38:21 +0100 | SquidDev9 | SquidDev |
2021-12-14 10:38:44 +0100 | derelict | (derelict@user/derelict) |
2021-12-14 10:38:44 +0100 | Athas_ | (athas@2a01:7c8:aaac:1cf:fd6:8489:d8da:43d) |
2021-12-14 10:38:55 +0100 | greyrat | (~greyrat@ip202.ip-51-178-215.eu) |
2021-12-14 10:39:48 +0100 | <mjrosenb> | hrm, so far, I'm unimpressed with lsp-mode |
2021-12-14 10:39:55 +0100 | Logio_ | (em@kapsi.fi) |
2021-12-14 10:39:58 +0100 | jzsinatr2 | (~jzsinatra@88-114-238-31.elisa-laajakaista.fi) |
2021-12-14 10:39:59 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 252 seconds) |
2021-12-14 10:40:05 +0100 | haveo_ | (~haveo@sl35.iuwt.fr) |
2021-12-14 10:40:05 +0100 | <mjrosenb> | I kind of suspect I don't have it set up correctly. |
2021-12-14 10:40:12 +0100 | td__ | (~td@muedsl-82-207-238-255.citykom.de) |
2021-12-14 10:40:14 +0100 | hltk_ | (~hltk@hltk.fi) |
2021-12-14 10:40:15 +0100 | _ht_ | (~quassel@82-169-194-8.biz.kpn.net) |
2021-12-14 10:40:20 +0100 | kritzefitz_ | (~kritzefit@debian/kritzefitz) |
2021-12-14 10:40:20 +0100 | Techcable_ | (~Techcable@168.235.93.147) |
2021-12-14 10:40:25 +0100 | mjacob_ | (~mjacob@adrastea.uberspace.de) |
2021-12-14 10:40:26 +0100 | bens_ | (~bens@www.typius.com) |
2021-12-14 10:40:44 +0100 | ft_ | (~ft@shell.chaostreff-dortmund.de) |
2021-12-14 10:40:55 +0100 | Megant_ | (megant@user/megant) |
2021-12-14 10:41:01 +0100 | mstksg | (~jle`@cpe-23-240-75-236.socal.res.rr.com) |
2021-12-14 10:41:03 +0100 | gentauro_ | (~gentauro@185.107.12.141) |
2021-12-14 10:41:05 +0100 | dfordvm | (~dfordivam@tk2-219-19469.vs.sakura.ne.jp) |
2021-12-14 10:41:07 +0100 | jjhoo_ | (~jahakala@user/jjhoo) |
2021-12-14 10:41:11 +0100 | peutri_ | (~peutri@ns317027.ip-94-23-46.eu) |
2021-12-14 10:41:13 +0100 | [exa]_ | (exa@srv3.blesmrt.net) |
2021-12-14 10:41:22 +0100 | gdd1 | (~gdd@129.199.146.230) |
2021-12-14 10:41:23 +0100 | takuan_dozo | (~takuan@178-116-218-225.access.telenet.be) |
2021-12-14 10:41:23 +0100 | jlamothe_ | (~jlamothe@198.251.61.229) |
2021-12-14 10:41:25 +0100 | sweater1 | (~sweater@206.81.18.26) |
2021-12-14 10:41:28 +0100 | pie_ | (~pie_bnc@user/pie/x-2818909) |
2021-12-14 10:41:43 +0100 | finstern1s | (~X@23.226.237.192) |
2021-12-14 10:41:49 +0100 | aweinsto1k | (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) |
2021-12-14 10:41:55 +0100 | kritzefitz_unaut | (~kritzefit@fw-front.credativ.com) |
2021-12-14 10:42:08 +0100 | kritzefitz_unaut | (~kritzefit@fw-front.credativ.com) () |
2021-12-14 10:43:06 +0100 | kritzefitz | (~kritzefit@debian/kritzefitz) (Killed (lithium.libera.chat (Nickname regained by services))) |
2021-12-14 10:43:06 +0100 | kritzefitz_ | kritzefitz |
2021-12-14 10:43:13 +0100 | pavonia | (~user@user/siracusa) (Read error: Connection reset by peer) |
2021-12-14 10:44:36 +0100 | adamCS_ | (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) |
2021-12-14 10:44:45 +0100 | dka_ | (~code-is-a@ns3059207.ip-193-70-33.eu) |
2021-12-14 10:44:52 +0100 | cyphase_eviltwin | (~cyphase@user/cyphase) |
2021-12-14 10:45:56 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 10:46:22 +0100 | [exa]_ | (exa@srv3.blesmrt.net) (Changing host) |
2021-12-14 10:46:22 +0100 | [exa]_ | (exa@user/exa/x-3587197) |
2021-12-14 10:46:40 +0100 | [exa] | (~exa@user/exa/x-3587197) (Killed (calcium.libera.chat (Nickname regained by services))) |
2021-12-14 10:46:40 +0100 | [exa]_ | [exa] |
2021-12-14 10:46:44 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (*.net *.split) |
2021-12-14 10:46:44 +0100 | cfricke | (~cfricke@user/cfricke) (*.net *.split) |
2021-12-14 10:46:44 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (*.net *.split) |
2021-12-14 10:46:44 +0100 | deadmarshal | (~deadmarsh@95.38.230.166) (*.net *.split) |
2021-12-14 10:46:44 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (*.net *.split) |
2021-12-14 10:46:44 +0100 | td_ | (~td@muedsl-82-207-238-255.citykom.de) (*.net *.split) |
2021-12-14 10:46:44 +0100 | mjacob | (~mjacob@adrastea.uberspace.de) (*.net *.split) |
2021-12-14 10:46:44 +0100 | cheater | (~Username@user/cheater) (*.net *.split) |
2021-12-14 10:46:44 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) (*.net *.split) |
2021-12-14 10:46:44 +0100 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (*.net *.split) |
2021-12-14 10:46:44 +0100 | kmein | (~weechat@user/kmein) (*.net *.split) |
2021-12-14 10:46:44 +0100 | gdd | (~gdd@129.199.146.230) (*.net *.split) |
2021-12-14 10:46:44 +0100 | Alex_test | (~al_test@178.34.163.33) (*.net *.split) |
2021-12-14 10:46:44 +0100 | AlexZenon | (~alzenon@178.34.163.33) (*.net *.split) |
2021-12-14 10:46:44 +0100 | Techcable | (~Techcable@168.235.93.147) (*.net *.split) |
2021-12-14 10:46:44 +0100 | tubogram | (~tubogram@user/tubogram) (*.net *.split) |
2021-12-14 10:46:44 +0100 | darkstardevx | (~darkstard@50.39.115.145) (*.net *.split) |
2021-12-14 10:46:44 +0100 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) (*.net *.split) |
2021-12-14 10:46:44 +0100 | joo-_ | (~joo-_@fsf/member/joo--) (*.net *.split) |
2021-12-14 10:46:44 +0100 | Digit | (~user@user/digit) (*.net *.split) |
2021-12-14 10:46:44 +0100 | jle` | (~jle`@cpe-23-240-75-236.socal.res.rr.com) (*.net *.split) |
2021-12-14 10:46:44 +0100 | nek0 | (~nek0@nek0.eu) (*.net *.split) |
2021-12-14 10:46:44 +0100 | Megant | (megant@user/megant) (*.net *.split) |
2021-12-14 10:46:44 +0100 | sweater | (~sweater@206.81.18.26) (*.net *.split) |
2021-12-14 10:46:44 +0100 | dwt_ | (~dwt_@c-98-198-103-176.hsd1.tx.comcast.net) (*.net *.split) |
2021-12-14 10:46:44 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) (*.net *.split) |
2021-12-14 10:46:44 +0100 | noctux | (~noctux@user/noctux) (*.net *.split) |
2021-12-14 10:46:44 +0100 | feliix42 | (~felix@gibbs.uberspace.de) (*.net *.split) |
2021-12-14 10:46:44 +0100 | cyphase | (~cyphase@user/cyphase) (*.net *.split) |
2021-12-14 10:46:44 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (*.net *.split) |
2021-12-14 10:46:44 +0100 | Hecate | (~mariposa@user/hecate) (*.net *.split) |
2021-12-14 10:46:44 +0100 | remedan | (~remedan@balak.me) (*.net *.split) |
2021-12-14 10:46:45 +0100 | ft | (~ft@shell.chaostreff-dortmund.de) (*.net *.split) |
2021-12-14 10:46:45 +0100 | drewolson | (~drewolson@user/drewolson) (*.net *.split) |
2021-12-14 10:46:45 +0100 | PigDude | (~PigDude@159.203.16.199) (*.net *.split) |
2021-12-14 10:46:45 +0100 | aweinstock | (~aweinstoc@cpe-67-248-65-250.nycap.res.rr.com) (*.net *.split) |
2021-12-14 10:46:45 +0100 | hrdl | (~hrdl@mail.hrdl.eu) (*.net *.split) |
2021-12-14 10:46:45 +0100 | jlamothe | (~jlamothe@198.251.61.229) (*.net *.split) |
2021-12-14 10:46:45 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) (*.net *.split) |
2021-12-14 10:46:45 +0100 | gentauro | (~gentauro@user/gentauro) (*.net *.split) |
2021-12-14 10:46:45 +0100 | Logio | (em@kapsi.fi) (*.net *.split) |
2021-12-14 10:46:45 +0100 | niko | (~niko@libera/staff/niko) (*.net *.split) |
2021-12-14 10:46:45 +0100 | nisstyre | (~wes@user/nisstyre) (*.net *.split) |
2021-12-14 10:46:45 +0100 | pragma- | (~chaos@user/pragmatic-chaos) (*.net *.split) |
2021-12-14 10:46:45 +0100 | dka | (~code-is-a@ns3059207.ip-193-70-33.eu) (*.net *.split) |
2021-12-14 10:46:45 +0100 | hltk | (~hltk@hltk.fi) (*.net *.split) |
2021-12-14 10:46:45 +0100 | pie__ | (~pie_bnc@user/pie/x-2818909) (*.net *.split) |
2021-12-14 10:46:45 +0100 | dfordivam1 | (~dfordivam@tk2-219-19469.vs.sakura.ne.jp) (*.net *.split) |
2021-12-14 10:46:45 +0100 | greyrat_ | (~greyrat@ip202.ip-51-178-215.eu) (*.net *.split) |
2021-12-14 10:46:45 +0100 | eL_Bart0- | (eL_Bart0@dietunichtguten.org) (*.net *.split) |
2021-12-14 10:46:45 +0100 | jzsinatra | (~jzsinatra@88-114-238-31.elisa-laajakaista.fi) (*.net *.split) |
2021-12-14 10:46:45 +0100 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (*.net *.split) |
2021-12-14 10:46:45 +0100 | peutri | (~peutri@ns317027.ip-94-23-46.eu) (*.net *.split) |
2021-12-14 10:46:45 +0100 | ikke | (~kevin@alpine/developer/ikke) (*.net *.split) |
2021-12-14 10:46:45 +0100 | Athas | (athas@sigkill.dk) (*.net *.split) |
2021-12-14 10:46:45 +0100 | haveo | (~haveo@sl35.iuwt.fr) (*.net *.split) |
2021-12-14 10:46:45 +0100 | bens | (~bens@www.typius.com) (*.net *.split) |
2021-12-14 10:46:45 +0100 | jjhoo | (~jahakala@user/jjhoo) (*.net *.split) |
2021-12-14 10:46:45 +0100 | finsternis | (~X@23.226.237.192) (*.net *.split) |
2021-12-14 10:46:45 +0100 | yahb | (xsbot@user/mniip/bot/yahb) (*.net *.split) |
2021-12-14 10:46:45 +0100 | tetrahedron | (~derelict@user/derelict) (*.net *.split) |
2021-12-14 10:46:46 +0100 | asm | (~alexander@user/asm) (*.net *.split) |
2021-12-14 10:46:46 +0100 | adamCS | (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (*.net *.split) |
2021-12-14 10:46:46 +0100 | tubogram4 | tubogram |
2021-12-14 10:46:46 +0100 | ft_ | ft |
2021-12-14 10:46:46 +0100 | adamCS_ | adamCS |
2021-12-14 10:46:56 +0100 | dsrt^ | (~dsrt@wsip-98-188-240-142.mc.at.cox.net) |
2021-12-14 10:47:27 +0100 | yahb | (xsbot@user/mniip/bot/yahb) |
2021-12-14 10:48:05 +0100 | max22- | (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 250 seconds) |
2021-12-14 10:48:29 +0100 | pavonia | (~user@user/siracusa) |
2021-12-14 10:51:51 +0100 | AlexZenon | (~alzenon@178.34.163.33) |
2021-12-14 10:51:51 +0100 | Alex_test | (~al_test@178.34.163.33) |
2021-12-14 10:51:51 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-14 10:51:51 +0100 | deadmarshal | (~deadmarsh@95.38.230.166) |
2021-12-14 10:51:51 +0100 | cheater | (~Username@user/cheater) |
2021-12-14 10:51:51 +0100 | kmein | (~weechat@user/kmein) |
2021-12-14 10:51:51 +0100 | joo-_ | (~joo-_@fsf/member/joo--) |
2021-12-14 10:51:51 +0100 | Digit | (~user@user/digit) |
2021-12-14 10:51:51 +0100 | nek0 | (~nek0@nek0.eu) |
2021-12-14 10:51:51 +0100 | dwt_ | (~dwt_@c-98-198-103-176.hsd1.tx.comcast.net) |
2021-12-14 10:51:51 +0100 | Flonk | (~Flonk@vps-zap441517-1.zap-srv.com) |
2021-12-14 10:51:51 +0100 | drewolson | (~drewolson@user/drewolson) |
2021-12-14 10:51:51 +0100 | PigDude | (~PigDude@159.203.16.199) |
2021-12-14 10:51:51 +0100 | hrdl | (~hrdl@mail.hrdl.eu) |
2021-12-14 10:51:51 +0100 | lambdabot | (~lambdabot@haskell/bot/lambdabot) |
2021-12-14 10:51:51 +0100 | niko | (~niko@libera/staff/niko) |
2021-12-14 10:51:51 +0100 | nisstyre | (~wes@user/nisstyre) |
2021-12-14 10:52:25 +0100 | noctux | (~noctux@user/noctux) |
2021-12-14 10:53:06 +0100 | asm | (~alexander@burner.asm89.io) |
2021-12-14 10:53:36 +0100 | pragma- | (~chaos@user/pragmatic-chaos) |
2021-12-14 10:53:38 +0100 | paddymahoney | (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) |
2021-12-14 10:53:39 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-12-14 10:53:39 +0100 | teo | (~teo@user/teo) |
2021-12-14 10:53:40 +0100 | danso | (~danso@23-233-111-52.cpe.pppoe.ca) |
2021-12-14 10:53:53 +0100 | ikke | (~kevin@alpine/developer/ikke) |
2021-12-14 10:53:55 +0100 | nfd | (~nfd@user/nfd) (Ping timeout: 252 seconds) |
2021-12-14 10:59:43 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 11:00:14 +0100 | joo-_ | (~joo-_@fsf/member/joo--) (Ping timeout: 256 seconds) |
2021-12-14 11:02:08 +0100 | joo-_ | (~joo-_@87-49-45-77-mobile.dk.customer.tdc.net) |
2021-12-14 11:02:08 +0100 | joo-_ | (~joo-_@87-49-45-77-mobile.dk.customer.tdc.net) (Changing host) |
2021-12-14 11:02:08 +0100 | joo-_ | (~joo-_@fsf/member/joo--) |
2021-12-14 11:08:57 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:2c0a:74d4:9496:54f1) (Ping timeout: 252 seconds) |
2021-12-14 11:09:09 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
2021-12-14 11:15:02 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
2021-12-14 11:15:06 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-12-14 11:15:51 +0100 | Whatever009 | (~fuzzypixe@tchebychev.ensimag.fr) |
2021-12-14 11:15:58 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 11:16:07 +0100 | InternetCitizen | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds) |
2021-12-14 11:16:20 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:2a7d:20d:33d5:1d47) |
2021-12-14 11:17:00 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-12-14 11:17:56 +0100 | Lord_of_Life_ | Lord_of_Life |
2021-12-14 11:24:42 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-14 11:25:09 +0100 | cfricke | (~cfricke@user/cfricke) (Ping timeout: 265 seconds) |
2021-12-14 11:28:01 +0100 | jjhoo_ | jjhoo |
2021-12-14 11:30:25 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 11:33:38 +0100 | mmhat | (~mmh@55d46318.access.ecotel.net) |
2021-12-14 11:36:50 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-14 11:43:37 +0100 | mikail | (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Quit: Leaving) |
2021-12-14 11:44:00 +0100 | Inst | (~Inst@2601:6c4:4080:3f80:7939:82b5:8236:6c32) (Remote host closed the connection) |
2021-12-14 11:44:11 +0100 | mikail | (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) |
2021-12-14 11:44:18 +0100 | Inst | (~Inst@2601:6c4:4080:3f80:7939:82b5:8236:6c32) |
2021-12-14 11:45:42 +0100 | mikail | (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Client Quit) |
2021-12-14 11:46:29 +0100 | mikail | (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) |
2021-12-14 11:46:43 +0100 | Unhammer | (~Unhammer@user/unhammer) (Ping timeout: 252 seconds) |
2021-12-14 11:46:55 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 11:54:30 +0100 | Erutuon | (~Erutuon@user/erutuon) (Ping timeout: 268 seconds) |
2021-12-14 11:54:53 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-14 11:55:16 +0100 | mikail | (~mikail@2a02:c7f:bc1f:4a00:fc9:3da5:3e1e:8303) (Quit: Leaving) |
2021-12-14 11:55:43 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Ping timeout: 268 seconds) |
2021-12-14 11:55:43 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 11:56:17 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:f5a3:3a61:fbe9:f021) |
2021-12-14 11:57:00 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-12-14 11:57:51 +0100 | SummerSonw | (~The_viole@203.77.49.232) |
2021-12-14 12:00:03 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) |
2021-12-14 12:00:46 +0100 | Unhammer | (~Unhammer@user/unhammer) |
2021-12-14 12:05:11 +0100 | max22- | (~maxime@2a01cb08833598008d643fe4ea2e3b05.ipv6.abo.wanadoo.fr) |
2021-12-14 12:07:04 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-12-14 12:07:18 +0100 | zincy_ | (~zincy@2a00:23c8:970c:4801:4508:9275:13c9:2a0) (Remote host closed the connection) |
2021-12-14 12:07:20 +0100 | __monty__ | (~toonn@user/toonn) |
2021-12-14 12:07:21 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-14 12:07:45 +0100 | Athas_ | Athas |
2021-12-14 12:11:32 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 240 seconds) |
2021-12-14 12:11:57 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 12:12:49 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-12-14 12:17:19 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) |
2021-12-14 12:19:46 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-12-14 12:21:14 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-12-14 12:22:41 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 12:29:02 +0100 | Whatever009 | (~fuzzypixe@tchebychev.ensimag.fr) (Ping timeout: 240 seconds) |
2021-12-14 12:29:17 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 250 seconds) |
2021-12-14 12:29:26 +0100 | fr33domlover | (~fr33@2.55.170.123) (Ping timeout: 265 seconds) |
2021-12-14 12:29:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-14 12:30:05 +0100 | Whatever009 | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-12-14 12:31:00 +0100 | fr33domlover | (~fr33@2.55.142.29) |
2021-12-14 12:36:38 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-12-14 12:36:47 +0100 | Hecate | (~mariposa@163.172.211.189) |
2021-12-14 12:37:30 +0100 | lbseale_ | (~ep1ctetus@user/ep1ctetus) |
2021-12-14 12:38:02 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Ping timeout: 240 seconds) |
2021-12-14 12:39:06 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
2021-12-14 12:39:16 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-12-14 12:40:37 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 12:40:48 +0100 | johnw | (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) (Read error: Connection reset by peer) |
2021-12-14 12:41:04 +0100 | ThC27 | (ThC27@gateway/vpn/protonvpn/thc27) |
2021-12-14 12:41:43 +0100 | Akiva | (~Akiva@user/Akiva) (Ping timeout: 252 seconds) |
2021-12-14 12:42:30 +0100 | johnw | (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
2021-12-14 12:46:17 +0100 | joo-_ | (~joo-_@fsf/member/joo--) (Quit: leaving) |
2021-12-14 12:46:34 +0100 | joo-_ | (~joo-_@87-49-45-77-mobile.dk.customer.tdc.net) |
2021-12-14 12:46:34 +0100 | joo-_ | (~joo-_@87-49-45-77-mobile.dk.customer.tdc.net) (Changing host) |
2021-12-14 12:46:34 +0100 | joo-_ | (~joo-_@fsf/member/joo--) |
2021-12-14 12:49:47 +0100 | Whatever009 | (~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 252 seconds) |
2021-12-14 12:53:46 +0100 | pfurla_ | (~pfurla@177.79.122.168) |
2021-12-14 12:57:07 +0100 | pfurla | (~pfurla@177.25.178.222) (Ping timeout: 252 seconds) |
2021-12-14 12:58:10 +0100 | raehik | (~raehik@cpc144538-stap14-2-0-cust361.12-2.cable.virginm.net) |
2021-12-14 13:00:36 +0100 | aweinsto1k | aweinstock |
2021-12-14 13:03:46 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-14 13:04:53 +0100 | asm | (~alexander@burner.asm89.io) (Changing host) |
2021-12-14 13:04:53 +0100 | asm | (~alexander@user/asm) |
2021-12-14 13:06:36 +0100 | SummerSonw | (~The_viole@203.77.49.232) (Ping timeout: 256 seconds) |
2021-12-14 13:08:55 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 13:10:15 +0100 | canta | (~canta@user/canta) (Quit: WeeChat 2.8) |
2021-12-14 13:13:14 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) |
2021-12-14 13:25:54 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 13:26:43 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-14 13:35:15 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
2021-12-14 13:38:23 +0100 | <dminuoso> | Is there a way to protect myself against a cabal package on hackage being replaced? |
2021-12-14 13:38:34 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 13:38:59 +0100 | Dansk31 | (~Dansk31@147.114.141.88.rev.sfr.net) |
2021-12-14 13:39:14 +0100 | Dansk31 | (~Dansk31@147.114.141.88.rev.sfr.net) (Client Quit) |
2021-12-14 13:39:40 +0100 | <dminuoso> | If memory serves right, hackage in principle allows some people to replace a package |
2021-12-14 13:41:18 +0100 | ThC27 | (ThC27@gateway/vpn/protonvpn/thc27) (Quit: ThC27) |
2021-12-14 13:44:44 +0100 | <hpc> | i think the best protection is to keep the package actively maintained |
2021-12-14 13:45:49 +0100 | <hpc> | it will never be "impossible" to replace a hackage package, as long as the reason is good enough |
2021-12-14 13:52:49 +0100 | Hecate | (~mariposa@163.172.211.189) (Changing host) |
2021-12-14 13:52:49 +0100 | Hecate | (~mariposa@user/hecate) |
2021-12-14 13:55:02 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 13:58:40 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-12-14 13:59:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-14 14:03:38 +0100 | max22- | (~maxime@2a01cb08833598008d643fe4ea2e3b05.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds) |
2021-12-14 14:05:53 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 14:08:00 +0100 | <dminuoso> | Sure, I dont mind that part as much |
2021-12-14 14:08:10 +0100 | <dminuoso> | But cabal has no way of pinning the hash, right? |
2021-12-14 14:08:17 +0100 | chomwitt | (~chomwitt@2a02:587:dc0d:3700:12c3:7bff:fe6d:d374) |
2021-12-14 14:08:21 +0100 | <dminuoso> | It seems the best way would be to vendor all dependencies |
2021-12-14 14:08:38 +0100 | altern | (~Sergii@altern.corbina.com.ua) |
2021-12-14 14:08:52 +0100 | <dminuoso> | Incidentally, if you vendor them, you get to actually observe and use `git diff` each time a package is updated. Makes auditing changes in your transitive dependency graph easier. :) |
2021-12-14 14:09:52 +0100 | <dminuoso> | And it keeps my build really deterministic, irrespective of whether a compromised or evil hackage admin decides to hijack `containers` |
2021-12-14 14:09:56 +0100 | <merijn> | dminuoso: If you use source-repositories you can pin to specific git commits |
2021-12-14 14:10:20 +0100 | <dminuoso> | merijn: I felt this feature has quite poor UX |
2021-12-14 14:10:28 +0100 | <dminuoso> | I still have a bad taste in my mouth of it. |
2021-12-14 14:10:31 +0100 | <merijn> | dminuoso: tbh, freeze files pinning a specific version should have the same effect, since versions do have hashes in the cabal index |
2021-12-14 14:10:38 +0100 | deadmarshal | (~deadmarsh@95.38.230.166) (Ping timeout: 256 seconds) |
2021-12-14 14:10:39 +0100 | <merijn> | dminuoso: How so? |
2021-12-14 14:11:03 +0100 | <dminuoso> | So first, it relies on the git repository still being available. Every now and then I find packages whose upstream git/mercurial repo has just vanished |
2021-12-14 14:11:35 +0100 | <merijn> | dminuoso: Well, pin to repos you control (which can just be mirrors of upstream) |
2021-12-14 14:11:53 +0100 | <merijn> | That doesn't sound like a UX issue |
2021-12-14 14:12:03 +0100 | <dminuoso> | merijn: I think it might be much easier to instrument cabal to vendor all libraries, rather than to fork all repositories |
2021-12-14 14:12:34 +0100 | <dminuoso> | merijn: I found it interefered with caching in strange ways. |
2021-12-14 14:13:00 +0100 | <dminuoso> | There are bugs I still cant reliably reproduce that would leave me with stale dist-newstyle/ in very odd scenarios, and they always occured when I used source-repositories |
2021-12-14 14:13:09 +0100 | <dminuoso> | s/always/only/ |
2021-12-14 14:13:41 +0100 | SIben | (~SIben@ns3106586.ip-5-135-191.eu) (Ping timeout: 245 seconds) |
2021-12-14 14:22:07 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 14:22:07 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-12-14 14:23:38 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2021-12-14 14:24:04 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2021-12-14 14:26:11 +0100 | son0p | (~ff@2800:484:1d81:b700::4) (Ping timeout: 268 seconds) |
2021-12-14 14:36:30 +0100 | max22- | (~maxime@2a01cb08833598001d6a33d2fe2bc13e.ipv6.abo.wanadoo.fr) |
2021-12-14 14:39:24 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 14:39:43 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) (Ping timeout: 250 seconds) |
2021-12-14 14:41:47 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-12-14 14:41:52 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-14 14:42:38 +0100 | <neverwas> | mjrosenb, what problems were you seeing with lsp? I tried setting it up recently as well and ran into a few sore spots. for example, it gets in an inconsistent state where the snippet sent for diagnosis will be elided |
2021-12-14 14:43:00 +0100 | <neverwas> | as in corrupted by virtue of being sent too early (i think). |
2021-12-14 14:43:13 +0100 | <neverwas> | so what the server sees is somehow "stale" while the live text in the buffer may be fine but gets underlined as being faulty anyway. |
2021-12-14 14:43:58 +0100 | <neverwas> | To be clear, this is lsp-mode (not eglot), and the version I'm running is likely a few weeks old (or more) |
2021-12-14 14:45:46 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2021-12-14 14:46:02 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
2021-12-14 14:56:15 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 14:56:41 +0100 | ian` | (~user@ool-45779fe5.dyn.optonline.net) |
2021-12-14 14:56:44 +0100 | ian` | Guest999 |
2021-12-14 14:57:01 +0100 | Guest999 | bontaq |
2021-12-14 15:04:59 +0100 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-12-14 15:05:08 +0100 | SIben | (~SIben@ns3106586.ip-5-135-191.eu) |
2021-12-14 15:05:43 +0100 | max22- | (~maxime@2a01cb08833598001d6a33d2fe2bc13e.ipv6.abo.wanadoo.fr) (Ping timeout: 250 seconds) |
2021-12-14 15:07:01 +0100 | xff0x | (~xff0x@2001:1a81:5283:7b00:6c74:59db:ccc0:34d8) (Ping timeout: 240 seconds) |
2021-12-14 15:07:19 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-12-14 15:08:10 +0100 | xff0x | (~xff0x@2001:1a81:5283:7b00:180c:adc:91b3:927a) |
2021-12-14 15:14:11 +0100 | deadmarshal | (~deadmarsh@95.38.230.166) |
2021-12-14 15:16:36 +0100 | ub | (~Thunderbi@p200300ecdf1abbee153a2c4097e8e97e.dip0.t-ipconnect.de) |
2021-12-14 15:21:57 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-12-14 15:23:20 +0100 | chexum_ | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2021-12-14 15:23:32 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2021-12-14 15:23:32 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 15:31:11 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-14 15:39:57 +0100 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-12-14 15:40:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-14 15:40:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-14 15:40:07 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-14 15:40:13 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-12-14 15:40:24 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 15:40:38 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-14 15:43:17 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) (Ping timeout: 268 seconds) |
2021-12-14 15:43:50 +0100 | thevishy | (~Nishant@2405:201:f005:c007:d93e:9746:14f0:2f69) |
2021-12-14 15:43:52 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2021-12-14 15:44:16 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-12-14 15:48:23 +0100 | xff0x | (~xff0x@2001:1a81:5283:7b00:180c:adc:91b3:927a) (Ping timeout: 250 seconds) |
2021-12-14 15:48:39 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-14 15:50:16 +0100 | pfurla | (~pfurla@177.79.125.203) |
2021-12-14 15:50:28 +0100 | <dminuoso> | Is there some windows/linux/macOS portable mechanism for asking whether a given path is a regular file or a regular direcotry? |
2021-12-14 15:50:37 +0100 | <dminuoso> | I dont care about anything else, really. |
2021-12-14 15:50:55 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 15:51:47 +0100 | pfurla_ | (~pfurla@177.79.122.168) (Read error: Connection reset by peer) |
2021-12-14 15:54:01 +0100 | wagle | (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-12-14 15:54:32 +0100 | <merijn> | dminuoso: One of the stat() system calls? |
2021-12-14 15:54:33 +0100 | wagle | (~wagle@quassel.wagle.io) |
2021-12-14 15:55:38 +0100 | <dminuoso> | merijn: And Windows? |
2021-12-14 15:55:48 +0100 | <dminuoso> | Or do you suggest I just ifdef my way out of this? |
2021-12-14 15:55:52 +0100 | <geekosaur> | do you care about symlinks? |
2021-12-14 15:56:07 +0100 | <merijn> | dminuoso: Good luck getting a single cross platform API |
2021-12-14 15:56:26 +0100 | <geekosaur> | that said, ifdefs may be your only solution (what merijn said, basically) |
2021-12-14 15:56:32 +0100 | <dminuoso> | My requirements are really simple. I want to naively traverse all files, under the assumption the administrator has not set up loops. |
2021-12-14 15:56:41 +0100 | <dminuoso> | And I want to read these files. |
2021-12-14 15:57:01 +0100 | <dminuoso> | But for sanity I want to skip all these special files like fifos or chararacter devices |
2021-12-14 15:57:06 +0100 | <merijn> | dminuoso: Try changing directory to it and see if it works :p |
2021-12-14 15:57:17 +0100 | deadmarshal | (~deadmarsh@95.38.230.166) (Ping timeout: 250 seconds) |
2021-12-14 15:57:20 +0100 | <merijn> | dminuoso: stat and friend can tell you if something is a special file or not |
2021-12-14 15:57:26 +0100 | <dminuoso> | merijn: Sure, on linux. |
2021-12-14 15:58:18 +0100 | <geekosaur> | https://downloads.haskell.org/ghc/latest/docs/html/libraries/directory-1.3.6.2/System-Directory.ht… may be the best you'll do, assuming you don't care about symlinks or something that is neither file nor directory |
2021-12-14 15:58:59 +0100 | <geekosaur> | on POSIX you need {,l}stat to do any better; on Windows you need to check for reparse points and possibly verify that a reparse point represents a symlink |
2021-12-14 15:59:24 +0100 | <geekosaur> | basically, doing this portably is Hard |
2021-12-14 16:02:21 +0100 | <dminuoso> | reparse points? |
2021-12-14 16:02:29 +0100 | <dminuoso> | What black magic does Win32 have here? |
2021-12-14 16:03:06 +0100 | <geekosaur> | reparse points are how windows implements symlinks, but also how it does other things like network directories (roughly equivalent to a unix mount point) |
2021-12-14 16:05:06 +0100 | <geekosaur> | https://downloads.haskell.org/ghc/latest/docs/html/libraries/directory-1.3.6.2/System-Directory.ht… note reference to junction points, which are not symlinks |
2021-12-14 16:05:32 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2021-12-14 16:05:35 +0100 | <geekosaur> | also file and directory "symlinks" are distinct entities / reparse points on windows |
2021-12-14 16:06:49 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-12-14 16:07:43 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 16:08:09 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2021-12-14 16:10:45 +0100 | xff0x | (~xff0x@2001:1a81:5283:7b00:180c:adc:91b3:927a) |
2021-12-14 16:15:56 +0100 | max22- | (~maxime@2a01cb0883359800604ddf259a1a7168.ipv6.abo.wanadoo.fr) |
2021-12-14 16:15:57 +0100 | dolio | (~dolio@130.44.130.54) (Ping timeout: 268 seconds) |
2021-12-14 16:15:59 +0100 | <sprout> | https://github.com/egel-lang/aoc-2021/blob/main/day14/task2.eg <- Advent of Code, day 14, task 2, solution in Egel. though dicts are overkill on this problem |
2021-12-14 16:16:08 +0100 | <sprout> | https://pasteboard.co/6fErCUImZtkF.png <- 'pretty' colors |
2021-12-14 16:18:34 +0100 | <janus> | what is the connection between haskell and egel? |
2021-12-14 16:19:11 +0100 | <janus> | is it that they both have purely functional parts? |
2021-12-14 16:19:11 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 16:20:03 +0100 | _xor | (~xor@dsl-50-5-233-169.fuse.net) (Read error: Connection reset by peer) |
2021-12-14 16:21:23 +0100 | zebrag | (~chris@user/zebrag) |
2021-12-14 16:21:35 +0100 | Athas | (athas@2a01:7c8:aaac:1cf:fd6:8489:d8da:43d) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-14 16:21:46 +0100 | Athas | (athas@2a01:7c8:aaac:1cf:fd6:8489:d8da:43d) |
2021-12-14 16:22:11 +0100 | xff0x | (~xff0x@2001:1a81:5283:7b00:180c:adc:91b3:927a) (Ping timeout: 250 seconds) |
2021-12-14 16:22:56 +0100 | xff0x | (~xff0x@2001:1a81:5283:7b00:9491:73c8:4b2b:b7f3) |
2021-12-14 16:23:10 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-14 16:23:10 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-14 16:23:10 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-14 16:24:18 +0100 | <sprout> | both functional. but because how egel developed it is on a number of things diametrically opposite. eager impure untyped and with reflection (under development) |
2021-12-14 16:25:51 +0100 | _xor | (~xor@dsl-50-5-233-169.fuse.net) |
2021-12-14 16:26:21 +0100 | <sprout> | still slow though. beta/proof of concept code. at some point I'll change the back-end which should give an order and be some factor slower than ghci hopefully |
2021-12-14 16:27:50 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-12-14 16:27:51 +0100 | juhp | (~juhp@128.106.188.82) |
2021-12-14 16:29:10 +0100 | acidjnk | (~acidjnk@p200300d0c7271e77ede7a7f9d267d612.dip0.t-ipconnect.de) (Ping timeout: 265 seconds) |
2021-12-14 16:33:04 +0100 | canta | (~canta@user/canta) |
2021-12-14 16:35:31 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) |
2021-12-14 16:37:17 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 16:39:41 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 252 seconds) |
2021-12-14 16:41:00 +0100 | nvmd | (~nvmd@user/nvmd) |
2021-12-14 16:43:22 +0100 | son0p | (~ff@2800:484:1d81:b700:d40b:900:b387:320) |
2021-12-14 16:43:32 +0100 | hololeap_ | (~hololeap@user/hololeap) |
2021-12-14 16:43:45 +0100 | hololeap | (~hololeap@user/hololeap) (Ping timeout: 276 seconds) |
2021-12-14 16:45:07 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 16:45:19 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-14 16:48:11 +0100 | raehik | (~raehik@cpc144538-stap14-2-0-cust361.12-2.cable.virginm.net) (Ping timeout: 256 seconds) |
2021-12-14 16:49:41 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2021-12-14 16:59:51 +0100 | chele | (~chele@user/chele) (Ping timeout: 252 seconds) |
2021-12-14 17:02:47 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 17:02:51 +0100 | josemotanet | (~jose@2001:8a0:ee85:a00:d4ef:b473:6a8a:ba2e) |
2021-12-14 17:02:56 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-12-14 17:03:29 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 256 seconds) |
2021-12-14 17:07:40 +0100 | zaquest | (~notzaques@5.130.79.72) |
2021-12-14 17:07:53 +0100 | Whatever009 | (~fuzzypixe@ensi-libre-service-019.ensimag.fr) |
2021-12-14 17:13:33 +0100 | Guest19 | (~Guest19@n110-33-34-202.hum1.act.optusnet.com.au) |
2021-12-14 17:14:23 +0100 | bliminse | (~bliminse@host86-162-147-196.range86-162.btcentralplus.com) (Quit: leaving) |
2021-12-14 17:17:03 +0100 | lbseale_ | (~ep1ctetus@user/ep1ctetus) (Read error: Connection reset by peer) |
2021-12-14 17:17:33 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:2a7d:20d:33d5:1d47) (Quit: WeeChat 2.8) |
2021-12-14 17:20:11 +0100 | <snake> | is there a doc or something that demonstrates all the places where i can use curly braces and semicolons in haskell? |
2021-12-14 17:21:42 +0100 | <merijn> | snake: Well, there's mostly documentation that explains on how to use indentation instead of braces, but that should also mostly explain the reverse :) |
2021-12-14 17:21:48 +0100 | <merijn> | snake: https://en.wikibooks.org/wiki/Haskell/Indentation |
2021-12-14 17:22:08 +0100 | <merijn> | And of course the (more formal) version in the report: https://www.haskell.org/onlinereport/haskell2010/haskellch10.html#x17-17800010.3 |
2021-12-14 17:23:07 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 17:23:19 +0100 | MoC | (~moc@user/moc) |
2021-12-14 17:24:37 +0100 | mncheck | (~mncheck@193.224.205.254) (Remote host closed the connection) |
2021-12-14 17:26:36 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-12-14 17:26:57 +0100 | bliminse | (~bliminse@host86-162-147-196.range86-162.btcentralplus.com) |
2021-12-14 17:27:37 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 250 seconds) |
2021-12-14 17:30:46 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-12-14 17:33:56 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2021-12-14 17:34:25 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2021-12-14 17:34:28 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Remote host closed the connection) |
2021-12-14 17:35:20 +0100 | nek0 | (~nek0@nek0.eu) (Quit: The Lounge - https://thelounge.chat) |
2021-12-14 17:35:34 +0100 | <snake> | merijn, what is wrong with my main function? i'm getting "parse error on print" https://dpaste.com/9FEUGP7QS |
2021-12-14 17:36:43 +0100 | cosimone` | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Ping timeout: 250 seconds) |
2021-12-14 17:37:16 +0100 | <merijn> | snake: You have no braces on let |
2021-12-14 17:37:22 +0100 | <c_wraith> | snake: that's what happens when you use braces and semicolons instead of layout - if you don't use all of them, you get parse errors |
2021-12-14 17:37:31 +0100 | <merijn> | let { nums = toList myLines } |
2021-12-14 17:37:32 +0100 | <snake> | oh i see |
2021-12-14 17:37:37 +0100 | <snake> | sad lol |
2021-12-14 17:37:58 +0100 | cosimone | (~user@93-47-231-203.ip115.fastwebnet.it) |
2021-12-14 17:38:33 +0100 | <snake> | why am i addicted to writing in a new lang i dislike |
2021-12-14 17:41:01 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 17:41:38 +0100 | <snake> | maybe i'm a workaholic LOL |
2021-12-14 17:42:27 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2021-12-14 17:43:51 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-12-14 17:44:42 +0100 | nek0 | (~nek0@nek0.eu) |
2021-12-14 17:48:42 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 17:53:16 +0100 | <merijn> | bah |
2021-12-14 17:53:22 +0100 | <merijn> | My solution for today seems insufficiently lazy |
2021-12-14 17:54:32 +0100 | fr33domlover | (~fr33@2.55.142.29) (Ping timeout: 240 seconds) |
2021-12-14 17:54:58 +0100 | emf | (~emf@cpe-174-109-36-85.nc.res.rr.com) |
2021-12-14 17:57:40 +0100 | <c_wraith> | What laziness goal do you have for it? |
2021-12-14 17:57:41 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) |
2021-12-14 17:58:00 +0100 | <merijn> | c_wraith: Not materialising several GB of state :p |
2021-12-14 17:58:16 +0100 | <merijn> | but I think more details is probably a spoiler? |
2021-12-14 17:58:32 +0100 | <merijn> | I seem to have gotten it lazy enough no, albeit still slow |
2021-12-14 17:58:58 +0100 | emf_ | (~emf@2620:10d:c091:480::1:3f40) |
2021-12-14 17:59:49 +0100 | <c_wraith> | It's exponential growth. It's gonna be slow. |
2021-12-14 18:00:10 +0100 | emf | (~emf@cpe-174-109-36-85.nc.res.rr.com) (Ping timeout: 268 seconds) |
2021-12-14 18:00:57 +0100 | <merijn> | Yeah, but it's, like, a solid minute now, generally AOC solutions aren't *that* slow |
2021-12-14 18:01:25 +0100 | <c_wraith> | well, you don't *have* to do it the slow way. |
2021-12-14 18:01:38 +0100 | snake | (~snake@user/snake) (Leaving) |
2021-12-14 18:02:14 +0100 | <c_wraith> | I saw someone stick with the slow approach and use a kind of meet-in-the-middle approach to cut the exponent in half. |
2021-12-14 18:02:25 +0100 | altern | (~Sergii@altern.corbina.com.ua) (Ping timeout: 256 seconds) |
2021-12-14 18:03:30 +0100 | <c_wraith> | that was very clever for still needing exponential allocation |
2021-12-14 18:03:56 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:f5a3:3a61:fbe9:f021) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-12-14 18:04:04 +0100 | Guest19 | (~Guest19@n110-33-34-202.hum1.act.optusnet.com.au) (Quit: Client closed) |
2021-12-14 18:06:43 +0100 | alx741 | (~alx741@181.199.42.79) |
2021-12-14 18:07:31 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:f5a3:3a61:fbe9:f021) |
2021-12-14 18:09:33 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-14 18:11:02 +0100 | <sprout> | it's less than .5 sec in egel which is a slow... language... you could use maps instead of lists |
2021-12-14 18:11:02 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
2021-12-14 18:11:19 +0100 | <sprout> | though I think that's overkill on this problem |
2021-12-14 18:12:37 +0100 | alx741 | (~alx741@181.199.42.79) (Read error: Connection reset by peer) |
2021-12-14 18:13:12 +0100 | alx741 | (~alx741@181.199.42.79) |
2021-12-14 18:14:19 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-12-14 18:15:46 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-12-14 18:20:50 +0100 | gdown | (~gavin@94.140.8.38) |
2021-12-14 18:22:39 +0100 | alx741 | (~alx741@181.199.42.79) (Read error: Connection reset by peer) |
2021-12-14 18:23:46 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-12-14 18:24:06 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:f5a3:3a61:fbe9:f021) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-12-14 18:24:58 +0100 | notabled1 | (~notabledu@ares.dbalan.in) |
2021-12-14 18:26:19 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-12-14 18:26:54 +0100 | deadmarshal | (~deadmarsh@95.38.230.166) |
2021-12-14 18:33:32 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
2021-12-14 18:37:37 +0100 | josemotanet | (~jose@2001:8a0:ee85:a00:d4ef:b473:6a8a:ba2e) (Quit: WeeChat 3.3) |
2021-12-14 18:37:52 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:f5a3:3a61:fbe9:f021) |
2021-12-14 18:39:29 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 18:41:55 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:158b:cfc1:e7b3:d4ac) |
2021-12-14 18:46:41 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-14 18:53:50 +0100 | Akiva | (~Akiva@user/Akiva) |
2021-12-14 18:58:22 +0100 | dolio | (~dolio@130.44.130.54) |
2021-12-14 19:02:58 +0100 | peutri_ | peutri |
2021-12-14 19:07:27 +0100 | econo | (uid147250@user/econo) |
2021-12-14 19:07:41 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-14 19:07:41 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 19:08:40 +0100 | briandaed | (~root@185.234.208.208.r.toneticgroup.pl) |
2021-12-14 19:08:41 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit) |
2021-12-14 19:10:25 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.3) |
2021-12-14 19:10:35 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-14 19:10:52 +0100 | nfd | (~nfd@user/nfd) |
2021-12-14 19:11:13 +0100 | <merijn> | bah, I thought I had an ingenious solution, but clearly not >.> |
2021-12-14 19:12:48 +0100 | <dsal> | @tell snake You might not dislike it so much if you didn't work against how we do things. Try doing things the way we do things and see where that takes you. |
2021-12-14 19:12:48 +0100 | <lambdabot> | Consider it noted. |
2021-12-14 19:15:47 +0100 | <EvanR> | had to get some sleep before getting day 14 part 2 |
2021-12-14 19:15:51 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) |
2021-12-14 19:15:53 +0100 | <EvanR> | my poor rankings |
2021-12-14 19:17:14 +0100 | <dsal> | I had a tiny power glitch which took out my ailing UPS running my networking equipment right as I was submitting my part 2 answer. |
2021-12-14 19:17:25 +0100 | <dsal> | The good news is that the part 2 answer I was submitting was wrong. |
2021-12-14 19:18:06 +0100 | <merijn> | EvanR: I'm still fighting it >.> |
2021-12-14 19:18:48 +0100 | <EvanR> | I have an ingenious solution but the margin of the power failure is too small to fit it |
2021-12-14 19:19:13 +0100 | <dsal> | I got the right answer and submitted it via phone hot spot. |
2021-12-14 19:19:27 +0100 | <dsal> | Power's still out here, but I almost wouldn't've noticed if it weren't for that stupid UPS. |
2021-12-14 19:19:33 +0100 | <EvanR> | how did you solve it without power |
2021-12-14 19:20:53 +0100 | <EvanR> | phone haskell? xD |
2021-12-14 19:21:38 +0100 | <dsal> | I have a Powerwall, but was working my laptop anyway. The thing that *didn't* have power was my networking equipment / Starlink. |
2021-12-14 19:23:21 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-12-14 19:23:34 +0100 | earendel | (uid498179@user/earendel) |
2021-12-14 19:25:55 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 19:29:44 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
2021-12-14 19:30:33 +0100 | briandaed | (~root@185.234.208.208.r.toneticgroup.pl) (Quit: Lost terminal) |
2021-12-14 19:31:15 +0100 | waleee | (~waleee@2001:9b0:21d:fc00:398f:b003:b90d:acf4) |
2021-12-14 19:36:04 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 19:39:16 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:158b:cfc1:e7b3:d4ac) (Remote host closed the connection) |
2021-12-14 19:40:08 +0100 | <oats> | Optics By Example is an excellent book |
2021-12-14 19:40:45 +0100 | dyeplexer | (~dyeplexer@user/dyeplexer) (Remote host closed the connection) |
2021-12-14 19:43:29 +0100 | <dsal> | ++ |
2021-12-14 19:44:10 +0100 | <dsal> | I was looking at propagators yesterday and the author also wrote this library: |
2021-12-14 19:44:13 +0100 | <dsal> | @package mad-props |
2021-12-14 19:44:14 +0100 | <lambdabot> | https://hackage.haskell.org/package/mad-props |
2021-12-14 19:45:19 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:158b:cfc1:e7b3:d4ac) |
2021-12-14 19:48:25 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-14 19:48:28 +0100 | <EvanR> | I went to order this book and found it's E only |
2021-12-14 19:50:48 +0100 | <dsal> | LOL at the guy who doesn't have a printer. |
2021-12-14 19:51:50 +0100 | jgeerds | (~jgeerds@55d4ac73.access.ecotel.net) |
2021-12-14 19:52:10 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-14 19:52:37 +0100 | <EvanR> | it literally has 420 pages |
2021-12-14 19:53:38 +0100 | mbuf | (~Shakthi@122.178.176.47) (Quit: Leaving) |
2021-12-14 19:54:49 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 20:00:09 +0100 | xff0x | (~xff0x@2001:1a81:5283:7b00:9491:73c8:4b2b:b7f3) (Ping timeout: 250 seconds) |
2021-12-14 20:01:09 +0100 | xff0x | (~xff0x@2001:1a81:5283:7b00:fc6:4766:ca7:9337) |
2021-12-14 20:04:29 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-14 20:04:31 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-12-14 20:06:04 +0100 | <earendel> | you are still misusing the word literaly *rolleyes |
2021-12-14 20:07:04 +0100 | <earendel> | the damn printer mafia ink is expensive. |
2021-12-14 20:07:38 +0100 | max22- | (~maxime@2a01cb0883359800604ddf259a1a7168.ipv6.abo.wanadoo.fr) (Ping timeout: 265 seconds) |
2021-12-14 20:07:38 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 20:08:13 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-14 20:08:23 +0100 | <dsal> | It's a book. How much more literal can it be? |
2021-12-14 20:08:50 +0100 | <EvanR> | I literally saw a stat on the page for it that literally says 420 pages |
2021-12-14 20:10:00 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-14 20:10:48 +0100 | <monochrom> | It is literally not a physics book. :) |
2021-12-14 20:11:31 +0100 | <dsal> | It's a great coffee table photography book. |
2021-12-14 20:11:37 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) (Ping timeout: 256 seconds) |
2021-12-14 20:13:58 +0100 | <earendel> | literally is the opposite of figuratively. so if you don't use a metaphor, but want to express you mean it literally not figuratively it is a superfluos adverb |
2021-12-14 20:14:50 +0100 | <EvanR> | the number of ways to use literally seems open ended |
2021-12-14 20:14:58 +0100 | <EvanR> | to use literally wrong* |
2021-12-14 20:15:18 +0100 | <EvanR> | that has become it's defining characteristic |
2021-12-14 20:15:25 +0100 | <earendel> | this guy is literally melting down.. would mean he is changing his aggregate-state from solid to liquid. |
2021-12-14 20:15:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-14 20:15:35 +0100 | jakalx | (~jakalx@base.jakalx.net) (Error from remote client) |
2021-12-14 20:15:37 +0100 | <monochrom> | It is figuratively an optics book. Are you happy now? |
2021-12-14 20:15:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-14 20:16:23 +0100 | <earendel> | it just defines your inability to properly express yourself. |
2021-12-14 20:16:47 +0100 | <[exa]> | is literature allowed to be literal? |
2021-12-14 20:17:09 +0100 | <earendel> | monochom: i don't get it. ^^ maybe i'm not familiar with that figure. |
2021-12-14 20:17:43 +0100 | <monochrom> | I want to say yes, but seeing that all the literature people are deeply into allegories, I think in practice no, they insist to be figurative. |
2021-12-14 20:17:48 +0100 | <EvanR> | earendel you're like a canary in a coal mine |
2021-12-14 20:18:05 +0100 | <[exa]> | I'll separate the figures from my literals later today |
2021-12-14 20:18:36 +0100 | <EvanR> | non-literally |
2021-12-14 20:19:18 +0100 | <earendel> | great. another satisfied customer |
2021-12-14 20:19:39 +0100 | <monochrom> | class Applicative f => Figurative f where burrito :: a -> f a; unwrap :: f (f a) -> f a -- >:) |
2021-12-14 20:20:14 +0100 | <EvanR> | i though roll was f (f a) -> f a and unroll was f a -> f (f a) |
2021-12-14 20:20:22 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-14 20:20:25 +0100 | <monochrom> | Figurative burrito unwrapping law: unwrap . burrito = id |
2021-12-14 20:20:34 +0100 | <[exa]> | there was some coliteral damage to the semantics |
2021-12-14 20:20:44 +0100 | <Clint> | now i want a littoral burrito |
2021-12-14 20:20:47 +0100 | <monochrom> | Oh, "roll" is probably better, I didn't think of it! |
2021-12-14 20:21:15 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-14 20:21:16 +0100 | <geekosaur> | my literals have figures |
2021-12-14 20:21:28 +0100 | <Clint> | significant ones? |
2021-12-14 20:21:47 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-14 20:21:54 +0100 | <monochrom> | In a graphical programming language, you have figure literals >:) |
2021-12-14 20:23:57 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 20:24:07 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2021-12-14 20:24:42 +0100 | <earendel> | it also is a sign of inflationary superlatives in language. so, sometimes just leaving them out can make the break gaining the relvance of your expression (in the eye of the beholder) |
2021-12-14 20:25:28 +0100 | <earendel> | you can say really. it really has 420 pages? yes, there's no joke coming whatsoever. |
2021-12-14 20:25:43 +0100 | <monochrom> | What's your problem? |
2021-12-14 20:26:29 +0100 | madjestic | (~madjestic@88-159-247-120.fixed.kpn.net) |
2021-12-14 20:27:01 +0100 | <earendel> | hm? just talking. |
2021-12-14 20:27:15 +0100 | <geekosaur> | english is all about the unmarked metaphor |
2021-12-14 20:27:48 +0100 | <monochrom> | Please stop over-analyzing what was just having fun making bad jokes and bad puns. |
2021-12-14 20:28:22 +0100 | <monochrom> | All of us already know how "really" and "literally" are abused, you're preaching to the choir, thanks but no thanks. |
2021-12-14 20:28:24 +0100 | <earendel> | i see. |
2021-12-14 20:29:56 +0100 | <earendel> | i did analyze a joke? |
2021-12-14 20:31:44 +0100 | <earendel> | maybe your analysis of my character is a bit premature, giving the fact i just joined this channel and we never spoke before. |
2021-12-14 20:32:05 +0100 | <monochrom> | Are you done? |
2021-12-14 20:32:50 +0100 | <geekosaur> | you, uh, filled up most of the channel and possibly derailed a discussion over it |
2021-12-14 20:32:52 +0100 | <earendel> | lol. |
2021-12-14 20:33:13 +0100 | <Clint> | yes, but he only did that for 40 minutes |
2021-12-14 20:33:29 +0100 | <earendel> | was it me? |
2021-12-14 20:33:44 +0100 | <earendel> | oops. |
2021-12-14 20:34:00 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
2021-12-14 20:34:14 +0100 | <EvanR> | I prefer paper books even though I don't have a bookshelf |
2021-12-14 20:34:43 +0100 | <EvanR> | I don't really have a convenient way to read 420 pages electronically :( |
2021-12-14 20:35:26 +0100 | <Clint> | i gave up on paper books and ereaders ages ago |
2021-12-14 20:35:32 +0100 | <monochrom> | I am paradoxical about paper books vs electronic books. Paper books feel better in hand. Electronic books are more mobile, seachable, copy-paste-able. |
2021-12-14 20:36:20 +0100 | <monochrom> | Eventually I broke the tie by "I have run out of room for paper books". |
2021-12-14 20:36:36 +0100 | <systemfault> | I usually buy the book... and steal the electronic version :/ They should really give you the electronic version when you buy the paper book. |
2021-12-14 20:36:49 +0100 | <EvanR> | really, I've camera-ed a page and screenshotted a pdf, but copying text out of a pdf is hit or miss |
2021-12-14 20:37:08 +0100 | <EvanR> | and searching paper books mainly involves accessing my photographic memory xD |
2021-12-14 20:37:08 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 20:37:28 +0100 | <Clint> | you might have to read the book first for that to work |
2021-12-14 20:37:30 +0100 | <monochrom> | Big volumes like CLRS make me feel guilty when I teach a course and say "the textbook is CLRS" and if the students go the the paper one it means they have like an extra 1kg to carry in their backpacks. |
2021-12-14 20:37:35 +0100 | <EvanR> | true |
2021-12-14 20:37:39 +0100 | kayvan | (~kayvan@52-119-115-185.PUBLIC.monkeybrains.net) |
2021-12-14 20:38:06 +0100 | <monochrom> | (And if I also declare "the exam is open book", you can be sure I am indirectly incentivizing the students to go for the paper book.) |
2021-12-14 20:38:26 +0100 | <EvanR> | which optics library does the book Optics By Example use? |
2021-12-14 20:38:35 +0100 | <monochrom> | (This is part of the reason why I now declare "you can bring 2 aid sheets to the exam".) |
2021-12-14 20:38:41 +0100 | kayvan | (~kayvan@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection) |
2021-12-14 20:39:03 +0100 | <monochrom> | systemfault: Yeah, I agree too. |
2021-12-14 20:39:13 +0100 | nolrai | (~nolrai@73.240.1.39) |
2021-12-14 20:39:56 +0100 | <earendel> | in my exams you would be allowed to use internet. |
2021-12-14 20:40:31 +0100 | <EvanR> | I'd end up distracted on IRC or something |
2021-12-14 20:40:48 +0100 | <nolrai> | Hey so when building with stack I see this "ghc-pkg.exe: C:\Users\XXXX\haskell\Shades\.stack-work\install\791f0cf9\pkgdb\package.cache.lock: openBinaryFile: resource busy (file is locked)" or equivalent a lot, anyone know whats up with it and if I should do something about it? |
2021-12-14 20:42:33 +0100 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-12-14 20:43:44 +0100 | max22- | (~maxime@2a01cb088335980077ae04132abb6848.ipv6.abo.wanadoo.fr) |
2021-12-14 20:44:49 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
2021-12-14 20:45:11 +0100 | ChaiTRex | (~ChaiTRex@user/chaitrex) |
2021-12-14 20:55:49 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 20:56:12 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-12-14 20:57:34 +0100 | nunggu | (~q@gateway/tor-sasl/nunggu) (Remote host closed the connection) |
2021-12-14 20:57:46 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2021-12-14 21:01:59 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:158b:cfc1:e7b3:d4ac) (Remote host closed the connection) |
2021-12-14 21:04:57 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-12-14 21:05:27 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 256 seconds) |
2021-12-14 21:06:42 +0100 | juhp | (~juhp@128.106.188.82) |
2021-12-14 21:08:02 +0100 | <merijn> | bleh, solved part 2, but not happy with the result. Takes about 40s to complete |
2021-12-14 21:08:02 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 21:08:38 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 21:09:04 +0100 | <EvanR> | dang |
2021-12-14 21:09:23 +0100 | <merijn> | I feel it should be possible to go much faster |
2021-12-14 21:09:30 +0100 | <EvanR> | better than my approach last night which might have taken days or months to finish xD |
2021-12-14 21:10:01 +0100 | <merijn> | ah |
2021-12-14 21:10:14 +0100 | <merijn> | I have an idea that might make it faster, but I can't be arsed atm >.> |
2021-12-14 21:12:01 +0100 | nolrai | (~nolrai@73.240.1.39) (Remote host closed the connection) |
2021-12-14 21:15:03 +0100 | <EvanR> | I'm curious how you got 40s |
2021-12-14 21:15:11 +0100 | <EvanR> | but it might be spoilery for here |
2021-12-14 21:17:24 +0100 | glebg | (~user@85-192-130-19.dsl.esoo.ru) |
2021-12-14 21:17:38 +0100 | raghavgururajan | (9fd51d1ea8@user/raghavgururajan) (Ping timeout: 260 seconds) |
2021-12-14 21:18:01 +0100 | <merijn> | EvanR: https://github.com/merijn/AdventOfCode/blob/master/Day14.hs |
2021-12-14 21:18:45 +0100 | singpolyma | (8a1e37e5a6@tilde.team/user/singpolyma) (Ping timeout: 268 seconds) |
2021-12-14 21:20:06 +0100 | <EvanR> | impressive |
2021-12-14 21:20:26 +0100 | <EvanR> | you did 20 rounds, not 40? |
2021-12-14 21:20:45 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 21:20:49 +0100 | <merijn> | I'll answer in PM to avoid spoilers :p |
2021-12-14 21:22:31 +0100 | coot | (~coot@89-64-85-93.dynamic.chello.pl) (Quit: coot) |
2021-12-14 21:24:15 +0100 | nunggu | (~q@gateway/tor-sasl/nunggu) |
2021-12-14 21:29:56 +0100 | gdown | (~gavin@94.140.8.38) (Remote host closed the connection) |
2021-12-14 21:33:46 +0100 | Erutuon | (~Erutuon@user/erutuon) |
2021-12-14 21:36:16 +0100 | puke | (~puke@user/puke) (Remote host closed the connection) |
2021-12-14 21:36:31 +0100 | puke | (~puke@user/puke) |
2021-12-14 21:38:46 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-12-14 21:39:02 +0100 | thevishy | (~Nishant@2405:201:f005:c007:d93e:9746:14f0:2f69) (Read error: Connection reset by peer) |
2021-12-14 21:39:16 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 21:39:46 +0100 | y04nn | (~y04nn@92.223.89.196) |
2021-12-14 21:39:50 +0100 | thevishy | (~Nishant@2405:201:f005:c007:49c7:f8b1:7727:93e) |
2021-12-14 21:40:41 +0100 | Athas | (athas@2a01:7c8:aaac:1cf:fd6:8489:d8da:43d) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-12-14 21:40:44 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-14 21:40:50 +0100 | Athas | (athas@sigkill.dk) |
2021-12-14 21:41:54 +0100 | ft | (~ft@shell.chaostreff-dortmund.de) (Quit: leaving) |
2021-12-14 21:42:07 +0100 | ft | (~ft@shell.chaostreff-dortmund.de) |
2021-12-14 21:44:41 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-12-14 21:45:07 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
2021-12-14 21:48:02 +0100 | Whatever009 | (~fuzzypixe@ensi-libre-service-019.ensimag.fr) (Ping timeout: 240 seconds) |
2021-12-14 21:48:17 +0100 | burnsidesLlama | (~burnsides@dhcp168-019.wadham.ox.ac.uk) |
2021-12-14 21:50:16 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2021-12-14 21:51:53 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 21:53:00 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-12-14 21:56:24 +0100 | <energizer> | (fmap (*3) (+100)) 1 gives 303. is there a function that i can replace fmap with to get 103? |
2021-12-14 21:58:09 +0100 | <EvanR> | (+103) |
2021-12-14 21:58:24 +0100 | <EvanR> | (+302) |
2021-12-14 21:58:43 +0100 | <merijn> | (.)? :p |
2021-12-14 21:58:49 +0100 | <merijn> | oh, wait, no |
2021-12-14 21:58:53 +0100 | <merijn> | flip (.) :p |
2021-12-14 21:58:54 +0100 | <EvanR> | (*303) |
2021-12-14 22:02:13 +0100 | <sprout> | merijn: https://github.com/egel-lang/aoc-2021/blob/main/day14/task2.eg <- just adapt this? if it runs fast in egel it is certainly bound to run fast in haskell |
2021-12-14 22:02:22 +0100 | MoC | (~moc@user/moc) (Quit: Konversation terminated!) |
2021-12-14 22:02:41 +0100 | _ht_ | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-12-14 22:03:03 +0100 | <sprout> | but I get the sentiment. I don't look at spoilers, fix a solution, throw it over the hedge. cannot be buggered to rewrite either |
2021-12-14 22:04:07 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) (Ping timeout: 265 seconds) |
2021-12-14 22:04:11 +0100 | xacktm | (xacktm@user/xacktm) (Ping timeout: 252 seconds) |
2021-12-14 22:04:12 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
2021-12-14 22:04:29 +0100 | <sprout> | happened to me yesterday, some posted a really nice solution in haskell |
2021-12-14 22:04:53 +0100 | <EvanR> | on some days you get your star and move on, on others you get nerd sniped |
2021-12-14 22:05:31 +0100 | <geekosaur> | energizer: flip fmap |
2021-12-14 22:05:34 +0100 | <geekosaur> | ? |
2021-12-14 22:07:29 +0100 | <energizer> | not sure if that's what i mean. i'm reading a blog post that says "This gives us the intuition that fmap over functions is just composition." so i'm guessing there's some opposite of functor that has an opposite of fmap? |
2021-12-14 22:08:13 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 250 seconds) |
2021-12-14 22:08:23 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 22:09:14 +0100 | <dibblego> | @type (<&>) |
2021-12-14 22:09:15 +0100 | <lambdabot> | Functor f => f a -> (a -> b) -> f b |
2021-12-14 22:09:16 +0100 | <energizer> | the blog post in question https://blog.ssanj.net/posts/2018-03-05-functor-applicative-and-monad-instances-for-reader.html |
2021-12-14 22:09:31 +0100 | <EvanR> | gotta love law of trichotomy using floats https://paste.tomsmeding.com/ZSsda7Zn |
2021-12-14 22:09:39 +0100 | <dibblego> | @type contramap |
2021-12-14 22:09:40 +0100 | <lambdabot> | Contravariant f => (a -> b) -> f b -> f a |
2021-12-14 22:10:19 +0100 | pfurla_ | (~pfurla@172.58.160.35) |
2021-12-14 22:10:31 +0100 | <EvanR> | I hate it when people say don't use == on floats xD |
2021-12-14 22:11:11 +0100 | doyougnu | (~doyougnu@c-73-25-202-122.hsd1.or.comcast.net) (Ping timeout: 256 seconds) |
2021-12-14 22:13:01 +0100 | MrNobody_0000000 | (~MrNobody@user/mrnobody-0000000/x-9129771) |
2021-12-14 22:13:02 +0100 | pfurla | (~pfurla@177.79.125.203) (Ping timeout: 240 seconds) |
2021-12-14 22:13:29 +0100 | prrxddq[m] | (~prrxddqma@2001:470:69fc:105::1:4f72) |
2021-12-14 22:13:33 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
2021-12-14 22:14:08 +0100 | kjak_ | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
2021-12-14 22:14:09 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2021-12-14 22:14:17 +0100 | kjak_ | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Client Quit) |
2021-12-14 22:14:17 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Client Quit) |
2021-12-14 22:14:38 +0100 | kjak | (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) |
2021-12-14 22:17:20 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-12-14 22:21:25 +0100 | acidjnk | (~acidjnk@p200300d0c7271e736483cc3bf5018c54.dip0.t-ipconnect.de) |
2021-12-14 22:23:01 +0100 | alx741 | (~alx741@157.100.93.160) (Read error: Connection reset by peer) |
2021-12-14 22:23:23 +0100 | euandreh | (~euandreh@2804:14c:33:9fe5:f0cf:5664:8ee5:8e87) (Ping timeout: 250 seconds) |
2021-12-14 22:26:49 +0100 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) |
2021-12-14 22:27:35 +0100 | <energizer> | isn't it a bad idea to use == on floats? |
2021-12-14 22:29:48 +0100 | raghavgururajan | (9fd51d1ea8@user/raghavgururajan) |
2021-12-14 22:30:19 +0100 | <dolio> | Yeah. |
2021-12-14 22:31:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-14 22:31:04 +0100 | xacktm | (xacktm@user/xacktm) |
2021-12-14 22:33:15 +0100 | <EvanR> | lol |
2021-12-14 22:33:28 +0100 | yuyua32 | (~yuyua32@wireless-student-pt3-247-143.lut.ac.uk) |
2021-12-14 22:33:46 +0100 | MrNobody_0000000 | (~MrNobody@user/mrnobody-0000000/x-9129771) (Quit: MrNobody_0000000) |
2021-12-14 22:34:24 +0100 | <yuyua32> | how do haskell functions resemble mathmetical functions? I was reading about Haskell and read that its good for abstract algebra/mathemeticians could someone explain this |
2021-12-14 22:34:35 +0100 | <EvanR> | I'll just ship a game that says if x < y do this, x > y do that, that's all xD |
2021-12-14 22:34:42 +0100 | <EvanR> | should work most of the time |
2021-12-14 22:34:52 +0100 | <janus> | EvanR: just write that snippet with "case comparing a b of` instead, then the compiler will make sure you won't have to write the 'otherwise' case ;) |
2021-12-14 22:35:01 +0100 | <EvanR> | lol |
2021-12-14 22:35:17 +0100 | <EvanR> | wth happens when you compare ... |
2021-12-14 22:35:32 +0100 | <dolio> | Covering x<y and x>y isn't actually all the cases, right? |
2021-12-14 22:35:44 +0100 | <janus> | > compare (0/0) (0/0) |
2021-12-14 22:35:45 +0100 | <lambdabot> | GT |
2021-12-14 22:35:48 +0100 | <EvanR> | yeah they can be equal |
2021-12-14 22:35:51 +0100 | <EvanR> | hence the == test |
2021-12-14 22:35:54 +0100 | <janus> | (0/0) > (0/0) |
2021-12-14 22:35:56 +0100 | <janus> | > (0/0) > (0/0) |
2021-12-14 22:35:57 +0100 | <dolio> | Even that isn't all of them. |
2021-12-14 22:35:58 +0100 | <lambdabot> | False |
2021-12-14 22:36:32 +0100 | <EvanR> | why do I even bother pasting anything lol |
2021-12-14 22:36:51 +0100 | <EvanR> | I posted a "law of trichotomy" with 4 cases |
2021-12-14 22:37:25 +0100 | <EvanR> | one of which is supposedly "a bad idea" |
2021-12-14 22:37:39 +0100 | <dolio> | Yeah, it is a bad idea. |
2021-12-14 22:37:43 +0100 | <EvanR> | k, removed xD |
2021-12-14 22:39:45 +0100 | <zero> | > 0/0 |
2021-12-14 22:39:47 +0100 | <lambdabot> | NaN |
2021-12-14 22:39:48 +0100 | alx741 | (~alx741@157.100.93.160) |
2021-12-14 22:40:05 +0100 | <zero> | > compare NaN NaN |
2021-12-14 22:40:07 +0100 | <lambdabot> | error: Data constructor not in scope: NaNerror: Data constructor not in scop... |
2021-12-14 22:40:13 +0100 | <EvanR> | GT |
2021-12-14 22:40:16 +0100 | <EvanR> | apparently |
2021-12-14 22:40:43 +0100 | <zero> | > flip compare (0/0) (0/0) |
2021-12-14 22:40:44 +0100 | <lambdabot> | GT |
2021-12-14 22:40:49 +0100 | <zero> | :/ |
2021-12-14 22:40:52 +0100 | <EvanR> | it's GT itself |
2021-12-14 22:41:05 +0100 | <dolio> | The reason that people give that advice is that some of the cases where x<y and x>y return True should actually be considered x==y cases, because they might arise from calculating x and y with different associativities and such. |
2021-12-14 22:41:32 +0100 | <tomsmeding> | background: https://hackage.haskell.org/package/ghc-prim-0.6.1/docs/src/GHC.Classes.html#line-458 |
2021-12-14 22:41:32 +0100 | <zero> | and rounding errors |
2021-12-14 22:41:36 +0100 | <EvanR> | yes it seems people think all equality tests should be closeness tests |
2021-12-14 22:41:51 +0100 | <tomsmeding> | _usually_ they should be, not always |
2021-12-14 22:42:09 +0100 | <EvanR> | still have never run into a case where that would be correct |
2021-12-14 22:42:14 +0100 | <tomsmeding> | closeness? |
2021-12-14 22:42:38 +0100 | <EvanR> | like, it would move the weird test case over by delta, ime |
2021-12-14 22:42:47 +0100 | <zero> | ? |
2021-12-14 22:42:47 +0100 | <tomsmeding> | quite true |
2021-12-14 22:42:48 +0100 | andreas303 | (andreas303@ip227.orange.bnc4free.com) |
2021-12-14 22:43:25 +0100 | cosimone | (~user@93-47-231-203.ip115.fastwebnet.it) (Quit: ERC (IRC client for Emacs 27.1)) |
2021-12-14 22:44:35 +0100 | <tomsmeding> | most of those "don't use X" rules are more accurately written as "if you use X, be sure to have argument why it is better than the alternatives, because this may be non-intuitive" |
2021-12-14 22:45:02 +0100 | alx741 | (~alx741@157.100.93.160) (Ping timeout: 240 seconds) |
2021-12-14 22:45:44 +0100 | <janus> | yeah. if you use Ord you better remember to write which instances your algorithm won't work with. ;) |
2021-12-14 22:46:33 +0100 | zyzzyxdonta | (~zyzzyxdon@2a02:3036:7:5279:ff4:1db4:c08b:ca7d) |
2021-12-14 22:47:00 +0100 | zyzzyxdonta | (~zyzzyxdon@2a02:3036:7:5279:ff4:1db4:c08b:ca7d) (Client Quit) |
2021-12-14 22:47:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-12-14 22:47:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-12-14 22:47:07 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-12-14 22:47:42 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-169.elisa-laajakaista.fi) |
2021-12-14 22:49:00 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:158b:cfc1:e7b3:d4ac) |
2021-12-14 22:50:34 +0100 | <energizer> | `data ITree a = Leaf (Int -> a) | Node [ITree a]` is this a data structure i might recognize as having some name? |
2021-12-14 22:57:46 +0100 | alx741 | (~alx741@181.199.42.79) |
2021-12-14 22:57:59 +0100 | <energizer> | am i right in thinking "functor" means something different in haskell than in math? fmap seems like a functor, not the "Functor" `f` that implements `fmap`. what is the reason for this naming convention? |
2021-12-14 22:58:35 +0100 | <monochrom> | Yes and no. |
2021-12-14 22:58:48 +0100 | <nosewings> | The term "Functor" in Haskell comes from math, but it basically just means "anything that has a map function" |
2021-12-14 22:59:33 +0100 | <energizer> | yeah seems confusing |
2021-12-14 22:59:54 +0100 | <dsal> | Functor means "that datastructure functs" |
2021-12-14 23:00:04 +0100 | <nosewings> | I honestly have no idea where the use of "functor" to mean "first-class function" comes from |
2021-12-14 23:00:25 +0100 | <janus> | dsal: functs is german for 'works' right? |
2021-12-14 23:00:27 +0100 | <monochrom> | The standard library type class Functor is better known in math as endofunctor. Moreover, the notation is a bit different: Whereas the object map is still called Maybe or [] for example, the morphism map is called "fmap" regardless of whether it's Maybe or [] or other examples. |
2021-12-14 23:01:28 +0100 | <monochrom> | Moreover you can further argue that the Functor type class is only for endofunctors on one single hardcoded category: the objects are Haskell types, the morphisms are Haskell functions. |
2021-12-14 23:02:17 +0100 | <monochrom> | OTOH you can counter-argue that since that's an example of functor, the name is not wrong either. |
2021-12-14 23:02:34 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-12-14 23:03:12 +0100 | <monochrom> | At the end you just have to meditate on the wisdom behind "Tuesday: it's like Monday, but different" |
2021-12-14 23:03:26 +0100 | <monochrom> | http://www.vex.net/~trebla/humour/tautologies.html |
2021-12-14 23:03:59 +0100 | ph88 | (~ph88@2a02:8109:9e00:71d0:943d:5b05:e9f7:79b5) |
2021-12-14 23:04:06 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-12-14 23:04:17 +0100 | <ph88> | I want to keep tracked of which pieces of data have been synced with a server. Would it be better to put a sync field into the item record or better to use a type like data Sync a = Unsynced a | Synced a ? |
2021-12-14 23:07:17 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-12-14 23:07:17 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-12-14 23:11:06 +0100 | codolio | (~dolio@130.44.130.54) |
2021-12-14 23:12:16 +0100 | dolio | (~dolio@130.44.130.54) (Read error: Connection reset by peer) |
2021-12-14 23:12:24 +0100 | codolio | dolio |
2021-12-14 23:14:54 +0100 | zincy_ | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) |
2021-12-14 23:17:43 +0100 | <dsal> | ph88: too many depends. Just do one and then later realize the other was better. :) |
2021-12-14 23:18:05 +0100 | <monochrom> | hehe, the other pasture is always greener |
2021-12-14 23:18:23 +0100 | <monochrom> | I was also thinking "do both". |
2021-12-14 23:18:38 +0100 | CiaoSen | (~Jura@p200300c957347b002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-12-14 23:18:59 +0100 | emf_ | (~emf@2620:10d:c091:480::1:3f40) (Ping timeout: 252 seconds) |
2021-12-14 23:19:03 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2021-12-14 23:19:37 +0100 | <monochrom> | Do you want to know a 3rd way that is more painful? |
2021-12-14 23:19:46 +0100 | zincy_ | (~zincy@host86-151-99-97.range86-151.btcentralplus.com) (Remote host closed the connection) |
2021-12-14 23:20:01 +0100 | yuyua32 | (~yuyua32@wireless-student-pt3-247-143.lut.ac.uk) (Quit: Client closed) |
2021-12-14 23:21:00 +0100 | <monochrom> | Consider turning on DataKinds and define "data Sync = Unsynced | Synced" but use it as a kind so define your actual data type as "data D (s :: Sync) = Ctor ..." so "x :: D Synced" is synced and "y :: D Unsynced" is unsynced. |
2021-12-14 23:23:28 +0100 | michalz | (~michalz@185.246.204.109) (Remote host closed the connection) |
2021-12-14 23:24:29 +0100 | emf | (~emf@2603-6080-9403-11bf-0000-0000-0000-0009.res6.spectrum.com) |
2021-12-14 23:25:07 +0100 | pfurla_ | (~pfurla@172.58.160.35) (Quit: gone to sleep. ZZZzzz…) |
2021-12-14 23:26:18 +0100 | takuan_dozo | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-12-14 23:28:25 +0100 | emf_ | (~emf@2620:10d:c091:480::1:9cd9) |
2021-12-14 23:28:53 +0100 | emf | (~emf@2603-6080-9403-11bf-0000-0000-0000-0009.res6.spectrum.com) (Ping timeout: 252 seconds) |
2021-12-14 23:30:32 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:158b:cfc1:e7b3:d4ac) (Remote host closed the connection) |
2021-12-14 23:33:49 +0100 | <ph88> | Cool idea =) |
2021-12-14 23:36:32 +0100 | <dsal> | I've never used DataKinds. It's one of those things i try to use now and then and then realize it's not actually helping. |
2021-12-14 23:37:02 +0100 | tripa[m] | (~tripamatr@2001:470:69fc:105::1:4f7e) |
2021-12-14 23:41:03 +0100 | <janus> | dsal: you don't like servant? |
2021-12-14 23:41:32 +0100 | pfurla | (~pfurla@172.58.176.86) |
2021-12-14 23:41:53 +0100 | <dsal> | janus: I've never used it on purpose. |
2021-12-14 23:42:37 +0100 | <dsal> | I do most little web stuff with Scotty. |
2021-12-14 23:42:49 +0100 | <dsal> | It seems like a lot less work. |
2021-12-14 23:43:25 +0100 | <janus> | it doesn't give you the same level of safety though |
2021-12-14 23:44:05 +0100 | <janus> | the 'less work' depends on what you're doing |
2021-12-14 23:44:17 +0100 | arahael | (~arahael@27-32-144-20.tpgi.com.au) (Ping timeout: 252 seconds) |
2021-12-14 23:45:10 +0100 | <monochrom> | The most advanced (least elementary) type-level technique I have ever used is phantom-typed GADTs, e.g., "data Expr a where IntLit :: Int -> Expr Int; GT :: Expr a -> Expr a -> Expr Bool" |
2021-12-14 23:46:41 +0100 | <monochrom> | But yeah, this is more about reflecting what I use Haskell for. |
2021-12-14 23:47:11 +0100 | <monochrom> | Or what safety I care about in my Haskell code. |
2021-12-14 23:48:12 +0100 | <janus> | i know of a cryptographic multi-signature protocol where there is an intermediate nonce which can't be used twice, or the private key is inferrable |
2021-12-14 23:48:27 +0100 | <janus> | i thought this would be a nice application of linearTypes but Cale once said that it should be doable with ST also |
2021-12-14 23:48:36 +0100 | <janus> | what would you use in a situation like that? |
2021-12-14 23:49:34 +0100 | <monochrom> | This one I think linear typing is more direct. |
2021-12-14 23:50:06 +0100 | <monochrom> | I don't think ST can express it, but I may be wrong, but if I'm wrong, I still think the solution is indirect. |
2021-12-14 23:50:54 +0100 | <janus> | well the ST-like context could keep track of whether operations that could potentially leak the nonce are executed more than once |
2021-12-14 23:51:01 +0100 | <monochrom> | Right? Linear typing has "%1" staring right into your face. :) |
2021-12-14 23:51:46 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:158b:cfc1:e7b3:d4ac) |
2021-12-14 23:51:47 +0100 | <janus> | if the ST-like context doesn't allow for extracting the nonce out, the API should be safe then |
2021-12-14 23:52:01 +0100 | <janus> | i agree that linear typing seems more direct, but it is also a newer and more unstable feature |
2021-12-14 23:52:21 +0100 | <janus> | you can't have 'let' in a linear do block iirc |
2021-12-14 23:53:27 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 252 seconds) |
2021-12-14 23:53:38 +0100 | <jackdk> | but you could use the nonce within an st-like block twice by accident still? |
2021-12-14 23:54:22 +0100 | <janus> | jackdk: no because the 'executor' of this ST-like type would keep track of which operations 'use' the nonce |
2021-12-14 23:55:00 +0100 | <janus> | jackdk: then it could just count, and if it sees more than one use, it crashes and says PC LOAD LETTER :P |
2021-12-14 23:55:41 +0100 | <janus> | don't really know if this i should call it 'ST-like' since it wouldn't really have need the impredicative forall or anything, hmm |
2021-12-14 23:55:52 +0100 | <jackdk> | Right, but unless you're doing typelevel indexed monad-ish stuff you're looking at runtime crashes instead of compile errors? |
2021-12-14 23:56:11 +0100 | <janus> | yeah i guess so, so that is a real disadvantage |
2021-12-14 23:56:24 +0100 | <jackdk> | or if you can get away without a monad, a free applicative would let you inspect the computation before you try to run it |
2021-12-14 23:56:43 +0100 | <jackdk> | still runtime crashes, though |
2021-12-14 23:56:58 +0100 | pfurla_ | (~pfurla@2804:18:5854:5897:8ac:66e0:c04d:6ee5) |
2021-12-14 23:57:32 +0100 | <janus> | i wonder if it is even doable with linear typing. because presumably you'd need to have it in a monad transformer stack such that the intermediate nonces could be sent across the network. and that shouldn't be part of the cryptographic api itself |
2021-12-14 23:58:15 +0100 | <janus> | i guess it should work since they would just be pure linear functions that could be used in any context |