2023-01-15 00:00:14 +0100 | <monochrom> | It's ISO Latin 1 for the full 0-255 range. |
2023-01-15 00:00:18 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) |
2023-01-15 00:00:34 +0100 | <EvanR> | ok then |
2023-01-15 00:01:04 +0100 | <monochrom> | But you can go up one level and claim that choosing ISO Latin 1 was arbitrary. :) |
2023-01-15 00:01:36 +0100 | <EvanR> | oops, regardless that's not ascii |
2023-01-15 00:02:04 +0100 | <EvanR> | chopping off the accent marks and stuff you may be saved |
2023-01-15 00:02:25 +0100 | mechap | (~mechap@user/mechap) (Quit: WeeChat 3.8) |
2023-01-15 00:02:59 +0100 | biberu | (~biberu@user/biberu) |
2023-01-15 00:03:04 +0100 | <voidzero> | this book has many weird things going on |
2023-01-15 00:03:29 +0100 | <voidzero> | for example -- imageFile <- BC.readFile fileName ; glitched <- return imageFile -- why not let glitched = imageFile? |
2023-01-15 00:04:00 +0100 | <EvanR> | ... why are we going with Char8 if we wanted to read in an image file! |
2023-01-15 00:04:13 +0100 | <voidzero> | that was a suggestion I got from hlint refact |
2023-01-15 00:04:44 +0100 | <voidzero> | because we're going to glitch a random byte in the file with another byte we pick at random |
2023-01-15 00:04:45 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) (Ping timeout: 252 seconds) |
2023-01-15 00:04:46 +0100 | <EvanR> | Char8 seems highly niche to me |
2023-01-15 00:05:20 +0100 | <EvanR> | if you're dealing with bytes you're dealing with bytes |
2023-01-15 00:05:32 +0100 | <EvanR> | (Word8) |
2023-01-15 00:07:22 +0100 | <geekosaur> | many people think Char8 is just a bad idea |
2023-01-15 00:07:36 +0100 | mimmy_ | (~mimmy@142.126.70.245) |
2023-01-15 00:07:43 +0100 | <voidzero> | searching the book to see if I can find a reference to Word8 |
2023-01-15 00:07:50 +0100 | <monochrom> | In fact since glitched = imageFile, why not just delete glitched altogether? |
2023-01-15 00:08:19 +0100 | <monochrom> | But yeah "foo <- return bar" should be just "let foo = bar". |
2023-01-15 00:08:40 +0100 | <monochrom> | Either that or just don't teach do-notation in the first place. |
2023-01-15 00:09:49 +0100 | <monochrom> | For changing a byte in the image you can easily stick with Word8. |
2023-01-15 00:09:54 +0100 | <voidzero> | Yeah, but oh what do we have here, "At this point the glitched valiable in your main doesn't need to be an IO type. Change that line so that glitched is a regulalar variable" i don't have a clue why we're not just delenting it altogether, but there is a hint that says "you're using return because eventually this will be replaced with an IO action that will alter the binary data" |
2023-01-15 00:09:56 +0100 | voidzero | sighs |
2023-01-15 00:10:09 +0100 | <voidzero> | readers should not become editors |
2023-01-15 00:10:27 +0100 | <voidzero> | I've already submitted over 10 errors in this book |
2023-01-15 00:11:04 +0100 | <monochrom> | OK I can respect future-proving it with "glitched <- IO action in the future but return original image for now". |
2023-01-15 00:11:05 +0100 | <voidzero> | small ones, large ones, and "your font does not support the ligatures fi, ffi" and so on |
2023-01-15 00:11:42 +0100 | <voidzero> | right, so in that case, don't let me change it, it's confusing |
2023-01-15 00:12:25 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) |
2023-01-15 00:12:34 +0100 | <monochrom> | But I can go up one level (as usual) and ask why glitching needs IO in the first place. |
2023-01-15 00:12:52 +0100 | <mauke> | inb4 randomRIO |
2023-01-15 00:13:02 +0100 | <voidzero> | but ok, at least the assignments and the progression in the book make sense |
2023-01-15 00:13:11 +0100 | barak | (~barak@77.125.90.25) |
2023-01-15 00:13:12 +0100 | <monochrom> | If it's just because of PRNG, even that can be refactored... |
2023-01-15 00:13:28 +0100 | mimmy_ | (~mimmy@142.126.70.245) (Ping timeout: 272 seconds) |
2023-01-15 00:14:23 +0100 | <monochrom> | And there are a few more conceivable scenerios I can see how to refactor too. |
2023-01-15 00:16:28 +0100 | anatta | (~AdiIRC@h-155-4-132-216.NA.cust.bahnhof.se) |
2023-01-15 00:16:49 +0100 | <voidzero> | the book is also letting us use mconcat a lot, in places where concat can also be used |
2023-01-15 00:17:17 +0100 | <voidzero> | I'm guessing that using concat is better unless we really need mconcat |
2023-01-15 00:18:14 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 260 seconds) |
2023-01-15 00:18:26 +0100 | <monochrom> | That one falls under the pessimitic principle of conservation of learning effort. :) |
2023-01-15 00:19:07 +0100 | <monochrom> | mconcat is more general so you learn fewer names but more difficult error messages. |
2023-01-15 00:19:21 +0100 | <voidzero> | oh joy |
2023-01-15 00:19:43 +0100 | <monochrom> | concat is more special so you learn more names (for other types) but easier error messages. |
2023-01-15 00:21:04 +0100 | <mauke> | :t mconcat |
2023-01-15 00:21:06 +0100 | <lambdabot> | Monoid a => [a] -> a |
2023-01-15 00:21:15 +0100 | <voidzero> | alright. Haven't been introduced to Foldable yet |
2023-01-15 00:21:15 +0100 | <glguy> | :t concat |
2023-01-15 00:21:17 +0100 | <lambdabot> | Foldable t => t [a] -> [a] |
2023-01-15 00:21:22 +0100 | <mauke> | :t join |
2023-01-15 00:21:22 +0100 | <glguy> | generalizations all around |
2023-01-15 00:21:23 +0100 | <lambdabot> | Monad m => m (m a) -> m a |
2023-01-15 00:21:29 +0100 | shapr | (~user@68.54.166.125) (Ping timeout: 268 seconds) |
2023-01-15 00:21:35 +0100 | <monochrom> | Makes me wonder why I don't go completely evil and teach neither concat nor mconcat, I teach join. >:) |
2023-01-15 00:21:44 +0100 | offdg^ | (~offdg@76.145.190.81) (Ping timeout: 260 seconds) |
2023-01-15 00:22:18 +0100 | <glguy> | > > asum [[1,2],[3,4]] |
2023-01-15 00:22:21 +0100 | <lambdabot> | <hint>:1:1: error: parse error on input ‘>’ |
2023-01-15 00:22:22 +0100 | <glguy> | > asum [[1,2],[3,4]] |
2023-01-15 00:22:24 +0100 | <lambdabot> | [1,2,3,4] |
2023-01-15 00:22:46 +0100 | <glguy> | :t asum |
2023-01-15 00:22:48 +0100 | <lambdabot> | (Foldable t, Alternative f) => t (f a) -> f a |
2023-01-15 00:23:01 +0100 | <glguy> | It's going to be hard to beat my 2-typeclass offering |
2023-01-15 00:23:44 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 00:24:06 +0100 | <monochrom> | 1-typeclass can beat 2-typeclass if the 1-typeclass has the infamous name "Monad" >:) |
2023-01-15 00:24:17 +0100 | cln | (cln@wtf.cx) |
2023-01-15 00:25:45 +0100 | <monochrom> | "In the Typeclass Zoo, all typeclasses are scary, but some are scarier than others." |
2023-01-15 00:26:15 +0100 | acidjnk | (~acidjnk@p200300d6e715c494853e5ab7d1dcba05.dip0.t-ipconnect.de) |
2023-01-15 00:26:44 +0100 | mimmy_ | (~mimmy@142.126.70.245) |
2023-01-15 00:28:11 +0100 | <anatta> | monochrom: it's kind of you to at least call it "join" still |
2023-01-15 00:28:16 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 268 seconds) |
2023-01-15 00:28:19 +0100 | <anatta> | instead of >>= id |
2023-01-15 00:28:34 +0100 | <anatta> | or smth |
2023-01-15 00:29:02 +0100 | <monochrom> | I am also happy to call it "flat/flatten" >:) |
2023-01-15 00:30:34 +0100 | barak | (~barak@77.125.90.25) (Ping timeout: 272 seconds) |
2023-01-15 00:32:25 +0100 | eggplantade | (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
2023-01-15 00:32:54 +0100 | mimmy_ | (~mimmy@142.126.70.245) (Ping timeout: 252 seconds) |
2023-01-15 00:35:22 +0100 | <voidzero> | argh this book. Fantastic glitching. https://imgur.com/a/FVbRa87 |
2023-01-15 00:35:29 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6450:b99c:346:15e5) |
2023-01-15 00:35:39 +0100 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:d485:7c6c:6dcc:2888) (Quit: caryhartline) |
2023-01-15 00:36:01 +0100 | ddellacosta | (~ddellacos@89.46.62.175) |
2023-01-15 00:36:58 +0100 | <unit73e> | flat is justice |
2023-01-15 00:37:11 +0100 | <voidzero> | https://i.imgur.com/J8tTi2p.jpg that's more like it |
2023-01-15 00:39:49 +0100 | elevenkb | (~elevenkb@105.224.37.136) |
2023-01-15 00:40:06 +0100 | v0id_ptr | (~adrift@user/ptr-frac7al/x-0038398) |
2023-01-15 00:44:46 +0100 | barak | (~barak@77.125.90.25) |
2023-01-15 01:00:47 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-01-15 01:02:34 +0100 | AlexZenon | (~alzenon@178.34.160.164) (Ping timeout: 260 seconds) |
2023-01-15 01:03:44 +0100 | Alex_test | (~al_test@178.34.160.164) (Ping timeout: 260 seconds) |
2023-01-15 01:05:32 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-01-15 01:06:31 +0100 | AlexZenon | (~alzenon@178.34.160.164) |
2023-01-15 01:06:56 +0100 | shapr | (~user@68.54.166.125) |
2023-01-15 01:07:28 +0100 | acidjnk | (~acidjnk@p200300d6e715c494853e5ab7d1dcba05.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2023-01-15 01:08:34 +0100 | Alex_test | (~al_test@178.34.160.164) |
2023-01-15 01:10:08 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) (Quit: Leaving.) |
2023-01-15 01:12:53 +0100 | liszt2 | (sid336875@2a03:5180:f:3::5:23eb) () |
2023-01-15 01:14:51 +0100 | offdg^ | (~offdg@76.145.190.81) |
2023-01-15 01:15:40 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) (Ping timeout: 252 seconds) |
2023-01-15 01:19:25 +0100 | mimmy_ | (~mimmy@142.126.70.245) |
2023-01-15 01:23:38 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 01:23:55 +0100 | mimmy_ | (~mimmy@142.126.70.245) (Ping timeout: 260 seconds) |
2023-01-15 01:28:12 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2023-01-15 01:29:38 +0100 | elevenkb | (~elevenkb@105.224.37.136) (Ping timeout: 260 seconds) |
2023-01-15 01:30:47 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
2023-01-15 01:32:16 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) |
2023-01-15 01:37:23 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 264 seconds) |
2023-01-15 01:39:34 +0100 | fizbin | (~fizbin@user/fizbin) |
2023-01-15 01:42:06 +0100 | offdg^ | (~offdg@76.145.190.81) (Remote host closed the connection) |
2023-01-15 01:42:22 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-01-15 01:42:22 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-01-15 01:42:22 +0100 | wroathe | (~wroathe@user/wroathe) |
2023-01-15 01:51:17 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 01:56:04 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2023-01-15 01:56:18 +0100 | jinsl- | (~jinsl@2408:8207:255b:27c0:211:32ff:fec8:6aea) |
2023-01-15 01:57:11 +0100 | jinsl | (~jinsl@2408:8207:255f:27d0:211:32ff:fec8:6aea) (Ping timeout: 264 seconds) |
2023-01-15 01:57:19 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) (Read error: Connection reset by peer) |
2023-01-15 02:01:19 +0100 | Inst | (~Inst@2601:6c4:4081:54f0:3de7:12e6:ed3d:f8f8) (Ping timeout: 252 seconds) |
2023-01-15 02:04:23 +0100 | dcoutts_ | (~duncan@host213-122-143-153.range213-122.btcentralplus.com) (Ping timeout: 246 seconds) |
2023-01-15 02:07:55 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 252 seconds) |
2023-01-15 02:10:30 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2023-01-15 02:10:41 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2023-01-15 02:14:26 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 272 seconds) |
2023-01-15 02:15:50 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) (Ping timeout: 260 seconds) |
2023-01-15 02:16:50 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2023-01-15 02:17:25 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) |
2023-01-15 02:17:30 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 02:18:41 +0100 | Inst | (~Inst@2601:6c4:4081:54f0:3de7:12e6:ed3d:f8f8) |
2023-01-15 02:21:40 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds) |
2023-01-15 02:21:54 +0100 | <Inst> | How familiar are people with OCaml? |
2023-01-15 02:22:29 +0100 | <Inst> | Nah, I'm probably wrong here, I was thinking OCaml was an OOP language via the first-class module system |
2023-01-15 02:22:59 +0100 | <geekosaur> | first class modules don't make SML/NJ OOP |
2023-01-15 02:23:00 +0100 | <sshine> | OCaml has support for object-oriented programming from way back when that got you drinks at the bar, but modern OCaml does not use the object system. |
2023-01-15 02:23:14 +0100 | <geekosaur> | OCaml doessupport OOP, but modules aren't why |
2023-01-15 02:23:16 +0100 | paulpaul1076 | (~textual@95-29-5-111.broadband.corbina.ru) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2023-01-15 02:23:17 +0100 | <sshine> | the first-class module system predates OOP support |
2023-01-15 02:23:53 +0100 | dsrt^ | (~dsrt@76.145.190.81) |
2023-01-15 02:24:00 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-01-15 02:24:18 +0100 | cheater | (~Username@user/cheater) |
2023-01-15 02:24:31 +0100 | <mauke> | has ocaml grown documentation for its module system in the last 10-15 years? |
2023-01-15 02:24:40 +0100 | <sshine> | OCaml OOP: https://ocaml.org/docs/objects -- it is the 'class' and 'object' keywords that make it OOP. |
2023-01-15 02:25:06 +0100 | <mauke> | I've been meaning to learn about modules, but at the time there wasn't much apart from a few examples of the syntax |
2023-01-15 02:25:16 +0100 | <sshine> | mauke, Real World Ocaml v2 (https://dev.realworldocaml.org/) has more to say about the module system, yes. at least there are syntactic improvements. |
2023-01-15 02:26:15 +0100 | <mauke> | thanks, I'll have a look |
2023-01-15 02:28:11 +0100 | barak | (~barak@77.125.90.25) (Ping timeout: 248 seconds) |
2023-01-15 02:28:12 +0100 | cheater_ | (~Username@user/cheater) |
2023-01-15 02:30:39 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2023-01-15 02:30:47 +0100 | cheater_ | cheater |
2023-01-15 02:31:31 +0100 | <sshine> | Inst, https://dev.realworldocaml.org/objects.html -- here's a more modern take on OCaml OOP. :) |
2023-01-15 02:32:21 +0100 | <sshine> | Inst, whereas the module system is described under the chapters "Functors" and "First-Class Modules" |
2023-01-15 02:32:36 +0100 | <Inst> | it's more that I was looking at the Haskell module syntax, I was wondering if Haskell modules could have bene a way to retrofit OOP in |
2023-01-15 02:32:39 +0100 | <Inst> | with backpack, etc |
2023-01-15 02:32:58 +0100 | <Inst> | independent of my frankenstein instinct to break all purity |
2023-01-15 02:33:16 +0100 | <Inst> | i'm more wishing for a more robust module system in Haskell, or at the very least, the ability to have multiple modules in one file |
2023-01-15 02:33:45 +0100 | <unit73e> | packages are the poorly designed modules imo |
2023-01-15 02:33:47 +0100 | img | (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-01-15 02:34:17 +0100 | <unit73e> | at least javascript got that mostly right |
2023-01-15 02:34:55 +0100 | <sshine> | Inst, Haskell could have had a module system that more resembled MLs, but this still isn't related to OOP. |
2023-01-15 02:35:22 +0100 | <Inst> | from what I read, Haskell designers somehow thought that ML module system was too fancy |
2023-01-15 02:35:27 +0100 | <unit73e> | what's the difference? |
2023-01-15 02:35:48 +0100 | <sshine> | unit73e, the difference between what? OOP and ML module systems? |
2023-01-15 02:36:09 +0100 | <monochrom> | ocaml has a first-class OO system, and this is orthogonal to its first-class module system. :) |
2023-01-15 02:36:12 +0100 | <unit73e> | sshine, between haskell modules and ML modules |
2023-01-15 02:36:21 +0100 | razetime | (~Thunderbi@117.193.4.145) |
2023-01-15 02:36:37 +0100 | <unit73e> | if it's something like module blocks, yeah that would be useful |
2023-01-15 02:36:39 +0100 | img | (~img@user/img) |
2023-01-15 02:37:16 +0100 | <unit73e> | kind off. I can get away without those. |
2023-01-15 02:38:08 +0100 | <sshine> | unit73e, ah! in ML you have higher-order modules, confusingly named functors. |
2023-01-15 02:38:27 +0100 | <unit73e> | hum ok, that could be useful |
2023-01-15 02:39:09 +0100 | <unit73e> | function namespace is the annoying bit in haskell, but what I do is go Javahaskell and have each file with it's own record, and just call A.function in other modules |
2023-01-15 02:39:10 +0100 | <sshine> | (well, confusing to a Haskeller) |
2023-01-15 02:39:38 +0100 | <unit73e> | so similar to what Java does, each class in its own file |
2023-01-15 02:39:39 +0100 | <geekosaur> | just don't go the whole way and give us C and T |
2023-01-15 02:39:55 +0100 | troydm | (~troydm@user/troydm) (Ping timeout: 248 seconds) |
2023-01-15 02:40:13 +0100 | <sshine> | what are C and T? |
2023-01-15 02:40:44 +0100 | <monochrom> | My http://www.cs.utoronto.ca/~trebla/CSCC24-2022-Summer/04-haskell-types-2.html#modules happens to describe *ml module systems, if you can make sense out of the brief example. |
2023-01-15 02:40:48 +0100 | <geekosaur> | a certain infamous Haskeller names every typeclass C and every type T because the module name is enough to distinguish. until you haddock it |
2023-01-15 02:40:59 +0100 | <unit73e> | oof, no I don't do that |
2023-01-15 02:41:13 +0100 | <unit73e> | often I don't need qualifiers, I just do that in case I need |
2023-01-15 02:41:15 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
2023-01-15 02:41:17 +0100 | <sshine> | unit73e, you get some of the same modularity with type classes, but not at the package level. |
2023-01-15 02:41:48 +0100 | <sshine> | geekosaur, ah. I tried making every statement I make on IRC "S", as my intent should be evident from the context, but people didn't get it. |
2023-01-15 02:42:03 +0100 | talismanick | (~talismani@2601:200:c181:4c40::1be2) |
2023-01-15 02:42:21 +0100 | fizbin | (~fizbin@user/fizbin) |
2023-01-15 02:42:26 +0100 | <monochrom> | BTW because of this I have a personal beef that other Haskellers have beef against writing *.hs-boot for mutually importing modules. *.hs-boot is no harder than writing module sigs in *ml which is considered normal daily activity. |
2023-01-15 02:42:34 +0100 | <unit73e> | what I usually do is copy the structure of some other more experience haskeler, for example, I was making an archiver, for RGSS, so my inspiration was Tar |
2023-01-15 02:42:44 +0100 | <unit73e> | because Tar looked decent code |
2023-01-15 02:43:30 +0100 | <unit73e> | but just the structure. I use more modern haskell with monad transformers, and Tar has some legacy. |
2023-01-15 02:44:21 +0100 | <talismanick> | How might I draw a screen-width rectangle under Wayland without GTK? What are my options besides Gloss? |
2023-01-15 02:44:49 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-01-15 02:45:36 +0100 | <talismanick> | Draw a screenwidth rectangle and render unicode text on it, I should say |
2023-01-15 02:47:28 +0100 | <sshine> | https://people.mpi-sws.org/~rossberg/papers/Rossberg%20-%201ML%20--%20Core%20and%20modules%20united%20[JFP].pdf -- I'd like to see this taken further. it's basically ML modules and values married into one. |
2023-01-15 02:48:15 +0100 | razetime | (~Thunderbi@117.193.4.145) (Ping timeout: 268 seconds) |
2023-01-15 02:48:29 +0100 | <unit73e> | talismanick, you mean, vector graphics? or something else? because you can draw rectangles in many ways with multiple libraries. say opengl, vulkan, software, sdl, gloss, etc |
2023-01-15 02:49:47 +0100 | <talismanick> | unit73e: Right, multiple ways to render it, but which is the right level of abstraction for displaying it without window controls and making it screenwidth and attached to the top or bottom? |
2023-01-15 02:50:11 +0100 | <talismanick> | and rendering text inside of it, as a status bar (like xmobar) |
2023-01-15 02:50:34 +0100 | <talismanick> | If I can get that, the rest should be a piece of cake |
2023-01-15 02:51:20 +0100 | <unit73e> | talismanick, so you want to make a status bar? like xmobar? |
2023-01-15 02:51:33 +0100 | <unit73e> | but for wayland |
2023-01-15 02:51:34 +0100 | <unit73e> | not X |
2023-01-15 02:51:38 +0100 | <talismanick> | Yeah, exactly |
2023-01-15 02:52:48 +0100 | <talismanick> | I know how to write CLI programs and REST APIs, but I don't touch GUIs much |
2023-01-15 02:55:12 +0100 | <talismanick> | https://sheaf.gitlab.io/fir/index.html looks really interesting, but a bit too low level for my purposes |
2023-01-15 02:57:18 +0100 | <unit73e> | talismanick, I don't know much about wayland, but how about looking how others did it? like swaybar, or waybar? you're going to run into interoperability problems like having tray icons, so might as well inspire on those projects, but in haskell. |
2023-01-15 02:57:36 +0100 | <unit73e> | it would be a cool project |
2023-01-15 02:57:56 +0100 | Guest33 | (~Guest33@2001-b011-400a-5dfb-d995-a488-9bc0-4214.dynamic-ip6.hinet.net) |
2023-01-15 02:58:24 +0100 | <talismanick> | That sounds like it could be a rabbit hole - just unicode characters with font choice and coloring would be a good start, imo |
2023-01-15 02:58:35 +0100 | <talismanick> | maybe once I have something working |
2023-01-15 02:59:00 +0100 | natechan | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2023-01-15 03:00:37 +0100 | <unit73e> | a basic opengl library would be enough to draw a rectangle, but I think you're going to find out you need GTK stuff (or KDE) |
2023-01-15 03:00:38 +0100 | Guest33 | (~Guest33@2001-b011-400a-5dfb-d995-a488-9bc0-4214.dynamic-ip6.hinet.net) (Client Quit) |
2023-01-15 03:01:29 +0100 | <unit73e> | or use wlroots |
2023-01-15 03:01:31 +0100 | <talismanick> | unit73e: Even for sizing, anchoring, and text rendering? |
2023-01-15 03:01:42 +0100 | <talismanick> | Yeah, I was planning to stick with wlroots |
2023-01-15 03:03:05 +0100 | <unit73e> | afaik wlroots can draw rectangles, but I don't think there's an haskell module |
2023-01-15 03:03:29 +0100 | <unit73e> | you'd have to make one yourself |
2023-01-15 03:03:32 +0100 | <talismanick> | There's hsroots, but that was last updated in 2019 |
2023-01-15 03:03:42 +0100 | <unit73e> | at least there's something :p |
2023-01-15 03:04:01 +0100 | son0p | (~ff@190.158.28.118) |
2023-01-15 03:04:34 +0100 | <talismanick> | I've heard praise for Haskell's C FFI. Is there best practice for using it? Handle C values with levity polymorphism? |
2023-01-15 03:09:57 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:656:e5ff:fe72:9d36) (Quit: Leaving) |
2023-01-15 03:11:52 +0100 | <talismanick> | :( |
2023-01-15 03:14:18 +0100 | thongpv87 | (~thongpv87@2402:9d80:3b9:c4cc:21a0:88fc:6943:1ae5) |
2023-01-15 03:14:47 +0100 | <talismanick> | Oof, it depends on the lower-level deprecated Hayland bindings... |
2023-01-15 03:19:05 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 268 seconds) |
2023-01-15 03:23:55 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 03:23:58 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) |
2023-01-15 03:27:16 +0100 | _leo92_ | (~emmanuelu@user/emmanuelux) (Ping timeout: 272 seconds) |
2023-01-15 03:28:32 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2023-01-15 03:31:02 +0100 | <Inst> | not going to admit I looked this guy up, but it's pretty good, there's an educator in Hyderabad who showed up on #haskell-beginners on Discord |
2023-01-15 03:31:19 +0100 | <Inst> | he sells a bunch of training videos, will be interesting to see him shilling Haskell to Indians |
2023-01-15 03:35:26 +0100 | CiaoSen | (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-01-15 03:40:59 +0100 | troydm | (~troydm@user/troydm) |
2023-01-15 03:41:19 +0100 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:ec3c:3ed4:a3c8:7826) |
2023-01-15 03:42:52 +0100 | oldfashionedcow | DEWIT |
2023-01-15 03:44:45 +0100 | natechan | (~nate@98.45.169.16) |
2023-01-15 03:48:47 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds) |
2023-01-15 03:50:27 +0100 | <talismanick> | Nice, there are gi-gtk bindings for the gtk-layer-shell Wayland protocol. Might go with that, then. |
2023-01-15 03:50:43 +0100 | DEWIT | oldfashionedcow |
2023-01-15 03:50:50 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-01-15 03:51:23 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit) |
2023-01-15 04:00:17 +0100 | natechan | (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
2023-01-15 04:00:55 +0100 | oldfashionedcow | GeneralKenobi |
2023-01-15 04:01:45 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) (Ping timeout: 255 seconds) |
2023-01-15 04:03:28 +0100 | razetime | (~Thunderbi@117.193.4.145) |
2023-01-15 04:03:33 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) |
2023-01-15 04:05:17 +0100 | jero98772 | (~jero98772@2800:484:1d80:d8ce:9815:cfda:3661:17bb) (Remote host closed the connection) |
2023-01-15 04:06:54 +0100 | Neuromancer | (~Neuromanc@user/neuromancer) (Ping timeout: 260 seconds) |
2023-01-15 04:11:31 +0100 | <fizbin> | I just revisited a project from 2+ years ago and fixed some bugs; don't know if anyone here is really interested in regex processing but here's a short command line program that'll determine whether two regular expressions are equivalent (and if not, will find a string that one regex matches and the other does not): https://gist.github.com/fizbin/8267ff9dbc15c6564214aa4cea6d0cb0 |
2023-01-15 04:12:10 +0100 | paulpaul1076 | (~textual@95-29-5-111.broadband.corbina.ru) |
2023-01-15 04:18:59 +0100 | <fizbin> | I do feel like the function 'firstJust' at https://gist.github.com/fizbin/8267ff9dbc15c6564214aa4cea6d0cb0#file-regexequiv-hs-L172-L187 could be generalized somehow, or made with generic components, but when I tried to make Work an Applicative and make it out of "liftA2 (<|>)", I wound up with one of those evil things that typechecks but is not correct. |
2023-01-15 04:24:00 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2023-01-15 04:31:29 +0100 | Nosrep | (~Nosrep@user/nosrep) |
2023-01-15 04:43:35 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 255 seconds) |
2023-01-15 04:44:21 +0100 | GeneralKenobi | oldfashionedcow |
2023-01-15 04:45:34 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 04:49:36 +0100 | dolio | (~dolio@130.44.134.54) (Read error: Connection reset by peer) |
2023-01-15 04:53:24 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2023-01-15 04:53:24 +0100 | razetime | (~Thunderbi@117.193.4.145) (Ping timeout: 272 seconds) |
2023-01-15 04:53:32 +0100 | finn_elija | (~finn_elij@user/finn-elija/x-0085643) |
2023-01-15 04:53:32 +0100 | FinnElija | (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
2023-01-15 04:53:32 +0100 | finn_elija | FinnElija |
2023-01-15 04:55:09 +0100 | xff0x_ | (~xff0x@2405:6580:b080:900:33f6:9250:43b6:b1c7) (Ping timeout: 252 seconds) |
2023-01-15 04:55:46 +0100 | dolio | (~dolio@130.44.134.54) |
2023-01-15 04:57:08 +0100 | xff0x_ | (~xff0x@178.255.149.135) |
2023-01-15 04:59:44 +0100 | td_ | (~td@83.135.9.53) (Ping timeout: 272 seconds) |
2023-01-15 05:00:59 +0100 | td_ | (~td@83.135.9.57) |
2023-01-15 05:10:34 +0100 | shriekingnoise | (~shrieking@186.137.175.87) |
2023-01-15 05:13:24 +0100 | xff0x_ | (~xff0x@178.255.149.135) (Ping timeout: 260 seconds) |
2023-01-15 05:13:24 +0100 | shriekingnoise_ | (~shrieking@186.137.175.87) (Ping timeout: 260 seconds) |
2023-01-15 05:14:22 +0100 | xff0x_ | (~xff0x@2405:6580:b080:900:54f9:caff:68f9:e2a8) |
2023-01-15 05:16:13 +0100 | <[Leary]> | fizbin: Like a parser eating too much input, your `Work` `Applicative` presumably builds up `Work` from the lost branches of the `Alternative`. You might want something like `try :: Work (Maybe a) -> Work (Maybe a); try = maybe (pure Nothing) <$> const <*> finish` so you can do `try x <|> y`. |
2023-01-15 05:16:58 +0100 | razetime | (~Thunderbi@117.193.4.145) |
2023-01-15 05:18:28 +0100 | <[Leary]> | Err, with (<|>) corresponding to that of `MaybeT Work`, I guess. |
2023-01-15 05:18:46 +0100 | <[Leary]> | Which you might just want to use anyway. |
2023-01-15 05:19:15 +0100 | mimmy_ | (~mimmy@142.126.70.245) |
2023-01-15 05:19:18 +0100 | mikess | (~sam@user/mikess) |
2023-01-15 05:20:10 +0100 | vulpine | (xfnw@tilde.team) (Quit: Connection reset by purr) |
2023-01-15 05:22:27 +0100 | vulpine | (xfnw@tilde.team) |
2023-01-15 05:24:18 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
2023-01-15 05:26:44 +0100 | mimmy_ | (~mimmy@142.126.70.245) (Ping timeout: 268 seconds) |
2023-01-15 05:26:45 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) (Ping timeout: 256 seconds) |
2023-01-15 05:30:13 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2023-01-15 05:30:46 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 272 seconds) |
2023-01-15 05:35:54 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 05:40:01 +0100 | cheater_ | (~Username@user/cheater) |
2023-01-15 05:40:35 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2023-01-15 05:40:50 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) |
2023-01-15 05:41:59 +0100 | Techcable | (~Techcable@user/Techcable) (Ping timeout: 265 seconds) |
2023-01-15 05:43:11 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 256 seconds) |
2023-01-15 05:43:16 +0100 | cheater_ | cheater |
2023-01-15 05:44:27 +0100 | ddellacosta | (~ddellacos@89.46.62.175) (Ping timeout: 248 seconds) |
2023-01-15 05:49:09 +0100 | Nosrep | (~Nosrep@user/nosrep) (Remote host closed the connection) |
2023-01-15 05:51:01 +0100 | Techcable | (~Techcable@user/Techcable) |
2023-01-15 05:58:31 +0100 | natechan | (~nate@98.45.169.16) |
2023-01-15 06:02:21 +0100 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Ping timeout: 255 seconds) |
2023-01-15 06:03:35 +0100 | oldfashionedcow | (~Rahul_San@user/oldfashionedcow) (Quit: WeeChat 3.7.1) |
2023-01-15 06:03:38 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
2023-01-15 06:03:50 +0100 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:ec3c:3ed4:a3c8:7826) (Ping timeout: 246 seconds) |
2023-01-15 06:06:02 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2023-01-15 06:12:59 +0100 | mikess | (~sam@user/mikess) (Quit: leaving) |
2023-01-15 06:18:44 +0100 | natechan | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2023-01-15 06:29:02 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds) |
2023-01-15 06:31:09 +0100 | leah2 | (~leah@vuxu.org) (Ping timeout: 255 seconds) |
2023-01-15 06:41:19 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 06:42:22 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) (Ping timeout: 252 seconds) |
2023-01-15 06:43:40 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
2023-01-15 06:46:08 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2023-01-15 06:47:09 +0100 | mbuf | (~Shakthi@49.204.134.13) |
2023-01-15 06:53:37 +0100 | irrgit__ | (~irrgit@89.47.234.74) |
2023-01-15 06:56:05 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) |
2023-01-15 06:56:40 +0100 | irrgit_ | (~irrgit@86.106.90.226) (Ping timeout: 252 seconds) |
2023-01-15 06:59:26 +0100 | finsternis | (~X@23.226.237.192) (Read error: Connection reset by peer) |
2023-01-15 07:00:49 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) (Ping timeout: 256 seconds) |
2023-01-15 07:07:29 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2023-01-15 07:12:11 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) |
2023-01-15 07:16:13 +0100 | dcoutts_ | (~duncan@host213-122-143-153.range213-122.btcentralplus.com) |
2023-01-15 07:22:59 +0100 | <fizbin> | [Leary]: That wouldn't work, I don't think. I want the result of the thing that returns a "Just" after stripping off the minimal number of layers of "Work", and near as I can tell that function requires me to finish all of "x" |
2023-01-15 07:32:20 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2023-01-15 07:36:46 +0100 | mimmy_ | (~mimmy@142.126.70.245) |
2023-01-15 07:38:42 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds) |
2023-01-15 07:41:11 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 07:41:52 +0100 | mimmy_ | (~mimmy@142.126.70.245) (Ping timeout: 272 seconds) |
2023-01-15 07:46:18 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2023-01-15 07:47:40 +0100 | fxttr | (~florian@mue-88-130-57-190.dsl.tropolys.de) |
2023-01-15 07:48:50 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 272 seconds) |
2023-01-15 07:49:21 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 07:51:00 +0100 | trev | (~trev@user/trev) |
2023-01-15 07:53:41 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 246 seconds) |
2023-01-15 07:54:09 +0100 | zaquest | (~notzaques@5.130.79.72) |
2023-01-15 07:56:26 +0100 | razetime | (~Thunderbi@117.193.4.145) (Ping timeout: 272 seconds) |
2023-01-15 08:05:41 +0100 | qhong | (~qhong@rescomp-21-400677.stanford.edu) (Remote host closed the connection) |
2023-01-15 08:06:30 +0100 | v0id_ptr | (~adrift@user/ptr-frac7al/x-0038398) (Ping timeout: 265 seconds) |
2023-01-15 08:06:54 +0100 | qhong | (~qhong@rescomp-21-400677.stanford.edu) |
2023-01-15 08:08:27 +0100 | v0id_ptr | (~adrift@user/ptr-frac7al/x-0038398) |
2023-01-15 08:13:40 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) (Ping timeout: 252 seconds) |
2023-01-15 08:13:48 +0100 | dcoutts_ | (~duncan@host213-122-143-153.range213-122.btcentralplus.com) (Ping timeout: 252 seconds) |
2023-01-15 08:14:02 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-01-15 08:16:08 +0100 | natechan | (~nate@98.45.169.16) |
2023-01-15 08:16:24 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2023-01-15 08:17:28 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Ping timeout: 252 seconds) |
2023-01-15 08:21:56 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-01-15 08:23:17 +0100 | <[Leary]> | fizbin: Ah, I misread the intention of `firstJust`. Your `foldr firstJust` is doing something like `minimumBy depthOfWork`, but with a sort of geometrically-balanced search, rather than depth first or breadth first... You could do something like `type Work a = [Maybe a]; work = (Nothing:); done x = [Just x]; finish = asum; firstJust = zipWith (<|>)` (or the same but an abstract newtype in a second module). |
2023-01-15 08:25:13 +0100 | natechan | (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
2023-01-15 08:26:04 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-01-15 08:26:04 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) |
2023-01-15 08:26:06 +0100 | irrgit_ | (~irrgit@146.70.27.250) |
2023-01-15 08:28:19 +0100 | <talismanick> | Say I have monadic code that looks like this: https://0x0.st/o7dw.txt |
2023-01-15 08:29:02 +0100 | <talismanick> | How might I deduplicate so the return value from `valGen` gets passed along in turn to each of the functions without me writing it out? |
2023-01-15 08:29:24 +0100 | irrgit__ | (~irrgit@89.47.234.74) (Ping timeout: 260 seconds) |
2023-01-15 08:30:57 +0100 | <talismanick> | Something kind of like Kleisli composition? |
2023-01-15 08:34:42 +0100 | Tuplanolla | (~Tuplanoll@91-159-68-152.elisa-laajakaista.fi) |
2023-01-15 08:35:18 +0100 | <talismanick> | Or, rather, bind-as-relation (one to many instead of one to one) |
2023-01-15 08:35:34 +0100 | <c_wraith> | talismanick: I... wouldn't bother changing it |
2023-01-15 08:35:38 +0100 | Inst_ | (~Inst@2601:6c4:4081:54f0:3081:cca:cb95:ec2d) |
2023-01-15 08:35:56 +0100 | <c_wraith> | talismanick: there are ways to rewrite it, but I don't think they'd aid understanding in this case |
2023-01-15 08:38:43 +0100 | v0id_ptr | (~adrift@user/ptr-frac7al/x-0038398) (Quit: WeeChat 3.5) |
2023-01-15 08:39:23 +0100 | Inst | (~Inst@2601:6c4:4081:54f0:3de7:12e6:ed3d:f8f8) (Ping timeout: 255 seconds) |
2023-01-15 08:41:42 +0100 | <[Leary]> | talismanick: If you're passing `val` in a lot of places, you might want `ReaderT`. |
2023-01-15 08:41:55 +0100 | <c_wraith> | talismanick: in simpler cases, things like (<*) and (<$) can help, but I don't think they do anything good here. |
2023-01-15 08:50:54 +0100 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 272 seconds) |
2023-01-15 08:50:55 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-01-15 08:52:26 +0100 | wroathe | (~wroathe@user/wroathe) (Quit: leaving) |
2023-01-15 08:53:03 +0100 | <[Leary]> | talismanick: You could also write, say, `fa <<* afb = fa >>= \a -> a <$ afb a; infixl 4 <<*`; it's not an entirely unreasonable operator. |
2023-01-15 08:59:51 +0100 | <[Leary]> | fizbin: Oh, that should have been `firstJust (x:xs) (y:ys) = x:y:firstJust xs ys; firstJust xs ys = xs ++ ys`; `liftA2 (<|>)` would be breadth first. |
2023-01-15 09:00:49 +0100 | <[Leary]> | This might all be easier with ... what was it, LogicT? |
2023-01-15 09:11:54 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-01-15 09:15:56 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 255 seconds) |
2023-01-15 09:16:31 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2023-01-15 09:18:20 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Ping timeout: 252 seconds) |
2023-01-15 09:18:56 +0100 | Guest52 | (~Guest52@58.171.243.251) |
2023-01-15 09:19:19 +0100 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
2023-01-15 09:20:13 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
2023-01-15 09:21:13 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-01-15 09:23:53 +0100 | barak | (~barak@2a02:14f:83:75a5:98fb:ef64:df32:28ff) |
2023-01-15 09:24:32 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Quit: No Ping reply in 180 seconds.) |
2023-01-15 09:29:14 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2023-01-15 09:31:17 +0100 | mei | (~mei@user/mei) |
2023-01-15 09:50:25 +0100 | Guest|91 | (~Guest|91@173.230.148.39) |
2023-01-15 09:51:36 +0100 | <Guest|91> | Could someone to help me installing Haskell? |
2023-01-15 09:53:23 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2023-01-15 09:54:25 +0100 | Guest|91 | (~Guest|91@173.230.148.39) (Client Quit) |
2023-01-15 09:59:05 +0100 | <laalyn> | I could try :) |
2023-01-15 10:02:29 +0100 | kenran | (~user@user/kenran) |
2023-01-15 10:03:08 +0100 | kenran | (~user@user/kenran) (Remote host closed the connection) |
2023-01-15 10:08:23 +0100 | <[exa]> | Guest52: what's the problem? |
2023-01-15 10:10:09 +0100 | f0c1s | (~f0c1s@2401:4900:1cb9:5b16:bb45:5360:94a1:208f) |
2023-01-15 10:10:29 +0100 | f0c1s_ | (~f0c1s@2401:4900:1cb9:5b16:bb45:5360:94a1:208f) |
2023-01-15 10:12:31 +0100 | dtman34 | (~dtman34@76.156.89.180) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in) |
2023-01-15 10:13:25 +0100 | dtman34 | (~dtman34@2601:447:d000:93c9:8095:75ea:f23b:f5f5) |
2023-01-15 10:14:55 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:cd94:d604:3630:3cd8) |
2023-01-15 10:15:20 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:cd94:d604:3630:3cd8) (Client Quit) |
2023-01-15 10:17:36 +0100 | gmg | (~user@user/gehmehgeh) |
2023-01-15 10:19:53 +0100 | leah2 | (~leah@vuxu.org) |
2023-01-15 10:26:38 +0100 | bastelfreak | (bastelfrea@libera/staff/VoxPupuli.bastelfreak) (Quit: WeeChat 3.6) |
2023-01-15 10:28:00 +0100 | bastelfreak | (bastelfrea@libera/staff/VoxPupuli.bastelfreak) |
2023-01-15 10:31:19 +0100 | burnsidesLlama | (~burnsides@119247164140.ctinets.com) |
2023-01-15 10:31:56 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2023-01-15 10:40:14 +0100 | acidjnk | (~acidjnk@p200300d6e715c494a9d2b964e819f338.dip0.t-ipconnect.de) |
2023-01-15 10:42:43 +0100 | thongpv87 | (~thongpv87@2402:9d80:3b9:c4cc:21a0:88fc:6943:1ae5) (Ping timeout: 252 seconds) |
2023-01-15 10:44:44 +0100 | <talismanick> | What does `show @Milli . realToFrac` mean? What do I import so it compiles? What GHC extension? |
2023-01-15 10:45:22 +0100 | <talismanick> | (well, I know it means to represent the number in some format when it gets cast into a string, but the rest is a mystery) |
2023-01-15 10:47:06 +0100 | mechap | (~mechap@user/mechap) |
2023-01-15 10:51:29 +0100 | <talismanick> | [Leary]: Thanks for the suggestion, but I think c_wraith is right for now. Really, what I need are higher-power abstractions to pull parts out of IO or otherwise wrap them into clean, composable units |
2023-01-15 10:53:08 +0100 | <[exa]> | talismanick: that looks like a type application, telling `show` what instance of Show to use (thus also forcing `realToFrac` to know what to ouput) |
2023-01-15 10:53:24 +0100 | <Hecate> | -XTypeApplications |
2023-01-15 10:53:27 +0100 | <Hecate> | indeed |
2023-01-15 10:53:39 +0100 | <Hecate> | talismanick: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/type_applications.html |
2023-01-15 10:54:13 +0100 | burnsidesLlama | (~burnsides@119247164140.ctinets.com) () |
2023-01-15 10:55:34 +0100 | <[exa]> | normally without the application you'd either have an ambiguity (or maybe a surprising default on Fractional+Show), or you'd have to use some gadget to force the type such as `show . (id :: Milli->Milli) . realToFrac` |
2023-01-15 10:57:09 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-01-15 10:58:32 +0100 | mbuf | (~Shakthi@49.204.134.13) (Quit: Leaving) |
2023-01-15 10:59:16 +0100 | <mauke> | `show @Milli` seems a bit pointless when you can get the same effect with `\x -> show (x :: Milli)` or `show . (\x -> x :: Milli)` without any language extensions |
2023-01-15 10:59:32 +0100 | coldtom | (~coldtom@coldrick.cc) (Quit: Well, that's got rid of me) |
2023-01-15 11:07:42 +0100 | <Hecate> | mauke: lol |
2023-01-15 11:07:55 +0100 | <Hecate> | mauke: don't say that, he might think you're serious :P |
2023-01-15 11:08:39 +0100 | <mauke> | ? I am serious |
2023-01-15 11:12:02 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2023-01-15 11:13:18 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2023-01-15 11:14:19 +0100 | <talismanick> | mauke: You need ScopedTypeVariables for that |
2023-01-15 11:14:37 +0100 | <mauke> | why? |
2023-01-15 11:14:44 +0100 | talismanick | shrugs |
2023-01-15 11:14:55 +0100 | <talismanick> | It's a scoped type variable |
2023-01-15 11:15:00 +0100 | <mauke> | none of the examples shown use any type variables |
2023-01-15 11:16:02 +0100 | son0p | (~ff@190.158.28.118) (Remote host closed the connection) |
2023-01-15 11:16:10 +0100 | <mauke> | am I on drugs or is everyone else? |
2023-01-15 11:18:45 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2023-01-15 11:21:05 +0100 | <Hecate> | pretty sure (\x -> show (x :: Milli)) . realToFrac doesn't need ScopedTypeVariables |
2023-01-15 11:21:22 +0100 | <Hecate> | but it's still considerably more burdensome than show @Milli |
2023-01-15 11:22:47 +0100 | <mauke> | but less burdensome than {-# LANGUAGE TypeApplications #-} show @Milli |
2023-01-15 11:23:56 +0100 | gnalzo | thinks this is a question of taste :) |
2023-01-15 11:23:57 +0100 | <xerox> | talismanick: here's some examples: https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/scoped_type_variables.html#extensio… |
2023-01-15 11:25:33 +0100 | <talismanick> | ah, you're right - I'm confusing it with the time I did have to use that extension (with similar syntax) |
2023-01-15 11:28:59 +0100 | <Hecate> | mauke: no |
2023-01-15 11:29:01 +0100 | <Hecate> | :P |
2023-01-15 11:29:14 +0100 | <Hecate> | gnalzo: :) |
2023-01-15 11:36:25 +0100 | barak | (~barak@2a02:14f:83:75a5:98fb:ef64:df32:28ff) (Ping timeout: 260 seconds) |
2023-01-15 11:38:19 +0100 | mimmy_ | (~mimmy@142.126.70.245) |
2023-01-15 11:40:18 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-01-15 11:43:48 +0100 | mimmy_ | (~mimmy@142.126.70.245) (Ping timeout: 272 seconds) |
2023-01-15 11:48:33 +0100 | <Reinhilde> | e |
2023-01-15 11:49:55 +0100 | <mauke> | https://duckduckgo.com/?t=ffab&q=%65&iax=images&ia=images |
2023-01-15 11:55:47 +0100 | zeenk | (~zeenk@2a02:2f04:a014:8700::7fe) |
2023-01-15 12:01:45 +0100 | f0c1s_ | (~f0c1s@2401:4900:1cb9:5b16:bb45:5360:94a1:208f) (Quit: Leaving) |
2023-01-15 12:01:45 +0100 | f0c1s | (~f0c1s@2401:4900:1cb9:5b16:bb45:5360:94a1:208f) (Quit: Leaving) |
2023-01-15 12:06:07 +0100 | mechap | (~mechap@user/mechap) (Quit: WeeChat 3.8) |
2023-01-15 12:07:21 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2023-01-15 12:10:06 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6450:b99c:346:15e5) (Remote host closed the connection) |
2023-01-15 12:10:52 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
2023-01-15 12:11:39 +0100 | chexum | (~quassel@gateway/tor-sasl/chexum) |
2023-01-15 12:12:09 +0100 | mei_ | (~mei@user/mei) |
2023-01-15 12:14:31 +0100 | thongpv87 | (~thongpv87@2402:9d80:3b9:c4cc:6182:a43d:c5b4:7a2d) |
2023-01-15 12:14:47 +0100 | mei | (~mei@user/mei) (Ping timeout: 260 seconds) |
2023-01-15 12:24:03 +0100 | tremon | (~tremon@83-85-213-108.cable.dynamic.v4.ziggo.nl) |
2023-01-15 12:24:21 +0100 | barak | (~barak@2a02:14f:83:75a5:71fd:c7ff:a853:183e) |
2023-01-15 12:26:00 +0100 | talismanick | (~talismani@2601:200:c181:4c40::1be2) (Ping timeout: 260 seconds) |
2023-01-15 12:36:39 +0100 | mmhat | (~mmh@p200300f1c7123c02ee086bfffe095315.dip0.t-ipconnect.de) |
2023-01-15 12:37:50 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2023-01-15 12:38:54 +0100 | bolichep | (~bolichep@186.57.179.191) |
2023-01-15 12:41:19 +0100 | razetime | (~Thunderbi@117.193.4.145) |
2023-01-15 12:49:19 +0100 | acidjnk | (~acidjnk@p200300d6e715c494a9d2b964e819f338.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2023-01-15 12:49:33 +0100 | son0p | (~ff@190.158.28.118) |
2023-01-15 12:49:34 +0100 | mmhat | (~mmh@p200300f1c7123c02ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8) |
2023-01-15 12:53:04 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-01-15 12:54:20 +0100 | razetime | (~Thunderbi@117.193.4.145) (Remote host closed the connection) |
2023-01-15 13:10:33 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6450:b99c:346:15e5) |
2023-01-15 13:14:17 +0100 | gmg | (~user@user/gehmehgeh) (Remote host closed the connection) |
2023-01-15 13:16:08 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6450:b99c:346:15e5) (Ping timeout: 255 seconds) |
2023-01-15 13:18:06 +0100 | CiaoSen | (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2023-01-15 13:21:11 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds) |
2023-01-15 13:21:23 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2023-01-15 13:24:54 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2023-01-15 13:28:17 +0100 | ss4 | (~wootehfoo@user/wootehfoot) |
2023-01-15 13:30:24 +0100 | ss4 | (~wootehfoo@user/wootehfoot) (Client Quit) |
2023-01-15 13:31:42 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Ping timeout: 252 seconds) |
2023-01-15 13:33:21 +0100 | __monty__ | (~toonn@user/toonn) |
2023-01-15 13:34:13 +0100 | gmg | (~user@user/gehmehgeh) |
2023-01-15 13:44:57 +0100 | phma | (phma@2001:5b0:211f:9a8:4ecd:10c6:a18f:491e) (Read error: Connection reset by peer) |
2023-01-15 13:45:49 +0100 | phma | (~phma@host-67-44-208-219.hnremote.net) |
2023-01-15 13:53:32 +0100 | instantaphex | (~jb@c-73-171-252-84.hsd1.fl.comcast.net) |
2023-01-15 13:57:44 +0100 | instantaphex | (~jb@c-73-171-252-84.hsd1.fl.comcast.net) (Ping timeout: 246 seconds) |
2023-01-15 14:03:46 +0100 | <Guest5476> | Identity function with special treatment to Bool values: https://play-haskell.tomsmeding.com/saved/XrMtxzfx |
2023-01-15 14:08:07 +0100 | titibandit1 | (~titibandi@xdsl-81-173-160-143.nc.de) |
2023-01-15 14:18:22 +0100 | nek0 | (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat) |
2023-01-15 14:19:35 +0100 | nek0 | (~nek0@2a01:4f8:222:2b41::12) |
2023-01-15 14:23:29 +0100 | CiaoSen | (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2023-01-15 14:31:29 +0100 | jakalx | (~jakalx@base.jakalx.net) () |
2023-01-15 14:40:56 +0100 | pwug | (~pwug@user/pwug) (Read error: Connection reset by peer) |
2023-01-15 14:43:45 +0100 | bolichep | (~bolichep@186.57.179.191) (Quit: Saliendo) |
2023-01-15 14:47:58 +0100 | coot | (~coot@213.134.171.3) |
2023-01-15 14:48:06 +0100 | coot | (~coot@213.134.171.3) (Remote host closed the connection) |
2023-01-15 14:48:25 +0100 | barak | (~barak@2a02:14f:83:75a5:71fd:c7ff:a853:183e) (Ping timeout: 252 seconds) |
2023-01-15 14:56:23 +0100 | razetime | (~Thunderbi@117.193.4.145) |
2023-01-15 14:57:13 +0100 | CiaoSen | (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2023-01-15 14:57:28 +0100 | razetime | (~Thunderbi@117.193.4.145) (Client Quit) |
2023-01-15 15:00:14 +0100 | son0p | (~ff@190.158.28.118) (Ping timeout: 268 seconds) |
2023-01-15 15:01:25 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-01-15 15:03:33 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-01-15 15:04:14 +0100 | troydm | (~troydm@user/troydm) (Ping timeout: 246 seconds) |
2023-01-15 15:13:53 +0100 | tubogram440 | (~tubogram@user/tubogram) |
2023-01-15 15:14:37 +0100 | tubogram44 | (~tubogram@user/tubogram) (Ping timeout: 246 seconds) |
2023-01-15 15:14:38 +0100 | tubogram440 | tubogram44 |
2023-01-15 15:23:28 +0100 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2023-01-15 15:23:35 +0100 | jinsun__ | (~jinsun@user/jinsun) |
2023-01-15 15:23:35 +0100 | jinsun__ | jinsun |
2023-01-15 15:26:42 +0100 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2023-01-15 15:26:50 +0100 | <ncf> | do you have a permit for breaking parametricity? |
2023-01-15 15:26:57 +0100 | jinsun | (~jinsun@user/jinsun) |
2023-01-15 15:28:01 +0100 | <Inst_> | question about short cricuiting in other languages |
2023-01-15 15:28:04 +0100 | <Inst_> | do they use the thunk model? |
2023-01-15 15:28:20 +0100 | <Inst_> | I'm describing laziness to some new developer who's trying to get their first job with Python as "everything short-circuits" |
2023-01-15 15:28:31 +0100 | <ncf> | not necessarily; C has short-circuiting operators but no thunks |
2023-01-15 15:28:38 +0100 | <Inst_> | ah |
2023-01-15 15:28:43 +0100 | Inst_ | Inst |
2023-01-15 15:28:45 +0100 | <Inst> | oh well |
2023-01-15 15:28:48 +0100 | <Inst> | close enough, I guess |
2023-01-15 15:29:38 +0100 | <geekosaur> | "everything short-circuits" isn't quite right either. how does that explain Control.Monad.when? |
2023-01-15 15:30:50 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
2023-01-15 15:31:09 +0100 | <geekosaur> | it also doesn't work if multiple parameters are strict |
2023-01-15 15:31:20 +0100 | <geekosaur> | well, even if one is |
2023-01-15 15:31:39 +0100 | <Inst> | why does when matter? |
2023-01-15 15:31:55 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
2023-01-15 15:32:00 +0100 | <Inst> | evaluate the boolean, then if the boolean is true, substitute pure () with the appllicative |
2023-01-15 15:34:42 +0100 | <geekosaur> | laziness is why it doesn't evaluate the thunk before looking at the boolean |
2023-01-15 15:34:58 +0100 | <int-e> | I'd call it on-demand evaluation. Boolean short-circuiting is a special case of that. But it still won't tell you what exactly constitutes "demand". |
2023-01-15 15:37:47 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
2023-01-15 15:39:53 +0100 | mimmy_ | (~mimmy@142.126.70.245) |
2023-01-15 15:41:04 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1) |
2023-01-15 15:42:57 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) |
2023-01-15 15:43:07 +0100 | <Inst> | it doesn't matter, the python guy doesn't even understand the "if it compiles, ship it" joke and the "if it compiles, it works" semi-joke |
2023-01-15 15:43:23 +0100 | ubert | (~Thunderbi@p548c9ce5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
2023-01-15 15:43:27 +0100 | ub | (~Thunderbi@185.195.232.146) |
2023-01-15 15:44:48 +0100 | mimmy_ | (~mimmy@142.126.70.245) (Ping timeout: 260 seconds) |
2023-01-15 15:45:44 +0100 | paulpaul1076 | (~textual@95-29-5-111.broadband.corbina.ru) (Ping timeout: 272 seconds) |
2023-01-15 15:45:45 +0100 | ub | ubert |
2023-01-15 15:49:41 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2023-01-15 15:53:25 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-01-15 15:54:42 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-01-15 15:58:03 +0100 | _leo92_ | (~emmanuelu@user/emmanuelux) |
2023-01-15 15:59:53 +0100 | <eldritchcookie[4> | how can i make it sure that a file generated by template haskell is included in the final package? |
2023-01-15 16:01:29 +0100 | emmanuelux | (~emmanuelu@user/emmanuelux) (Ping timeout: 260 seconds) |
2023-01-15 16:01:40 +0100 | jao | (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
2023-01-15 16:03:15 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) |
2023-01-15 16:04:27 +0100 | barak | (~barak@77.125.91.132) |
2023-01-15 16:06:12 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2023-01-15 16:06:16 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2023-01-15 16:07:21 +0100 | <eldritchcookie[4> | basically can i make a autogenerated file be mentioned in the includes? |
2023-01-15 16:07:39 +0100 | Guest52 | (~Guest52@58.171.243.251) (Quit: Client closed) |
2023-01-15 16:09:47 +0100 | barak | (~barak@77.125.91.132) (Ping timeout: 264 seconds) |
2023-01-15 16:10:46 +0100 | pagnol | (~user@213-205-209-87.ftth.glasoperator.nl) |
2023-01-15 16:12:06 +0100 | mechap | (~mechap@user/mechap) |
2023-01-15 16:15:58 +0100 | L29Ah | (~L29Ah@wikipedia/L29Ah) |
2023-01-15 16:16:13 +0100 | <lyxia> | eldritchcookie[4: there is an extra-sources-files field in cabal, it doesn't care where the files come from, they just have to be there when running "cabal sdist" |
2023-01-15 16:25:43 +0100 | <eldritchcookie[4> | does it keep include-dirs automatically? |
2023-01-15 16:26:19 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2023-01-15 16:27:19 +0100 | <eldritchcookie[4> | or do i need to also mention them in extra source files? |
2023-01-15 16:29:15 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.) |
2023-01-15 16:30:22 +0100 | sammelweis | (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
2023-01-15 16:30:54 +0100 | oldfashionedcow | (~Rahul_San@user/oldfashionedcow) |
2023-01-15 16:37:42 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2023-01-15 16:37:59 +0100 | merijn | (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds) |
2023-01-15 16:46:18 +0100 | fxttr | (~florian@mue-88-130-57-190.dsl.tropolys.de) (Ping timeout: 268 seconds) |
2023-01-15 16:47:53 +0100 | fxttr | (~florian@i577BC913.versanet.de) |
2023-01-15 16:49:31 +0100 | panovia | (~user@user/siracusa) (Quit: Bye!) |
2023-01-15 16:51:26 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 16:54:20 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-01-15 16:59:14 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2023-01-15 17:01:06 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 268 seconds) |
2023-01-15 17:02:28 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-01-15 17:06:02 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer) |
2023-01-15 17:06:30 +0100 | matijja | (~matijja@193.77.181.201) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-01-15 17:06:59 +0100 | matijja | (~matijja@193.77.181.201) |
2023-01-15 17:10:30 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
2023-01-15 17:11:30 +0100 | Inst | (~Inst@2601:6c4:4081:54f0:3081:cca:cb95:ec2d) (Ping timeout: 255 seconds) |
2023-01-15 17:13:22 +0100 | son0p | (~ff@2800:e2:f80:867:8077:75e8:74b:f48d) |
2023-01-15 17:19:35 +0100 | troydm | (~troydm@user/troydm) |
2023-01-15 17:21:50 +0100 | mizlan | (~mizlan@2607:f010:2a7:1005:e1d1:8a04:4a34:845a) (Ping timeout: 255 seconds) |
2023-01-15 17:22:08 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
2023-01-15 17:25:34 +0100 | ddellacosta | (~ddellacos@86.106.143.136) |
2023-01-15 17:31:39 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
2023-01-15 17:33:04 +0100 | matijja | (~matijja@193.77.181.201) (Quit: ZNC 1.8.2 - https://znc.in) |
2023-01-15 17:33:45 +0100 | matijja | (~matijja@193.77.181.201) |
2023-01-15 17:34:17 +0100 | segfaultfizzbuzz | (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) |
2023-01-15 17:38:40 +0100 | pagnol | (~user@213-205-209-87.ftth.glasoperator.nl) (Ping timeout: 260 seconds) |
2023-01-15 17:40:34 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6450:b99c:346:15e5) |
2023-01-15 17:44:48 +0100 | coot | (~coot@213.134.171.3) |
2023-01-15 17:45:30 +0100 | mimmy_ | (~mimmy@142.126.70.245) |
2023-01-15 17:46:41 +0100 | waleee | (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
2023-01-15 17:49:04 +0100 | son0p | (~ff@2800:e2:f80:867:8077:75e8:74b:f48d) (Killed (NickServ (GHOST command used by son0p-!~ff@181.136.122.143))) |
2023-01-15 17:49:57 +0100 | son0p | (~ff@181.136.122.143) |
2023-01-15 17:51:09 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
2023-01-15 17:53:06 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2023-01-15 17:53:35 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 17:57:14 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-01-15 17:57:14 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-01-15 17:57:14 +0100 | wroathe | (~wroathe@user/wroathe) |
2023-01-15 18:02:32 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2023-01-15 18:04:37 +0100 | thongpv | (~thongpv87@113.176.74.88) |
2023-01-15 18:06:01 +0100 | thongpv87 | (~thongpv87@2402:9d80:3b9:c4cc:6182:a43d:c5b4:7a2d) (Ping timeout: 252 seconds) |
2023-01-15 18:06:26 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
2023-01-15 18:08:59 +0100 | <fendor[m]> | is there a yaml parsing library that lets me warn if my document contains unknown fields? |
2023-01-15 18:09:45 +0100 | coot | (~coot@213.134.171.3) (Quit: coot) |
2023-01-15 18:11:22 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2023-01-15 18:12:02 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2023-01-15 18:13:57 +0100 | jumper149 | (~jumper149@base.felixspringer.xyz) |
2023-01-15 18:14:15 +0100 | Xeroine | (~Xeroine@user/xeroine) (Ping timeout: 260 seconds) |
2023-01-15 18:17:56 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2023-01-15 18:18:07 +0100 | <[exa]> | fendor[m]: the yamlish aeson variant doesn't explode on unknown fields? |
2023-01-15 18:19:22 +0100 | <fendor[m]> | aeson doesn't, so yaml won't either, afaict. |
2023-01-15 18:19:44 +0100 | steerpike | (~echelon@gateway/tor-sasl/steerpike) |
2023-01-15 18:21:10 +0100 | steerpike | (~echelon@gateway/tor-sasl/steerpike) () |
2023-01-15 18:21:41 +0100 | <fendor[m]> | By unknown field, I mean a field that isn't necessary for parsing. Parsing is successful, and the unknown field is simply not parsed into any data structure |
2023-01-15 18:21:42 +0100 | dcoutts_ | (~duncan@host213-122-143-153.range213-122.btcentralplus.com) |
2023-01-15 18:24:44 +0100 | ddellacosta | (~ddellacos@86.106.143.136) (Ping timeout: 246 seconds) |
2023-01-15 18:26:54 +0100 | ddellacosta | (~ddellacos@89.45.224.227) |
2023-01-15 18:27:19 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6450:b99c:346:15e5) (Remote host closed the connection) |
2023-01-15 18:27:37 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6450:b99c:346:15e5) |
2023-01-15 18:27:51 +0100 | <[exa]> | fendor[m]: well as a complete workaround you may format the data structure back to aeson Value and diff it |
2023-01-15 18:29:45 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Quit: beteigeuze) |
2023-01-15 18:30:13 +0100 | beteigeuze | (~Thunderbi@bl14-81-220.dsl.telepac.pt) |
2023-01-15 18:32:19 +0100 | <fendor[m]> | [exa] sounds like a pretty good idea. It forces me to add a ToJSON instance, but it seems easier to maintain than other solution from stack overflow |
2023-01-15 18:33:12 +0100 | <[exa]> | like, if the constraint you want to fit in is "no ignored fields ever", this is it |
2023-01-15 18:34:27 +0100 | <Guest5476> | lmao, why this behaves in such a strange way? https://play-haskell.tomsmeding.com/saved/bCe7WkVe |
2023-01-15 18:34:59 +0100 | <fendor[m]> | yeah, I think warning would be the better behaviour, now let's just hope I am never parsing files that have a few MB |
2023-01-15 18:36:41 +0100 | raehik | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2023-01-15 18:40:25 +0100 | jakalx | (~jakalx@base.jakalx.net) |
2023-01-15 18:45:41 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 18:45:56 +0100 | econo | (uid147250@user/econo) |
2023-01-15 18:49:24 +0100 | mimmy_ | (~mimmy@142.126.70.245) (Ping timeout: 272 seconds) |
2023-01-15 18:50:02 +0100 | <[exa]> | fendor[m]: actually if you compare the Values reasonably, it's gonna lazy-stream |
2023-01-15 18:50:40 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2023-01-15 18:51:32 +0100 | thongpv87 | (~thongpv87@2402:9d80:3ee:7887:942:a6bd:b981:3bd) |
2023-01-15 18:52:08 +0100 | <[exa]> | Guest5476: wow okay, interesting |
2023-01-15 18:53:19 +0100 | <[exa]> | looks like it doesn't really see your instance, for whatever reason |
2023-01-15 18:53:39 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6450:b99c:346:15e5) (Remote host closed the connection) |
2023-01-15 18:54:34 +0100 | thongpv | (~thongpv87@113.176.74.88) (Ping timeout: 268 seconds) |
2023-01-15 18:55:30 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6450:b99c:346:15e5) |
2023-01-15 19:01:44 +0100 | <Guest5476> | No, that's expected behavior: https://serokell.io/blog/uncaught-exception-handling |
2023-01-15 19:01:59 +0100 | <Guest5476> | [exa] ^ |
2023-01-15 19:07:04 +0100 | o | (niko@libera/staff/niko) |
2023-01-15 19:07:20 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 260 seconds) |
2023-01-15 19:07:35 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
2023-01-15 19:08:44 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 19:13:23 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2023-01-15 19:15:53 +0100 | titibandit1 | (~titibandi@xdsl-81-173-160-143.nc.de) (Quit: Leaving.) |
2023-01-15 19:17:22 +0100 | dsrt^ | (~dsrt@76.145.190.81) (Remote host closed the connection) |
2023-01-15 19:18:04 +0100 | dcoutts_ | (~duncan@host213-122-143-153.range213-122.btcentralplus.com) (Ping timeout: 260 seconds) |
2023-01-15 19:18:18 +0100 | fizbin | (~fizbin@user/fizbin) |
2023-01-15 19:19:30 +0100 | shriekingnoise | (~shrieking@186.137.175.87) |
2023-01-15 19:22:09 +0100 | dcoutts_ | (~duncan@host213-122-143-153.range213-122.btcentralplus.com) |
2023-01-15 19:27:24 +0100 | dcoutts_ | (~duncan@host213-122-143-153.range213-122.btcentralplus.com) (Ping timeout: 260 seconds) |
2023-01-15 19:29:43 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 268 seconds) |
2023-01-15 19:35:17 +0100 | <[exa]> | Guest5476: oh wow ok |
2023-01-15 19:36:46 +0100 | CiaoSen | (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2023-01-15 19:40:55 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
2023-01-15 19:43:55 +0100 | fizbin | (~fizbin@user/fizbin) |
2023-01-15 19:44:58 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 19:45:24 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 265 seconds) |
2023-01-15 19:45:32 +0100 | Inst | (~Inst@2601:6c4:4081:54f0:c85a:c40d:a7df:1361) |
2023-01-15 19:46:27 +0100 | mechap | (~mechap@user/mechap) (Quit: WeeChat 3.8) |
2023-01-15 19:47:54 +0100 | talismanick | (~talismani@2601:200:c181:4c40::1be2) |
2023-01-15 19:49:36 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-01-15 19:49:48 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds) |
2023-01-15 19:55:22 +0100 | <juri_> | I have a comparison in my program, that compares a value against the sum of a series of guaranteed to be positive values. is there a way i can abuse applicative to evaluate the series of positive values such that when the comparison is greater, it stops summing the applicatives, and evaluating their expensive generation functions? |
2023-01-15 19:57:02 +0100 | <geekosaur> | asum over First? |
2023-01-15 19:57:07 +0100 | <geekosaur> | maybe |
2023-01-15 19:57:20 +0100 | <geekosaur> | hm, nom that's per element, not collecting |
2023-01-15 19:57:28 +0100 | <geekosaur> | s/nom/no, |
2023-01-15 20:01:10 +0100 | <geekosaur> | not sure you can do that with Applicative, actually, would need Monad |
2023-01-15 20:03:02 +0100 | <juri_> | hmm. i guess i'd have to learn how monad works. fun! :) |
2023-01-15 20:03:25 +0100 | <juri_> | (i am a simple haskeller, really. :) ) |
2023-01-15 20:03:43 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
2023-01-15 20:03:48 +0100 | fizbin | (~fizbin@user/fizbin) (Ping timeout: 260 seconds) |
2023-01-15 20:08:34 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2023-01-15 20:12:56 +0100 | titibandit1 | (~titibandi@xdsl-81-173-160-143.nc.de) |
2023-01-15 20:14:15 +0100 | natechan | (~nate@98.45.169.16) |
2023-01-15 20:15:40 +0100 | fxttr | (~florian@i577BC913.versanet.de) (Quit: leaving) |
2023-01-15 20:16:17 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
2023-01-15 20:16:52 +0100 | caryhartline | (~caryhartl@2600:1700:2d0:8d30:a4a8:25f2:538:8162) |
2023-01-15 20:18:05 +0100 | trev | (~trev@user/trev) (Remote host closed the connection) |
2023-01-15 20:18:42 +0100 | natechan | (~nate@98.45.169.16) (Ping timeout: 252 seconds) |
2023-01-15 20:31:38 +0100 | natechan | (~nate@98.45.169.16) |
2023-01-15 20:33:05 +0100 | thongpv87 | (~thongpv87@2402:9d80:3ee:7887:942:a6bd:b981:3bd) (Ping timeout: 260 seconds) |
2023-01-15 20:34:04 +0100 | wroathe | (~wroathe@user/wroathe) (Quit: leaving) |
2023-01-15 20:36:14 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
2023-01-15 20:45:54 +0100 | mimmy_ | (~mimmy@142.126.70.245) |
2023-01-15 20:48:48 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
2023-01-15 20:49:20 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2023-01-15 20:50:23 +0100 | mimmy_ | (~mimmy@142.126.70.245) (Ping timeout: 246 seconds) |
2023-01-15 20:51:52 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2023-01-15 20:53:23 +0100 | natechan | (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
2023-01-15 20:54:05 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds) |
2023-01-15 20:54:16 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:bd7d:d18b:6ce0:4c58) |
2023-01-15 21:01:59 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 264 seconds) |
2023-01-15 21:04:55 +0100 | _leo92_ | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2023-01-15 21:09:58 +0100 | natechan | (~nate@98.45.169.16) |
2023-01-15 21:18:16 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:bd7d:d18b:6ce0:4c58) (Quit: WeeChat 2.8) |
2023-01-15 21:23:15 +0100 | talismanick | (~talismani@2601:200:c181:4c40::1be2) (Ping timeout: 260 seconds) |
2023-01-15 21:24:24 +0100 | wroathe | (~wroathe@50.205.197.50) |
2023-01-15 21:24:24 +0100 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-01-15 21:24:24 +0100 | wroathe | (~wroathe@user/wroathe) |
2023-01-15 21:25:46 +0100 | coot | (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
2023-01-15 21:26:16 +0100 | hpc | (~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 268 seconds) |
2023-01-15 21:27:07 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
2023-01-15 21:27:46 +0100 | hpc | (~juzz@ip98-169-35-163.dc.dc.cox.net) |
2023-01-15 21:29:06 +0100 | ddellacosta | (~ddellacos@89.45.224.227) (Ping timeout: 252 seconds) |
2023-01-15 21:31:41 +0100 | Xeroine | (~Xeroine@user/xeroine) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in) |
2023-01-15 21:32:26 +0100 | hpc | (~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 268 seconds) |
2023-01-15 21:33:00 +0100 | Xeroine | (~Xeroine@user/xeroine) |
2023-01-15 21:33:11 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 264 seconds) |
2023-01-15 21:40:21 +0100 | hpc | (~juzz@ip98-169-35-163.dc.dc.cox.net) |
2023-01-15 21:43:05 +0100 | kee | (~~kee@user/wizzwizz4) (Ping timeout: 260 seconds) |
2023-01-15 21:45:31 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
2023-01-15 21:46:00 +0100 | kee | (~~kee@user/wizzwizz4) |
2023-01-15 21:47:33 +0100 | azimut_ | (~azimut@gateway/tor-sasl/azimut) |
2023-01-15 21:47:53 +0100 | azimut | (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds) |
2023-01-15 21:49:09 +0100 | machinedgod | (~machinedg@d198-53-218-113.abhsia.telus.net) |
2023-01-15 21:50:11 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds) |
2023-01-15 21:55:50 +0100 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
2023-01-15 21:57:02 +0100 | sh1n | (~sh1n@181.229.121.151) |
2023-01-15 22:03:16 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2023-01-15 22:04:43 +0100 | wroathe | (~wroathe@50.205.197.50) |
2023-01-15 22:04:43 +0100 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-01-15 22:04:43 +0100 | wroathe | (~wroathe@user/wroathe) |
2023-01-15 22:06:48 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
2023-01-15 22:08:04 +0100 | mimmy_ | (~mimmy@142.126.70.245) |
2023-01-15 22:08:13 +0100 | acarrico | (~acarrico@dhcp-68-142-49-163.greenmountainaccess.net) (Quit: Leaving.) |
2023-01-15 22:08:50 +0100 | fizbin | (~fizbin@user/fizbin) |
2023-01-15 22:09:46 +0100 | acidjnk | (~acidjnk@p54ad56b7.dip0.t-ipconnect.de) |
2023-01-15 22:10:22 +0100 | gmg | (~user@user/gehmehgeh) (Quit: Leaving) |
2023-01-15 22:11:07 +0100 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2023-01-15 22:11:47 +0100 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
2023-01-15 22:12:03 +0100 | aaronm04 | (~user@user/aaronm04) |
2023-01-15 22:12:04 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) (Ping timeout: 272 seconds) |
2023-01-15 22:13:20 +0100 | mimmy_ | (~mimmy@142.126.70.245) (Ping timeout: 272 seconds) |
2023-01-15 22:15:39 +0100 | CiaoSen | (~Jura@p200300c9574fa4002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2023-01-15 22:17:18 +0100 | shriekingnoise_ | (~shrieking@186.137.175.87) |
2023-01-15 22:20:32 +0100 | shriekingnoise | (~shrieking@186.137.175.87) (Ping timeout: 268 seconds) |
2023-01-15 22:21:47 +0100 | titibandit1 | (~titibandi@xdsl-81-173-160-143.nc.de) (Remote host closed the connection) |
2023-01-15 22:26:02 +0100 | mechap | (~mechap@user/mechap) |
2023-01-15 22:32:10 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2023-01-15 22:34:05 +0100 | oldfashionedcow | convincer3000 |
2023-01-15 22:36:04 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
2023-01-15 22:36:28 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) |
2023-01-15 22:37:12 +0100 | convincer3000 | oldfashionedcow |
2023-01-15 22:49:14 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2023-01-15 22:51:58 +0100 | kee | (~~kee@user/wizzwizz4) (Ping timeout: 272 seconds) |
2023-01-15 22:52:40 +0100 | wroathe | (~wroathe@50.205.197.50) |
2023-01-15 22:52:40 +0100 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-01-15 22:52:40 +0100 | wroathe | (~wroathe@user/wroathe) |
2023-01-15 22:53:12 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 22:55:53 +0100 | kee | (~~kee@user/wizzwizz4) |
2023-01-15 22:57:32 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 255 seconds) |
2023-01-15 23:02:12 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2023-01-15 23:02:56 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2023-01-15 23:08:28 +0100 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
2023-01-15 23:14:04 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) |
2023-01-15 23:14:09 +0100 | hrberg | (~quassel@171.79-160-161.customer.lyse.net) |
2023-01-15 23:15:08 +0100 | gnalzo | (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.7.1) |
2023-01-15 23:18:06 +0100 | notzmv | (~zmv@user/notzmv) |
2023-01-15 23:18:34 +0100 | freeside | (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 272 seconds) |
2023-01-15 23:19:07 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2023-01-15 23:20:09 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng32-54fb48-32.dhcp.inet.fi) (Ping timeout: 260 seconds) |
2023-01-15 23:24:26 +0100 | wroathe | (~wroathe@50.205.197.50) |
2023-01-15 23:24:26 +0100 | wroathe | (~wroathe@50.205.197.50) (Changing host) |
2023-01-15 23:24:26 +0100 | wroathe | (~wroathe@user/wroathe) |
2023-01-15 23:27:15 +0100 | merijn | (~merijn@c-001-001-014.client.esciencecenter.eduvpn.nl) |
2023-01-15 23:29:05 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2023-01-15 23:35:41 +0100 | Guest94 | (~Guest94@2600:8805:d807:e00:9189:eb63:2ecf:8f6e) |
2023-01-15 23:43:30 +0100 | <Guest94> | Hi all, im beginner in Haskell and have a question about function composition (.) operator. Say I have this code: |
2023-01-15 23:43:30 +0100 | <Guest94> | firstPart = (<> " ") |
2023-01-15 23:43:31 +0100 | <Guest94> | compose = (<>) . firstPart |
2023-01-15 23:43:31 +0100 | <Guest94> | compose "hi" "john" |
2023-01-15 23:43:32 +0100 | <Guest94> | ghci> "hi john" |
2023-01-15 23:43:32 +0100 | <Guest94> | Im confused at (<>) is a 2 args function. Is it that natural to compose different no. of args function together? |
2023-01-15 23:43:33 +0100 | <Guest94> | Secondly, I tried to apply the args on the same line with the composition, but it gives me error, even though I have the application operator (&): |
2023-01-15 23:43:33 +0100 | <Guest94> | partial = (<>) . firstPart & "hi" |
2023-01-15 23:43:34 +0100 | <Guest94> | partial = (<>) . firstPart & "hi" "john" |
2023-01-15 23:43:34 +0100 | <Guest94> | partial = (<>) . firstPart "hi" "john" |
2023-01-15 23:43:41 +0100 | <Guest94> | any help is much appreciated! |
2023-01-15 23:44:02 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6450:b99c:346:15e5) (Remote host closed the connection) |
2023-01-15 23:45:28 +0100 | <sshine> | Guest94, hi |
2023-01-15 23:46:04 +0100 | <sshine> | Guest94, (<> " ") is syntax sugar for (\s -> s <> " ") |
2023-01-15 23:46:26 +0100 | <sshine> | Guest94, (" " <>) is syntax sugar for (\s -> " " <> s) |
2023-01-15 23:46:38 +0100 | scoopahdoopah | (~quassel@050-089-109-059.res.spectrum.com) |
2023-01-15 23:47:45 +0100 | <sshine> | Guest94, the reason you can't write (<>) . is, as you say, it's a two-argument function. |
2023-01-15 23:48:48 +0100 | <sshine> | well, you can write it, but... |
2023-01-15 23:48:52 +0100 | <sshine> | :t ((<>) .) |
2023-01-15 23:48:53 +0100 | <lambdabot> | Semigroup a1 => (a2 -> a1) -> a2 -> a1 -> a1 |
2023-01-15 23:50:05 +0100 | <Guest94> | sshine I don't get what you mean, I can still write |
2023-01-15 23:50:05 +0100 | <Guest94> | compose = (<>) . firstPart |
2023-01-15 23:50:06 +0100 | <Guest94> | compose "hi" "john" |
2023-01-15 23:50:06 +0100 | <Guest94> | and the result is "hi john" |
2023-01-15 23:50:54 +0100 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving) |
2023-01-15 23:50:55 +0100 | <Guest94> | but I didn't want to bind (<>) . firstPart to the variable compose |
2023-01-15 23:51:46 +0100 | <sshine> | I'm a little confused. what do you wanna do then? :) |
2023-01-15 23:51:50 +0100 | <Guest94> | I wanted to directly pass args right after the composition, and it failed, I tried all 3 ways: |
2023-01-15 23:51:51 +0100 | <Guest94> | (<>) . firstPart & "hi" |
2023-01-15 23:51:51 +0100 | <Guest94> | (<>) . firstPart & "hi" "john" |
2023-01-15 23:51:52 +0100 | <Guest94> | (<>) . firstPart "hi" "john" |
2023-01-15 23:52:34 +0100 | eggplantade | (~Eggplanta@2600:1700:38c5:d800:6450:b99c:346:15e5) |
2023-01-15 23:52:43 +0100 | <geekosaur> | @let firstPart = (<> " ") |
2023-01-15 23:52:45 +0100 | <lambdabot> | Defined. |
2023-01-15 23:53:06 +0100 | <geekosaur> | > ((<>) . firstpart) "hi" "john" |
2023-01-15 23:53:08 +0100 | <lambdabot> | error: |
2023-01-15 23:53:08 +0100 | <lambdabot> | • Variable not in scope: firstpart :: [Char] -> [Char] |
2023-01-15 23:53:08 +0100 | <lambdabot> | • Perhaps you meant ‘firstPart’ (line 202) |
2023-01-15 23:53:14 +0100 | <geekosaur> | > ((<>) . firstPart) "hi" "john" |
2023-01-15 23:53:16 +0100 | <lambdabot> | "hi john" |
2023-01-15 23:53:31 +0100 | <sshine> | > (((<>) . (<> " ")) "hi") "john" |
2023-01-15 23:53:33 +0100 | <lambdabot> | "hi john" |
2023-01-15 23:54:01 +0100 | <geekosaur> | & does not help you here because the "hi" "john" part following it is treated as a function application, but "hi" isn't a function |
2023-01-15 23:54:59 +0100 | <sshine> | > intercalate " " ["hi", "john"] -- :o |
2023-01-15 23:55:01 +0100 | <lambdabot> | "hi john" |
2023-01-15 23:55:10 +0100 | <xerox> | > unwords ["hi","john"] |
2023-01-15 23:55:13 +0100 | <lambdabot> | "hi john" |
2023-01-15 23:55:32 +0100 | <sshine> | > "hi john" |
2023-01-15 23:55:35 +0100 | <lambdabot> | "hi john" |
2023-01-15 23:55:40 +0100 | <Guest94> | geekosaur yours work. Could anyone explain why all my 3 ways failed? |
2023-01-15 23:56:14 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) |
2023-01-15 23:56:14 +0100 | wroathe | (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
2023-01-15 23:56:14 +0100 | wroathe | (~wroathe@user/wroathe) |
2023-01-15 23:56:14 +0100 | <Guest94> | (<>) . firstPart "hi" "john" |
2023-01-15 23:56:15 +0100 | <Guest94> | (<>) . firstPart & "hi" |
2023-01-15 23:56:15 +0100 | <Guest94> | (<>) . firstPart & "hi" "john" |
2023-01-15 23:57:17 +0100 | <sshine> | Guest94, (&) is for reverse function application, i.e. the function comes after. so since "hi" is not a function, that won't work. |
2023-01-15 23:57:51 +0100 | <sshine> | Guest94, the first one won't work because it gets interpreted as: (<>) . (firstPart "hi" "john"), but firstPart only takes one argument. |
2023-01-15 23:59:17 +0100 | <sshine> | Guest94, considering geekosaur's: ((<>) . firstPart) "hi" "john" -- here, (<>) . (<> " ") :: [Char] -> [Char] -> [Char], i.e. it's a function that takes two curried arguments, which it's given. |
2023-01-15 23:59:45 +0100 | <Guest94> | sshine interesting, I just learned that & is about precedence. Effectively i expected & would make the composition (<>) . firstPart higher than the function application firstPart "hi". Meaning, I expect the composition happen, ONLY AFTER that will it apply the args to the composition. |