Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
2020-11-24 11:20:29 alp joins (~alp@88.126.45.36)
2020-11-24 11:20:36 mi23523523 joins (~Aman33333@85.253.192.47.cable.starman.ee)
2020-11-24 11:20:36 trcc joins (~trcc@130.225.16.16)
2020-11-24 11:20:41 pavonia joins (~user@unaffiliated/siracusa)
2020-11-24 11:21:03 lxsameer joins (~lxsameer@unaffiliated/lxsameer)
2020-11-24 11:21:10 <maerwald> is there a structure such as a Map that can be GCed as you go instead of after traversal?
2020-11-24 11:21:56 × phaul quits (~phaul@ruby/staff/phaul) (Ping timeout: 240 seconds)
2020-11-24 11:22:58 <kuribas> merijn: I guess what I want is flipped (<*>) with the effects reversed.
2020-11-24 11:23:22 <kuribas> merijn: so >*< :: f a -> f (a -> b) -> f b
2020-11-24 11:23:39 × marinelli quits (~marinelli@gateway/tor-sasl/marinelli) (Quit: marinelli)
2020-11-24 11:24:06 daGrevis joins (~daGrevis@unaffiliated/dagrevis)
2020-11-24 11:24:09 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-11-24 11:24:36 × dansho quits (~dansho@ec2-52-194-192-222.ap-northeast-1.compute.amazonaws.com) (Ping timeout: 240 seconds)
2020-11-24 11:26:08 <ski> > [(^ 2),(^ 3)] <*> [4,5]
2020-11-24 11:26:10 <lambdabot> [16,25,64,125]
2020-11-24 11:26:11 <ski> > [4,5] <**> [(^ 2),(^ 3)]
2020-11-24 11:26:12 <lambdabot> [16,64,25,125]
2020-11-24 11:26:34 bulters joins (~jeroen@5920ab49.static.cust.trined.nl)
2020-11-24 11:26:39 phaul joins (~phaul@ruby/staff/phaul)
2020-11-24 11:28:08 × mi23523523 quits (~Aman33333@85.253.192.47.cable.starman.ee) (Remote host closed the connection)
2020-11-24 11:28:45 × howdoi quits (uid224@gateway/web/irccloud.com/x-gbfppsdeuatjrkoa) (Quit: Connection closed for inactivity)
2020-11-24 11:28:52 <bulters> merijn: did the trick, thanks. For 'closure' (the mental variant): would using alter entail using something like \x -> Just (left + right)?
2020-11-24 11:30:28 × lassulus quits (~lassulus@NixOS/user/lassulus) (Ping timeout: 256 seconds)
2020-11-24 11:30:31 carlomagno1 joins (~cararell@148.87.23.8)
2020-11-24 11:31:53 × Yumasi quits (~guillaume@2a01cb09b06b29ea1c5ab82b3b485150.ipv6.abo.wanadoo.fr) (Ping timeout: 272 seconds)
2020-11-24 11:31:58 × jedws quits (~jedws@101.184.150.93) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-24 11:32:20 Yumasi joins (~guillaume@40.72.95.92.rev.sfr.net)
2020-11-24 11:32:52 <kuribas> :t <**>
2020-11-24 11:32:53 <lambdabot> error: parse error on input ‘<**>’
2020-11-24 11:32:59 <kuribas> :t (<**>)
2020-11-24 11:33:01 <lambdabot> Applicative f => f a -> f (a -> b) -> f b
2020-11-24 11:33:10 × carlomagno quits (~cararell@148.87.23.7) (Ping timeout: 246 seconds)
2020-11-24 11:34:14 <kuribas> nice
2020-11-24 11:34:58 × Stanley00 quits (~stanley00@unaffiliated/stanley00) (Remote host closed the connection)
2020-11-24 11:35:18 lassulus joins (~lassulus@NixOS/user/lassulus)
2020-11-24 11:35:23 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Quit: Connection closed)
2020-11-24 11:36:08 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-24 11:37:50 <ski> bulters : yes. `adjust' would also have worked (but is also slightly overkill, since you don't depend on the old value, just overwrite)
2020-11-24 11:40:13 × n0042 quits (d055ed89@208.85.237.137) (Remote host closed the connection)
2020-11-24 11:40:16 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-11-24 11:40:27 <bulters> ski: thanks!
2020-11-24 11:41:29 <dminuoso> 12:21:11 maerwald | is there a structure such as a Map that can be GCed as you go instead of after traversal?
2020-11-24 11:41:43 <dminuoso> Mmm, I wonder whether that's even possible without a substructural type system
2020-11-24 11:41:53 <dminuoso> (Unless the map does manual memory management)
2020-11-24 11:42:29 <dminuoso> From GC roots perspective, as long as there's something pointing to the original map, you cant GC the nodes that have gone from your perspective
2020-11-24 11:42:40 × alp quits (~alp@88.126.45.36) (Remote host closed the connection)
2020-11-24 11:42:58 alp joins (~alp@2a01:e0a:58b:4920:92c:402a:f3e7:76c8)
2020-11-24 11:43:06 <maerwald> yeah, it's a similar problem with copying bytestrings
2020-11-24 11:43:57 <dminuoso> maerwald: The closest thing you're asking for exists in Clean, where operations can be turned into mutation
2020-11-24 11:44:06 <dminuoso> (Which would be better than just "garbage collecting what you just freed"
2020-11-24 11:44:51 <dminuoso> Because with a linear (or affine) type system you could reason, that after the traversal nothing else can see the value you just touched
2020-11-24 11:45:07 <ski> i guess if you have the only reference to the root, then after you've traversed all but one direct subtree, you'll discard the root, so that GC could possibly pick it up, as you descent further ?
2020-11-24 11:45:57 <ski> (hm, or possibly you'll directly pick apart the root node, into constituents, before traversing further, so that GC could pick it up anytime after that)
2020-11-24 11:46:34 <ski> s/linear (or affine)/uniqueness/
2020-11-24 11:49:09 <ski> Mercury does implement CTGC (compile-time GC), which first tries to reuse discarded (unique) nodes for creation of new nodes (preferably sharing some slots, so they don't all need to be updated), and otherwise statically insert a deallocation call of the node
2020-11-24 11:50:01 × rprije quits (~rprije@123-243-139-165.tpgi.com.au) (Ping timeout: 264 seconds)
2020-11-24 11:50:10 <ski> (haven't looked in that detail at what the Clean implementation does, but wouldn't surprise me if it does that, as well)
2020-11-24 11:50:42 Gurkenglas joins (~Gurkengla@unaffiliated/gurkenglas)
2020-11-24 11:51:23 <ski> e.g. if you append two lists in Clean, the first of which is unique, it'll just update-in-place the final tail of the first to point to the second, rather than allocating new nodes for the first list, copying it
2020-11-24 11:51:45 × Rudd0 quits (~Rudd0@185.189.115.98) (Remote host closed the connection)
2020-11-24 11:52:10 <dminuoso> From what I hear, that alone gives Clean the advantage over GHC with all its fancy simplifier psases
2020-11-24 11:52:19 <dminuoso> In terms of performance, given some benchmarks.
2020-11-24 11:56:11 veverak is now known as jar_jar
2020-11-24 11:56:16 <ski> it has a fancy bounded uniqueness polymorphic system, so that the same (source) append can be used in the different modes (i think some of them will use the same generated code, while others will use separate code (e.g. not allocating, but updating))
2020-11-24 11:56:26 jar_jar is now known as veverak
2020-11-24 11:57:00 hackage deferred-folds 0.9.12 - Abstractions over deferred folds https://hackage.haskell.org/package/deferred-folds-0.9.12 (NikitaVolkov)
2020-11-24 11:57:08 <ski> in Mercury, it's just ad hoc overloading of the modes, no uniqueness variables with bounds
2020-11-24 11:57:28 <nr3rsl> Hi guys, i'm looking for haskell programmers to work in portugal any one?
2020-11-24 12:00:24 <bulters> Can vouch for PT as a country... Brilliant place to live...
2020-11-24 12:00:40 <nr3rsl> yes it is :)
2020-11-24 12:00:51 <nr3rsl> but no haskell guys :(
2020-11-24 12:01:28 <drdo> nr3rsl: What kind of work?
2020-11-24 12:02:28 × concept2 quits (~concept2@unaffiliated/tubo) (Quit: See ya later!)
2020-11-24 12:03:31 concept2 joins (~concept2@unaffiliated/tubo)
2020-11-24 12:04:49 cosimone joins (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd)
2020-11-24 12:04:57 <nr3rsl> its related to trains
2020-11-24 12:05:51 <nr3rsl> join a big team 20+
2020-11-24 12:08:23 darjeeling_ joins (~darjeelin@122.245.219.209)
2020-11-24 12:12:54 royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2020-11-24 12:17:16 × royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2020-11-24 12:17:40 LKoen joins (~LKoen@169.244.88.92.rev.sfr.net)
2020-11-24 12:24:02 × bulters quits (~jeroen@5920ab49.static.cust.trined.nl) (Ping timeout: 264 seconds)
2020-11-24 12:24:30 <maerwald> functional safety?
2020-11-24 12:25:57 <Uniaika> < nr3rsl> but no haskell guys :( // hahaha we have one of yours in my company!
2020-11-24 12:26:10 <Uniaika> he went back to Portugal when France went into quarantine
2020-11-24 12:26:18 xsperry parts (~as@unaffiliated/xsperry) ()
2020-11-24 12:26:20 xsperry joins (~as@unaffiliated/xsperry)
2020-11-24 12:27:08 <Uniaika> nr3rsl: long story short, if you want to hire people for a team, hire a couple of experts and then people who are willing to learn
2020-11-24 12:27:25 <Uniaika> you don't need to hire a team full of experts
2020-11-24 12:28:29 <maerwald> Uniaika: yeah, for knowledge, only the team maximum is relevant, for motivation the sum :)
2020-11-24 12:29:08 × cosimone quits (~cosimone@2001:b07:ae5:db26:d849:743b:370b:b3cd) (Quit: cosimone)
2020-11-24 12:29:31 <Uniaika> :)
2020-11-24 12:29:37 × raichoo quits (~raichoo@213.240.178.58) (Quit: Lost terminal)
2020-11-24 12:30:05 <maerwald> (also, the most knowledgable guys are usually harder to motivate)
2020-11-24 12:31:10 Tario joins (~Tario@201.192.165.173)
2020-11-24 12:31:25 × justanotheruser quits (~justanoth@unaffiliated/justanotheruser) (Ping timeout: 272 seconds)
2020-11-24 12:32:20 <dminuoso> Say Im folding/traversing a Data.Graph.tree, I want to keep track of the current path, as a sort of `traverse :: (NonEmpty a -> f b) -> Tree a -> f (Tree b)`, can I create this out of combinators trivially?
2020-11-24 12:32:35 lpy joins (~nyd@unaffiliated/elysian)
2020-11-24 12:32:35 <dminuoso> Or should I build this by hand?
2020-11-24 12:33:06 bulters joins (~jeroen@82-161-48-217.ip.xs4all.nl)

All times are in UTC.