Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
garethjrowlands
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
1.
▲
by
garethjrowlands
6y ago
Quite so. I was just trying to make some small suggestions on how to handle the consequences of making that object immutable. Here are some links along the same lines: * _Aggregate Roots_ in DDD limit pointers, https://martinfowl
2.
▲
by
garethjrowlands
6y ago
Unix pipes don't do stream fusion, which is the optimisation to which he was referring.
3.
▲
by
garethjrowlands
6y ago
For those that didn't know, Haskell does of course have list comprehensions: [x| x <- foo, not (elem x y)] Here's an example finding consonants: [c| x <- ['a'..'z'], not (elem x) $ "ae
4.
▲
by
garethjrowlands
6y ago
Not really. In the example, function composition, `.`, joins the functions together. You can smash a list of functions together but they'd all have to take and return the same type, and the list would introduce commas and square bracke
5.
▲
by
garethjrowlands
6y ago
Creating a new value only gives you a stale data problem if you had pointers to the old value. You don't have to have pointers like that, it's a choice. To take an obvious example, you might load a value from a database (company o
6.
▲
by
garethjrowlands
6y ago
This paper describes the differences between objects and ADTs, https://www.cs.utexas.edu/users/wcook/papers/OOPvsADT/CookOO...
7.
▲
by
garethjrowlands
6y ago
Maybe try to aim for functional core, imperative shell, see https://www.destroyallsoftware.com/screencasts/catalog/funct...
8.
▲
by
garethjrowlands
6y ago
Dropwizard was amazing when it came out and is still much better than deploying to Tomcat, say. But it's showing its age and I'd consider it too frameworky these days. My current currently preference is http4k, which is more libra