A very good introduction on what functional programming is!
@MariuszZaleski138 жыл бұрын
So, honesty in programming leads to great opportunities and possibility to progress and evolve. It does exactly this same when honesty is applied in life. What a show and what a Life. I love it :-)
@aoeu2563 жыл бұрын
I know this is old, but Koka language made it easier to bridge the gap between imperative and purely functional languages without using Monads that are hard to combine together (it had native support for fused effects).
@Canonall4 жыл бұрын
I feel you can really see how his perspective on programming in general and specifically functional programming, but lead him to develop reactive extensions. Very enjoyable talk!
@JavnaGolina11 жыл бұрын
I don't like using brain power, but I still program quite a bit more functionally than your average programmer because I find it much easier. a map is much easier than a for loop. a recursive function is much easier than a while loop. It's just more declarative - often mutating variables has nothing to do with the problem I am solving. Also part of the issue is if you're looking for an algorithm you're almost always going to find it in an imperative form.
@pewpewpew86134 жыл бұрын
how honest is the head function in the haskell? it has a type head :: [a] -> a but it will throw an exception if you pass empty list.
@kelleydv11 жыл бұрын
15:50 for functional programming
@JeffSmith0310 жыл бұрын
So many times I wanted to see what he just circled or added to answer a question, but the camera was left only on him and eventually he erased it without ever showing us. Other than that, I think this was quite helpful to get a better idea what functional is about.
@epiphoney4 жыл бұрын
Powershell uses lambdas or anonymous functions all the time, but they're called "script blocks". They can be passed around like functions in Haskell.
@signify2189 жыл бұрын
Excellent video. Thank you so much for uploading.
@jasonofthel33t11 жыл бұрын
24:25 for monads
@WateryIce543218 жыл бұрын
After watching a few of these videos it is really confusing to just hear an unplanned, abstract "discussion". I would love to hear a presentation where Mr Meijer actually plans everything out in advance.
@jpphoton7 жыл бұрын
Lay it down boys! Really excellent insight into FP. Thanks indeed.
@FlashManinSpace9 жыл бұрын
Mathematics was never meant to modify the real world at run time!
@mateja1766 жыл бұрын
mathematics is the foundation for the real world
@Mephistel5 жыл бұрын
@@mateja176 The real world is the foundation for mathematics
@smwnl9072 Жыл бұрын
Mathematics is a derivative of the real world.
@lichen4205 жыл бұрын
That tye-dye is off the hiznook. Very well done.
@lucasa87102 жыл бұрын
you can encapsulate your business rules in a pure world and then implement it (UI, DB, Log, Exceptions, etc.) in a unpure side-effectfull world
@charvakpatel9628 жыл бұрын
You should have explained this in your C9 lectures.
@MasthaX4 жыл бұрын
First time I see monads actually explained practically without too much mathy fuzz.
@eloycaballo7 жыл бұрын
This guy knows what functional programming is and how to take advantage of its concepts to apply them to imperative PL, and why impurity is in fact practical. He propouses and inversion of concepts in new PL, instead of difining purity by default which is seldom used in practical programming should be define the inpurity by default and purity explicitly. This guy has all clear!!!
@1videoshow9 жыл бұрын
Why pure? It must work. And you must be able to rely on it. Ada is an example of a secure programming language used in critical environments where side-effects can cause the loss of life, if it happens. (It can happened also in Ada.) BUT, it is more un-likely, this begins with the syntax and layout of the program, then with the compiler, then with the runtime, etc.
@DisfigurmentOfUs9 жыл бұрын
Thank You very much
@TerellB939 жыл бұрын
Can anyone tell me what is meant by the following notation? (x,x)
@paligamy939 жыл бұрын
Terell Brown Let's say f(3) returns true. If it's a pure function, it will always return true no matter what if you use the argument 3. So you can now assign it to a constant (he uses x) so if you're trying to find a point in a graph and the x is at f(3) and y is at f(3) (f(3), f(3)) then you can logically replace the f(3) with the constant (x, x) hope that makes things clearer
@FlashManinSpace9 жыл бұрын
Terell Brown if x,x are of the same value it is pure. Else it is a impure. With side effects states can never be pure.
@jcfbell300111 жыл бұрын
can you elaborate? perhaps an example?
@mateja1766 жыл бұрын
Let's say we have a program composed out of a 100 functions. 99 of those functions are pure whereas only 1 is impure. The whole program now becomes impure. However that 1 impure function doesn't undermine the value of the 99 pure functions. 99 parts of a 100 part puzzle, put together, still mean something.
@johnvoid52946 жыл бұрын
as Erik said that there is no midpoint, i should avoid Scala and go all the way to Haskell!
@kevingrieger11 жыл бұрын
Here is the *real* problem with functional programming. Most programmers suck at their jobs. They either can't or won't use their brains to their full potential. Functional programming requires quite a bit more brain power than imperative programming, and that conflicts with alot of programmers mentality. Functional programming requires you to think about the big picture and scale down from there. Imperative programming allows for the opposite, and it just so happens the opposite is easier.
@aoeu2565 жыл бұрын
Imperative programming requires more brain power because everything is contextual in stateful programs, while pure functions are context-free.
@VirtualPlasticity11 жыл бұрын
I agree that Java and C# are impure languages, but to say that nobody is making money out of them is ridiculous!
@adorinadorin9 ай бұрын
There was only statement ab9ut amount of m9ney - more or less.
@DannyMeister10 жыл бұрын
+moofymoo How'd that go?
@moofymoo10 жыл бұрын
56:37 - challenge accepted
@klokanRsk11 жыл бұрын
GWT in action :-) Nice video BTW
@ASmallTurnip677 жыл бұрын
Great talk by Erik, but seriously man, you need to improve your camera work...
@ashleygillman31049 жыл бұрын
At 20:50 it looks like he wrote the c word
@richtourist6 жыл бұрын
POINT THE CAMERA AT THE EXAMPLE (please)
@mxo32123 жыл бұрын
LOL
@mxo32123 жыл бұрын
come on some one make that NIRVANA after 8 years GO, RUST, JULIA which...
@baka_geddy3 жыл бұрын
LISP variant will be the closest one imho.
@r0by11 жыл бұрын
"vegetarian butcher"; LOL.
@MasthaX4 жыл бұрын
Dutch jokes :)
@leodf111 жыл бұрын
Well everyone had high hopes, but now we know the Japanese 5th gen programme went nowhere. And Prolog was a non starter too. What I hated about Prolog was that you basically had/have to trick it into doing what you want.
@TheLawrence0511 жыл бұрын
By watching a video in which i'm not understanding any single word
@1videoshow9 жыл бұрын
The target is "catch the errors" and "handle them correctly". But often nobody knows whats going on really within a program in the real environment, right? You can't prove a program right, mathematically.
@yepyeniceri7 жыл бұрын
11:24 :D
@1videoshow9 жыл бұрын
Apple Swift Language has fixed this problem with so called Optionals. You can have "optional int's", which means it can be an int or nothing.
@osmarpixuri9 жыл бұрын
1videoshow java 8 has it too.
@bingloveskoki8 жыл бұрын
These Optionals are just syntactic sugar for Haskells Maybe Type: enum Maybe { case Just(T) case Nothing }
@deadmarshal Жыл бұрын
Clean > Haskell
@kahnfatman Жыл бұрын
A Kind Error is by no means a nice error :D
@TheLawrence0511 жыл бұрын
I feel so stupid !
@Kanishvarab11 жыл бұрын
"denmark" -.-
@DisfigurmentOfUs9 жыл бұрын
So the only benefit from purity is easy concurrency?
@lucassaldyt32278 жыл бұрын
+Pavel V. Also a lack of run-time errors, less complex code, faster production times etc.
@michaelwayneterry8 жыл бұрын
+Marethyu Sky This is all true, unless your system is required to have side-effects.
@SMOKE31045 жыл бұрын
Nirvana.equal("Rust")
@SudeepMakwana11 жыл бұрын
agreed 100 % haha
@ochgottnochma9 жыл бұрын
Fight Extremism, Boycot Functional Programmers!
@insertoyouroemail9 жыл бұрын
ochgottnochma Functional Programming Master Race!
@crimsun71868 жыл бұрын
+ochgottnochma I'd rather boycott JVM based languages.
@xybersurfer10 жыл бұрын
this explanation is flawed
9 жыл бұрын
Why he just uses this kind of t shirt?
@1videoshow9 жыл бұрын
Joao Vitor Its a hippy shirt ;)
@binshuo9 жыл бұрын
+João Vitor R Neto I've never seen Eric Meijer wear a shirt with less than 4 colors in any of his videos.
@eudisd4 жыл бұрын
Please don't wear that shirt again
@humble_integrity3 жыл бұрын
the interviewer is annoying. i wonder how erik was so calm in his explanations
@tinkeringengr10 жыл бұрын
What a terrible explanation! An unbelievable amount of hand waving with poorly defined terms while the interviewer nods his head in ignorance. Given the context I suppose its unfair to be so harsh, but this was almost a complete waste of my time.
@tinkeringengr10 жыл бұрын
LOL, 40 minutes into the video they finally define the concepts that they have been discussing.....and the one guy was a professor? Its amazing to me how they can have almost an hour conversation in ambiguity before they decide to consolidate the mental model. And they call themselves computer scientists?
@XemSmex10 жыл бұрын
Jonathan Valiente I have the feeling this 'computer scientists' are self claimed experts which are only able to talk about this things in this high abstract manner but have absolutely no competence when it comes to practical use. While I understand what Erik is explaining this all feels like it's nice to look at but do some real work please.
@jebberjeb10 жыл бұрын
XemsDoom Uh, are you implying en.wikipedia.org/wiki/Erik_Meijer_(computer_scientist) isn't an authority in the field of programming languages?
@brenthagany200810 жыл бұрын
It's almost as if the entire internet isn't continually recreated to specifically meet your specific momentary needs! Unconscionable!
@tinkeringengr9 жыл бұрын
Brent Hagany Of course its not tailored to my needs, but I would still expect someone who is communicating information (especially an expert in the field of computation) to define the appropriate terms in a manner relevant to the presentation. ***** A student doesn't need a plethera of credentials to evaluate when information is poorly presented. Critisim allows for progression to those who are capable of recieving it.