Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
By, Aja Hammerly In Ruby, assignment is our primary tool. By contrast, functional programming makes much less use of assignment and mutation. Instead techniques like function composition, recursion, and anonymous functions are used. Despite being OO, Ruby accommodates pure functional approaches. This talk will demonstrate how tasks can be accomplished without assignment. Ruby and Scheme will be used for examples. I'll also discuss some of the great resources available for those interested in digging deeper into functional programming. Help us caption & translate this video! http://amara.org/v/FrUU/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In her talk "A World Without Assignment," presented at RubyConf 2014, Aja Hammerly explores the principles of functional programming within the Ruby programming language. The main theme revolves around the idea of writing programs without using assignment and mutable data structures, contrasting conventional object-oriented practices with functional programming paradigms. She draws inspiration from a prior talk by Jim W. and the influential book "Structure and Interpretation of Computer Programs." Key points discussed in the video include: - **Definition of Functional Programming**: Hammerly describes functional programming as a programming paradigm that treats computation as the evaluation of mathematical functions while avoiding changing state and mutable data. - **Benefits of Functional Programming**: Functional programming simplifies testing and enhances concurrency since it avoids mutable states, making code more predictable and easier to debug. - **Polyglot Programming**: Aja advocates for being a polyglot programmer, using both Ruby and Scheme to demonstrate functional techniques, highlighting the ease of applying functional programming principles in Ruby despite it being primarily object-oriented. - **Using Examples**: Throughout her talk, she provides side-by-side comparisons of Ruby and Scheme code, illustrating foundational concepts like function definitions, recursion, and conditionals. For example, she compares how to define functions and conditionals in both languages, showcasing the structural similarities and differences. - **Recursion and Tail Call Optimization**: Hammerly introduces canonical recursive functions, like factorial and exponentiation, discussing the importance of tail call optimization to prevent stack overflow in recursive calls. - **Problem-Solving with Coins**: To further explore functional programming concepts, she presents a problem involving determining the number of ways to make change for a dollar using different coin denominations, demonstrating recursive strategies to tackle the challenge effectively. In conclusion, Aja emphasizes the importance of immutability and functional paradigms in programming, suggesting that programmers should consider integrating functional techniques into their existing practices. She encourages the audience to explore resources such as "The Little Schemer" and to establish study groups to deepen their understanding of these concepts. The talk ends with Aja expressing her gratitude to the audience and providing encouragement for further exploration in functional programming.
Suggest modifications
Cancel