Scheme, Guile, and Racket: an Introduction by Craig Maloney

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024
  • Scheme, Guile, and Racket: an introduction
    Functional programming concepts are becoming more and more prevalent for developers. But getting started with these languages can be pretty daunting. In this talk Craig Maloney will discuss is recent fascination with learning Scheme, a LISP language designed for learning. We'll start with a simple tutorial of Scheme and show how a few simple commands and concepts can lead to more powerful programs. We'll also talk about how to set up your own Scheme environment using the FSF's Guile environment and the Racket variant of Scheme. Come learn more about this popular variant of LISP and learn more about functional programming.
    Craig Maloney is one of the board members for MUG. He's been programming computers ever since he inserted Atari BASIC into his Atari 400. He can be found over at decafbad.net

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

  • @valentinussofa4135
    @valentinussofa4135 Год назад +3

    Great presentation. Thanks Mr. Craig Maloney. 🙏

    • @MugOrgPage
      @MugOrgPage  Год назад +1

      You are very welcome. Thank you.

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

    I never pressed a new born out of myself watching a presentation on youtube, but you nailed it brother

    • @CraigMaloney
      @CraigMaloney 2 года назад +5

      I'm not sure whether to say "thank you", or "I'm sorry" so I'll just leave it at "Hope you enjoyed it". Thanks!

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

    Awesome presentation!
    Love the amount of passion put into teaching the language and the content is certainly fascinating. I'm a Python main currently learning Scheme in order to deepen my understanding of computer algorithms. Definitely think it's a worthy endeavour as it teaches you how to think algorithmically.

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

    Beautiful Racket is also an amazing Resource

  • @antadefector
    @antadefector 10 месяцев назад +1

    approx @6:00 "It's not backtack, I'm not touching backtack..." my eyes are in tears of laughing. Best Regards

  • @nonstop1241
    @nonstop1241 4 года назад +1

    Enjoyed your presentation and impressed by the way you respond to yt comments.

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

    That's an amazing presentation!

  • @seanspicer516
    @seanspicer516 6 лет назад +7

    fun fact. im a dedicated python. but my first language was racket. id say learning a functional language *is* worth the effort. its different enough to matter and it has enough aesthetic value to ... be valuable.

  • @insertoyouroemail
    @insertoyouroemail 4 года назад +4

    32:39 you're welcome

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

    That's a nice introduction to Scheme. Thanks.
    Would love to see an implementation of Scheme or LISP dedicated to system programming: no garbage collection (thus, manual memory management), etc.

  • @WillFuqua1987
    @WillFuqua1987 7 лет назад +6

    Great talk!

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

    10:20 (Strings vs. Symbol: For strings I get eq? #true for foo and bar too (in DrRacket and Racket v7.2).

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

      it looks like Racket is storing strings differently, so they're pointing to the same location in memory. That's the fun of Scheme - everyone does things slightly differently. :)

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

    Racket has complex numbers as a fundamental Number datatype so having a quadratic equation solver shouldn't be so bad

  • @khoavo5758
    @khoavo5758 6 лет назад +1

    Where did he get such awesome illustrations?

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

      Those are available from the webcomic "Pepper&Carrot", available here: peppercarrot.com

    • @khoavo5758
      @khoavo5758 6 лет назад +1

      Thanks a lot!

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

    Could you upload the talk contents somewhere for us to practice?

    • @CraigMaloney
      @CraigMaloney 5 лет назад +2

      The link is here: github.com/craigmaloney/scheme_guile_racket

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

    2.0 is an integer, but it's not exact. Huh?

    • @ndeoligence8
      @ndeoligence8 3 года назад +2

      9:18 "It's not as confusing" :-(

    • @AlejandroGarcia_elviejo
      @AlejandroGarcia_elviejo Год назад

      2 is an integer.
      2.0 is a float.
      Float numbers are not precise.
      That's in common languages (3 * (1/3) - 1 != 0) .
      Because 1/3 gets translated to a float... And float is neves a precise number... Is just a very good approximation.
      Here scheme is telling you 2.0 is a float and floats are never precise.

  • @rossgeography
    @rossgeography 5 лет назад +2

    anyone know the anime illustrations/stills?

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

      Pepper & Carrot is the answer it seems - looks charming

    • @CraigMaloney
      @CraigMaloney 5 лет назад +3

      They're from the comic "Pepper&Carrot" (peppercarrot.com) which you can find a link on the first slide. :)

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

      great presentation btw

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

      @@rossgeography Thank you!

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

      Thank you.

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

    i like to make lists like this ((lambda x x) 3 4 5) but I'm not sure whats happening here

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

      I think what's happening here is you're taking x, returning x, and making a list out of that. I'll double-check if what I'm saying is correct.

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

      It sounds correct like that, but it feels like magic. How do you plan on checking it?

    • @iacoblucian6458
      @iacoblucian6458 6 лет назад +1

      (lambda (x) x) takes a single argument and returns it unchanged. (lambda x x) takes several arguments and returns them in a list. If you (define f (lambda x x)) , then (f 2 4 6 8) will result in ( 2 4 6 8 )

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

      @@iacoblucian6458 This was new to me since it is not done that way in Common Lisp (&rest keyword achieves the same thing). The difference is that (x) destructures and x just matches the whole argument list. Nice.