logesh
Could someone provide a learning path for functional programming for who came from oops background.? Thanks in advance
Trending in Chat/Questions
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve.
They are GUI (Emerge) and State management (S...
New
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #ai
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming










Showing Posts 19 to 10- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
chouzar
ML and Racket… everything I’m looking forward to cover the basics
.
This looks really interesting, specially because it mentions:
Just wondering how the book reconciles a “high level language” and the computer’s architecture. I personally didn’t get “programming computers” until I learned Assembly and saw C being compiled into it, before that everything was so confusing
.
sribe
Well, maybe this book
Bought it this month, god only knows when I’ll get around to reading it…
peerreynders
Language Lust - eh? Just came across this: Programming Languages, Part A
chouzar
Thank you both for the recommendation!
datadrover
This might be for you: https://fsharpforfunandprofit.com. Aside from anything else, Scott Wlashin’s site has some excellent material on functional programming in general.
bulldog_in_the_dream
This MOOC, thought by Erik Meijer, is pretty good (archived, but material is still available): Course | edX
It uses Haskell, so there’s an emphasis on static typing as well, but that’s hardly a drawback.
chouzar
Yes! but I have been glancing too much at other languages and been delaying learning F# which I could maybe use regularly.
peerreynders
Seems like you are just about ripe to branch out into F#.
chouzar
I started my path with Programming Elixir and I have to say that the first chapters gave me a really good introduction to Recursion, Pattern Matching and the use of Tuples.
The Functional Programming Fundamentals lectures from Erik Meijer do a really good job of explaining the foundations of FP usually making direct comparisons between Haskell and C#.
My day to day work requires C# and I have been very happily adapting concepts learned from Elixir into it. I recently hit a wall on “how much more” could I exploit C# as a FP language and Functional Programming in C# has been revealing. To an extent it feels like “C# the Good Parts”.
While I have personally not delved into Racket, it seems like it would be the best point of entry regardless of your previous experience.
peerreynders
I’m primarily thinking about how class or object-based OO embrace mutability. Functional languages tend to be immutable by default - in BEAM languages one has to employ recursion to emulate mutable state which is used inside processes to give them mutable state.
Now traditional OO uses mutability at the lowest level and usually as a consequence mutability is everywhere. These days “mutability” is the new “goto”. In the past mutability wasn’t largely an issue because the technology we were working with limited us to unshared mutable data - but things got a lot more complicated when threads and multi-cores want and need to share data. Yet a lot of today’s mainstream technology is still rooted in the past world of “unshared mutable data”.
Mutability encourages PLOP (Place-OrientedProgramming) while immutability requires “Programming with Values” - that requires a major shift in mindset.
It is possible to work with immutable objects but it fundamentally changes the nature of methods (and how objects interact) - methods no longer “send a message to change the object’s internal state” but instead methods either return immutable parts of the object or return an immutable version of the original object that differs from the original in some specified way. Immutable objects are about values - not (internal) mutable state.