Fun never stops. Introduction to Haskell Programming language by Paul Szulc

Поделиться
HTML-код
  • Опубликовано: 15 сен 2024
  • What is functional programming? No assignment statements, no variables, once given a value never change, no side-effects at all. “The functional programmer sounds rather like a mediæval monk, denying himself the pleasures of life in the hope that it will make him virtuous.”.
    But there must be something to it, as there are languages which allow only this kind of approach to software design. Can something useful can really be done in this paradigm?
    I will show you a language develop in the late 80s called Haskell. We will explore its syntax as well as philosophy behind its creation. Why would you want to learn Haskell? Some say it will make you a better developer, triggering ability to look at software problems with different approach. Is it true? You have to see it for yourself.

Комментарии • 42

  • @hijarian
    @hijarian 4 года назад +9

    When I first learned Haskell several years ago, 13:50 was the most world-view-shattering moment for me. Partial and curried functions was a completely surprise alien tech for me then. :D

  • @stupid4President
    @stupid4President 7 месяцев назад

    Great presentation! very clearly explained.

  • @GopinathSadasivam
    @GopinathSadasivam 6 лет назад +21

    48:24 quick sort followed by fizzbuzz = mindblown!
    Thanks for this inspiration to learn Haskell!

  • @sorinrusu5311
    @sorinrusu5311 5 лет назад +6

    EPIC! Best intro to haskell I've ever seen!

  • @DanielWillen
    @DanielWillen 4 года назад +3

    I really wished that guy hadn't asked about pattern matching infinite lists, people come with the strangest questions at what's mostly an introduction. Presenter needed more time to go through the more advanced concepts. By the way, check out Tsoding on youtube, he does a lot of crazy stuff with Haskell and you can learn a lot from him.

  • @rodelias9378
    @rodelias9378 2 года назад +1

    Awesome talk by an awesome speaker. Thanks a lot!!

  • @ankit8268
    @ankit8268 8 месяцев назад

    you are amazing, just started learning haskell and this was very helpfull

  • @mikelezhnin8601
    @mikelezhnin8601 6 лет назад +23

    Just a few comments:
    1) every intro to a programming language should have 'how to write comments' as the very first thing. Btw in Haskell you can use -- to comment the rest of the line.
    2) for those coming from OOP it may be a good idea to call 'class types' interfaces. Because this is what they are, essentially.
    3) one more error in slides that was unnoticed: at 50:55 it should be 'take 16 fizzbuzz' and not 'take 16 pattern'.

  • @klokibril
    @klokibril 3 года назад +1

    I am far from able to program in Haskell, but the composition just makes so much sense...

  • @sanchopanza271
    @sanchopanza271 6 лет назад +8

    Maybe somebody noted that at 37:06, isn't needed Num a, I mean could be of any type and must to be member of some type class.
    Surely this error is done, to the 1 + , part of its definition, but the + isn't applied on members of the input list,
    it is applied to the list tail length.
    So signature should be:
    length :: [a] -> Int

  • @ChristopherOkhravi
    @ChristopherOkhravi 6 лет назад

    Great, dense talk. Thanks!

  • @shouvi
    @shouvi 3 года назад

    great introduction! Thank you 🙏

  • @silverlane9181
    @silverlane9181 6 лет назад +2

    "Pure Heaven" - I love it.

  • @philippederome2434
    @philippederome2434 4 года назад +3

    10:34 it should read :set +t as opposed to +set :t

  • @adelarsq
    @adelarsq 8 лет назад +5

    so little time! give more! =)

  • @oanimashaun
    @oanimashaun 4 года назад

    Good intro to Haskell.

  • @wikopl
    @wikopl 6 лет назад +4

    Interesting though presentation time was not utilised properly. More advanced structures shown at glance only due to lack of time, which was wasted earlier.

  • @andrewgrishanov7453
    @andrewgrishanov7453 6 лет назад

    Very informative!

  • @leonniceday6807
    @leonniceday6807 6 лет назад

    good teacher

  • @zdeezy420
    @zdeezy420 6 лет назад +3

    Exactly what kinda final product can u make? Like games websites etc?

    • @borekworek69
      @borekworek69 5 лет назад +1

      It's mainly used in pure algorithms

    • @dupersuper1000
      @dupersuper1000 4 года назад +6

      You can do just about anything you want with Haskell. You could write games, web servers, desktop applications, etc. Games are difficult with pure functional languages, since you often need to compute values at a rapid rate, and if you can never mutate a reference, then you could end up with a very high memory allocation rate, and garbage collection could slow down your program. So you may have to do some nasty things like using mutable data structures, at least for performance-critical sections of the code.

  • @d1namis
    @d1namis 8 лет назад +27

    This introduction make me feel like Haskell is evolution of Brainfuck.

  • @zdeezy420
    @zdeezy420 6 лет назад

    What can do to understand this?

  • @openroomxyz
    @openroomxyz 4 года назад

    What confuses me is when i look something about Haskell or Lips i never see some real world Application, there is never a high end 3d game created with or some software for video processing. It seems very academic, this bothers me if is learning Haskell or Lisp a meaningful decision. Sure it good to learn new things, but saying it changes your way of thinking does not seem enough it’s non concrete will i make a game in one month instead of a year? Will i make projects that take a year in a month or less what kind of things.

    • @dougrudolph5400
      @dougrudolph5400 3 года назад +3

      I have the same feeling with haskell, but I like to think the issue with the lack of flashy projects for haskell is a chicken and the egg problem. People are more inspired to use a tool if they can see interesting end results, but haskell is a big agenda language, and thus a lot of new big ideas will make you less productive while trying to build something. At the end of the day, a lot of small and big companies care most about productivity. Until haskell is more popular, that's just the way it's going to be. But I also like to think we are in a transition period in the programming language space. The up and coming big languages like rust and swift borrow a few big ideas from haskell, giving a wider audience access to these big haskell like concepts. It may take a few iterations of new programming languages for haskell to get popular, but I think large group of people will end up settling for a language like haskell once these programming language features become more main stream.
      Also to inspire you to pick up haskell - here are some cool projects:
      Animation library written in haskell: reanimate.github.io/
      A blog post about a game wirtten in haskell: jxv.io/blog/2018-02-28-A-Game-in-Haskell.html
      Tetris in haskell: github.com/hauxir/haskell-tetris
      3D graphics written in haskell: lambdacube3d.com/
      It's not that haskell cant do this stuff, it's just no one is doing it. Be the change you want to see! Cheers

    • @openroomxyz
      @openroomxyz 3 года назад

      @@dougrudolph5400 Thanks a lot for this comment.

  • @mbaderoen
    @mbaderoen 7 лет назад +5

    *heavy breathing*

  • @sharperguy7310
    @sharperguy7310 4 года назад

    University of Glasgow whoop whoop

  • @0xOrganix
    @0xOrganix 6 лет назад

    dammmed TY

  • @gavinschuette9826
    @gavinschuette9826 5 лет назад

    cool langs are lisp prolog hakell smalltalk gnoga.com/ada forth occam-pi maybe ATS

  • @gavinschuette9826
    @gavinschuette9826 5 лет назад +1

    burn larry ellison for tax parsite regulation theft treason

  • @gavinschuette9826
    @gavinschuette9826 5 лет назад +1

    www.happstack.com WIN trump2020!!

  • @abdulqayyumhafiz
    @abdulqayyumhafiz 6 лет назад

    Looks like haskell is inspired from SQL?

    • @dougrudolph5400
      @dougrudolph5400 3 года назад

      Funny enough, it's the opposite way around. Haskell is considered a general purpose programming language, while languages like SQL take a couple simple ideas from languages like Haskell to build these hyper focused language. Languages like SQL , ones that are designed to solve a very specific problem (such as getting data from a database), are called domain specific languages, or DSLs. The expressiveness that you see in both Haskell and SQL are used to build other DSLs like LINQ. LINQ is probably the most famous domain specific language outside SQL and built directly into C#. There is a great talk about building LINQ from Brian Beckmann and how it's built from concepts used in the haskell compiler. On top of this, Haskell is a great language to write DSLs and even large scale compilers due to exact thing you pointed out here

  • @zauroa9904
    @zauroa9904 2 года назад

    wort programming paradigm ever fonctional shall not exist its horribly hard got a F

  • @bocckoka
    @bocckoka 7 лет назад +4

    parroting 'no side effects' is stupid. the type system ensures that side effects are handled properly at compile time.