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
Great presentation. Thanks Mr. Craig Maloney. 🙏
You are very welcome. Thank you.
I never pressed a new born out of myself watching a presentation on youtube, but you nailed it brother
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!
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.
Thank you!
Beautiful Racket is also an amazing Resource
approx @6:00 "It's not backtack, I'm not touching backtack..." my eyes are in tears of laughing. Best Regards
Enjoyed your presentation and impressed by the way you respond to yt comments.
Thank you. :)
That's an amazing presentation!
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.
32:39 you're welcome
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.
Great talk!
Thank you! :)
10:20 (Strings vs. Symbol: For strings I get eq? #true for foo and bar too (in DrRacket and Racket v7.2).
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. :)
Racket has complex numbers as a fundamental Number datatype so having a quadratic equation solver shouldn't be so bad
Where did he get such awesome illustrations?
Those are available from the webcomic "Pepper&Carrot", available here: peppercarrot.com
Thanks a lot!
Could you upload the talk contents somewhere for us to practice?
The link is here: github.com/craigmaloney/scheme_guile_racket
2.0 is an integer, but it's not exact. Huh?
9:18 "It's not as confusing" :-(
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.
anyone know the anime illustrations/stills?
Pepper & Carrot is the answer it seems - looks charming
They're from the comic "Pepper&Carrot" (peppercarrot.com) which you can find a link on the first slide. :)
great presentation btw
@@rossgeography Thank you!
Thank you.
i like to make lists like this ((lambda x x) 3 4 5) but I'm not sure whats happening here
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.
It sounds correct like that, but it feels like magic. How do you plan on checking it?
(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 )
@@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.