Erik Meijer: Functional Programming

  Рет қаралды 101,404

jasonofthel33t

jasonofthel33t

Күн бұрын

Cross posted from channel9.msdn.c....
Erik Meijer discusses functional programming languages, academic versus real-world application of functional programming languages and himself.

Пікірлер: 85
@utubekade
@utubekade 5 жыл бұрын
this guy really knows how to explain a concept
@Веник-ы1ь
@Веник-ы1ь 9 жыл бұрын
A very good introduction on what functional programming is!
@kelleydv
@kelleydv 11 жыл бұрын
15:50 for functional programming
@aoeu256
@aoeu256 3 жыл бұрын
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).
@MariuszZaleski13
@MariuszZaleski13 8 жыл бұрын
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 :-)
@jasonofthel33t
@jasonofthel33t 11 жыл бұрын
24:25 for monads
@pewpewpew8613
@pewpewpew8613 4 жыл бұрын
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.
@JavnaGolina
@JavnaGolina 12 жыл бұрын
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.
@Canonall
@Canonall 4 жыл бұрын
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!
@epiphoney
@epiphoney 4 жыл бұрын
Powershell uses lambdas or anonymous functions all the time, but they're called "script blocks". They can be passed around like functions in Haskell.
@JeffSmith03
@JeffSmith03 10 жыл бұрын
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.
@signify218
@signify218 9 жыл бұрын
Excellent video. Thank you so much for uploading.
@WateryIce54321
@WateryIce54321 8 жыл бұрын
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.
@FlashManinSpace
@FlashManinSpace 9 жыл бұрын
Mathematics was never meant to modify the real world at run time!
@mateja176
@mateja176 6 жыл бұрын
mathematics is the foundation for the real world
@Mephistel
@Mephistel 5 жыл бұрын
@@mateja176 The real world is the foundation for mathematics
@smwnl9072
@smwnl9072 2 жыл бұрын
Mathematics is a derivative of the real world.
@chrissherlock1748
@chrissherlock1748 3 күн бұрын
@@smwnl9072the real world is a derivative of the mathematics
@jpphoton
@jpphoton 8 жыл бұрын
Lay it down boys! Really excellent insight into FP. Thanks indeed.
@lichen420
@lichen420 5 жыл бұрын
That tye-dye is off the hiznook. Very well done.
@lucasa8710
@lucasa8710 2 жыл бұрын
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
@charvakpatel962
@charvakpatel962 8 жыл бұрын
You should have explained this in your C9 lectures.
@jcfbell3001
@jcfbell3001 11 жыл бұрын
can you elaborate? perhaps an example?
@TerellB93
@TerellB93 9 жыл бұрын
Can anyone tell me what is meant by the following notation? (x,x)
@paligamy93
@paligamy93 9 жыл бұрын
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
@FlashManinSpace
@FlashManinSpace 9 жыл бұрын
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.
@MasthaX
@MasthaX 4 жыл бұрын
First time I see monads actually explained practically without too much mathy fuzz.
@1videoshow
@1videoshow 9 жыл бұрын
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.
@eloycaballo
@eloycaballo 8 жыл бұрын
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!!!
@DannyMeister
@DannyMeister 10 жыл бұрын
+moofymoo How'd that go?
@ashleygillman3104
@ashleygillman3104 9 жыл бұрын
At 20:50 it looks like he wrote the c word
@moofymoo
@moofymoo 11 жыл бұрын
56:37 - challenge accepted
@mateja176
@mateja176 6 жыл бұрын
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.
@DisfigurmentOfUs
@DisfigurmentOfUs 9 жыл бұрын
Thank You very much
@kevingrieger
@kevingrieger 12 жыл бұрын
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.
@aoeu256
@aoeu256 5 жыл бұрын
Imperative programming requires more brain power because everything is contextual in stateful programs, while pure functions are context-free.
@yepyeniceri
@yepyeniceri 7 жыл бұрын
11:24 :D
@klokanRsk
@klokanRsk 11 жыл бұрын
GWT in action :-) Nice video BTW
@johnvoid5294
@johnvoid5294 6 жыл бұрын
as Erik said that there is no midpoint, i should avoid Scala and go all the way to Haskell!
@r0by
@r0by 12 жыл бұрын
"vegetarian butcher"; LOL.
@MasthaX
@MasthaX 4 жыл бұрын
Dutch jokes :)
@ASmallTurnip67
@ASmallTurnip67 8 жыл бұрын
Great talk by Erik, but seriously man, you need to improve your camera work...
@mxo3212
@mxo3212 3 жыл бұрын
come on some one make that NIRVANA after 8 years GO, RUST, JULIA which...
@baka_geddy
@baka_geddy 3 жыл бұрын
LISP variant will be the closest one imho.
@richtourist
@richtourist 6 жыл бұрын
POINT THE CAMERA AT THE EXAMPLE (please)
@mxo3212
@mxo3212 3 жыл бұрын
LOL
@leodf1
@leodf1 11 жыл бұрын
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.
@VirtualPlasticity
@VirtualPlasticity 11 жыл бұрын
I agree that Java and C# are impure languages, but to say that nobody is making money out of them is ridiculous!
@adorinadorin
@adorinadorin 11 ай бұрын
There was only statement ab9ut amount of m9ney - more or less.
@Kanishvarab
@Kanishvarab 12 жыл бұрын
"denmark" -.-
@kahnfatman
@kahnfatman 2 жыл бұрын
A Kind Error is by no means a nice error :D
@TheLawrence05
@TheLawrence05 11 жыл бұрын
I feel so stupid !
@TheLawrence05
@TheLawrence05 11 жыл бұрын
By watching a video in which i'm not understanding any single word
@DisfigurmentOfUs
@DisfigurmentOfUs 9 жыл бұрын
So the only benefit from purity is easy concurrency?
@lucassaldyt3227
@lucassaldyt3227 9 жыл бұрын
+Pavel V. Also a lack of run-time errors, less complex code, faster production times etc.
@michaelwayneterry
@michaelwayneterry 8 жыл бұрын
+Marethyu Sky This is all true, unless your system is required to have side-effects.
@deadmarshal
@deadmarshal Жыл бұрын
Clean > Haskell
@1videoshow
@1videoshow 9 жыл бұрын
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.
@1videoshow
@1videoshow 9 жыл бұрын
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.
@osmarpixuri
@osmarpixuri 9 жыл бұрын
1videoshow java 8 has it too.
@bingloveskoki
@bingloveskoki 8 жыл бұрын
These Optionals are just syntactic sugar for Haskells Maybe Type: enum Maybe { case Just(T) case Nothing }
@SMOKE3104
@SMOKE3104 5 жыл бұрын
Nirvana.equal("Rust")
@SudeepMakwana
@SudeepMakwana 11 жыл бұрын
agreed 100 % haha
@ochgottnochma
@ochgottnochma 10 жыл бұрын
Fight Extremism, Boycot Functional Programmers!
@insertoyouroemail
@insertoyouroemail 9 жыл бұрын
ochgottnochma Functional Programming Master Race!
@crimsun7186
@crimsun7186 9 жыл бұрын
+ochgottnochma I'd rather boycott JVM based languages.
9 жыл бұрын
Why he just uses this kind of t shirt?
@1videoshow
@1videoshow 9 жыл бұрын
Joao Vitor Its a hippy shirt ;)
@binshuo
@binshuo 9 жыл бұрын
+João Vitor R Neto I've never seen Eric Meijer wear a shirt with less than 4 colors in any of his videos.
@xybersurfer
@xybersurfer 10 жыл бұрын
this explanation is flawed
@eudisd
@eudisd 4 жыл бұрын
Please don't wear that shirt again
@humble_integrity
@humble_integrity 4 жыл бұрын
the interviewer is annoying. i wonder how erik was so calm in his explanations
@tinkeringengr
@tinkeringengr 10 жыл бұрын
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.
@tinkeringengr
@tinkeringengr 10 жыл бұрын
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?
@XemSmex
@XemSmex 10 жыл бұрын
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.
@jebberjeb
@jebberjeb 10 жыл бұрын
XemsDoom Uh, are you implying en.wikipedia.org/wiki/Erik_Meijer_(computer_scientist) isn't an authority in the field of programming languages?
@brenthagany2008
@brenthagany2008 10 жыл бұрын
It's almost as if the entire internet isn't continually recreated to specifically meet your specific momentary needs! Unconscionable!
@tinkeringengr
@tinkeringengr 9 жыл бұрын
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.
Brian Beckman: Don't fear the Monad
1:07:10
jasonofthel33t
Рет қаралды 402 М.
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
What is a Monad? - Computerphile
21:50
Computerphile
Рет қаралды 610 М.
Why Isn't Functional Programming the Norm? - Richard Feldman
46:09
The Return of Procedural Programming - Richard Feldman
52:53
ChariotSolutions
Рет қаралды 43 М.
C++ vs Rust: which is faster?
21:15
fasterthanlime
Рет қаралды 407 М.
React 2014 : Erik Meijer  - What does it mean to be Reactive?
46:39
React Conference
Рет қаралды 87 М.
All Rust features explained
21:30
Let's Get Rusty
Рет қаралды 326 М.
Robert C  Martin -  Functional Programming; What? Why? When?
58:27
Functional Programming & Haskell - Computerphile
9:19
Computerphile
Рет қаралды 674 М.