{"id":15793266,"url":"https://github.com/julianpasquale/ruby-functional-programming","last_synced_at":"2025-07-10T22:10:04.828Z","repository":{"id":128984927,"uuid":"536595596","full_name":"JulianPasquale/ruby-functional-programming","owner":"JulianPasquale","description":"This repository includes the slide deck and code examples for my presentation about Functional programming in Ruby","archived":false,"fork":false,"pushed_at":"2023-02-02T20:28:25.000Z","size":50683,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-11T23:33:07.520Z","etag":null,"topics":["functional","functional-programming","ruby"],"latest_commit_sha":null,"homepage":"https://julianpasquale.github.io/ruby-functional-programming/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JulianPasquale.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-14T13:39:44.000Z","updated_at":"2023-01-18T06:47:15.000Z","dependencies_parsed_at":"2023-03-21T01:02:42.761Z","dependency_job_id":null,"html_url":"https://github.com/JulianPasquale/ruby-functional-programming","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JulianPasquale/ruby-functional-programming","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulianPasquale%2Fruby-functional-programming","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulianPasquale%2Fruby-functional-programming/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulianPasquale%2Fruby-functional-programming/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulianPasquale%2Fruby-functional-programming/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JulianPasquale","download_url":"https://codeload.github.com/JulianPasquale/ruby-functional-programming/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulianPasquale%2Fruby-functional-programming/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264675145,"owners_count":23647945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["functional","functional-programming","ruby"],"created_at":"2024-10-04T23:10:22.976Z","updated_at":"2025-07-10T22:10:02.804Z","avatar_url":"https://github.com/JulianPasquale.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ruby Functional Programming\n\n## Videos\n- [RubyConf 2019 - The Functional Rubyist by Joe Leo](https://www.youtube.com/watch?v=BV1-Z38ZWQU)\n- [RubyConf 2015 - A Muggle's Guide to Tail Call Optimization in Ruby by Danny Guinther](https://www.youtube.com/watch?v=6Tblgvvit4E)\n- [Object Oriented Programming vs Functional Programming - Continuous Delivery](https://www.youtube.com/watch?v=wyABTfR9UTU)\n- [\"O.O.P. Looks Like Functional Programming When Done Right!\" - Continuous Delivery - Michael Feathers](https://www.youtube.com/watch?v=j71n33A0CkI)\n\n## Articles\n- [Functional programming - Wikipedia](https://en.wikipedia.org/wiki/Functional_programming)\n- [Functional Programming Paradigm - geeksforgeeks](https://www.geeksforgeeks.org/functional-programming-paradigm/)\n- [Functional Programming In Ruby- Ruby guides](https://www.rubyguides.com/2018/01/functional-programming-ruby/)\n- [Functional programming in Ruby - womanonrails](https://womanonrails.com/functional-programming-ruby)\n\n## High order and First class functions\n- [First-class function - Wikipedia](https://en.wikipedia.org/wiki/First-class_function)\n- [Higher-order function - Wikipedia](https://en.wikipedia.org/wiki/Higher-order_function)\n- [The Ultimate Guide to Blocks, Procs \u0026 Lambdas - Jesus Castello](https://www.rubyguides.com/2016/02/ruby-procs-and-lambdas/)\n\n## Function composition\n- [Proc \u003c\u003c and \u003e\u003e - ruby-doc](https://ruby-doc.org/core-2.6/Proc.html#method-i-3E-3E)\n- [Proc#compose and Enumerator#chain - Brandon Weaver](https://medium.com/@baweaver/exploring-ruby-2-6-proc-compose-and-enumerator-chain-49f10e237542)\n\n## Closures\n- [Closures - Mozilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures)\n- [Functional Programming in Ruby — Closures - Brandon Weaver](https://medium.com/@baweaver/functional-programming-in-ruby-closures-ac80547eb40d)\n- [Closures in Ruby - geeksforgeeks](https://www.geeksforgeeks.org/closures-in-ruby/)\n- [Ruby Blocks Simplified - Julianna Roen from Gusto](https://engineering.gusto.com/ruby-blocks-simplified/)\n\n## Curry and partial function execution\n- [Proc#curry - ruby-doc](https://ruby-doc.org/core-2.6/Proc.html#method-i-curry)\n- [Partial Application and Currying - riptutorialr](https://riptutorial.com/ruby/example/27063/partial-application-and-currying)\n\n## Referencial transparency\n- [Referential transparency - Wikipedia](https://en.wikipedia.org/wiki/Referential_transparency)\n- [I/O in pure functions - Wikipedia](https://en.wikipedia.org/wiki/Pure_function#I/O_in_pure_functions)\n- [I/O monad (Haskell) - Wikipedia](https://en.wikipedia.org/wiki/Monad_(functional_programming)#IO_monad)\n- [Pure Functions and I/O - Alvin Alexander](https://alvinalexander.com/scala/fp-book/pure-functions-and-io-input-output/)\n- [Immutable Enumerators with Tom Stuart](https://graceful.dev/courses/the-freebies/modules/functional-programming/topic/episode-263-immutable-enumerators/)\n\n## Recursion\n- [Tail Call Optimization in Ruby - Nithin Bekal](https://nithinbekal.com/posts/ruby-tco/)\n\n## Lazy evaluation\n- [Infinite Sequences in Ruby - Ross Kaffenberger](https://rossta.net/blog/infinite-sequences-in-ruby.html)\n- [How Lazy Evaluation Works in Ruby - Gernot Gradwohl](https://betterprogramming.pub/how-lazy-evaluation-works-in-ruby-a90237e99ac3)\n- [Enumerator - ruby-doc](https://ruby-doc.org/core-2.6/Enumerator.html)\n- [Enumerator::Lazy - ruby-doc](https://ruby-doc.org/core-2.6/Enumerator/Lazy.html)\n\n## Extra\n- [dry-monads](https://dry-rb.org/gems/dry-monads/1.3/)\n- [Pattern Matching](https://docs.ruby-lang.org/en/3.0/syntax/pattern_matching_rdoc.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulianpasquale%2Fruby-functional-programming","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjulianpasquale%2Fruby-functional-programming","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulianpasquale%2Fruby-functional-programming/lists"}