Logs: liberachat/#haskell
| 2021-06-11 19:39:18 | × | matijja quits (~matijja@193.77.181.201) (Client Quit) |
| 2021-06-11 19:40:27 | × | haltux quits (~haltux@a89-154-181-47.cpe.netcabo.pt) (Ping timeout: 268 seconds) |
| 2021-06-11 19:41:07 | → | fluffyballoon joins (~fluffybal@2620:72:0:6480::10f7) |
| 2021-06-11 19:44:08 | → | matijja joins (~matijja@193.77.181.201) |
| 2021-06-11 19:44:12 | <DigitalKiwi> | https://vallandingham.me/images/vis/birds_book_front.jpg |
| 2021-06-11 19:44:58 | <sm[m]> | https://twitter.com/kmett/status/1403428202173796353 |
| 2021-06-11 19:45:06 | → | Guest10 joins (~Guest10@201.219.236.40) |
| 2021-06-11 19:45:25 | <DigitalKiwi> | no, wait, what xerox said is closer but i meant https://smile.amazon.com/Algorithm-Design-Haskell-Richard-Bird-ebook/dp/B08BKXJ1N3 |
| 2021-06-11 19:45:36 | <edwardk> | heya sm[m]. on the plus side i don't need to split my attention any more |
| 2021-06-11 19:45:42 | → | xsperry joins (~as@user/xsperry) |
| 2021-06-11 19:45:52 | <DigitalKiwi> | what did you do to get k-line lol |
| 2021-06-11 19:46:05 | <edwardk> | DigitalKiwi: fucked if i know |
| 2021-06-11 19:46:11 | <sm[m]> | hooray edwardk , what a relief. |
| 2021-06-11 19:46:48 | <edwardk> | sm[m]: i've been playing with it. it seems like they k-lined my username? but i can still connect with a wrong username and auth as me? wat? |
| 2021-06-11 19:47:05 | → | Guest50 joins (~Guest50@70.39.165.194) |
| 2021-06-11 19:48:10 | → | MoC joins (~moc@user/moc) |
| 2021-06-11 19:48:28 | × | Guest10 quits (~Guest10@201.219.236.40) (Quit: Connection closed) |
| 2021-06-11 19:48:42 | <Guest50> | What'd I miss? |
| 2021-06-11 19:49:18 | <psygo> | DigitalKiwi, nice recommendation, thanks, but I guess that book is dealing more with the algorithmic side of things, right? |
| 2021-06-11 19:50:21 | → | MoC_ joins (~moc@user/moc) |
| 2021-06-11 19:51:29 | → | teaSlurper joins (~chris@81.96.113.213) |
| 2021-06-11 19:51:55 | → | NieDzejkob joins (~quassel@195.149.98.3) |
| 2021-06-11 19:51:57 | × | Unode quits (~Unode@194.94.44.220) (Quit: Not that cable) |
| 2021-06-11 19:52:58 | → | Unode joins (~Unode@194.94.44.220) |
| 2021-06-11 19:53:01 | × | MoC quits (~moc@user/moc) (Ping timeout: 244 seconds) |
| 2021-06-11 19:53:06 | Guest50 | is now known as danm |
| 2021-06-11 19:54:20 | MoC_ | is now known as MoC |
| 2021-06-11 19:54:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 2021-06-11 19:55:58 | → | Guest10 joins (~Guest10@201.219.236.40) |
| 2021-06-11 19:56:37 | <DigitalKiwi> | psygo: i haven't read it :D |
| 2021-06-11 19:58:14 | × | Andros quits (~Andros@176.116.80.1) (Quit: Leaving) |
| 2021-06-11 19:58:15 | <psygo> | Me neither. I just inferred that from the TOC. |
| 2021-06-11 19:58:31 | × | ordinate quits (~ordinate@c-68-38-144-3.hsd1.in.comcast.net) (Read error: Connection reset by peer) |
| 2021-06-11 19:58:42 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 2021-06-11 19:58:45 | <edwardk> | i can't tell if its worse that i got banned, or that i got incompetently banned. |
| 2021-06-11 19:59:02 | → | peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
| 2021-06-11 19:59:16 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 2021-06-11 19:59:33 | → | ozataman joins (~ozataman@71.190.112.58) |
| 2021-06-11 20:00:10 | → | wonko joins (~wjc@62.115.229.50) |
| 2021-06-11 20:00:18 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 2021-06-11 20:00:28 | × | danm quits (~Guest50@70.39.165.194) (Ping timeout: 250 seconds) |
| 2021-06-11 20:03:22 | → | safinaskar joins (~safinaska@109-252-90-89.nat.spd-mgts.ru) |
| 2021-06-11 20:04:18 | × | Kaiepi quits (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Ping timeout: 252 seconds) |
| 2021-06-11 20:04:36 | × | ozataman quits (~ozataman@71.190.112.58) (Quit: Textual IRC Client: www.textualapp.com) |
| 2021-06-11 20:04:55 | → | ozataman joins (~ozataman@71.190.112.58) |
| 2021-06-11 20:05:08 | × | juhp quits (~juhp@128.106.188.66) (Ping timeout: 264 seconds) |
| 2021-06-11 20:05:18 | <safinaskar> | hi! as you probably remember i need parsing lib (preferably monadic) with unbiased choice and ability to do semantic error checking (i. e. "division by zero" or "undefined id") interleaved with parsing. i just now understand that such a lib will necessary be arrow-based, not monadic! |
| 2021-06-11 20:05:25 | tapas | is now known as topos |
| 2021-06-11 20:06:20 | <safinaskar> | so, now my question is: is there some lib for arrow parsing (CFG) with non-biased choice and ability to do semantic checking while parsing? |
| 2021-06-11 20:07:12 | → | juhp joins (~juhp@128.106.188.66) |
| 2021-06-11 20:09:04 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 2021-06-11 20:12:11 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 2021-06-11 20:12:18 | × | dhil quits (~dhil@195.213.192.47) (Ping timeout: 264 seconds) |
| 2021-06-11 20:15:23 | × | chomwitt quits (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 252 seconds) |
| 2021-06-11 20:22:23 | × | neceve quits (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 268 seconds) |
| 2021-06-11 20:23:27 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 2021-06-11 20:24:31 | × | econo quits (uid147250@user/econo) () |
| 2021-06-11 20:25:30 | <dminuoso> | safinaskar: As it has been pointed out earlier, it's probably a bad idea to do semantic checking during parsing. What's wrong with just doing a separate pass? |
| 2021-06-11 20:25:44 | → | dhil joins (~dhil@80.208.56.181) |
| 2021-06-11 20:26:18 | <safinaskar> | dminuoso: this would mean i need to construct full ast |
| 2021-06-11 20:26:25 | <safinaskar> | i don't want this |
| 2021-06-11 20:26:51 | × | peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 252 seconds) |
| 2021-06-11 20:27:08 | × | psygo quits (~philippe@201-95-112-120.dsl.telesp.net.br) (Quit: leaving) |
| 2021-06-11 20:27:09 | <safinaskar> | well, i want to write proof checker. its whole purpose is to *check* input. so, if there is no (semantic) errors, it will output nothing |
| 2021-06-11 20:27:35 | → | econo joins (uid147250@user/econo) |
| 2021-06-11 20:28:13 | <dminuoso> | I could come up with a number of reasons why separating parsing from operations on the parsed data is a good idea, but you seem to have made up your mind. *shrugs* |
| 2021-06-11 20:28:19 | → | teaSlurper joins (~chris@81.96.113.213) |
| 2021-06-11 20:29:01 | <safinaskar> | also i still want some parser lib for throw-away cases, where i simply want to write some one-off haskell program |
| 2021-06-11 20:29:17 | <safinaskar> | parsec will not go for such cases, because it has no non-biased choice |
| 2021-06-11 20:30:07 | <dminuoso> | Out of curiosity, why do you insist on having non-biased choice? |
| 2021-06-11 20:31:12 | × | wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2021-06-11 20:31:13 | dminuoso | idly wonders, couldn't you use megaparsec's ParsecT over Logic? |
| 2021-06-11 20:31:29 | × | Guest10 quits (~Guest10@201.219.236.40) (Quit: Connection closed) |
| 2021-06-11 20:32:32 | <safinaskar> | dminuoso: biased choice means that we have PEG semantics. unbiased choice means CFG semantics. i love CFG, no PEG. why? well, first, because of duck principle: i learned CFG first. second, most programming languages specified using CFG, not PEG |
| 2021-06-11 20:32:57 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 265 seconds) |
| 2021-06-11 20:33:12 | <safinaskar> | also, i used bison a lot (with c++), it is based on CFG |
| 2021-06-11 20:33:24 | <safinaskar> | i simply love CFG, it seems more natural for me |
| 2021-06-11 20:33:50 | <safinaskar> | you don't have to think in which order to give productions |
| 2021-06-11 20:34:08 | <safinaskar> | finally, there was one serious indecent |
| 2021-06-11 20:34:54 | <dminuoso> | So yeah, why not use ParsecT+LogicT? |
| 2021-06-11 20:36:20 | <safinaskar> | dminuoso: as well as i understand megaparsec uses biased choice |
| 2021-06-11 20:36:22 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 2021-06-11 20:36:57 | <safinaskar> | s/indecent/incident/ |
| 2021-06-11 20:37:29 | <dminuoso> | And LogicT gives you fair conjunction/disjunction. |
| 2021-06-11 20:39:22 | <safinaskar> | so, incident. i wanted to parse text using this CFG: https://paste.debian.net/1200908/ . i simply translated this CFG to parsec code (despite parsec is based on PEG, not CFG) and happily wrote a lot of text and parsed it using this parsec-based parser. Then i suddenly discovered that this CFG is ambiguous! So, all this text was unreliable! Starting |
| 2021-06-11 20:39:22 | <safinaskar> | from that moment i don't trust parsec anymore |
| 2021-06-11 20:39:39 | <safinaskar> | dminuoso: well, your solution sounds interesting |
| 2021-06-11 20:39:40 | × | azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 2021-06-11 20:39:57 | <safinaskar> | dminuoso: you mean parsect over logict or vice versa? |
| 2021-06-11 20:40:06 | → | azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
| 2021-06-11 20:40:56 | <dminuoso> | Mmm, not sure which way. `LogicT (ParsecT ...)` might have horrific performance. But hey, you wanted to have your cake and eat it too. Can't also demand it tastes very well. |
| 2021-06-11 20:41:28 | <dminuoso> | But I think it should be `LogicT (ParsecT ...)` |
| 2021-06-11 20:42:58 | <safinaskar> | dminuoso: but i just understand that unbiased choice with semantic checking is not possible with monads. it is possible with arrows only. i proved this. :) so that logict+parsect solution should not work |
| 2021-06-11 20:43:07 | <dminuoso> | safinaskar: Oh also, you could just use happy/alex I guess. It's at least something you haven't listed yet it seems. |
| 2021-06-11 20:43:19 | <dminuoso> | if you're happy with bison, it might suit you well |
| 2021-06-11 20:44:27 | <dminuoso> | safinaskar: You proved this? We have LogicT as a monad transformer! |
| 2021-06-11 20:44:38 | → | haltux joins (~haltux@a89-154-181-47.cpe.netcabo.pt) |
| 2021-06-11 20:45:08 | <dminuoso> | Perhaps Oleg et al are wrong then *shrugs* http://okmij.org/ftp/papers/LogicT.pdf |
| 2021-06-11 20:48:27 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 2021-06-11 20:48:48 | <safinaskar> | i want to implicitly have location info with every terminal and nonterminal (but on top level only! i. e. location info should not be stored deeply inside ast). as well as i understand, happy don't allow this. In happy i need to explicitly pass around location info. At least ghc's happy parser passes locations around explicitly |
All times are in UTC.