{"id":26131940,"url":"https://github.com/balmungsan/scala-functional-programming-tutorial","last_synced_at":"2025-04-13T20:51:22.948Z","repository":{"id":97258956,"uuid":"159890199","full_name":"BalmungSan/scala-functional-programming-tutorial","owner":"BalmungSan","description":"Functional Programming in Scala Tutorial","archived":false,"fork":false,"pushed_at":"2025-03-26T20:25:12.000Z","size":149,"stargazers_count":32,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"2024","last_synced_at":"2025-03-27T11:13:42.202Z","etag":null,"topics":["cats","cats-effect","circe","fp","fs2","functional-programming","http4s","scala","shapeless","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Scala","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/BalmungSan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-11-30T23:37:47.000Z","updated_at":"2025-03-26T20:25:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef52f9a1-fa11-45ed-8009-0d87475e5eaa","html_url":"https://github.com/BalmungSan/scala-functional-programming-tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BalmungSan%2Fscala-functional-programming-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BalmungSan%2Fscala-functional-programming-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BalmungSan%2Fscala-functional-programming-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BalmungSan%2Fscala-functional-programming-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BalmungSan","download_url":"https://codeload.github.com/BalmungSan/scala-functional-programming-tutorial/tar.gz/refs/heads/2024","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248782278,"owners_count":21160716,"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":["cats","cats-effect","circe","fp","fs2","functional-programming","http4s","scala","shapeless","tutorial"],"created_at":"2025-03-10T22:21:24.371Z","updated_at":"2025-04-13T20:51:22.921Z","avatar_url":"https://github.com/BalmungSan.png","language":"Scala","readme":"# Functional Programming in Scala Tutorial\n\nThis repo contains the notes of the functional programming hotbed of research of the _Universidad **EAFIT**_.\nThis is intended to be a simple introductory tutorial to **Scala** in general and to Functional Programming\n_(using the [Typelevel stack](https://typelevel.org/projects))_ in it.\n\n-----\n\n\u003e This is the new `2024` version of this course.\u003cbr\u003e\n\u003e The original version of it can be found on the [`2019` branch](https://github.com/BalmungSan/scala-functional-programming-tutorial/tree/2019).\n\n-----\n\n## Contents\n\n1. `scalaintro` This package contains notes for introduction to the **Scala** Programming Language.\n    1. `Expressions.scala` - Expressions and Values.\n    2. `ClassesMethodsFunctions` - Classes, Methods, and Functions. As well as an introduction to ADTs, `Option`, `Either`, and `Try`.\n    3. `Collections` - Introduction to basic collection types: `List`, `Array`, `ArraySeq`, `Vector`, `Set`, and `Map`.\n    4. `Combinators` - Introduction to common combinators: `sum`, `contains`, `find`, `exists`, `forall`, `filter`, `map`, `collect`, `collectFirst`, `flatMap`, `foldLeft`, `foldRight`, `groupMapReduce`; and implement them for `List` using recursion or other combinators.\n    5. `Typeclasses` - Brief showcase of typeclasses and **cats**.\n\n## Bibliography\n\nThe following is a list of bibliographic material used for this tutorial.\n\n+ Underscore - **Scala with Cats**, Book. https://underscore.io/books/scala-with-cats\n+ Underscore - **Playing type tetris**, Blog. https://underscore.io/blog/posts/2017/04/11/type-tetris.html\n+ Typelevel - **There are more types than classes**. https://typelevel.org/blog/2017/02/13/more-types-than-classes.html\n+ Typelevel - **Cats**, Website. https://typelevel.org/cats\n+ Typelevel - **Cats Effect**, Website. https://typelevel.org/cats-effect\n+ Fabio Labella _(SystemFw)_- **Programs as Values**, Blog. https://systemfw.org/archive.html\n+ Rob Norris _(tpolecat)_ - **Functional Programming with Effects**, Conference talk. https://slideslive.com/38908886/functional-programming-with-effects\n+ Rob Norris _(tpolecat)_ - **Introduction to Typeclasses in Scala**, Blog. https://tpolecat.github.io/2013/10/12/typeclass.html\n+ Gavin Bisesi _(Daenyth)_ - **Intro to Cats-Effect**, Conference talk. https://github.com/daenyth/intro-cats-effect\n+ Ryan Peters _(sloshy)_- **Streams - Your New Favorite Primitive**, Conference talk. https://www.youtube.com/watch?v=BZ8O6T7Y1UE\n+ DevInsideYou - **Monads**, Youtube playlist. https://www.youtube.com/playlist?list=PLJGDHERh23x-9bxGrCbyX-tXJG99XczNC\n+ Philip Schwarz - **The Monad Fact Slide Deck Series**, Slides. https://www.slideshare.net/pjschwarz/the-monad-fact-slide-deck-series-229474965\n+ Scala Lang - **Tour of Scala**, Docs. https://docs.scala-lang.org/tour/tour-of-scala.html\n+ Scala Lang - **Where Does Scala Look For Implicits?**, Docs. https://docs.scala-lang.org/tutorials/FAQ/index.html#where-does-scala-look-for-implicits\n+ Scala Lang - **What’s the difference between methods and functions?**, Docs. https://docs.scala-lang.org/tutorials/FAQ/index.html#whats-the-difference-between-methods-and-functions\n+ Scala Lang - **Scala Standard Library - API**, Scaladoc. https://scala-lang.org/api/3.3_LTS/\n+ Luis Miguel Mejía Suárez _(BalmungSan)_ - **Polymorphism in Scala**. https://gist.github.com/BalmungSan/c19557030181c0dc36533f3de7d7abf4\n+ Scala Community - **A relaxed chat room about all things Scala**, Discord Channel. https://discord.com/invite/scala\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalmungsan%2Fscala-functional-programming-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbalmungsan%2Fscala-functional-programming-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalmungsan%2Fscala-functional-programming-tutorial/lists"}