René's URL Explorer Experiment


Title: The Validation Course

Open Graph Title: The Validation Course

Description: The course begins with two lessons on case expressions to ensure a solid foundation. From there, we write three functions for checking that inputs are valid passwords according to the rules of our system. The rest of the lessons iteratively expand on and refactor those functions into a small program that validates usernames and passwords, constructs a User if both are valid inputs, and returns pretty error messages if they are not. Along the way we learn about Monad and Applicative and how they are similar and different and how to use types to rethink our solutions to problems.

Open Graph Description: From case expressions to monads, we write functions for validating input strings, and then iteratively refactor that code to add more types and better error reporting.

X: @typeclasses

direct link

Domain: typeclasses.com

theme-color#289f82
og:imagehttps://static.typeclasses.com/twitter-validation-5fa1691cb8.png
og:typearticle
article:taglens
twitter:cardsummary_large_image

Links:

https://typeclasses.com/
Pricinghttps://typeclasses.com/pricing
Sign uphttps://typeclasses.com/sign-up
Log inhttps://typeclasses.com/log-in
https://typeclasses.com/
Courseshttps://typeclasses.com/courses
https://typeclasses.com/validation/lesson-1
Lesson descriptionshttps://typeclasses.com/validation#lesson-descriptions
Prerequisiteshttps://typeclasses.com/validation#prerequisites
Show noteshttps://typeclasses.com/validation#show-notes
Introduction to case expressionshttps://typeclasses.com/validation/lesson-1
Case expressions practicehttps://typeclasses.com/validation/lesson-2
Validation functionshttps://typeclasses.com/validation/lesson-3
The Maybe Monadhttps://typeclasses.com/validation/lesson-4
Refactoring with Eitherhttps://typeclasses.com/validation/lesson-5
Working with newtypeshttps://typeclasses.com/validation/lesson-6
Introducing Applicativehttps://typeclasses.com/validation/lesson-7
Refactoring with Validationhttps://typeclasses.com/validation/lesson-8
Better error messageshttps://typeclasses.com/validation/lesson-9
Coerciblehttps://typeclasses.com/validation/lesson-10
Generalizing furtherhttps://typeclasses.com/validation/lesson-11
Applicativehttps://typeclasses.com/index/applicative
case expressionhttps://typeclasses.com/index/case-expression
Eitherhttps://typeclasses.com/index/either
Maybehttps://typeclasses.com/index/maybe
Monadhttps://typeclasses.com/index/monad
Validationhttps://typeclasses.com/index/validation
lenshttps://typeclasses.com/index/lens
Subscribe →https://typeclasses.com/subscribe
Lesson 1: Introduction to case expressionshttps://typeclasses.com/validation/lesson-1
Lesson 2: Case expressions practicehttps://typeclasses.com/validation/lesson-2
Lesson 3: Validation functionshttps://typeclasses.com/validation/lesson-3
Lesson 4: The Maybe Monadhttps://typeclasses.com/validation/lesson-4
Lesson 5: Refactoring with Eitherhttps://typeclasses.com/validation/lesson-5
Lesson 6: Working with newtypeshttps://typeclasses.com/validation/lesson-6
Lesson 7: Introducing Applicativehttps://typeclasses.com/validation/lesson-7
Lesson 8: Refactoring with Validationhttps://typeclasses.com/validation/lesson-8
Lesson 9: Better Error Messageshttps://typeclasses.com/validation/lesson-9
Lesson 10: Coerciblehttps://typeclasses.com/validation/lesson-10
Lesson 11: Generalizing furtherhttps://typeclasses.com/validation/lesson-11
The Nesting Instincthttps://argumatronic.com/posts/2018-01-23-the-nesting-instinct.html
the Ficus themes herehttps://protesilaos.com/ficus/
GHCi configurationhttps://typeclasses.com/ghci/config
lesson 4https://typeclasses.com/validation/lesson-4
Join Type Classeshttps://typeclasses.com/pricing
Abouthttps://typeclasses.com/company
Contact ushttps://typeclasses.com/contact
Privacyhttps://typeclasses.com/privacy
https://twitter.com/typeclasses
https://github.com/typeclasses

Viewport: width=device-width, initial-scale=1


URLs of crawlers that visited me.