Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
Twisol
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
75 ms
·
751.
▲
by
Twisol
6y ago
This comment was a joy to read right after finishing "Out of the Tar Pit" [1]. This bit is one of the critical design principles that article was advocating for: > You can relatively easily try different search strategies whil
752.
▲
by
Twisol
6y ago
I also used cplusplus.com a lot when learning, and (as far as I can tell) it's basically fine, but cppreference.com has been my go-to for quite a while now. The latter is subjectively more complete/precise/helpful to me (and
753.
▲
by
Twisol
6y ago
Ooh, I like that one. For observers: fix the lower-left corner of your rectangles at the origin. Then a rectangle is determined by the position of its upper-right corner within the upper-right quadrant. The set of all rectangles is given by
754.
▲
by
Twisol
6y ago
Right, that's why I qualified both times with "observable". ~_^ It's worth noting that even if this capability can only occur due to methods on the subclass alone, it can still fail LSP if those manipulations are still
755.
▲
by
Twisol
6y ago
Conversely, if a subclass adds observable flexibility -- such as the ability to stretch along a single axis -- it also fails the LSP. Subclasses can really only add orthogonal properties, such that influencing one of these properties does
756.
▲
by
Twisol
6y ago
You aren't technically wrong, but in the colloquial sense of the comment you responded to, "smaller than" means "has a natural non-surjective inclusion into".
757.
▲
by
Twisol
6y ago
The Visitor pattern is not much more than a CPS-style transform that lets you represent sum types in a language without them. A CPS transform for a computation of type `X` gives a computation of type `forall A. (X -> A) -> A`. That is
758.
▲
by
Twisol
6y ago
> you have to admit that without a date developers will just noodle around forever. This seems more a statement about extrinsic motivation than dates in particular. Dates are the most obvious blunt instrument for applying extrinsic motiv
759.
▲
by
Twisol
6y ago
> So how does a programmer from non-functional world become fluent in understanding sentence such as "abstraction over type constructors"? Incoming essay... Pure functional programming is fundamentally about software components
760.
▲
by
Twisol
6y ago
Scott Wlaschin (the author of that site) does an amazing job of explaining functional programming concepts, and I highly recommend both his site and his book, "Domain Modeling Made Functional". But he does usually try to avoid w
761.
▲
by
Twisol
6y ago
My language gamut is similar to yours -- I don't disagree. I usually find it straightforward to pick up something new too. But there are still languages I know are going to take a lot more time for me to grok, like Coq. (I tried Coq a
762.
▲
by
Twisol
6y ago
Your first language is hard because you're learning a ton of things all at once, only one of which is the language itself. Your second language is hard because it's not the first, even though it's probably pretty similar. But
763.
▲
by
Twisol
7y ago
On the off chance you haven't seen this particular xkcd yet: https://xkcd.com/1172/ It's a little scary just how often xkcd is relevant.
764.
▲
by
Twisol
7y ago
Yeah, writing was supported too. Absolutely was the harder part, since you have to worry about allocating new segments for your directories as your filesystem grows. Ironically, looking at my code now, it seems like I never got around to ac
765.
▲
by
Twisol
7y ago
You're right, you can line the two concepts up to some extent. (I mentioned CRDTs because they're one way to do that in a particularly nice way.) But given the context of the question, it seemed like teasing out the difference wou
766.
▲
by
Twisol
7y ago
I see. I think you may be using a different definition of "aggregate" than the article and OP are referring to. Your "aggregate" is that from database systems like SQL and Excel, while the OP's "aggregate"
767.
▲
by
Twisol
7y ago
FAT is enjoyable! I spent a rather insane summer on a personal project to implement a FAT16 interface speaking the SD protocol to an SD card over an SPI bus.... from scratch. I think I had five spec documents open simultaneously at one poin
768.
▲
by
Twisol
7y ago
What do you mean by commutative aggregates? My understanding is that an aggregate is state, whereas commutativity is a property between two operations on said state. Do you mean something like CRDTs?
769.
▲
by
Twisol
7y ago
I quite belatedly realized that you come from Category Theory, so most of my sibling reply is probably old news to you. Sorry! The most charitable response would be "yes", but it really depends on how you model your domain. Most i
770.
▲
by
Twisol
7y ago
> When we program we categorize the world in English (or Spanish, or any other natural language), and then we encode that into a program. Speaking solely for myself, I don't find this to be true. Yes, it does seem to be the case tha
771.
▲
by
Twisol
7y ago
First, a clarification: when looking at a monadic action `f : A -> T(B)`, the monad here is just `T`. The action itself is still just a function. The monad `T` lets you add some extra structure onto your usual output type in a principled
772.
▲
by
Twisol
7y ago
Nope, no proofs :) Formalizing questions like this is one reason why I'm interested in category theory, so I don't think I have the tools to dig into this right now. But... "side effect" literally maens it doesn't s
773.
▲
by
Twisol
7y ago
As a great fan of Haskell myself, I would clarify that Haskell needs monads because of the (pure functional) restrictions it sets for itself, not because I/O itself fundamentally requires explicit monads. (Haskell itself supposedly use
774.
▲
by
Twisol
7y ago
Sure. First, I'd recommend checking out the website of HN user 'triska at https://www.metalevel.at/prolog -- there's more to Prolog itself than most people are ever made aware of. Frank Pfenning at CMU does s
775.
▲
by
Twisol
7y ago
I'm no expert, so the best I can do is point you to the research community gathering around applied category theory. * A conference series + workshop: https://www.appliedcategorytheory.org/ * A journal: https:/&#
776.
▲
by
Twisol
7y ago
I'm not sure! There's a good amount of material that I've never dealt with before, so I'm sure there will be parts where I go relatively slowly. I also have a day job, so I only spend time with the book when I feel up fo
777.
▲
by
Twisol
7y ago
I certainly haven't applied any of those examples either. ^_^ Abstract algebra, topology, etc. are all studies of problems that already have mental frameworks . People already did an incredible amount of legwork building the apparati
778.
▲
by
Twisol
7y ago
I think Linear Algebra is traditionally recommended, since you can readily apply a lot of geometric intuitions while picking up the mathematical ones. The drawback is that you have to make sure you're not cheating yourself of the mathe
779.
▲
by
Twisol
7y ago
Logic programming is badly underapplied in general, I think. Most of the amazing work in this area never seems to have gotten far out of academia (if at all) -- Prolog being the almost singular exception. Would be awesome to see some motiva
780.
▲
by
Twisol
7y ago
I'm working through Aluffi's Algebra: Chapter Zero , which covers abstract algebra (groups, fields, vector spaces, etc.) with category theoretic foundations. I took undergraduate algebra several years ago, and I'm really int
More ›