HNHacker News
TopNewBestAskShowJobs

seanparsons

242 karma · joined January 29, 2016

[ my public key: https://keybase.io/seanparsons; my proof: https://keybase.io/seanparsons/sigs/o4hvM6Y_1V25CzfSuqR87sYdOWyoq-IsPW8HxBsh28o ]

Blog: https://funwithfunctions.com

submissionscomments
seanparsons··on Standardized Ladder of Functional Programming [pdf]
So in that case, what's important about your 1MLOC requirement? I can't even begin to imagine that much Haskell code versus a similar line count in say C.
seanparsons··on Standardized Ladder of Functional Programming [pdf]
Comments like this are more likely to do that than the original post. Just give it a bash and someone will help you if you struggle, I would.
seanparsons··on Standardized Ladder of Functional Programming [pdf]
I would surmise from what I've heard that Standard Chartered easily on their own break this rule.
seanparsons··on Standardized Ladder of Functional Programming [pdf]
Elitism is learning more powerful constructs? There's a lot of elitism in the construction industry then with people checking the load bearing of materials rather than building everything from mud.
seanparsons··on Standardized Ladder of Functional Programming [pdf]
I really don't understand your rage about this, you could offer up constructive criticism and suggest an alternative that more closely suits Clojure/Lisp development.

The strain you're referring seems like this perception that is somehow self perpetuating. My experience is that of an incredibly helpful community that gives up its time to help and educate people.

seanparsons··on Cassandra is not row level consistent
I railed against CQL right from the start and it's precisely because of this kind of thing. Imitating SQL has the side effect of setting certain expectations and drags a certain mental model along with it.
seanparsons··on Server APIs Project
Ah yes, very true.
seanparsons··on Server APIs Project
How is it syntactic sugar? It's just applying "10" to the first parameter of "==".
seanparsons··on Server APIs Project
I'm not sure I understand, is there some special casing going on with "(== 10)"? As I'm admittedly not aware of it.
seanparsons··on Server APIs Project
So I only know a minimal amount about Rust, so if there's things which are the same there, then I'll probably be blindly ignorant about them.

First thing is that with the build tool Stack and now with recent versions of Cabal the process of having a nice repeatable consistent build is pretty smooth. I also used a tool called ghcid to get sub-second feedback on my changes as I make them.

Haskell has started at the opposite end of the spectrum to most programming languages, as in "How do I represent functions mathematically?" rather than "How do I flip this bit in the accumulator register?". Which is probably somewhat to your point about oddities, for me coming from an OOP background there was a huge mental shift that had to happen to "get it". I've found that things tend to just slot together so much more easily as a result. Curried functions for example was a revelation for me, being able to pass (== 10) to a list filter isn't some special case syntactic sugar it just falls out by default.

Now much more people have gotten to grips with it there are amazing things like the servant libraries which allow you to define a HTTP service(url, query params, request method, etc.) with a type. You can implement a service against that type and get all the appropriate checks, which is great. But then the incredible part is that you can get it to create functions for each endpoint in that service totally automatically at compile time: https://hackage.haskell.org/package/servant-client#readme

seanparsons··on Server APIs Project
Having spent 10 months working in Swift, this is probably the last thing on earth I want to see right now.

Pretty much every part of the entire toolchain has been a pain, from Xcode being Xcode, to compiler bugs and crashes, crappy package management and bad language design.

Having built servers in Java/C#/Scala/Haskell, I'd pick Haskell over those options and Swift every single time.

← PreviousPage 3 of 3