Logs: liberachat/#haskell
| 2021-05-30 08:19:15 | pe200012_ | is now known as pe200012 |
| 2021-05-30 08:20:07 | → | Kaiepi joins (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 2021-05-30 08:20:34 | × | ddellacosta quits (~ddellacos@86.106.121.30) (Ping timeout: 265 seconds) |
| 2021-05-30 08:22:10 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:f131:7ff:d61f:7340) (Remote host closed the connection) |
| 2021-05-30 08:23:03 | <mc47> | Out of curiosity, is anyone using haskell for machine learning in a production setting? |
| 2021-05-30 08:23:53 | → | fendor_ joins (~fendor@178.165.165.191.wireless.dyn.drei.com) |
| 2021-05-30 08:25:08 | × | nerdy quits (znc@152.67.162.71) (Changing host) |
| 2021-05-30 08:25:08 | → | nerdy joins (znc@user/nerdypepper) |
| 2021-05-30 08:26:14 | → | Bartosz joins (~textual@24.35.90.211) |
| 2021-05-30 08:26:47 | <maerwald> | mc47: I think Holmusk does, at least their backend is haskell and they do machine learning. It's ofc possible they still use Scala or whatnot for that part of the pipeline. |
| 2021-05-30 08:26:50 | × | fendor quits (~fendor@178.165.129.15.wireless.dyn.drei.com) (Ping timeout: 268 seconds) |
| 2021-05-30 08:27:45 | <maerwald> | You can ping their CTO on LinkedIn maybe, they used to have a vivid tech blog a few years ago. Not sure that's still the case. |
| 2021-05-30 08:29:31 | → | gzj joins (~GZJ0X@185.212.59.97.16clouds.com) |
| 2021-05-30 08:31:42 | <mc47> | maerwald, thank you, I'll check it out |
| 2021-05-30 08:31:43 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 2021-05-30 08:32:10 | <mc47> | I'm just having a course on deep learning, and I found haskell quite a good candidate for the kinds of tasks we were doing |
| 2021-05-30 08:33:48 | → | ddellacosta joins (~ddellacos@86.106.121.23) |
| 2021-05-30 08:34:26 | <mc47> | any libraries or frameworks I should checkout? |
| 2021-05-30 08:34:56 | → | ddellaco_ joins (~ddellacos@89.45.224.137) |
| 2021-05-30 08:38:33 | × | ddellacosta quits (~ddellacos@86.106.121.23) (Ping timeout: 268 seconds) |
| 2021-05-30 08:40:23 | × | ddellaco_ quits (~ddellacos@89.45.224.137) (Ping timeout: 268 seconds) |
| 2021-05-30 08:41:32 | → | superstar64 joins (~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4) |
| 2021-05-30 08:42:10 | → | wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
| 2021-05-30 08:42:14 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 2021-05-30 08:42:17 | <superstar64> | is it possible to convert a `ST s1 (ST s2 a)` into `ST s2 (ST s1 a)`? |
| 2021-05-30 08:42:51 | × | wei2912 quits (~wei2912@112.199.250.21) (Ping timeout: 268 seconds) |
| 2021-05-30 08:45:17 | → | lavaman joins (~lavaman@98.38.249.169) |
| 2021-05-30 08:46:54 | × | cyclosa quits (~cyclosa@2603-6011-4a41-8ada-3d44-ff2a-130a-5b15.res6.spectrum.com) (Quit: computer broke) |
| 2021-05-30 08:47:11 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 268 seconds) |
| 2021-05-30 08:47:57 | → | smatting joins (~stefan@p200300cd7715d600c4e4ce0fc87c474b.dip0.t-ipconnect.de) |
| 2021-05-30 08:49:28 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2021-05-30 08:49:31 | <int-e> | no. how does that even come up? |
| 2021-05-30 08:50:30 | <superstar64> | i'm just curious, i'm design a language with what i call "phantom pair" and which linear types, `ST` is complete with them |
| 2021-05-30 08:50:59 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 2021-05-30 08:51:06 | → | dunham joins (~dunham@97-113-35-16.tukw.qwest.net) |
| 2021-05-30 08:51:06 | <superstar64> | would `ST` break if `ST s1 (ST s2 a) -> ST s2 (ST s1 a)` was allowed? |
| 2021-05-30 08:52:41 | <int-e> | I don't know what that is to do, operationally. |
| 2021-05-30 08:52:43 | × | smatting quits (~stefan@p200300cd7715d600c4e4ce0fc87c474b.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 2021-05-30 08:53:21 | → | ubh joins (~ubh@2001:470:69fc:105::852) |
| 2021-05-30 08:53:37 | → | involans joins (~alex@cpc92718-cmbg20-2-0-cust157.5-4.cable.virginm.net) |
| 2021-05-30 08:53:48 | → | autophagy joins (~mika@user/autophagy) |
| 2021-05-30 08:54:09 | × | gzj quits (~GZJ0X@185.212.59.97.16clouds.com) (Read error: Connection reset by peer) |
| 2021-05-30 08:54:28 | → | gzj joins (~GZJ0X@185.212.59.97.16clouds.com) |
| 2021-05-30 08:54:34 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds) |
| 2021-05-30 08:54:47 | <superstar64> | `Kleisli (ST s)` is `(a, s) -> (a, s)` where `s` is either a real world or a type variable. these `(,)` aren't actual pairs (rhs isn't can't be a runtime) |
| 2021-05-30 08:55:17 | × | niko quits (~niko@libera/staff/niko) (Quit: i will be back) |
| 2021-05-30 08:55:25 | <superstar64> | i'm trying to see if can sane semantics for these types of pairs so i can be complete with ST |
| 2021-05-30 08:55:38 | <superstar64> | or i should just go for making `ST` a builtin |
| 2021-05-30 08:55:48 | → | niko joins (~niko@libera/staff/niko) |
| 2021-05-30 08:55:48 | × | dunham quits (~dunham@97-113-35-16.tukw.qwest.net) (Ping timeout: 268 seconds) |
| 2021-05-30 08:55:53 | → | brian_da_mage joins (~Neuromanc@adsl-187.46.190.47.tellas.gr) |
| 2021-05-30 08:56:05 | × | brian_da_mage quits (~Neuromanc@adsl-187.46.190.47.tellas.gr) (Changing host) |
| 2021-05-30 08:56:05 | → | brian_da_mage joins (~Neuromanc@user/briandamag) |
| 2021-05-30 08:58:58 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 264 seconds) |
| 2021-05-30 08:59:02 | → | wei2912 joins (~wei2912@112.199.250.21) |
| 2021-05-30 08:59:34 | → | oxide joins (~lambda@user/oxide) |
| 2021-05-30 08:59:41 | → | BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 2021-05-30 09:01:34 | <int-e> | @djinn (s1 -> (s2 -> (a, s2), s1)) -> (s2 -> (s1 -> (a, s1), s2)) |
| 2021-05-30 09:01:34 | <lambdabot> | f a b = |
| 2021-05-30 09:01:34 | <lambdabot> | (\ c -> |
| 2021-05-30 09:01:34 | <lambdabot> | case a c of |
| 2021-05-30 09:01:35 | <lambdabot> | (d, e) -> case d b of |
| 2021-05-30 09:01:35 | <lambdabot> | (f, _) -> (f, e), |
| 2021-05-30 09:01:36 | <lambdabot> | b) |
| 2021-05-30 09:03:02 | <superstar64> | ok, it's ignoring one of the pair's item, seems like that should be illegal in a linear setting |
| 2021-05-30 09:03:10 | <int-e> | You /can/ do this, but note that b , which is supposed to be a state token, gets duplicated. Oh and another state token gets discarded. So it's not reasonable in an ST context. |
| 2021-05-30 09:03:40 | <int-e> | And I think the type does dictate that implementation, there is no other way. |
| 2021-05-30 09:03:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
| 2021-05-30 09:04:33 | <superstar64> | i'm also wondering what the ST equivalent of `(a, s1, s2) -> (a, s2, s1)` would be |
| 2021-05-30 09:06:18 | × | Erutuon quits (~Erutuon@71-34-10-193.mpls.qwest.net) (Ping timeout: 268 seconds) |
| 2021-05-30 09:07:23 | <int-e> | It doesn't come up since the ST type is restricted to a single state token type that's totally opaque? I mean, there's no ST operations that work with a product of states. |
| 2021-05-30 09:07:51 | → | koishi_ joins (~koishi_@67.209.186.120.16clouds.com) |
| 2021-05-30 09:08:06 | <int-e> | I.e. there's no support for separation of the state into independent parts. |
| 2021-05-30 09:08:06 | → | ddellacosta joins (~ddellacos@89.46.62.56) |
| 2021-05-30 09:08:11 | <siraben> | @djinn a %1-> a |
| 2021-05-30 09:08:11 | <lambdabot> | Cannot parse command |
| 2021-05-30 09:08:38 | <int-e> | superstar64: It is something that would make sense though. It's just isn't supported. |
| 2021-05-30 09:10:04 | <superstar64> | i'm just kinda nervous that my idea might be inconsistent or not referentially transparent |
| 2021-05-30 09:10:20 | <int-e> | Probably hard to express with the way runST works... |
| 2021-05-30 09:10:51 | <int-e> | @type runST -- s can be any type, but for doing separation nicely we would need products. |
| 2021-05-30 09:10:53 | <lambdabot> | (forall s. ST s a) -> a |
| 2021-05-30 09:11:21 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 2021-05-30 09:12:10 | → | Guest73 joins (~Guest73@c188-150-57-96.bredband.tele2.se) |
| 2021-05-30 09:12:29 | <int-e> | But, just for fun, one could have (forall s1 s2. ST (s1,s2) a) -> ST s a, and then injections ST s1 a -> ST (s1, s2) a and ST s2 a -> ST (s1, s2) a, without breaking ST semantics. |
| 2021-05-30 09:12:56 | → | ddellaco_ joins (~ddellacos@89.45.224.137) |
| 2021-05-30 09:13:04 | × | ddellacosta quits (~ddellacos@89.46.62.56) (Ping timeout: 268 seconds) |
| 2021-05-30 09:14:34 | <int-e> | I'm mostly just musing, this doesn't seem to be too useful. |
| 2021-05-30 09:15:58 | → | GOD joins (~mad@user/god) |
| 2021-05-30 09:16:33 | <superstar64> | well, i might have a use for it, you might want both a state thread and `real world` for intermitting side effects regioned memory pointers |
| 2021-05-30 09:16:36 | <int-e> | superstar64: in any case, I think that then you /could/ have a sound coercion between ST (s1,s2) a and ST (s2,s1) a. |
| 2021-05-30 09:17:23 | × | ddellaco_ quits (~ddellacos@89.45.224.137) (Ping timeout: 268 seconds) |
| 2021-05-30 09:17:36 | <superstar64> | *side effects and regioned |
| 2021-05-30 09:22:36 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:f131:7ff:d61f:7340) |
| 2021-05-30 09:25:08 | × | gzj quits (~GZJ0X@185.212.59.97.16clouds.com) (Remote host closed the connection) |
| 2021-05-30 09:25:27 | → | gzj joins (~GZJ0X@185.212.59.97.16clouds.com) |
| 2021-05-30 09:25:53 | → | ddellacosta joins (~ddellacos@89.46.62.74) |
| 2021-05-30 09:26:08 | × | GOD quits (~mad@user/god) (Quit: flying away from here) |
| 2021-05-30 09:26:28 | × | wolfshappen quits (~waff@irc.furworks.de) (Quit: later) |
| 2021-05-30 09:27:15 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:f131:7ff:d61f:7340) (Ping timeout: 268 seconds) |
| 2021-05-30 09:27:35 | <wz1000> | superstar64: it you have an ST with arena style allocation semantics rather than a GC it will break |
All times are in UTC.