├── .formatter.exs ├── .gitignore ├── gleam-examples ├── .formatter.exs ├── .gitignore ├── README.md ├── gleam.toml ├── lib │ └── m2_inter_op │ │ └── m21_expr.ex ├── mix.exs ├── mix.lock ├── rebar.config ├── rebar.lock ├── src │ ├── gleam_examples.app.src │ ├── gleam_examples.erl │ ├── m1_syntax │ │ └── m11_expr.gleam │ ├── m2_inter_op │ │ ├── m21_call_gleam_from_elixir.gleam │ │ ├── m22_call_erlang_from_gleam.erl │ │ └── m22_call_erlang_from_gleam.gleam │ └── m3_caveat │ │ ├── m31_curly_braces.gleam │ │ ├── m32_no_type_class.gleam │ │ ├── m34_non_exhaustive_pattern_matching.gleam │ │ └── m35_three_languages.md └── test │ ├── m1_syntax │ └── m11_expr_test.gleam │ ├── m2_inter_op │ ├── m21_call_gleam_from_elixir_test.exs │ └── m22_call_erlang_from_gleam_test.gleam │ └── test_helper.exs ├── monad-from-scratch ├── .formatter.exs ├── .gitignore ├── README.md ├── lib │ ├── 00_expr.ex │ ├── 10_unsafe_calc.ex │ ├── 20_maybe.ex │ ├── 21_maybe_case_calc.ex │ ├── 30_bind.ex │ ├── 31_maybe_bind_calc.ex │ ├── 40_do_notation.ex │ ├── 41_maybe_do_calc.ex │ └── 99_advanced_topics.ex ├── mix.exs ├── mix.lock └── test │ ├── 10_unsafe_calc_test.exs │ ├── 20_maybe_calc_test.exs │ ├── 30_bind_test.exs │ ├── 40_do_notation_test.exs │ └── test_helper.exs ├── rail-from-scratch ├── .formatter.exs ├── .gitignore ├── README.md ├── lib │ ├── 00_expr.ex │ ├── 10_unsafe_calc.ex │ ├── 20_tuple_case_calc.ex │ ├── 21_tuple_with_calc.ex │ ├── 30_bind.ex │ ├── 31_tuple_bind_calc.ex │ ├── 40_do_notation.ex │ ├── 41_tuple_do_calc.ex │ └── 50_rail_calc.ex ├── mix.exs ├── mix.lock └── test │ ├── 10_unsafe_calc_test.exs │ ├── 20_tuple_calc_test.exs │ ├── 30_bind_test.exs │ ├── 40_do_notation_test.exs │ └── test_helper.exs └── witchcraft-examples ├── .formatter.exs ├── .gitignore ├── .iex.exs ├── README.md ├── lib ├── 1_functor │ ├── 1_maybe_either.ex │ └── 2_tree.ex ├── 2_monad │ ├── 00_expr.ex │ ├── 10_unsafe_calc.ex │ ├── 20_tuple_case_calc.ex │ ├── 21_tuple_with_calc.ex │ ├── 30_maybe_case_calc.ex │ ├── 31_maybe_chain_calc.ex │ ├── 32_maybe_op_calc.ex │ ├── 33_maybe_do_calc.ex │ ├── 40_either_calc.ex │ ├── 50_reader_tuple_calc.ex │ ├── 51_reader_either_calc.ex │ ├── 52_reather_calc.ex │ ├── 60_monoid.ex │ ├── 70_writer_calc.ex │ └── 80_state_rw_calc.ex └── 3_exercise │ ├── 90_state_stack_unsafe_calc.ex │ ├── 91_state_stack_safe_calc.ex │ ├── 92_state_tree_labeler.ex │ └── answer.zip ├── mix.exs ├── mix.lock └── test ├── 1_functor ├── 1_maybe_either_test.exs └── 2_tree_test.exs ├── 2_monad ├── 00_expr_test.exs ├── 10_unsafe_calc_test.exs ├── 20_tuple_calc_test.exs ├── 30_maybe_calc_test.exs ├── 40_either_calc_test.exs ├── 50_reader_tuple_calc_test.exs ├── 51_reader_either_calc_test.exs ├── 52_reather_calc_test.exs ├── 60_monoid_test.exs ├── 70_writer_calc_test.exs └── 80_state_rw_calc_test.exs ├── 3_exercise ├── 90_state_stack_unsafe_calc_test.exs ├── 91_state_stack_safe_calc_test.exs └── 92_state_tree_labeler_test.exs └── test_helper.exs /.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/.formatter.exs -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .mix 2 | -------------------------------------------------------------------------------- /gleam-examples/.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/.formatter.exs -------------------------------------------------------------------------------- /gleam-examples/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/.gitignore -------------------------------------------------------------------------------- /gleam-examples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/README.md -------------------------------------------------------------------------------- /gleam-examples/gleam.toml: -------------------------------------------------------------------------------- 1 | name = "gleam_examples" -------------------------------------------------------------------------------- /gleam-examples/lib/m2_inter_op/m21_expr.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/lib/m2_inter_op/m21_expr.ex -------------------------------------------------------------------------------- /gleam-examples/mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/mix.exs -------------------------------------------------------------------------------- /gleam-examples/mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/mix.lock -------------------------------------------------------------------------------- /gleam-examples/rebar.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/rebar.config -------------------------------------------------------------------------------- /gleam-examples/rebar.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/rebar.lock -------------------------------------------------------------------------------- /gleam-examples/src/gleam_examples.app.src: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/src/gleam_examples.app.src -------------------------------------------------------------------------------- /gleam-examples/src/gleam_examples.erl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/src/gleam_examples.erl -------------------------------------------------------------------------------- /gleam-examples/src/m1_syntax/m11_expr.gleam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/src/m1_syntax/m11_expr.gleam -------------------------------------------------------------------------------- /gleam-examples/src/m2_inter_op/m21_call_gleam_from_elixir.gleam: -------------------------------------------------------------------------------- 1 | 2 | // See elixir files under lib/ and test/. 3 | -------------------------------------------------------------------------------- /gleam-examples/src/m2_inter_op/m22_call_erlang_from_gleam.erl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/src/m2_inter_op/m22_call_erlang_from_gleam.erl -------------------------------------------------------------------------------- /gleam-examples/src/m2_inter_op/m22_call_erlang_from_gleam.gleam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/src/m2_inter_op/m22_call_erlang_from_gleam.gleam -------------------------------------------------------------------------------- /gleam-examples/src/m3_caveat/m31_curly_braces.gleam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/src/m3_caveat/m31_curly_braces.gleam -------------------------------------------------------------------------------- /gleam-examples/src/m3_caveat/m32_no_type_class.gleam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/src/m3_caveat/m32_no_type_class.gleam -------------------------------------------------------------------------------- /gleam-examples/src/m3_caveat/m34_non_exhaustive_pattern_matching.gleam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/src/m3_caveat/m34_non_exhaustive_pattern_matching.gleam -------------------------------------------------------------------------------- /gleam-examples/src/m3_caveat/m35_three_languages.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/src/m3_caveat/m35_three_languages.md -------------------------------------------------------------------------------- /gleam-examples/test/m1_syntax/m11_expr_test.gleam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/test/m1_syntax/m11_expr_test.gleam -------------------------------------------------------------------------------- /gleam-examples/test/m2_inter_op/m21_call_gleam_from_elixir_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/test/m2_inter_op/m21_call_gleam_from_elixir_test.exs -------------------------------------------------------------------------------- /gleam-examples/test/m2_inter_op/m22_call_erlang_from_gleam_test.gleam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/gleam-examples/test/m2_inter_op/m22_call_erlang_from_gleam_test.gleam -------------------------------------------------------------------------------- /gleam-examples/test/test_helper.exs: -------------------------------------------------------------------------------- 1 | ExUnit.start() 2 | -------------------------------------------------------------------------------- /monad-from-scratch/.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/.formatter.exs -------------------------------------------------------------------------------- /monad-from-scratch/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/.gitignore -------------------------------------------------------------------------------- /monad-from-scratch/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/README.md -------------------------------------------------------------------------------- /monad-from-scratch/lib/00_expr.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/lib/00_expr.ex -------------------------------------------------------------------------------- /monad-from-scratch/lib/10_unsafe_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/lib/10_unsafe_calc.ex -------------------------------------------------------------------------------- /monad-from-scratch/lib/20_maybe.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/lib/20_maybe.ex -------------------------------------------------------------------------------- /monad-from-scratch/lib/21_maybe_case_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/lib/21_maybe_case_calc.ex -------------------------------------------------------------------------------- /monad-from-scratch/lib/30_bind.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/lib/30_bind.ex -------------------------------------------------------------------------------- /monad-from-scratch/lib/31_maybe_bind_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/lib/31_maybe_bind_calc.ex -------------------------------------------------------------------------------- /monad-from-scratch/lib/40_do_notation.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/lib/40_do_notation.ex -------------------------------------------------------------------------------- /monad-from-scratch/lib/41_maybe_do_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/lib/41_maybe_do_calc.ex -------------------------------------------------------------------------------- /monad-from-scratch/lib/99_advanced_topics.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/lib/99_advanced_topics.ex -------------------------------------------------------------------------------- /monad-from-scratch/mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/mix.exs -------------------------------------------------------------------------------- /monad-from-scratch/mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/mix.lock -------------------------------------------------------------------------------- /monad-from-scratch/test/10_unsafe_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/test/10_unsafe_calc_test.exs -------------------------------------------------------------------------------- /monad-from-scratch/test/20_maybe_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/test/20_maybe_calc_test.exs -------------------------------------------------------------------------------- /monad-from-scratch/test/30_bind_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/test/30_bind_test.exs -------------------------------------------------------------------------------- /monad-from-scratch/test/40_do_notation_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/monad-from-scratch/test/40_do_notation_test.exs -------------------------------------------------------------------------------- /monad-from-scratch/test/test_helper.exs: -------------------------------------------------------------------------------- 1 | ExUnit.start() 2 | -------------------------------------------------------------------------------- /rail-from-scratch/.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/.formatter.exs -------------------------------------------------------------------------------- /rail-from-scratch/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/.gitignore -------------------------------------------------------------------------------- /rail-from-scratch/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/README.md -------------------------------------------------------------------------------- /rail-from-scratch/lib/00_expr.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/lib/00_expr.ex -------------------------------------------------------------------------------- /rail-from-scratch/lib/10_unsafe_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/lib/10_unsafe_calc.ex -------------------------------------------------------------------------------- /rail-from-scratch/lib/20_tuple_case_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/lib/20_tuple_case_calc.ex -------------------------------------------------------------------------------- /rail-from-scratch/lib/21_tuple_with_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/lib/21_tuple_with_calc.ex -------------------------------------------------------------------------------- /rail-from-scratch/lib/30_bind.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/lib/30_bind.ex -------------------------------------------------------------------------------- /rail-from-scratch/lib/31_tuple_bind_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/lib/31_tuple_bind_calc.ex -------------------------------------------------------------------------------- /rail-from-scratch/lib/40_do_notation.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/lib/40_do_notation.ex -------------------------------------------------------------------------------- /rail-from-scratch/lib/41_tuple_do_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/lib/41_tuple_do_calc.ex -------------------------------------------------------------------------------- /rail-from-scratch/lib/50_rail_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/lib/50_rail_calc.ex -------------------------------------------------------------------------------- /rail-from-scratch/mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/mix.exs -------------------------------------------------------------------------------- /rail-from-scratch/mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/mix.lock -------------------------------------------------------------------------------- /rail-from-scratch/test/10_unsafe_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/test/10_unsafe_calc_test.exs -------------------------------------------------------------------------------- /rail-from-scratch/test/20_tuple_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/test/20_tuple_calc_test.exs -------------------------------------------------------------------------------- /rail-from-scratch/test/30_bind_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/test/30_bind_test.exs -------------------------------------------------------------------------------- /rail-from-scratch/test/40_do_notation_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/rail-from-scratch/test/40_do_notation_test.exs -------------------------------------------------------------------------------- /rail-from-scratch/test/test_helper.exs: -------------------------------------------------------------------------------- 1 | ExUnit.start() 2 | -------------------------------------------------------------------------------- /witchcraft-examples/.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/.formatter.exs -------------------------------------------------------------------------------- /witchcraft-examples/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/.gitignore -------------------------------------------------------------------------------- /witchcraft-examples/.iex.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/.iex.exs -------------------------------------------------------------------------------- /witchcraft-examples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/README.md -------------------------------------------------------------------------------- /witchcraft-examples/lib/1_functor/1_maybe_either.ex: -------------------------------------------------------------------------------- 1 | # See maybe_either_test.exs 2 | -------------------------------------------------------------------------------- /witchcraft-examples/lib/1_functor/2_tree.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/1_functor/2_tree.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/00_expr.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/00_expr.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/10_unsafe_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/10_unsafe_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/20_tuple_case_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/20_tuple_case_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/21_tuple_with_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/21_tuple_with_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/30_maybe_case_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/30_maybe_case_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/31_maybe_chain_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/31_maybe_chain_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/32_maybe_op_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/32_maybe_op_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/33_maybe_do_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/33_maybe_do_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/40_either_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/40_either_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/50_reader_tuple_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/50_reader_tuple_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/51_reader_either_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/51_reader_either_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/52_reather_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/52_reather_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/60_monoid.ex: -------------------------------------------------------------------------------- 1 | # See monoid_test.exs 2 | -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/70_writer_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/70_writer_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/2_monad/80_state_rw_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/2_monad/80_state_rw_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/3_exercise/90_state_stack_unsafe_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/3_exercise/90_state_stack_unsafe_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/3_exercise/91_state_stack_safe_calc.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/3_exercise/91_state_stack_safe_calc.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/3_exercise/92_state_tree_labeler.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/3_exercise/92_state_tree_labeler.ex -------------------------------------------------------------------------------- /witchcraft-examples/lib/3_exercise/answer.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/lib/3_exercise/answer.zip -------------------------------------------------------------------------------- /witchcraft-examples/mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/mix.exs -------------------------------------------------------------------------------- /witchcraft-examples/mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/mix.lock -------------------------------------------------------------------------------- /witchcraft-examples/test/1_functor/1_maybe_either_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/1_functor/1_maybe_either_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/1_functor/2_tree_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/1_functor/2_tree_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/2_monad/00_expr_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/2_monad/00_expr_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/2_monad/10_unsafe_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/2_monad/10_unsafe_calc_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/2_monad/20_tuple_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/2_monad/20_tuple_calc_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/2_monad/30_maybe_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/2_monad/30_maybe_calc_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/2_monad/40_either_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/2_monad/40_either_calc_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/2_monad/50_reader_tuple_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/2_monad/50_reader_tuple_calc_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/2_monad/51_reader_either_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/2_monad/51_reader_either_calc_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/2_monad/52_reather_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/2_monad/52_reather_calc_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/2_monad/60_monoid_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/2_monad/60_monoid_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/2_monad/70_writer_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/2_monad/70_writer_calc_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/2_monad/80_state_rw_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/2_monad/80_state_rw_calc_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/3_exercise/90_state_stack_unsafe_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/3_exercise/90_state_stack_unsafe_calc_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/3_exercise/91_state_stack_safe_calc_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/3_exercise/91_state_stack_safe_calc_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/3_exercise/92_state_tree_labeler_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/3_exercise/92_state_tree_labeler_test.exs -------------------------------------------------------------------------------- /witchcraft-examples/test/test_helper.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jechol/examples-elixir/HEAD/witchcraft-examples/test/test_helper.exs --------------------------------------------------------------------------------