Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
prospero
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
10 ms
·
31.
▲
A Comparison of Functional Data Structures on the JVM
(github.com)
122 points
by
prospero
8y ago
|
17 comments
32.
▲
Better Geometry Through Graph Theory
(ideolalia.com)
5 points
by
prospero
8y ago
|
0 comments
33.
▲
Better Geometry Through Graph Theory (2018)
(ideolalia.com)
6 points
by
prospero
8y ago
|
0 comments
34.
▲
by
prospero
8y ago
Clojure’s maps, sets, and vectors are all functions.
35.
▲
by
prospero
9y ago
I’d think a relaxed radix tree would be ideal.
36.
▲
by
prospero
9y ago
In the first ten minutes of the talk, the SICP definition (which is taken from the Hoare paper) is examined and discarded as too limited.
37.
▲
On Abstraction
(m.youtube.com)
3 points
by
prospero
9y ago
|
0 comments
38.
▲
by
prospero
9y ago
I'm glad you've found them useful.
39.
▲
by
prospero
9y ago
You probably saw my response in that thread, where I said that the dramatic performance improvements in lookup speed reported by the CHAMP paper were mostly because they were comparing apples to oranges. However, Clojure's equality sem
40.
▲
by
prospero
9y ago
The chance of my implementation being folded into Clojure, as opposed to whatever Rich writes himself, is definitely tiny. But there's no telling when he might get around to it, so the best way to stay sane is to assume it will never
41.
▲
by
prospero
9y ago
Clojure is the language I'm most productive in. At the beginning of the year I quit my job to write a book about Clojure [1], do some consulting, and build a developer tool I've been talking about for a few years. For the tool, I
42.
▲
by
prospero
9y ago
No idea why this is here, but I'm the speaker and happy to answer any questions.
43.
▲
by
prospero
9y ago
The lookup performance gain is largely due to the CHAMP implementation using the default Java equality semantics, while Clojure's maps use Clojure's more expensive equality semantics. See https://github.com/lacuna&
44.
▲
by
prospero
9y ago
Here's another one: https://github.com/lacuna/bifurcan/blob/master/src/io/lacuna...
45.
▲
The Frontier in Open Source
(medium.com)
1 points
by
prospero
9y ago
|
0 comments
46.
▲
Bifurcan: impure functional data structures
(github.com)
3 points
by
prospero
10y ago
|
0 comments
47.
▲
A Distributed Real-Time Data Store with Flexible Deduplication
(amplitude.com)
46 points
by
prospero
10y ago
|
8 comments
48.
▲
The Frontier in Open Source
(medium.com)
2 points
by
prospero
10y ago
|
0 comments
49.
▲
Standing in the Shadow of Giants: The Frontier in Open Source
(medium.com)
3 points
by
prospero
10y ago
|
0 comments
50.
▲
Standing in the Shadow of Giants: The Frontier in Open Source
(medium.com)
5 points
by
prospero
10y ago
|
0 comments
51.
▲
by
prospero
10y ago
Calling other races well-suited to slavery isn't political, it's hate speech.
52.
▲
by
prospero
10y ago
Thanks!
53.
▲
by
prospero
10y ago
What did you use to create your animated simulations?
54.
▲
The Passport: A Tool for Better Metrics
(eng.fitbit.com)
1 points
by
prospero
10y ago
|
0 comments
55.
▲
The Passport: A Tool for Better Metrics
(eng.fitbit.com)
2 points
by
prospero
10y ago
|
0 comments
56.
▲
by
prospero
10y ago
It's not that hard to imagine: map a `get` over a series of keys inside a transaction, return that lazy sequence, and use the results to do another series of operations within a different transaction. Libraries typically can't gua
57.
▲
by
prospero
10y ago
There's plenty of reason: you can put any code you like inside of `with-read-txn`, including closures that are evaluated lazily. If you dislike the duplication, create a syntactic form that allows less, like this: (transaction-&
58.
▲
by
prospero
10y ago
The problem with that is that if `put!` or some other function is used inside `map` or some other lazy context, it may get realized outside the context of `with-read-txn`. Making `binding` part of your public API breaks referential transpa
59.
▲
by
prospero
10y ago
If that's a "proper" replacement, then I think you want a queue, not an agent.
60.
▲
by
prospero
10y ago
Agents are effectively atoms jammed next to an unbounded queue or unbounded thread pool, depending on whether you use `send` or `send-off`. In cases where you have enough contention to actually need formal serialization, you don't wan
More ›