Тёмный

Haskell in 100 Seconds 

Fireship
Подписаться 3,3 млн
Просмотров 867 тыс.
50% 1

Опубликовано:

 

4 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 902   
@MasterGeekMX
@MasterGeekMX 2 года назад
When I learned Haskell at college it felt like if a hardcore Mathematician with zero experience in programming was tasked to design a programming language solely based in the definition of what a programming language is.
@005xelculotlainco
@005xelculotlainco Год назад
Thanks
@stopper0203
@stopper0203 Год назад
Sounds like my kind of language 😎
@_david_mp
@_david_mp Год назад
My lord i've to learn haskell in 3 days for a college exam and came here to see if i could undertand a bit better haskell but this language is... estrange😵🤧🤧
@I_Love_Water
@I_Love_Water Год назад
@@_david_mp Haskell in 3 days???? Like maybe learn C in 3 days actually doable if you put 72 hours in, but you ain't learning Haskell completely in 3 days mate.
@SanderMakes
@SanderMakes Год назад
​@@I_Love_Waterthey never said learn completely. Just completely enough to pass the exam
@EidosX_
@EidosX_ 2 года назад
For the little more advanced users, here is an interpretation of the IO monad that I really liked: If you imagine that you put the state of our entire universe in a record World, then IO could be seen as a World Transformer. Thus, a function with side effects simply maps a state of the World to a new one. For example, putStrLn "Hello World!" takes a World where the screen is blank, and returns a World where "Hello World!" is on the screen :) I find this interpretation beautiful, and it doesn't violate immutability nor does it need side effects
@levibanks7138
@levibanks7138 2 года назад
Yeah that’s a great explanation Bind just takes the result from a monad action and then inputs it to another function
@petrushoc
@petrushoc 2 года назад
IO a ~ (Real World) ->(Real World, a)
@TheMR-777
@TheMR-777 2 года назад
You are creating Branches in *MULTIVERSE* mate! :)
@SimGunther
@SimGunther 2 года назад
All this is possible thanks to the runtime that says "I won't do this I/O effect now, but if I were, here's how I'd do it" and never tells the user how the world exactly changed. It would just let the user assume that the world changed in some way to maintain the illusion of "purely functional code" that is somehow useful...
@TheMR-777
@TheMR-777 2 года назад
@@SimGunther You mean, The Laziness?
@ben_sch
@ben_sch 2 года назад
I'm learning Haskell in university this semester. It's quite hard to learn but makes you feel like a wizard when it works 🧙‍♂
@joaquinbonifacino6964
@joaquinbonifacino6964 2 года назад
Exactly in the same position, i have my exam tomorrow xd, but then you rage because the code isn't compiling because of a space..
@dannyisrael
@dannyisrael 2 года назад
I don't feel like a wizard when it works.
@MewPurPur
@MewPurPur 2 года назад
I don't feel like a wizard because it doesn't work :(
@codelightsparkles2403
@codelightsparkles2403 2 года назад
I don't wizard like a feel
@tokiomutex4148
@tokiomutex4148 2 года назад
@@joaquinbonifacino6964 Let the hate flow through you
@EddyVinck
@EddyVinck 2 года назад
Functional programming is so cool. Even if you don't like hardcore functional programming, you can still take parts of it and include it into your own code in for example JavaScript.
@embeddor2230
@embeddor2230 2 года назад
Avoiding mutable state is always desired in all programming paradigms.
@teemukarppinen9462
@teemukarppinen9462 2 года назад
@@embeddor2230 True. Although it's often ignored and not emphasized enough in OO
@marusdod3685
@marusdod3685 2 года назад
@@embeddor2230 yet 90% of functional code uses some sort of state monad.
@insertoyouroemail
@insertoyouroemail 2 года назад
@@marusdod3685 That is not true.
@mekelius
@mekelius 2 года назад
Yes, but it makes me sad that Guido said that python will never have tail calls, so out of the box my two loves can never be brought together :( JS is getting there tho.
@japroz
@japroz 2 года назад
Pls try Elixir in 100 seconds. It's a really nice programming language. Great vid tho
@abh1yan
@abh1yan 2 года назад
Yeah
@menardmaranan9356
@menardmaranan9356 2 года назад
agree
@toesi-chan
@toesi-chan 2 года назад
yes!!!! and you could cover the phoenix framework with it
@kp8752
@kp8752 2 года назад
My fav language to use
@akshattamrakar9071
@akshattamrakar9071 2 года назад
Totally agree
@taylorallred6208
@taylorallred6208 2 года назад
Learning Haskell was one of the most fun experiences of my life. Even if you never use it, learning it will expand your mind and make you a better programmer.
@just-do-halee7375
@just-do-halee7375 2 года назад
Wow that was Rust in my life.. so i should learn Haskell Okay
@hojdog
@hojdog 2 года назад
Is there any particular resource you used to learn Haskell that you can recommend?
@marusdod3685
@marusdod3685 2 года назад
@@just-do-halee7375 Haskell is basically Rust with a way better type system, also comes with a garbage collector so you don't have to worry about the compiler complaining for hours about pointer lifetimes
@leoaso6984
@leoaso6984 2 года назад
@@hojdog "Learn you a Haskell" was a fun read.
@StuWilloughby
@StuWilloughby 2 года назад
@@marusdod3685 Some might say that having a compiler moan until your code is guarenteed correct is better than relying on a non-deterministic GC.
@leoaso6984
@leoaso6984 2 года назад
Learning Haskell is an adventure. You're learning about currying, pattern matching etc. and you're like "this is such a cool language". Then monads just come out of nowhere and hit you like a brick wall.
@deidyomega
@deidyomega 2 года назад
You arent wrong about crying.
@marusdod3685
@marusdod3685 2 года назад
each monad feels like an entirely different programming paradigm
@wingjaigaming8240
@wingjaigaming8240 2 года назад
This is exactly what I feel right now lol. I’m taking a course about functional programming this semester
@orkhepaj
@orkhepaj 2 года назад
monads?
@marusdod3685
@marusdod3685 2 года назад
@@orkhepaj indeed
@MicheleRiva
@MicheleRiva 2 года назад
The problem with Haskell is that once you try it, you never come back
@tokiomutex4148
@tokiomutex4148 2 года назад
All code written in those imperative object oriented languages is brittle and it sucks
@dewigesrek5651
@dewigesrek5651 2 года назад
well, hi
@dewigesrek5651
@dewigesrek5651 2 года назад
i left haskell due to lack of jobs
@yOkay_
@yOkay_ Год назад
@@tokiomutex4148 i love assembly btw
@pubgplayer1720
@pubgplayer1720 Год назад
​@@tokiomutex4148storing state in variables is something I will never forego ever again; haskell sucks balls
@Blazeking636
@Blazeking636 2 года назад
I like these super quick breakdowns of the language and how to get started. Fantastic series thank you for making it
@arhamaneeq1323
@arhamaneeq1323 2 года назад
Okay, you've gottttt to do APL now. That wonderfully fascinating language deserves your (and our) attention.
@fckngcheetah
@fckngcheetah 2 года назад
no god please no
@ransomecode
@ransomecode 2 года назад
I would probably give you a hug right now! Thank you for introducing Haskell to the community; 😊
@giuco884
@giuco884 2 года назад
Seeing you got into functional programming maybe do a Prolog or Lisp in 100 seconds :)). I'm currently studying them in college and I found them a really nice eye opener for functional programming.
@brucewayne2480
@brucewayne2480 2 года назад
There is also OCaml
@begejekan1244
@begejekan1244 2 года назад
Isn't Prolog declarative programming though?
@dannyisrael
@dannyisrael 2 года назад
I think the main thing is that Prolog is relational/logical, it basically fills in the gap with everything that is true. X + 2 = 4 X = 2 or, validCourses(CS, X). X = a valid course, press ; for the next result. You probably knew that though.
@JeyPeyy
@JeyPeyy 2 года назад
@@begejekan1244 functional programming is a form of declarative programming. But prolog is usually considered a logic programming language, which is another form of declarative programming.
@Nolkaloid
@Nolkaloid 2 года назад
God please, not prolog x)
@yan-amar
@yan-amar 2 года назад
Please do Prolog next ! :) It's sufficiently different from the others to deserve its place. And more on Haskell would be cool too IMO.
@randomizednamme
@randomizednamme 2 года назад
Prolog broke my brain way more than Haskell
@Daniel_WR_Hart
@Daniel_WR_Hart Год назад
Pretty underrated language. I had to learn it a bit for an AI course, but it can be kind of fun for doing basic LeetCode-style questions. It would probably be more fun if I actually learned the difference between the 5 different ways to assign/bind/compare
@hansisbrucker813
@hansisbrucker813 Год назад
What made Prolog click for me was strangely enough learning Erlang as the syntax is inspired by Prolog, but slightly easier.
@atava85
@atava85 Год назад
There's nothing quite like Prolog (in all the good senses).
@gaius_enceladus
@gaius_enceladus 2 года назад
I've only played with Haskell a little bit but the lib that blows me away is Parsec (parsing library). Being able to write interpreters in code that looks just like the BNF grammar sounds awesome! ( I haven't written one myself yet but have seen small examples.)
@mskiptr
@mskiptr 2 года назад
Oh, and the best part is Hoogle! If I don't know what function I need but I know what it would need to do, I can roughly describe it by writing it's type (what it should take and what it needs to give me) and I'll get all the functiona that match, (usually only a few, because the types are pretty specific). Of course searching by name works too
@Bratjuuc
@Bratjuuc 2 года назад
Hoogle rocks!
@sachamorgese7280
@sachamorgese7280 2 года назад
I am afraid to try Haskell cause I might become a functional nazi and refuse to write any code with side-effects
@tokiomutex4148
@tokiomutex4148 2 года назад
You'll refuse to write code with side effects that aren't wrapped into monads
@okk2094
@okk2094 2 года назад
me_irl
@deidyomega
@deidyomega 2 года назад
@@tokiomutex4148 Or maybe he's correct, no side effects at all, and then he just doesn't write code :D
@randomizednamme
@randomizednamme 2 года назад
A program with 0 side effects just heats up the CPU, it’s about isolating side effects in your source code.
@lawrencedoliveiro9104
@lawrencedoliveiro9104 2 года назад
That would be a side-effect ...
@NikiHerl
@NikiHerl 2 года назад
I am biased, being a tutor for functional programming/Haskell at uni, but... I believe the functional and "immutable by default" paradigm is crucial for going towards bug-free and reusable (re-combinable) code. Yes, it restricts code in certain ways (e.g. no "x = x + 1"), but these restrictions are extremely sensible and they allow a) the programmer to think more clearly (mathematically) and b) the compiler/runtime system to make powerful checks, guarantees and optimizations. For those wondering how incrementing a value a ("x = x + 1") would work in Haskell: You just introduce a new+different name for the new+different value - e.g. "y = x + 1"
@callyral
@callyral 9 месяцев назад
haskell is making me love math why must it do this to me
@evertonc1448
@evertonc1448 2 года назад
Well, since you set foot in prohibited grounds and decided to scare the normies, now you have no excuse to not make a video about APL.
@Fireship
@Fireship 2 года назад
We'll get there eventually...
@sebastiangudino9377
@sebastiangudino9377 2 года назад
YES!!!!! Nothing better to get in to programing that a language you literalt can't type with your keyboard. Let's get this ball rolling
@arhamaneeq1323
@arhamaneeq1323 2 года назад
@@sebastiangudino9377 It's not like our modern OSs can't switch keyboard layouts on the fly. It takes very little time to get used to it.
@sebastiangudino9377
@sebastiangudino9377 2 года назад
@@arhamaneeq1323 I mean, i program in dyalog in my free time. I know it's not that big of a deal in practice. But would say that at least for me it did took a long time to get used to it. You can't just throw all this absurd (intuitive one you know then but totally arbitrary when you start) symbols at me and expect me to just start writing code normally. The learning curve of APL is a little bit absurd. And again, i say this a someone who loves that stupid language
@kaiserouo
@kaiserouo 2 года назад
@@sebastiangudino9377 I think with the tab function like those in TryAPL, that is not really that much of a problem. Or maybe that's because I was just started to get into the field of APL weirdness...
@mekelius
@mekelius 8 месяцев назад
The trouble with haskell is, first you don't know it and it feels awful. Then, once you learn it well, suddenly every other language feels awful.
@Lin_The_Cat_
@Lin_The_Cat_ Год назад
Haskell is a super interesting language. I mean you can write quicksort in one line using list comprehensions, you can check for list equality with the good ol ==, and so much. I wouldnt say I'd switch to it from my beloved C and C++, but it's definitely a fun toy language that can be really entertaining to use for coding challenges like advent of code for instance.
@kazemanu
@kazemanu 2 года назад
Best thing of learning Haskell is that you will never finish it. This is a thing with every language of course. But with Haskell is special because depending on your skill level and where you are at the learning curve you will use some tricks or others. Is just like doing Pure Maths, you come up with a trick for a specific problem and refine it further and further until you can define a pattern design or kind of a macro that generalises and then all of a sudden you are solving most of the problems of that field with that. Is much more "abstractable" than other languages.
@alessiopetrin549
@alessiopetrin549 2 года назад
Keep up the great content, absolutely love each single video you make!
@juanandrescastillofuenmayo6619
@juanandrescastillofuenmayo6619 2 года назад
I've been waiting weeks for this! Finally, FINALLY!!
@farhansangaji5029
@farhansangaji5029 2 года назад
First time hearing this language, thanks Fireship for introduce me to more new programming language
@DomskiPlays
@DomskiPlays 2 года назад
Took a class on that in uni and it was actually pretty damn cool. Makes you use your brain a lot more!
@hashbrown9245
@hashbrown9245 2 года назад
Finishing up my first semester of cs and we used racket, a similar functional programming language. Happy to see some love for functional programming
@DjLeonSKennedy
@DjLeonSKennedy 2 года назад
Learning Haskell is awesome, it's totally different world of programming
@MYMPSWORLD
@MYMPSWORLD 2 года назад
Great video! Can you make a detailed video about different open source licenses like Apache, GPL, LGPL etc. It will be very helpful to everyone working with open source software and confused about the licenses.
@stoef
@stoef 2 года назад
The images for monads are so perfectly describing my time with Haskell monads
@bratuka
@bratuka 2 года назад
idk if im late to realize but i just noticed that the "LIKE && SUBSCRIBE" at the end of the videos is Jeff's way of saying subscribe only if you like the video.
@bratuka
@bratuka 2 года назад
: if you dont get it, in batch you use the && operator between commands to execute the second one only if the first one is executed successfully.
@StephenGillie
@StephenGillie 2 года назад
Those "Learn You A Haskell" threads on HN always made me feel funny. Now I get it - this is basically the pre-Rust crowd.
@sixdigits
@sixdigits 2 года назад
Hi
@AndreiGeorgescu-j9p
@AndreiGeorgescu-j9p 7 месяцев назад
Rust isn't fp
@JR-mk6ow
@JR-mk6ow 2 года назад
Haskell is not half bad. The infinite list / lazy evaluation is truly amazing. The lack of cycles/ having to use recursion/ foldr, etc is a bit crappy but understandable. Way better than Prolog
@joaquinbonifacino6964
@joaquinbonifacino6964 2 года назад
Exactly for this is why we learned haskell in the second semester in my university, there was a whole subject for this language, graphs, trees, etc..
@EidosX_
@EidosX_ 2 года назад
It would be my favorite language if it didn't have that many stupid gotchas, such as name collisions, data classes not used enough (Text / String fiasco), strings implemented as linked lists..
@JeyPeyy
@JeyPeyy 2 года назад
Being restricted is sometimes very important for learning new ways of thinking when tackling a problem, that's why I think it's important for all coders to do some purely functional programming
@sebastiangudino9377
@sebastiangudino9377 2 года назад
@@EidosX_ What is wrong with string being list in Haskell? I have never faced a problem with that before, i would like to prevent one in the future
@vyole1271
@vyole1271 2 года назад
I personally find foldr, map, and the like to be way cleaner and easier to reason about compared to writing for (let i; i< 100; i ++){} all the time
@CodingPhase
@CodingPhase 2 года назад
good old haskell I remember having to work on a project with this language in 2013
@0bmerlin
@0bmerlin 2 года назад
I think haskells true strength is in its ecosystem. Hoogle and cabal/stack + vscode language integration make everything so much easier. If i need some utility functions or just don't want to implement some algorithm i just use a library by writing single line in my cabal config. I don't think any other language can compete in terms of ecosystem usability.
@devtech4661
@devtech4661 2 года назад
Look into npm, cargo or pip, many options for doing that
@drsubtracto
@drsubtracto 2 года назад
Love your videos man! Your content is indeed fire like your channel logo.
@neesh774
@neesh774 2 года назад
This is really interesting! I recently created a project called Monad to share and discover code snippets, named after a philosophy concept, but it’s cool to see how it’s related to computer science.
@vulture-6
@vulture-6 Год назад
Please share your wisdom with us
@UnspeakableNightmare
@UnspeakableNightmare 2 года назад
Currently doing haskell at my uni. Learnt more in this video than in a few weeks worth of lectures.
@EidosX_
@EidosX_ 2 года назад
Omg he actually did it
@ProgrammingWithRook
@ProgrammingWithRook 10 месяцев назад
As i was laying in bed I took my pen and started jotting stuff down, (please note I have programmed well scripted before) anyways I came up with a conclusion,.... functional programming ( of course i hadn't named mine that) instead i spent the day writing bits of code out, writing how I could compile them it, what else would be needed, looking at equations... to then stumble across a video or two on functional programming LOOL (fml), as I am not a massive programmer, and only used py here and there for silly little projects, So it is a massive world opened up to me especially as I thought i was on to something.. anyways great video.
@kelkiiii
@kelkiiii 2 года назад
These are so perfect for brushing your teeth. I'm never bored and I get to learn a little something. Very glad I found your channel this year. You've taught me a lot!
@vypxl
@vypxl 2 года назад
Yes! finally. I have been waiting for this one! Still, this is the most procedural and non-functional explaination of haskell i've ever heard :)
@notanenglishperson9865
@notanenglishperson9865 2 года назад
Can you suggest any better?
@SEKUNHO
@SEKUNHO 2 года назад
Btw setting up Haskell’s basic tooling is easy these days. Just grab ghcup and you can manage the compiler/LSP server/build tool versions.
@evanhowlett9873
@evanhowlett9873 2 года назад
I imagine they stole this idea from Rust.
@troglodytto
@troglodytto 2 года назад
YAAASSSSSSS. Finally! Been Waiting for this forever.
@carltongordon
@carltongordon 2 года назад
OMG YESS!!!!!!!!!!!!!!!!!!!! thank you!!!!!!!!! lemme grab some popcorn for 100 seconds
@nicholas_obert
@nicholas_obert 2 года назад
These short videos are good to get to know other technologies you may have never thought looking for.
@oscarfal
@oscarfal 2 года назад
scala, elixir, lua, ruby, clojure in 100 seconds would be super interesting
@PerryCodes
@PerryCodes 2 года назад
Here's Lua in 1 second: Use Python instead.
@kirinplays3822
@kirinplays3822 2 года назад
​@@PerryCodes python's too slow to explain it in 1 second
@PahpriosGaming
@PahpriosGaming 2 года назад
Just found this channel a few days ago. The content is AMAZING.
@brettm4179
@brettm4179 2 года назад
Great video. Just so you know Haskell has a string type which is literally just an alias for a list of characters
@gritcrit4385
@gritcrit4385 2 года назад
You can use any other string implementations you want depending on your use case
@Filaxsan
@Filaxsan 2 года назад
Super cool! I've always been fascinated by Haskell!
@yashptel
@yashptel 2 года назад
My brain just crashed.
@hadipawar2539
@hadipawar2539 2 года назад
The only fear I have in life is 100 seconds videos just stopping. Please keep em coming i love em.
@ІлляМіхневич
@ІлляМіхневич 2 года назад
Please do extended version with explanation of typeclasses, they are really awesome
@dyslexicsoap7605
@dyslexicsoap7605 Год назад
I did Haskell for a total of 1 assignment in college and I thought it was really cool. He gave us a definition for a Lambda calculus expression to be stored as a variable, and then step by step got us `to write all the functions necessary to perform a beta reduction on any lambda calculus expression (if I'm remembering right) The definition was something like the form: `Term = Lambda Term | Application Term Term | Var 'x'`, so you could represent any lambda calculus expression with that by replacing "Term" with any of the 3 possible values for Term recursively e.g. Application (Lambda Var 'x') (Application Var 'x' Var 'y') And then we'd just pass that expression into whatever function we're calling it for e.g. beta-reduce (Application (Lambda Var 'x') (Application Var 'x' Var 'y'))
@abh1yan
@abh1yan 2 года назад
"Fireship is friendship"
@xenialxerous2441
@xenialxerous2441 2 года назад
Amazing! You made it sound incredibly simple, thanks!!
@MercyFromOverwatch2
@MercyFromOverwatch2 2 года назад
Jeff is still my favourite tech youtuber!
@marwan.v1511
@marwan.v1511 2 года назад
This was a great video. I liked it , I'll search more about it
@krtirtho
@krtirtho 2 года назад
Holy $hit! Haskell.... Always terrifies me
@sebastiangudino9377
@sebastiangudino9377 2 года назад
Haskell is a delight. But the learning curve is literally a vertical line
@griof
@griof 2 года назад
@@sebastiangudino9377 the learning cliff
@jmecow
@jmecow Год назад
Been learning Haskell for about 2 months now. Shit is maaaadd confusing but it’s really fun once you figure out. Even tho I say that about most languages this one feels even better to get right!
@markschellhas
@markschellhas 2 года назад
The only person ever who’s explained what a monad is in 3 seconds!! 🤯
@MakiC
@MakiC 2 года назад
it's just a monoid in the category of endofunctors, what's the problem?
@mathiasayivor
@mathiasayivor 2 года назад
Love this series
@EvilTim1911
@EvilTim1911 2 года назад
"Oh wow, that's really interesting" *never uses Haskell in my life*
@binchicken9206
@binchicken9206 2 года назад
Awesome, thanks so much! And congratulations on being first video I've ever changed the speed to slower so I can keep up :-D
@0xBerto
@0xBerto 2 года назад
Whaaaaat. Cardano dev time !!! Thanks!
@carltongordon
@carltongordon 2 года назад
Lets Gooo
@_skf_2262
@_skf_2262 Год назад
One of the best paid programming languages right now. Purely functional programming is amazing :)
@TheMR-777
@TheMR-777 2 года назад
This reminds me How Powerfully abstracted the Javascript and Even C++ are!
@zoriiginalx7544
@zoriiginalx7544 28 дней назад
If anything, Haskell has a much more powerful abstraction over languages like JavaScript and especially C++ as those languages mimic more closely to how CPUs execute instructions.
@eddieh7962
@eddieh7962 2 года назад
Man the Haskell type system is so nice. If the program type checks there is a 95% chance that it works.
@socketbyte5348
@socketbyte5348 2 года назад
Functional programming is cool but I feel like you have to be a mathematician to even begin to understand it properly. Imperative programming feels way more logical for me, even if it's more verbose.
@ІлляМіхневич
@ІлляМіхневич 2 года назад
That's because you started with it
@eumim8020
@eumim8020 2 года назад
Wrong choice of words, logic is math so technically functional programming is far more logical lol. But yeah imperative still is more intuitive in nowadays programming culture
@Eagle3302PL
@Eagle3302PL 2 года назад
@@eumim8020 Imperative is intuitive because you just read it from top to bottom and jump around using references, it's like reading through an encyclopedia, intuitive to anyone educated on any level.
@Nikola9517
@Nikola9517 2 года назад
@@eumim8020 logic isn’t math at all. I even had it as a separate subject that was in no way,shape or form related to math
@ryg6434
@ryg6434 2 года назад
I think i'm completly dumb because I didn't see that much of a difference in this video between Functional and Imperative, like he declared variables, he declared a function and then used it ? What is the clear difference between Imperative and Functional I'm confused
@johnnyt.2523
@johnnyt.2523 2 года назад
Ahhh, Haskell and Prolog gave me a really fun semester. :$
@SillyNaughty
@SillyNaughty 2 года назад
So.... What's a monad?
@MarinelCuculj
@MarinelCuculj 2 года назад
Explain please blockchan basic programming in one of your shorts. Great work. I really enjoy your videos :)
@VukasinMilinkovic
@VukasinMilinkovic 2 года назад
Would love even course on this subject!
@0xBerto
@0xBerto 2 года назад
Yeah gonna need a 1 hr video hahah
@Joker22593
@Joker22593 2 года назад
I always have a lot of fun implementing the peano axioms in lisp-like languages. Learn you a Haskel for Great Good!
@JanDalhuysen
@JanDalhuysen 2 года назад
epic 🔥🔥🔥
@mskiptr
@mskiptr 2 года назад
Yep, pretty much this. ^ I'd just add, that *all* the expressions and -variables- named expressions really evaluate to a single value. That includes the `main`! So for example, since both `print 5` and `print "Hello World"` have the type `IO ()`, you can glue them together into one single value and assign it to `main`. In that case, `main` would be an IO value that prints 5 and then prints the Hello World. What's awesome is that these really behave like regular values. You can juggle them around, put them in lists, etc. and they will do absolutely nothing until one shows up in `main`. Only then, the compiler will make it actually do stuff.
@charlesm.2604
@charlesm.2604 2 года назад
I'm always lost when reading the classic functional programming syntaxes. Codebase in F#, R or Haskell confuses me. It's a shame because the value you get from a functional programming architecture is often time very hard to refuse especially on scalable back-ends or IoT projects.
@ultimatedude5686
@ultimatedude5686 2 года назад
It's like learning any other programming language, the syntax comes with experience.
@charlesm.2604
@charlesm.2604 2 года назад
@@ultimatedude5686 Well yeah that's the exact issue I face though, when you come from a long background in C-inspired syntaxes it's harder to adapt. 😕 But I'll learn Haskell next year in my spare time, I'm sure I'll get a good use out of it someday soon.
@russ2001master
@russ2001master 2 года назад
You finally delivered. Bless.
@Xeverous
@Xeverous 2 года назад
Pure functional approach is perfect in it's nature, but in reality you can not have reasonably fast code without state and some imperative approach. Lazy evaluation is not entirely free of cost (checking is not free) and garbage collector... To quote (taken from "direction for ISO C++") "Some of the most powerful design techniques combine aspects of traditional object-oriented programming, generic programming, functional programming, and some traditional imperative techniques.". It's not like I'm a hater of Haskell or something but IMO purely functional approach (as a whole language) is too much aimed at perfection rather than pragmatism. "perfect is the enemy of good". Monads, currying, partial application and higher order functions - all of this is also possible in C++ (probably even more efficient), but the syntax and compile times are horrible. I just wish more languages (especially the C family) supported functional style better. Something like __attribute__((pure/const)) in GCC extensions or consteval keyword in C++20. OOP is not a panacea (looking at you, Java).
@the34zydc.64
@the34zydc.64 2 года назад
I looked this up on youtube a couple days ago to see if you did it, and here we are.
@snipzmattio5887
@snipzmattio5887 2 года назад
Functional programing but taken too far
@benarcher372
@benarcher372 2 года назад
The most beautiful and hard way to write top quality software
@pastuh
@pastuh 2 года назад
need youtube with dislikes for mobile
@NotherPleb
@NotherPleb 2 года назад
Thanks for the heads up, now I know to run when I see this language
@SunDev1
@SunDev1 2 года назад
First 🥇
@Fireship
@Fireship 2 года назад
🥇 Gold!
@DipsankarMaity
@DipsankarMaity 2 года назад
I started with Hashkell, but never really got to cross the learning barrier, this 100 seconds helped me with that.
@Kevin-jc1fx
@Kevin-jc1fx 2 года назад
Haskell looks really scary with it's exotic syntax. Thanks for the good video.
@Zero_Hour
@Zero_Hour 2 года назад
A monad is a monoid in the category of endofunctors
@Alexander-vo4gv
@Alexander-vo4gv 2 года назад
I feel proud to be a Scotsman, the Glasgow Haskell Compiler was made in the University of Glasgow :)
@artgreg2296
@artgreg2296 2 года назад
could have mentionned a big party of cardano ecosystem based on haskell
@VOGTLANDOUTDOORS
@VOGTLANDOUTDOORS 2 года назад
NICELY DONE ! - Data Scientist Mark in North Aurora IL
@gnvageesh6467
@gnvageesh6467 2 года назад
Fun fact: There is a Linux Window Manager called XMONAD which is built with configurations that uses Haskell
@uditkarode
@uditkarode 2 года назад
Not just configurations, it's written in haskell as well
@MrJanus19
@MrJanus19 2 года назад
need scala now
@GuyWhoChad
@GuyWhoChad 2 года назад
It is really an underrated language tbh
@ThePotatoChronicler
@ThePotatoChronicler 2 года назад
Didn't expect this
@ExecuteAutomation
@ExecuteAutomation 2 года назад
Love the animation of Haskel 🤩
@Lefty7788tinkatolli
@Lefty7788tinkatolli 5 месяцев назад
I learned more about Haskell from this than 18 lectures at university.
@tonyresta1170
@tonyresta1170 2 года назад
I stand by the opinion that Haskell has the coolest logo
@coldstar96
@coldstar96 2 года назад
Such a great channel to find out about new things quickly so that I can focus on deciding whether I can utilize it or not in my project. Thanks Fireship!
@jewpcabra666
@jewpcabra666 2 года назад
Hearing the word haskell gives me the heebie jeebies from college, but great descriptor. Love how you just completely moved around monads and typing ;) Functors are like mini monads that also sucked
@luuclucas
@luuclucas Год назад
A function is just any datatype over which you can map a function. iirc the only function you have to implement is fmap :: ( a -> b) -> f a -> f b
Далее
HTML in 100 Seconds
2:34
Просмотров 661 тыс.
Mcdonalds cups and ball trick 🤯🥤 #shorts
00:25
Просмотров 150 тыс.
skibidi toilet multiverse 042 Trailer
01:57
Просмотров 2,3 млн
Lambda Calculus - Computerphile
12:40
Просмотров 1 млн
How to read Haskell code (in 7 minutes)
6:51
Просмотров 64 тыс.
The purest coding style, where bugs are near impossible
10:25
Linus On LLMs For Coding
17:06
Просмотров 282 тыс.
15 futuristic databases you’ve never heard of
8:42
Просмотров 679 тыс.
Programming with Math | The Lambda Calculus
21:48
Просмотров 199 тыс.
10 regrets of experienced programmers
8:16
Просмотров 1,4 млн
I tried 10 code editors
10:28
Просмотров 3 млн