Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→
Page 1 .. 405 406 407 408 409 410 411 412 413 414 415 .. 17996
1,799,569 events total
2021-06-11 20:50:52 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 252 seconds)
2021-06-11 20:52:01 <safinaskar> dminuoso: this paper doesn't mention parsing (ctrl-f "pars" shows nothing)
2021-06-11 20:52:42 × machined1od quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds)
2021-06-11 20:52:56 <safinaskar> well, i can write my proof for you if you want
2021-06-11 20:53:41 <qrpnxz> i keep hearing name Oleg but idk which Oleg ppl are talking about
2021-06-11 20:54:33 <nshepperd> i don't think LogicT (Parsec..) will do what you want
2021-06-11 20:55:01 <dminuoso> safinaskar: It's a monad transformer. ParsecT is also a monad transformer. You can layer them ontop of each other to get both backtracking, fair disjunction/conjunction and parsing. If you add say ChronicleT ontop, you get fine error control too.
2021-06-11 20:55:06 <nshepperd> as in, the <|> will not backtrack the parsing state
2021-06-11 20:55:15 <dminuoso> nshepperd: interleave will.
2021-06-11 20:56:21 <nshepperd> it will not
2021-06-11 20:56:23 <dminuoso> Why not?
2021-06-11 20:56:45 <safinaskar> qrpnxz: look at authors list of mentioned paper. there is one Oleg in it: Oleg Kiselyov
2021-06-11 20:56:53 <nshepperd> the LogicT interface cannot do anything that cannot be done with LogicT IO
2021-06-11 20:57:11 × mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 272 seconds)
2021-06-11 20:57:35 <safinaskar> nshepperd: i am sure logict will not do what i need. because i just proved it is not possible using monads
2021-06-11 20:57:36 <nshepperd> including unlaunching missiles
2021-06-11 20:57:43 bilegeek joins (~bilegeek@2600:1008:b06d:65ed:93d7:e6a:a06d:9e4)
2021-06-11 21:00:46 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection)
2021-06-11 21:01:07 lavaman joins (~lavaman@98.38.249.169)
2021-06-11 21:01:49 Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-06-11 21:02:08 <dminuoso> nshepperd: Is my thinking flipped? I pointed out earlier I wasnt sure about the order in which they need to go.
2021-06-11 21:02:12 zebragg is now known as zebrag
2021-06-11 21:02:40 <dminuoso> But your argument makes sense
2021-06-11 21:02:58 × hendursa1 quits (~weechat@user/hendursaga) (Ping timeout: 252 seconds)
2021-06-11 21:03:15 forell_ is now known as forell
2021-06-11 21:04:09 <nshepperd> it doesn't work either way around afaict
2021-06-11 21:05:21 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-06-11 21:06:05 <dminuoso> That cant be right
2021-06-11 21:06:32 <dminuoso> Let's think of LogicT as just ListT but done correctly
2021-06-11 21:06:40 <dminuoso> Just for the sake of argument, so we can unmtl this
2021-06-11 21:07:11 <nshepperd> if you use LogicT Parsec you get an unbiased <|> that doesn't backtrack the parser state and therefore acts like nonsense
2021-06-11 21:07:33 <monochrom> LogicT is CPS/Church-encoding form of correct ListT. No semantic difference.
2021-06-11 21:07:41 <nshepperd> if you use ParsecT Logic you get parsec's <|> which is biased and backtracks
2021-06-11 21:07:59 <safinaskar> let me state my theorem about impossibility of monad i want: https://paste.debian.net/1200914/
2021-06-11 21:09:00 <safinaskar> this means that any logicT solutions will not go, at least for my task
2021-06-11 21:09:15 <safinaskar> if you are still not convinced i can write down proof. do you want this? (this will take another 10 mins)
2021-06-11 21:11:57 <dminuoso> nshepperd: What you say makes sense.
2021-06-11 21:12:40 × zeenk quits (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) (Quit: Konversation terminated!)
2021-06-11 21:13:37 × Shaeto quits (~Shaeto@94.25.234.158) (Quit: WeeChat 3.1)
2021-06-11 21:14:38 <monochrom> Actually why are we still talking about LogicT when the asker has already rejected all monads :)
2021-06-11 21:15:37 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds)
2021-06-11 21:15:54 hendursaga joins (~weechat@user/hendursaga)
2021-06-11 21:16:53 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1)
2021-06-11 21:18:05 <nshepperd> reject all monads! return to the trees!
2021-06-11 21:20:43 <safinaskar> i wrote proof! https://paste.debian.net/1200915/
2021-06-11 21:33:30 × bor0 quits (~boro@user/bor0) (Quit: Leaving)
2021-06-11 21:35:07 <nshepperd> when thinking about monad transformers, imagining them layered over IO is a powerful intuition pump. i recommend it
2021-06-11 21:35:35 <dminuoso> nshepperd: Yeah.
2021-06-11 21:36:09 <Hecate> heya cabal wizards, it looks like my /tmp is not a good place for cabal to download the Hackage index https://paste.tomsmeding.com/a3Y9DxwE
2021-06-11 21:36:25 <Hecate> what is the flag to tell it to put the index file elsewhere?
2021-06-11 21:38:15 <safinaskar> Hecate: mount file system you need to /tmp
2021-06-11 21:38:20 <safinaskar> :)
2021-06-11 21:38:46 <dminuoso> Hecate: Set $CABAL_DIR ?
2021-06-11 21:39:37 fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net)
2021-06-11 21:40:13 <Hecate> dminuoso: I'm pretty sure $CABAL_DIR is a secondary destination, after /tmp
2021-06-11 21:40:32 <monochrom> I layered ParsecT over ContT r IO and get very powerful unintuition. >:)
2021-06-11 21:40:55 <monochrom> http://www.vex.net/~trebla/haskell/parsec-generally.xhtml#ContT
2021-06-11 21:40:57 <nshepperd> haha
2021-06-11 21:41:21 MQ-17J joins (~MQ-17J@8.21.10.116)
2021-06-11 21:42:29 <monochrom> I add ContT like people add hot sauce
2021-06-11 21:42:36 peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi)
2021-06-11 21:43:40 <nshepperd> delicious
2021-06-11 21:44:06 × fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 244 seconds)
2021-06-11 21:47:27 × phma quits (phma@2001:5b0:211f:5688:1a5c:72d9:f31b:5496) (Read error: Connection reset by peer)
2021-06-11 21:47:40 <maerwald> ContT is just awful
2021-06-11 21:47:50 <maerwald> but good if you want to confuse yourself
2021-06-11 21:51:29 phma joins (~phma@host-67-44-208-20.hnremote.net)
2021-06-11 21:51:41 <monochrom> awful compared to what alternative?
2021-06-11 21:52:01 <dminuoso> Hecate: https://hackage.haskell.org/package/directory-1.3.6.2/docs/System-Directory.html#v:getTemporaryDirectory
2021-06-11 21:52:10 <dminuoso> Hecate: I could trace at least one code path back to using this.
2021-06-11 21:52:28 <dminuoso> Try setting one of those environment variables
2021-06-11 21:53:01 <dminuoso> TMPDIR in particualr
2021-06-11 21:53:38 × ozataman quits (~ozataman@71.190.112.58) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2021-06-11 21:53:58 <maerwald> monochrom: the documentation in mtl already outlines it
2021-06-11 21:54:10 <maerwald> "Before using the Continuation monad, be sure that you have a firm understanding of continuation-passing style and that continuations represent the best solution to your particular design problem. Many algorithms which require continuations in other languages do not require them in Haskell, due to Haskell's lazy semantics. Abuse of the Continuation monad can produce code that is impossible to
2021-06-11 21:54:12 <maerwald> understand and maintain."
2021-06-11 21:54:14 <maerwald> and it's true
2021-06-11 21:54:26 <Hecate> dminuoso: fantastic, thanks :)
2021-06-11 21:54:46 <maerwald> I've never seen real world haskell code that can't do without it
2021-06-11 21:54:57 ozataman joins (~ozataman@71.190.112.58)
2021-06-11 21:55:26 <dminuoso> maerwald: I use continuations in a custom parser situation to avoid relying on deforestation for adequate performance.
2021-06-11 21:55:43 <dminuoso> But, this is a bit of a special case. :)
2021-06-11 21:55:51 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
2021-06-11 21:56:55 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
2021-06-11 21:56:58 <maerwald> streamly needs it, but is uses its own representation
2021-06-11 21:57:23 <dminuoso> megaparsec and attoparsec both use continuations internally too
2021-06-11 21:57:36 <monochrom> A good use case is converting with-style programming "withFoo (\h -> ...)" to monadic programming "do { h <- ContT withFoo; ... }"
2021-06-11 21:58:09 <monochrom> Because, quite frankly, with-style programming is already continuation-passing-style programming.
2021-06-11 21:59:33 <maerwald> unlike many others... I agree with the python zen: explicit is better than implicit
2021-06-11 22:00:01 <monochrom> Huh, Python is the posterboy for explicitness? Don't kid me.
2021-06-11 22:00:08 Rembane_ hands out swords
2021-06-11 22:00:29 <maerwald> monochrom: I'm talking about the zen, not python
2021-06-11 22:00:40 <maerwald> there's a reason the zen exists :>
2021-06-11 22:01:00 <monochrom> I guess then Haskell zen is dynamic typing.
2021-06-11 22:01:02 <maerwald> if python was the zen, there would be no zen
2021-06-11 22:02:16 <monochrom> But I'm not sure why implicitness is brought up.
2021-06-11 22:02:41 <monochrom> Both "withFoo (\h -> ...)" and "ContT withFoo" are very explicit.
2021-06-11 22:03:08 Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:5cec:59a9:cebf:aa78)
2021-06-11 22:03:44 × sheepduck quits (~sheepduck@2607:fea8:2a61:4800::6b7b) (Remote host closed the connection)
2021-06-11 22:03:52 <maerwald> Transformer stacks in general are rather implicit... you're hiding (potentially non-trivial logic) in the bind operator, including the interaction of all the layers. It's implicit and non-declarative

All times are in UTC.