├── .editorconfig ├── .generate-summary.pl ├── .github └── workflows │ └── build.yml ├── .gitignore ├── CONTRIBUTING-ru.md ├── CONTRIBUTING.md ├── FAQ-ru.md ├── FAQ.md ├── LICENSE ├── README-en.md ├── README.md ├── SUMMARY-en.md ├── SUMMARY.md ├── TRANSLATIONS-ru.md ├── TRANSLATIONS.md ├── appendix_a-ru.md ├── appendix_a.md ├── appendix_b-ru.md ├── appendix_b.md ├── appendix_c-ru.md ├── appendix_c.md ├── book.json ├── ch01-ru.md ├── ch01.md ├── ch02-ru.md ├── ch02.md ├── ch03-ru.md ├── ch03.md ├── ch04-ru.md ├── ch04.md ├── ch05-ru.md ├── ch05.md ├── ch06-ru.md ├── ch06.md ├── ch07-ru.md ├── ch07.md ├── ch08-ru.md ├── ch08.md ├── ch09-ru.md ├── ch09.md ├── ch10-ru.md ├── ch10.md ├── ch11-ru.md ├── ch11.md ├── ch12-ru.md ├── ch12.md ├── ch13-ru.md ├── ch13.md ├── exercises ├── .eslintrc.js ├── README.md ├── ch04 │ ├── exercise_a.js │ ├── exercise_b.js │ ├── exercise_c.js │ ├── solution_a.js │ ├── solution_b.js │ ├── solution_c.js │ ├── validation_a.js │ ├── validation_b.js │ └── validation_c.js ├── ch05 │ ├── exercise_a.js │ ├── exercise_b.js │ ├── exercise_c.js │ ├── solution_a.js │ ├── solution_b.js │ ├── solution_c.js │ ├── validation_a.js │ ├── validation_b.js │ └── validation_c.js ├── ch06 │ ├── index.html │ └── main.js ├── ch08 │ ├── exercise_a.js │ ├── exercise_b.js │ ├── exercise_c.js │ ├── exercise_d.js │ ├── solution_a.js │ ├── solution_b.js │ ├── solution_c.js │ ├── solution_d.js │ ├── validation_a.js │ ├── validation_b.js │ ├── validation_c.js │ └── validation_d.js ├── ch09 │ ├── exercise_a.js │ ├── exercise_b.js │ ├── exercise_c.js │ ├── solution_a.js │ ├── solution_b.js │ ├── solution_c.js │ ├── validation_a.js │ ├── validation_b.js │ └── validation_c.js ├── ch10 │ ├── exercise_a.js │ ├── exercise_b.js │ ├── exercise_c.js │ ├── solution_a.js │ ├── solution_b.js │ ├── solution_c.js │ ├── validation_a.js │ ├── validation_b.js │ └── validation_c.js ├── ch11 │ ├── exercise_a.js │ ├── exercise_b.js │ ├── exercise_c.js │ ├── solution_a.js │ ├── solution_b.js │ ├── solution_c.js │ ├── validation_a.js │ ├── validation_b.js │ └── validation_c.js ├── ch12 │ ├── exercise_a.js │ ├── exercise_b.js │ ├── exercise_c.js │ ├── solution_a.js │ ├── solution_b.js │ ├── solution_c.js │ ├── validation_a.js │ ├── validation_b.js │ └── validation_c.js ├── package.json ├── support.js ├── test-utils.js └── test │ ├── ch04.js │ ├── ch04.solutions.js │ ├── ch05.js │ ├── ch05.solutions.js │ ├── ch08.js │ ├── ch08.solutions.js │ ├── ch09.js │ ├── ch09.solutions.js │ ├── ch10.js │ ├── ch10.solutions.js │ ├── ch11.js │ ├── ch11.solutions.js │ ├── ch12.js │ └── ch12.solutions.js ├── images ├── canopener.jpg ├── cat.png ├── cat_comp1.png ├── cat_comp2.png ├── cat_theory.png ├── cat_theory_ru.png ├── cat_theory_ru.tex ├── catmap.png ├── cats_ss.png ├── chain.jpg ├── console_ss.png ├── cover.png ├── dominoes.jpg ├── fists.jpg ├── fn_graph.png ├── function-sets.gif ├── functormap.png ├── functormapmaybe.png ├── id_to_maybe.png ├── jar.jpg ├── monad_associativity.png ├── natural_transformation.png ├── onion.png ├── relation-not-function.gif ├── ship_in_a_bottle.jpg └── triangle_identity.png ├── package.json ├── styles └── website.css └── support ├── .eslintrc.js ├── .npmignore ├── CHANGELOG.md ├── README.md ├── build-appendixes ├── index.js └── package.json /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/.editorconfig -------------------------------------------------------------------------------- /.generate-summary.pl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/.generate-summary.pl -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/.github/workflows/build.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/.gitignore -------------------------------------------------------------------------------- /CONTRIBUTING-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/CONTRIBUTING-ru.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /FAQ-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/FAQ-ru.md -------------------------------------------------------------------------------- /FAQ.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/FAQ.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/LICENSE -------------------------------------------------------------------------------- /README-en.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/README-en.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/README.md -------------------------------------------------------------------------------- /SUMMARY-en.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/SUMMARY-en.md -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/SUMMARY.md -------------------------------------------------------------------------------- /TRANSLATIONS-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/TRANSLATIONS-ru.md -------------------------------------------------------------------------------- /TRANSLATIONS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/TRANSLATIONS.md -------------------------------------------------------------------------------- /appendix_a-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/appendix_a-ru.md -------------------------------------------------------------------------------- /appendix_a.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/appendix_a.md -------------------------------------------------------------------------------- /appendix_b-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/appendix_b-ru.md -------------------------------------------------------------------------------- /appendix_b.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/appendix_b.md -------------------------------------------------------------------------------- /appendix_c-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/appendix_c-ru.md -------------------------------------------------------------------------------- /appendix_c.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/appendix_c.md -------------------------------------------------------------------------------- /book.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/book.json -------------------------------------------------------------------------------- /ch01-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch01-ru.md -------------------------------------------------------------------------------- /ch01.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch01.md -------------------------------------------------------------------------------- /ch02-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch02-ru.md -------------------------------------------------------------------------------- /ch02.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch02.md -------------------------------------------------------------------------------- /ch03-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch03-ru.md -------------------------------------------------------------------------------- /ch03.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch03.md -------------------------------------------------------------------------------- /ch04-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch04-ru.md -------------------------------------------------------------------------------- /ch04.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch04.md -------------------------------------------------------------------------------- /ch05-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch05-ru.md -------------------------------------------------------------------------------- /ch05.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch05.md -------------------------------------------------------------------------------- /ch06-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch06-ru.md -------------------------------------------------------------------------------- /ch06.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch06.md -------------------------------------------------------------------------------- /ch07-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch07-ru.md -------------------------------------------------------------------------------- /ch07.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch07.md -------------------------------------------------------------------------------- /ch08-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch08-ru.md -------------------------------------------------------------------------------- /ch08.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch08.md -------------------------------------------------------------------------------- /ch09-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch09-ru.md -------------------------------------------------------------------------------- /ch09.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch09.md -------------------------------------------------------------------------------- /ch10-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch10-ru.md -------------------------------------------------------------------------------- /ch10.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch10.md -------------------------------------------------------------------------------- /ch11-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch11-ru.md -------------------------------------------------------------------------------- /ch11.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch11.md -------------------------------------------------------------------------------- /ch12-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch12-ru.md -------------------------------------------------------------------------------- /ch12.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch12.md -------------------------------------------------------------------------------- /ch13-ru.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch13-ru.md -------------------------------------------------------------------------------- /ch13.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/ch13.md -------------------------------------------------------------------------------- /exercises/.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/.eslintrc.js -------------------------------------------------------------------------------- /exercises/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/README.md -------------------------------------------------------------------------------- /exercises/ch04/exercise_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch04/exercise_a.js -------------------------------------------------------------------------------- /exercises/ch04/exercise_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch04/exercise_b.js -------------------------------------------------------------------------------- /exercises/ch04/exercise_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch04/exercise_c.js -------------------------------------------------------------------------------- /exercises/ch04/solution_a.js: -------------------------------------------------------------------------------- 1 | const words = split(' '); 2 | -------------------------------------------------------------------------------- /exercises/ch04/solution_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch04/solution_b.js -------------------------------------------------------------------------------- /exercises/ch04/solution_c.js: -------------------------------------------------------------------------------- 1 | const max = reduce(keepHighest, -Infinity); 2 | -------------------------------------------------------------------------------- /exercises/ch04/validation_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch04/validation_a.js -------------------------------------------------------------------------------- /exercises/ch04/validation_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch04/validation_b.js -------------------------------------------------------------------------------- /exercises/ch04/validation_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch04/validation_c.js -------------------------------------------------------------------------------- /exercises/ch05/exercise_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch05/exercise_a.js -------------------------------------------------------------------------------- /exercises/ch05/exercise_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch05/exercise_b.js -------------------------------------------------------------------------------- /exercises/ch05/exercise_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch05/exercise_c.js -------------------------------------------------------------------------------- /exercises/ch05/solution_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch05/solution_a.js -------------------------------------------------------------------------------- /exercises/ch05/solution_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch05/solution_b.js -------------------------------------------------------------------------------- /exercises/ch05/solution_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch05/solution_c.js -------------------------------------------------------------------------------- /exercises/ch05/validation_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch05/validation_a.js -------------------------------------------------------------------------------- /exercises/ch05/validation_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch05/validation_b.js -------------------------------------------------------------------------------- /exercises/ch05/validation_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch05/validation_c.js -------------------------------------------------------------------------------- /exercises/ch06/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch06/index.html -------------------------------------------------------------------------------- /exercises/ch06/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch06/main.js -------------------------------------------------------------------------------- /exercises/ch08/exercise_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch08/exercise_a.js -------------------------------------------------------------------------------- /exercises/ch08/exercise_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch08/exercise_b.js -------------------------------------------------------------------------------- /exercises/ch08/exercise_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch08/exercise_c.js -------------------------------------------------------------------------------- /exercises/ch08/exercise_d.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch08/exercise_d.js -------------------------------------------------------------------------------- /exercises/ch08/solution_a.js: -------------------------------------------------------------------------------- 1 | const incrF = map(add(1)); 2 | -------------------------------------------------------------------------------- /exercises/ch08/solution_b.js: -------------------------------------------------------------------------------- 1 | const initial = compose(map(head), safeProp('name')); 2 | -------------------------------------------------------------------------------- /exercises/ch08/solution_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch08/solution_c.js -------------------------------------------------------------------------------- /exercises/ch08/solution_d.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch08/solution_d.js -------------------------------------------------------------------------------- /exercises/ch08/validation_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch08/validation_a.js -------------------------------------------------------------------------------- /exercises/ch08/validation_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch08/validation_b.js -------------------------------------------------------------------------------- /exercises/ch08/validation_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch08/validation_c.js -------------------------------------------------------------------------------- /exercises/ch08/validation_d.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch08/validation_d.js -------------------------------------------------------------------------------- /exercises/ch09/exercise_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch09/exercise_a.js -------------------------------------------------------------------------------- /exercises/ch09/exercise_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch09/exercise_b.js -------------------------------------------------------------------------------- /exercises/ch09/exercise_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch09/exercise_c.js -------------------------------------------------------------------------------- /exercises/ch09/solution_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch09/solution_a.js -------------------------------------------------------------------------------- /exercises/ch09/solution_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch09/solution_b.js -------------------------------------------------------------------------------- /exercises/ch09/solution_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch09/solution_c.js -------------------------------------------------------------------------------- /exercises/ch09/validation_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch09/validation_a.js -------------------------------------------------------------------------------- /exercises/ch09/validation_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch09/validation_b.js -------------------------------------------------------------------------------- /exercises/ch09/validation_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch09/validation_c.js -------------------------------------------------------------------------------- /exercises/ch10/exercise_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch10/exercise_a.js -------------------------------------------------------------------------------- /exercises/ch10/exercise_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch10/exercise_b.js -------------------------------------------------------------------------------- /exercises/ch10/exercise_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch10/exercise_c.js -------------------------------------------------------------------------------- /exercises/ch10/solution_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch10/solution_a.js -------------------------------------------------------------------------------- /exercises/ch10/solution_b.js: -------------------------------------------------------------------------------- 1 | const safeAdd = liftA2(add); 2 | -------------------------------------------------------------------------------- /exercises/ch10/solution_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch10/solution_c.js -------------------------------------------------------------------------------- /exercises/ch10/validation_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch10/validation_a.js -------------------------------------------------------------------------------- /exercises/ch10/validation_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch10/validation_b.js -------------------------------------------------------------------------------- /exercises/ch10/validation_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch10/validation_c.js -------------------------------------------------------------------------------- /exercises/ch11/exercise_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch11/exercise_a.js -------------------------------------------------------------------------------- /exercises/ch11/exercise_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch11/exercise_b.js -------------------------------------------------------------------------------- /exercises/ch11/exercise_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch11/exercise_c.js -------------------------------------------------------------------------------- /exercises/ch11/solution_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch11/solution_a.js -------------------------------------------------------------------------------- /exercises/ch11/solution_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch11/solution_b.js -------------------------------------------------------------------------------- /exercises/ch11/solution_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch11/solution_c.js -------------------------------------------------------------------------------- /exercises/ch11/validation_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch11/validation_a.js -------------------------------------------------------------------------------- /exercises/ch11/validation_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch11/validation_b.js -------------------------------------------------------------------------------- /exercises/ch11/validation_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch11/validation_c.js -------------------------------------------------------------------------------- /exercises/ch12/exercise_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch12/exercise_a.js -------------------------------------------------------------------------------- /exercises/ch12/exercise_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch12/exercise_b.js -------------------------------------------------------------------------------- /exercises/ch12/exercise_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch12/exercise_c.js -------------------------------------------------------------------------------- /exercises/ch12/solution_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch12/solution_a.js -------------------------------------------------------------------------------- /exercises/ch12/solution_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch12/solution_b.js -------------------------------------------------------------------------------- /exercises/ch12/solution_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch12/solution_c.js -------------------------------------------------------------------------------- /exercises/ch12/validation_a.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch12/validation_a.js -------------------------------------------------------------------------------- /exercises/ch12/validation_b.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch12/validation_b.js -------------------------------------------------------------------------------- /exercises/ch12/validation_c.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/ch12/validation_c.js -------------------------------------------------------------------------------- /exercises/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/package.json -------------------------------------------------------------------------------- /exercises/support.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/support.js -------------------------------------------------------------------------------- /exercises/test-utils.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test-utils.js -------------------------------------------------------------------------------- /exercises/test/ch04.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch04.js -------------------------------------------------------------------------------- /exercises/test/ch04.solutions.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch04.solutions.js -------------------------------------------------------------------------------- /exercises/test/ch05.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch05.js -------------------------------------------------------------------------------- /exercises/test/ch05.solutions.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch05.solutions.js -------------------------------------------------------------------------------- /exercises/test/ch08.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch08.js -------------------------------------------------------------------------------- /exercises/test/ch08.solutions.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch08.solutions.js -------------------------------------------------------------------------------- /exercises/test/ch09.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch09.js -------------------------------------------------------------------------------- /exercises/test/ch09.solutions.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch09.solutions.js -------------------------------------------------------------------------------- /exercises/test/ch10.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch10.js -------------------------------------------------------------------------------- /exercises/test/ch10.solutions.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch10.solutions.js -------------------------------------------------------------------------------- /exercises/test/ch11.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch11.js -------------------------------------------------------------------------------- /exercises/test/ch11.solutions.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch11.solutions.js -------------------------------------------------------------------------------- /exercises/test/ch12.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch12.js -------------------------------------------------------------------------------- /exercises/test/ch12.solutions.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/exercises/test/ch12.solutions.js -------------------------------------------------------------------------------- /images/canopener.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/canopener.jpg -------------------------------------------------------------------------------- /images/cat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/cat.png -------------------------------------------------------------------------------- /images/cat_comp1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/cat_comp1.png -------------------------------------------------------------------------------- /images/cat_comp2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/cat_comp2.png -------------------------------------------------------------------------------- /images/cat_theory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/cat_theory.png -------------------------------------------------------------------------------- /images/cat_theory_ru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/cat_theory_ru.png -------------------------------------------------------------------------------- /images/cat_theory_ru.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/cat_theory_ru.tex -------------------------------------------------------------------------------- /images/catmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/catmap.png -------------------------------------------------------------------------------- /images/cats_ss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/cats_ss.png -------------------------------------------------------------------------------- /images/chain.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/chain.jpg -------------------------------------------------------------------------------- /images/console_ss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/console_ss.png -------------------------------------------------------------------------------- /images/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/cover.png -------------------------------------------------------------------------------- /images/dominoes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/dominoes.jpg -------------------------------------------------------------------------------- /images/fists.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/fists.jpg -------------------------------------------------------------------------------- /images/fn_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/fn_graph.png -------------------------------------------------------------------------------- /images/function-sets.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/function-sets.gif -------------------------------------------------------------------------------- /images/functormap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/functormap.png -------------------------------------------------------------------------------- /images/functormapmaybe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/functormapmaybe.png -------------------------------------------------------------------------------- /images/id_to_maybe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/id_to_maybe.png -------------------------------------------------------------------------------- /images/jar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/jar.jpg -------------------------------------------------------------------------------- /images/monad_associativity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/monad_associativity.png -------------------------------------------------------------------------------- /images/natural_transformation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/natural_transformation.png -------------------------------------------------------------------------------- /images/onion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/onion.png -------------------------------------------------------------------------------- /images/relation-not-function.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/relation-not-function.gif -------------------------------------------------------------------------------- /images/ship_in_a_bottle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/ship_in_a_bottle.jpg -------------------------------------------------------------------------------- /images/triangle_identity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/images/triangle_identity.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/package.json -------------------------------------------------------------------------------- /styles/website.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/styles/website.css -------------------------------------------------------------------------------- /support/.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/support/.eslintrc.js -------------------------------------------------------------------------------- /support/.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/support/.npmignore -------------------------------------------------------------------------------- /support/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/support/CHANGELOG.md -------------------------------------------------------------------------------- /support/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/support/README.md -------------------------------------------------------------------------------- /support/build-appendixes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/support/build-appendixes -------------------------------------------------------------------------------- /support/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/support/index.js -------------------------------------------------------------------------------- /support/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MostlyAdequate/mostly-adequate-guide-ru/HEAD/support/package.json --------------------------------------------------------------------------------