4 ms·
I'm an intermediate Haskeller and I just started playing around with F# around 2 months ago. I really like it. It still feels very functional but has escape ha
by jjaredsimpson 9y ago
I'm an intermediate Haskeller and I just started playing around with F# around 2 months ago.
I really like it. It still feels very functional but has escape hatches when I want imperative behavior.
I like that I can still write "beautiful" code which feels high level and is expressed in the language of the problem domain, yet can fall back on idiomatic imperative solutions for certain tight loops or data structures.
F# still feels like a toy sometimes but that might only be cause C# is so polished.
- bunderbunder 9y agoFWIW, you can thank F# for C#'s level of polish. Don Syme was a (if not the) driving force behind .NET going with reified generics, for one. Also, back when I was a "C# by day, F# by night" developer, I really felt like F# was being used as an incubator for ideas that were eventually pulled into C# in some form or another. For example, in some respects async/await feels like a domesticated version of the async computation expression.
- bonesss 9y agoCompare where the two languages were, and look where we are now.. Lambdas? C# got them later. Immutable constructor patterns? C# got them later. A scripting environment? C# is trying. Pattern matching? C# is trying (but since it's not exhaustive...). No nulls by default? C# got it later (and less clearly). It's really impressive how quickly those features have gained mindshare and become 'must haves' despite initial resistance. Fundamentally, though, the higher order programming features that F# inherits ML give it a maturity and flexibility that C# will just never encompass.
- dvlsg 9y agoI come from a very non-functional background, but I love f#. Or fell in love with it, anyways. At first I was pretty opposed to both executing functions without using parentheses and also currying as a default. Now I find myself missing those things in the languages I use daily for my job (which sadly, do not include f#).
- H1t 9y ago> Now I find myself missing those things in the languages I use daily for my job (which sadly, do not include f#) It might not be do-able in your situation but there are ways you can introduce F# in an incremental, low-risk way. Some ideas here: https://fsharpforfunandprofit.com/posts/low-risk-ways-to-use-fsharp-at-work/ https://fsharpforfunandprofit.com/posts/low-risk-ways-to-use...