Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
In OO, assignment is one of our main tools. Most developers learn how to store values in variables shortly after learning "Hello World". By contrast, functional programming makes much less use of assignment and mutation. Instead techniques like function composition, recursion, and anonymous functions are used to produce the same results that OO programmers produce with side effects. Despite being object oriented, Ruby easily accommodates pure functional approaches. This talk will demonstrate how common programming tasks can be accomplished without assignment or mutation. Ruby and Scheme (a Lisp dialect) 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/FG2H/
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 the presentation "A World Without Assignment," Aja Hammerly explores the principles of functional programming contrasted with object-oriented programming (OOP), highlighting how to accomplish programming tasks without using assignment or mutable state. This talk, delivered at the MountainWest RubyConf 2014, underscores the compatibility of Ruby with functional programming techniques, demonstrating that developers can leverage these principles within an OOP context. Key Points Discussed: - **Functional Programming Definition**: The definition includes treating computation as the evaluation of mathematical functions, avoiding mutable state and data. A more practical definition emphasizes the creation of doing functions. - **Significance of Non-Assignment**: The talk particularly focuses on avoiding assignment in programming, which simplifies testing and enhances code readability. - **Advantages of Functional Programming**: - Easier testing due to a known state. - Enhanced concurrency by eliminating mutable state. - Safe reuse of functions across projects. - Brevity of code in functional languages like Scheme and Haskell. - **Ruby and Functional Concepts**: Ruby allows integration of functional programming techniques without deviating from its OOP principles, providing practical examples, such as passing blocks and using methods from Enumerable. - **Introduction to Scheme**: A brief explanation of Scheme as a functional programming language, particularly its prefix notation, function definitions, and recursion techniques were provided. Specific examples include calculating the absolute value and demonstrating recursion using factorials and Fibonacci sequences. - **Complex Problem Solving**: Hammerly tackles a complex problem of making change for a dollar using recursion, illustrating the power of functional programming with concise code implementations. - **Key Resources for Learning**: Recommended resources include "The Little Schemer" and "Structure and Interpretation of Computer Programs," alongside online lectures and events for deeper understanding. Conclusions: - Functional programming can enhance Ruby development through access to functional concepts, making programming tasks more manageable and maintainable. The importance of not using assignment can lead to increased code clarity and efficiency. Hammerly encourages attendees to explore these concepts further and utilize available resources for better comprehension of functional programming.
Suggest modifications
Cancel