why did the functional programming meme die out?
Ape Out Shirt $21.68 |
UFOs Are A Psyop Shirt $21.68 |
Ape Out Shirt $21.68 |
why did the functional programming meme die out?
Ape Out Shirt $21.68 |
UFOs Are A Psyop Shirt $21.68 |
Ape Out Shirt $21.68 |
Because it's mental masturbation for midwits and nothing of value has been made using it.
>memes
>for midwits
When the midwits couldn't hang or handle the bants when they tried to meme, they dropped it because why keep putting your hand in the fire?
even russia neetceleb moved on
because functional aspects have been already absorbed in most imperative languages, we all have lambdas, sum types and whatever
functional languages are dead
this
only academics care about monads and purity and shit so Haskell and co are still memelangs, but the useful parts of them have been adopted
This https://youtu.be/wyABTfR9UTU
God fricking damn it. Now I have to go on another 'Dont recommend channel' spree.
Shit lipstick on function pointers. Code-as-data has always been a thing, and FP weenies have no special claim to the idea beyond polluting it with ideological nonsense. You guys don't understand how close C came to not being a horrible language if it had just not been lynched by forward declarations, stupid build systems, and bikeshedding committee morons who like jacking off to undefined behavior.
>polluting it with ideological nonsense.
Fp were one of the last ones to troon out
>how computers actually work
I don't care 2bh sounds like the compilers problem
Because it's no longer necessary for it to be a meme. It won. Even in Python you have basic FP support.
Only Haskell really lost, which was inevitable because purity and laziness by default are gay and useless.
> A diffeomorphism is an invertible function that maps one differentiable manifold to another such that both the function and its inverse are differentiable
> The function taking a set of sets of subsets to the set of subsets of A with the property that one of the sets of sets of subsets is the set of all sets of subsets of A that include that particular subset as an element
> A monad is a triple (T, n, u) where T is an endofunctor T: X -> X and n: I -> T and u: T x T -> T are natural transformations satisfying the identity property of u(n(T)) = T = u(T(n)) and the associative property of u(u(T x T) x T)) = u(T x u(T x T))
Turns out functional programmers tend to have extremely poor communication skills and struggle with explaining not only what functional programming is good for, but even what it fricking is.
You shouldn't need a mathematics PhD to tell someone "A monad is a function that encapsulates side effects like I/O"
>You shouldn't need a mathematics PhD to tell someone "A monad is a function that encapsulates side effects like I/O"
That's not what a monad is though. That's just one application of monads.
https://wiki.haskell.org/All_About_Monads
To be fair I read like 70% of a Haskell book and still can't really explain what a Monad is. The closest I can describe it as is currying functions.
I have a hard time explaining it too which is why I linked the wiki page. It's really not a complicated concept but it's really general which makes explaining it precisely without mathematical jargon hard.
Monads As "Programmable Semicolons"
http://blog.vmchale.com/article/programmable-semicolon
Because every thread turns into monad circle jerking, people who were genuinely interested just moved on
i love it and the ideas
JavaScript is the most deployed language in the world. I would not call that "dead" just yet.
other languages stole the good parts (immutable by default, unions, pattern matching, lambdas, higher order functions, recursion) and let the academic masturbation part in the trash where it belongs
Haskell!
JavaScript is very functional.
Purity by default is good
>t. virgin
With the exception of parsing text problems that can be solved in a pure functional style are toy problems to begin with. Monadic parsers are cool, but they are backtracking and thus inefficient. Even the guy who wrote Shellcheck says he regrets writing it in a toy language (Haskell).
I’m hoping we get something in the same vein as functional languages, but with more of a focus on practicality and efficiency. I have no idea if that will ever happen though
He didn't say that you disingenuous frick, he said that Heskell was probably not a good choice for a widely used tool/large scale project but ideal for a hobby project.
The human mind perceives reality as a set of objects, not as a set of phenomena, actions or operations. So if you use the first paradigm, it is easier to train a bigger workforce.
The human mind of humans before modernity perceived phenomena as well, look into Aristotle's 4 "becauses".
I mean Ok but what is the hegemonical paradigm today? To fill a form.
Autism - aka only 2 of the 4 causes applied to everything.
Let's break the mold, let's be fully humans not bugmen.
Totally agree, but it is necessary to reach a considerable amount of people in order to create a new workforce with a new paradigm. You need to reach a critical mass in the order of magnitude of thousands and that those thousands are not functional primates, but competent thinkers capable of not only implementing business logic but also being able to build their own tools.
cose white people invent BASIC
Because programming was dominated by autists and the entire domain is autistic.
Non bugman languages, paradigms scare them away.
Because it cannot solve problems with state without hidding it under the rug with "sideeffects" and other tricks.
And 99% of the problems are state-heavy.
Which is why procedural and OOP won.
These two also provide a way of organising logic with modules and classes, vs FP's approach of having a bunch of functions floating around.
The only useful parts of FP got gayocited into regular OO languages.
afaik nubank still uses scala tho
it's clojure, they even bought the language committee or whatever so now clojure is literally owned by a bank
look it up
>ape the 10th functional programming feature into a new language migrate entire codebases
Functional programming is dead we'll never need another functional programming feature again.
>ape the 11th fp feature into a new language, migrate entire codebases...
it sucks.
I do remember watching a speaker at a local code meetup tell us all about Clojure and functional programming and how great it was, but then explain how it took him so long to code a project in that he gave up and wrote it in Kotlin. I wasn't really sure what to take away from that. Did he have a change of heart halfway through writing his speech?
Uncle bob wrote a spacewar game in Clojure and bragged on his blog that he could get frame rates in the "high 20s" and that clojure was not slow.
Picrel is his game.
The blog post: https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html
nobody could give a definition for monads and functors... if you don't know what they are, how can you even use it.
at best, functional bros, will tell you to just start doing it and after a few years you will feel what a monad is.
There’s no reason to be filtered by monads. It’s literally just
return :: a -> m a
>>= :: m a -> (a -> m b) -> m b
What’s so hard about this?
where is
justFrickingGiveMeMyValueBack :: m a -> a
Doesn’t exist.
A list has more than one value.
Maybe and Either might not have a value at all.
The forgetful monad has no value.
This. Also sometimes you need a m a -> (a -> b) -> m b. I think there are some other type classes which implement these
>A list has more than one value.
The second value of the list is a list so to keep the types correct
unreturn (a:_) = a
Which is head. And it doesn't make sense to get back something from the empty list so non exhaustive match
>Maybe and Either might not have a value at all.
>The forgetful monad has no value.
Just error out?
>Just error out?
Not every language with monads allows partial functions.
If you want an unreturn, simply define a new type and program in the unreturn monad.
The State and Continuation monads also contain no values.
I know what a monad is, moron, its a pipeable function.. still won't use it though.
```if(err) return null ```
all the way, frick this meme autist bullshit. I rtather write some more lines (having places where to put debug breakpoints as well), then use a chain of functions
pic related, this is how I visualise FP in my mind (and also the people using FP)
Wrong moron. That is the shape of a monad, but now it needs to also comply with the 3 properties of a monad.
Otherwise it is not a monad.
Yeah, sure, sorry. I find the barrier to most people’s understanding is that they think there’s something magical about Monads when they’re really quite simple.
And if I’m a moron, you’re equally moronic, because you didn’t say anything about Functor.
why does >>= take ( a -> m b ) instead of ( a -> b )?
Because that's what `fmap` (aka `<$>`) is for.
Examples:
(+) 2 <$> Just 2 -- Evaluates to Just 4
-- A little program to ask your name.
name_prog = putStrLn "What's your name?" >>= _ -> getLine >>= name -> putStrLn $ "Hello " ++ name ++ "!"
-- Easier to read version. Exactly the same.
name_prog = do
putStrLn "What's your name?"
name <- getLine
putStrLn $ "Hello " ++ name ++ "!"
Frick your gay syntax
Exactly what happened to OOP.
It's a flawed paradigm that ignores how computers actually work in favour of some theoretical bullshit. The few useful ideas it had were plucked by imperative langs and the rest of the bloated corpse was deservedly thrown out.
For OOP it was methods and interfaces. For FP its lambdas, sum types, and pattern matching.
>how computer works
Solving a problem in terms of high level abstractions related to the problem domain instead of how a low level machine works is absolutely essential, moron.
OOP is still valid since, most of the times, everything is an object.
>Solving a problem in terms of high level abstractions related to the problem domain instead of how a low level machine works is absolutely essential
If you can't do both simultaneously, you have no business calling anyone else a moron.
If you write Haskell without understanding the STG machine and how it works, or at the very least how a graph reduction execution model works, then I don't really care to hear anything you have to say.
It didn't. The most useful parts of functional programming made it into mainstream.
Most data scientists write pandas/spark code in a very functional fashion.
In fact, the whole ORM scam exists to accommodate imperative-brained grugs who couldn't write functional style code if their life depended on it.
Plus all the very cool features that are now in all modern languages like match, ADTs, folds, monadic error handling, sometimes covariance/contravariance notations, etc.
Have they released a new Haskell standard after 2010? Do I still have to enable extensions manually one by one?
too hard for jeets to understand maybe?
Even php is functional, it even has "Closure Classes" lol
FP won and became the norm