Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,803,914 events total
2025-10-04 18:15:20 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-04 18:15:33 Sgeo joins (~Sgeo@user/sgeo)
2025-10-04 18:26:14 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-04 18:30:16 akgreene joins (~akgreene@fixed-187-189-181-196.totalplay.net)
2025-10-04 18:31:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-10-04 18:32:17 Razorrats joins (~Razorrats@pool-68-134-85-215.bltmmd.fios.verizon.net)
2025-10-04 18:33:24 × Razorrats quits (~Razorrats@pool-68-134-85-215.bltmmd.fios.verizon.net) (Remote host closed the connection)
2025-10-04 18:33:38 CecePhuongNguyen joins (~CecePhuon@syn-071-076-201-204.res.spectrum.com)
2025-10-04 18:33:58 jmcantrell joins (~weechat@user/jmcantrell)
2025-10-04 18:34:10 × CecePhuongNguyen quits (~CecePhuon@syn-071-076-201-204.res.spectrum.com) (Remote host closed the connection)
2025-10-04 18:34:25 Enubion joins (~Enubion@38.13.166.133)
2025-10-04 18:36:04 × akgreene quits (~akgreene@fixed-187-189-181-196.totalplay.net) (Remote host closed the connection)
2025-10-04 18:36:04 × Enubion quits (~Enubion@38.13.166.133) (Remote host closed the connection)
2025-10-04 18:36:08 × superstar64 quits (~superstar@2600:1700:57e0:e3c0::31) (Quit: Leaving)
2025-10-04 18:36:59 humasect joins (~humasect@dyn-192-249-132-90.nexicom.net)
2025-10-04 18:39:33 Everything joins (~Everythin@172.232.54.192)
2025-10-04 18:39:42 superstar64 joins (~superstar@2600:1700:57e0:e3c0::31)
2025-10-04 18:41:37 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-04 18:46:13 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-10-04 18:49:20 × qqe quits (~qqq@185.54.22.40) (Quit: Lost terminal)
2025-10-04 18:55:38 acidjnk joins (~acidjnk@p200300d6e7171975ac9a50397945f9ef.dip0.t-ipconnect.de)
2025-10-04 18:57:05 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-04 19:00:01 × caconym74787 quits (~caconym@user/caconym) (Quit: bye)
2025-10-04 19:00:42 caconym74787 joins (~caconym@user/caconym)
2025-10-04 19:04:04 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-10-04 19:06:28 × Enrico63 quits (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213) (Quit: Client closed)
2025-10-04 19:13:04 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2025-10-04 19:15:09 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-04 19:19:34 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 255 seconds)
2025-10-04 19:27:30 VictorHugenay joins (~VictorHug@user/VictorHugenay)
2025-10-04 19:30:32 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-04 19:30:35 bwani54 joins (~bwani54@user/bwani54)
2025-10-04 19:35:20 × vanishingideal quits (~vanishing@user/vanishingideal) (Ping timeout: 240 seconds)
2025-10-04 19:35:25 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-10-04 19:41:17 Lycurgus joins (~juan@user/Lycurgus)
2025-10-04 19:41:23 alteragent joins (~alteragen@177.249.162.28)
2025-10-04 19:41:28 <alteragent> [Network Announcement] AMERICA NEEDS YOU - Secure our borders, get a signing bonus, enter the federal workforce and subvert the swamp from within, no degree required. https://join.ice.gov
2025-10-04 19:41:41 ChanServ sets mode +o geekosaur
2025-10-04 19:41:50 geekosaur sets mode +b *!*@177.249.162.28
2025-10-04 19:41:50 alteragent is kicked by geekosaur (alteragent)
2025-10-04 19:42:31 <sm> seriously ???
2025-10-04 19:42:39 <Lycurgus> yeah, why here?
2025-10-04 19:42:53 <geekosaur> also, fake network announcement
2025-10-04 19:43:13 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 264 seconds)
2025-10-04 19:43:22 <geekosaur> (which also ignores that this isn't a US-only service)
2025-10-04 19:43:31 geekosaur sets mode -o geekosaur
2025-10-04 19:46:02 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-04 19:50:26 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-10-04 19:52:02 ChanServ sets mode +o litharge
2025-10-04 19:52:02 litharge sets mode -bo *!*@177.249.162.28 litharge
2025-10-04 19:54:39 × VictorHugenay quits (~VictorHug@user/VictorHugenay) (Quit: Konversation terminated!)
2025-10-04 20:01:25 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-04 20:05:43 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-04 20:07:07 <bwe> tomsmeding: true, I just need to extend it by a state that tracks whether it's currently in a number
2025-10-04 20:11:41 <bwe> Leary: I had parser combinators in mind, too; yet I had no first vague idea how to approach it with them. If you can relate a similar example to me, that would help.
2025-10-04 20:12:35 <bwe> (I mean, I define a parser that matches and just need to combine them with <|> in the right precedence, is that it?)
2025-10-04 20:13:14 <bwe> (and on a more basic note, how do I make a condition like "anything but not a digit" with Megaparsec?)
2025-10-04 20:13:46 <tomsmeding> `satisfy isDigit`?
2025-10-04 20:13:57 <tomsmeding> also `digit` probably
2025-10-04 20:15:00 <bwe> so the negation would be `anySingleBut` ?
2025-10-04 20:15:19 <tomsmeding> satisfy (not . isDigit)?
2025-10-04 20:15:31 <bwe> of course :)
2025-10-04 20:15:36 <tomsmeding> "anything but not a digit" is a double negation :p
2025-10-04 20:15:55 <tomsmeding> so I guess you were asking for `satisfy (not . not . isDigit)` :p
2025-10-04 20:16:08 <sprout> this is weirdly satisfying
2025-10-04 20:16:42 <bwe> tomsmeding: I clarify, single negation, so `satisfy (not . isDigit)` is what I need
2025-10-04 20:16:53 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-04 20:17:42 <bwe> is there some list of parser combinator tutorials you can recommend?
2025-10-04 20:18:01 <tomsmeding> megaparsec has an official tutorial, if I remember correctly
2025-10-04 20:18:15 <tomsmeding> I don't remember people saying it's bad, so it must be good, right?
2025-10-04 20:18:45 <bwe> the thing I am not grasping is the nesting, so using some parser combinators once I am in the parenthesis, for example
2025-10-04 20:19:59 <bwe> I need to give it another try -- the last time I tried it didn't work too well for me
2025-10-04 20:20:28 <zfnmxt> bwe: You mind find these notes a bit gentler and easier to understand (there are corresponding exercises and an assignment on the repo too): https://diku-dk.github.io/ap-notes/chapter_3.html
2025-10-04 20:21:10 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds)
2025-10-04 20:21:30 <tomsmeding> zfnmxt: thank you, please hang around more and share all your good stuffs
2025-10-04 20:22:08 <zfnmxt> bwe: Don't think the repo is directly linked there, but it's here: https://github.com/diku-dk/ap-e2025-pub (see week 3 and a3 in particular)
2025-10-04 20:22:48 <zfnmxt> tomsmeding: Most of that good stuff is written by Troels, not me. But will do.
2025-10-04 20:23:28 <tomsmeding> "your" as in, the good stuff that you know :p
2025-10-04 20:26:03 <bwe> zfnmxt: Exciting. I will start with that. It's indeed much more gentle and easier to digest/follow. Less frustration points to be expected.
2025-10-04 20:29:30 <zfnmxt> bwe: Have fun!
2025-10-04 20:32:19 merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl)
2025-10-04 20:35:05 <[exa]> evenin'
2025-10-04 20:38:37 <[exa]> bwe: if I get it right, you might like the `notFollowedBy` from parsecs for solving this case; since this is PEGs getting parsed you can use the lookahead pretty well for doing good.
2025-10-04 20:38:56 × merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-10-04 20:41:15 Enrico63 joins (~Enrico63@2a0b:e541:10d0:0:9efc:e8ff:fe24:3213)
2025-10-04 20:43:28 target_i joins (~target_i@user/target-i/x-6023099)
2025-10-04 20:43:58 <bwe> [exa]: Yes, this would fit my case, too. Reminds me of regular expressions. But weren't parser combinators better for leaving regular expressions?
2025-10-04 20:44:00 × dfg quits (~dfg@user/dfg) (Quit: I hate quit messages.)
2025-10-04 20:44:29 <[exa]> wait wait how's lookahead looking like regular expressions?
2025-10-04 20:44:43 <[exa]> (except for the cool new regular expressions that are actually not regular)
2025-10-04 20:44:46 sprout 🍿
2025-10-04 20:45:27 dfg joins (~dfg@user/dfg)
2025-10-04 20:46:09 <bwe> zfnmxt: I have the feeling that composing parsers is just the nesting use case I have on hand :) -- but will see when I walk through the article. Thanks again for sharing.
2025-10-04 20:46:37 × takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection)
2025-10-04 20:46:40 <monochrom> I feel that most beginner uses of lookahead are boolean blindness brought to parsing.
2025-10-04 20:47:32 vanishingideal joins (~vanishing@user/vanishingideal)
2025-10-04 20:47:59 <monochrom> Suppose your requirement is "there are 2 cases for the next character. If it's X, parse for foo; if it's Y, parse for bar".
2025-10-04 20:48:28 <monochrom> You can easily code that up as simply "foo <|> bar" assuming that foo expects X at the beginning, similarly for Y.
2025-10-04 20:49:05 <bwe> monochrom: actually, parser combinators are like a tree that is branching, thanks for inspiring this.
2025-10-04 20:49:14 <monochrom> But no, beginners want to write "c <- lookahead; if c == 'X' then foo else if c == 'Y' then bar else error" because that's what they would write in C.

All times are in UTC.