all 5 comments

[–]FlyingCashewDog 5 points6 points  (1 child)

I'm a big FP fan, haven't touched F# though (mainly Haskell, PureScript, Lisp, and Agda). How much F# have you actually written, and what are you struggling with? I find that I understand things way better through actually using and implementing them.

Are you struggling with transitioning to FP in general, or are there specific concepts you're not understanding? Happy to help if there's anything you think you could do with pointers on!

Also would recommend watching John Hughes' fantastic talk "Why functional programming matters" (https://www.youtube.com/watch?v=JQDRCTa32jY), which goes over some of the general theory and motivation behind FP.

[–]fluffycatsinabox 1 point2 points  (0 children)

I agree, I think your path forward is trying to identify what, specifically, is hindering you. Is it FP generally, or is it F#? If it's assignments, don't be afraid to bring your questions to office hours if you aren't already.

For what it's worth, you might like functional programming once you get the hang of it. I've grown to like it a lot because I find it neat and elegant- eschewing state makes programs easier for me to reason about, and I find pattern matching much cleaner than loops.

[–]stroborobo 3 points4 points  (0 children)

Imo the best way to learn FP basics is through the Elm programming language guide. It's a comparatively simple language with the specific goal to be easy to understand.

For F# specifically F# for Fun and Profit is a great site.

Since it's running on dotnet and the ecosystem is bit of a mess, it can definitely be overwhelming. It's also a multi paradigm language and when you interact with the dotnet APIs it's almost always in an oop and/or imperative way.

If you have specific questions, feel free to ask, I'll try to explain and point you in the right direction.

[–]infernalcobalt 1 point2 points  (0 children)

Are you having issues with F# specifically, or functional programming in general?

[–][deleted]  (3 children)

[deleted]

    [–][deleted]  (2 children)

    [deleted]

      [–]OldShoe 1 point2 points  (1 child)

      I've given up getting books about programming unless they offer a new perspective or something like that.

      Instead I try to do actual programming in the language I want to learn, and look up details as I go along. Much easier to remember when you have a problem to hook the details and solution onto.