Hell yeah, brother. Functional programmers rise up.
Programmer Humor
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
As long as you do it without side effects...
total_armageddon = launch_nuclear_missile <$> [1...]
Deleted by creator
Return a list of cloned functional programmers with their positions translated towards positive y!
Thankfully our immutability makes us immune to fall damage.
Writer monads am I right? 😅
I must once again post The Night Watch [PDF]
I said fuck it, should be a good time passer. 20ish minutes later I want to be a systems programmer. Sounds fun, what can I say.
Haven't used a loop in almost a decade! It's a nice life 😎
Hell yeah! Groovy programmer here, mapping closures over lists of objects.
As your compiler patiently turns it back into a loop.
mmyes
I’ve been learning Haskell, and now I won’t shut up about Haskell
I learned some Haskell. Did some problems on Advent of Code and such. But since then I've heard about OCaml, which seems super interesting. Hopefully the tooling is simpler, but I've not had time to try anything yet.
Does anybody have any experience with it?
Im pretty sure tsoding has some videos with it
I'll check it out, thank you very much! I approximate it a lot. 🙂🙏👍
what's the appeal of haskell? (this is a genuine question.) i've been a bit curious about it for a while but haven't really found the motivation to take a closer look at it.
purely functional paradigm (immutable data structures and no shared state, which is great for e.g. concurrency) and advanced type system (for example you could have linear types that can be only used once). Lisps build on the premise that everything is data, leaving little room for bloated data structures or tight coupling with call chains that are hard to maintain or test. In Haskell on the other hand, everything is a computation, hence why writing it feels more like writing mathematical equations than computer programs somehow. It might, along Scala be good for data-driven applications.
Also the purely functional syntax means that on average, functional programming languages will arrive at the same solution in approx. 4 times less LOC than procedural/OO according to some research. Just look at solutions to competetive programming problems.
And even though I'm not a big fan of opinionated frameworks, compare some Phoenix codebase to a Symfony or even a Rails one to see how much cleaner the code is.
But if you're new to FP you should rather pick Scheme, Elixir or Clojure since the paradigm itself can be a little bit hard enough to wrap your head around at first (though Elixir and is a bit imperative, depends on how deep are you ready to dive in), not to mention having to learn about ADTs and category theory.
My favorite feature is how currying is applied literally everywhere. You can take any function that accepts 2 args, pass in a single arg and return a new function that accepts one arg and produces the result. In Haskell, this is handled automatically. Once you wrap your head around using partially applied and fully saturated functions you can really start to see the power behind languages like Haskell
It's been noted that functional code accumulates less bugs, because there's no way to accidentally change something important somewhere else, and Haskell is the standard for functional languages. Also, it might just be me, but the type system also feels perfect when I use it. Like, my math intuition says there's no better way to describe a function; it's showing the logic to me directly.
Where Haskell is weak is when interactivity - either with the real world or with other components - comes up. You can do it, but it really feels like you're writing normal imperative code, and then just squirreling it away in a monad. It's also slower than the mid-level languages. That being said, if I need to quickly generate some data, Haskell is my no-questions go to. Usually I can do it in one or two lines.
Unironically this. I know it's the same assuming there's no bugs (lol), but it's just faster to type and easier to read, at least to me.
I always found map more confusing than loop for some reason. Especially nested.
To each their own.
Or sometimes fold them over trees of objects!
Objects? What is this OOP nonsense?
Immutable in order to protect against parallel code changing the size of the iterable?
Immutable because the only lists worth iterating over are the ones I define for myself.
#pragma omp parallel for
Ah yes the X86 instruction set for mapping.
Everything is a conditional branch loop. Always has been.