|
Andrey Mokhov
@
andreymokhov
London, England
|
|
From engineering to abstract mathematics and back
|
|
|
1.353
Tweetovi
|
196
Pratim
|
1.131
Osobe koje vas prate
|
| Tweetovi |
|
Andrey Mokhov
@andreymokhov
|
3. velj |
|
We can tweak the signature of `select` as follows:
select :: f (() -> Either a b) -> f (a -> b) -> f (() -> b)
Now we can get
Dist (Either a b) -> Matrix Prob a b -> Dist b
by instantiating `select` with `f (x -> y) = Matrix Prob x y`. No idea if this is useful but it's fun!
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
3. velj |
|
Remember selective functors? Here they show up in the context of probabilistic programming where
select :: f (Either a b) -> f (a -> b) -> f b
turns into
Dist (Either a b) -> Matrix Prob a b -> Dist b
Here Dist is a vector i.e. 1-dimensional matrix:
Dist a ~ Matrix Prob () a twitter.com/_bolt12/status…
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
31. sij |
|
I may be wrong but I think Deep Mind uses specialised hardware (GPUs and their own TPUs), not FPGAs.
|
||
|
|
||
| Andrey Mokhov proslijedio/la je tweet | ||
|
Dimitrios Vytiniotis
@dvytin
|
30. sij |
|
Our team at @DeepMind is hiring engineers and researchers in PL, compilers, systems etc. Come work with us on challenging problems and help shape the next generation of AI infrastructure!
deepmind.com/careers/jobs/1…
deepmind.com/careers/jobs/4…
|
||
|
|
||
| Andrey Mokhov proslijedio/la je tweet | ||
|
Eelco Visser
@EelcoVisser
|
30. sij |
|
Build Automation and Programming Languages (BAPL 2020)
... to explore the interaction of build automation and programming languages in systems for incremental analysis, building, testing, packaging, and deployment of software.
At PLDI 2020
Contribute!
pldi20.sigplan.org/home/bapl-2020
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
30. sij |
|
Главное вовремя проявить инициативу, молодец! Жду дальнейших предложений.
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
30. sij |
|
Perhaps, O(n) parallel build complexity is just unavoidable for programming languages with type inference? I don't think this is the case in general. Specifically, can we improve the complexity of building Haskell or OCaml programs to O(1)? Has anyone explored this topic?
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
30. sij |
|
As an example consider building C programs, where all source files can be compiled in parallel, and building Haskell or OCaml programs, where modules must be compiled in an order respecting their dependencies. With infinite parallelism, the build complexity is O(1) vs O(n).
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
30. sij |
|
One topic I'm personally interested in discussing is build complexity. There is a lot of PL research about, say, the complexity of parsing or type inference for certain classes of programming languages but what about the complexity of building programs and large-scale projects?
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
29. sij |
|
Programming languages and build systems have historically been mostly evolving independently of each other. Our goal is to bring together build automation and programming languages experts to explore incremental analysis, building, testing, packaging and deployment of software.
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
29. sij |
|
This year the @PLDI conference hosts the first Build Automation and Programming Languages workshop: pldi20.sigplan.org/home/bapl-2020
If you are coming to PLDI or just happen to be in London on Saturday (20 June) morning, please attend and/or submit a talk!
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
23. sij |
|
Uppsala is definitely worth a visit! I'm sure I'll be back some day :)
|
||
|
|
||
| Andrey Mokhov proslijedio/la je tweet | ||
|
John Carlos Baez
@johncarlosbaez
|
13. sij |
|
The change in the oceans' heat energy measured in zettajoules - that's 10^21 joules.
It's incredible how much better fossil fuels are at making the Earth retain solar energy than they are at producing *useful* energy. Let's think about what a zettajoule means.
(1/n) pic.twitter.com/SYaeQT1Jrs
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
13. sij |
|
OK, the Haskell and Hogwarts universes have just collided in my brain and I feel stupid for not noticing the connection earlier.
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
12. sij |
|
Indeed. Perhaps, it's possible to hide such more expensive checks behind a flag so that users could trade speed for features?
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
12. sij |
|
I was immediately hit by missing incomplete pattern match warnings. This forces me to occasionally run the full build manually, to catch errors like:
github.com/snowleopard/al…
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
11. sij |
|
Thank you and all other contributors! I finally gave it a try and it worked very well. The only (known) issue is that some warnings are not reported, which is a bit annoying -- I hope it will be possible to fix this.
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
11. sij |
|
Sure, it's okay to mix named and unnamed arguments -- the latter are distinguished by their relative positions.
|
||
|
|
||
|
Andrey Mokhov
@andreymokhov
|
10. sij |
|
Yes, partial application works just fine.
If a function f has type
x:int -> y:int -> int
then
f ~y:8
has type
x:int -> int
(Named arguments is my favourite OCaml feature!)
|
||
|
|
||
| Andrey Mokhov proslijedio/la je tweet | ||
|
Georgy Lukyanov
@geo2A
|
4. sij |
|
What if Agda is your only love, but they make you write Coq at work? Read this: geo2a.info/posts/2020-01-…
|
||
|
|
||