Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/julianpasquale/ruby-functional-programming

This repository includes the slide deck and code examples for my presentation about Functional programming in Ruby
https://github.com/julianpasquale/ruby-functional-programming

functional functional-programming ruby

Last synced: 21 days ago
JSON representation

This repository includes the slide deck and code examples for my presentation about Functional programming in Ruby

Awesome Lists containing this project

README

        

# Ruby Functional Programming

## Videos
- [RubyConf 2019 - The Functional Rubyist by Joe Leo](https://www.youtube.com/watch?v=BV1-Z38ZWQU)
- [RubyConf 2015 - A Muggle's Guide to Tail Call Optimization in Ruby by Danny Guinther](https://www.youtube.com/watch?v=6Tblgvvit4E)
- [Object Oriented Programming vs Functional Programming - Continuous Delivery](https://www.youtube.com/watch?v=wyABTfR9UTU)
- ["O.O.P. Looks Like Functional Programming When Done Right!" - Continuous Delivery - Michael Feathers](https://www.youtube.com/watch?v=j71n33A0CkI)

## Articles
- [Functional programming - Wikipedia](https://en.wikipedia.org/wiki/Functional_programming)
- [Functional Programming Paradigm - geeksforgeeks](https://www.geeksforgeeks.org/functional-programming-paradigm/)
- [Functional Programming In Ruby- Ruby guides](https://www.rubyguides.com/2018/01/functional-programming-ruby/)
- [Functional programming in Ruby - womanonrails](https://womanonrails.com/functional-programming-ruby)

## High order and First class functions
- [First-class function - Wikipedia](https://en.wikipedia.org/wiki/First-class_function)
- [Higher-order function - Wikipedia](https://en.wikipedia.org/wiki/Higher-order_function)
- [The Ultimate Guide to Blocks, Procs & Lambdas - Jesus Castello](https://www.rubyguides.com/2016/02/ruby-procs-and-lambdas/)

## Function composition
- [Proc << and >> - ruby-doc](https://ruby-doc.org/core-2.6/Proc.html#method-i-3E-3E)
- [Proc#compose and Enumerator#chain - Brandon Weaver](https://medium.com/@baweaver/exploring-ruby-2-6-proc-compose-and-enumerator-chain-49f10e237542)

## Closures
- [Closures - Mozilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures)
- [Functional Programming in Ruby — Closures - Brandon Weaver](https://medium.com/@baweaver/functional-programming-in-ruby-closures-ac80547eb40d)
- [Closures in Ruby - geeksforgeeks](https://www.geeksforgeeks.org/closures-in-ruby/)
- [Ruby Blocks Simplified - Julianna Roen from Gusto](https://engineering.gusto.com/ruby-blocks-simplified/)

## Curry and partial function execution
- [Proc#curry - ruby-doc](https://ruby-doc.org/core-2.6/Proc.html#method-i-curry)
- [Partial Application and Currying - riptutorialr](https://riptutorial.com/ruby/example/27063/partial-application-and-currying)

## Referencial transparency
- [Referential transparency - Wikipedia](https://en.wikipedia.org/wiki/Referential_transparency)
- [I/O in pure functions - Wikipedia](https://en.wikipedia.org/wiki/Pure_function#I/O_in_pure_functions)
- [I/O monad (Haskell) - Wikipedia](https://en.wikipedia.org/wiki/Monad_(functional_programming)#IO_monad)
- [Pure Functions and I/O - Alvin Alexander](https://alvinalexander.com/scala/fp-book/pure-functions-and-io-input-output/)
- [Immutable Enumerators with Tom Stuart](https://graceful.dev/courses/the-freebies/modules/functional-programming/topic/episode-263-immutable-enumerators/)

## Recursion
- [Tail Call Optimization in Ruby - Nithin Bekal](https://nithinbekal.com/posts/ruby-tco/)

## Lazy evaluation
- [Infinite Sequences in Ruby - Ross Kaffenberger](https://rossta.net/blog/infinite-sequences-in-ruby.html)
- [How Lazy Evaluation Works in Ruby - Gernot Gradwohl](https://betterprogramming.pub/how-lazy-evaluation-works-in-ruby-a90237e99ac3)
- [Enumerator - ruby-doc](https://ruby-doc.org/core-2.6/Enumerator.html)
- [Enumerator::Lazy - ruby-doc](https://ruby-doc.org/core-2.6/Enumerator/Lazy.html)

## Extra
- [dry-monads](https://dry-rb.org/gems/dry-monads/1.3/)
- [Pattern Matching](https://docs.ruby-lang.org/en/3.0/syntax/pattern_matching_rdoc.html)