├── README.md └── code ├── anonymous ├── add_subtract.exs └── hello.exs ├── composition └── composition.exs ├── concurrency └── nodes │ ├── simple_chat │ ├── .gitignore │ ├── README.md │ ├── config │ │ └── config.exs │ ├── lib │ │ ├── simple_chat.ex │ │ └── simple_chat │ │ │ ├── client.ex │ │ │ └── server.ex │ ├── mix.exs │ └── test │ │ ├── simple_chat_test.exs │ │ └── test_helper.exs │ └── slash_chat │ ├── .gitignore │ ├── README.md │ ├── config │ └── config.exs │ ├── lib │ ├── slash_chat.ex │ └── slash_chat │ │ ├── client.ex │ │ ├── command.ex │ │ └── server.ex │ ├── mix.exs │ └── test │ ├── slash_chat_test.exs │ └── test_helper.exs ├── currying └── currying.exs ├── enumerables └── enumerables.exs ├── erl_crash.dump ├── examples ├── coin_game.exs ├── coin_game.rb ├── pmap.exs ├── shopping_cart.exs └── shopping_cart.rb ├── higher_order ├── greater_than.exs └── times.exs ├── multiple_bodies ├── arithmetic.exs ├── fizzbuzz.exs ├── fizzbuzz.ipynb └── fizzbuzz.rb ├── otp ├── cache │ ├── fun_cache.exs │ └── gen_cache │ │ ├── .formatter.exs │ │ ├── .gitignore │ │ ├── README.md │ │ ├── config │ │ └── config.exs │ │ ├── lib │ │ ├── gen_cache.ex │ │ └── gen_cache │ │ │ ├── application.ex │ │ │ └── fun_cache.ex │ │ ├── mix.exs │ │ └── test │ │ ├── gen_cache_test.exs │ │ └── test_helper.exs ├── shopping_cart_genservers.exs └── shopping_cart_supervised.exs ├── partial_application └── partial_application.exs ├── pattern_matching ├── pattern_matching.exs └── tuples.exs ├── recursion ├── factorial.exs ├── forever.exs ├── headtail.exs ├── short_circuit.exs ├── square.exs ├── sum.exs └── walk_directory.exs └── side_effects ├── anonymous_solution.exs ├── mutable_bad_data.rb ├── named_functions.exs ├── pure_functions.exs ├── pure_functions.rb └── stateful_math.rb /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/README.md -------------------------------------------------------------------------------- /code/anonymous/add_subtract.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/anonymous/add_subtract.exs -------------------------------------------------------------------------------- /code/anonymous/hello.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/anonymous/hello.exs -------------------------------------------------------------------------------- /code/composition/composition.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/composition/composition.exs -------------------------------------------------------------------------------- /code/concurrency/nodes/simple_chat/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | -------------------------------------------------------------------------------- /code/concurrency/nodes/simple_chat/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/simple_chat/README.md -------------------------------------------------------------------------------- /code/concurrency/nodes/simple_chat/config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/simple_chat/config/config.exs -------------------------------------------------------------------------------- /code/concurrency/nodes/simple_chat/lib/simple_chat.ex: -------------------------------------------------------------------------------- 1 | defmodule SimpleChat do 2 | end 3 | -------------------------------------------------------------------------------- /code/concurrency/nodes/simple_chat/lib/simple_chat/client.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/simple_chat/lib/simple_chat/client.ex -------------------------------------------------------------------------------- /code/concurrency/nodes/simple_chat/lib/simple_chat/server.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/simple_chat/lib/simple_chat/server.ex -------------------------------------------------------------------------------- /code/concurrency/nodes/simple_chat/mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/simple_chat/mix.exs -------------------------------------------------------------------------------- /code/concurrency/nodes/simple_chat/test/simple_chat_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/simple_chat/test/simple_chat_test.exs -------------------------------------------------------------------------------- /code/concurrency/nodes/simple_chat/test/test_helper.exs: -------------------------------------------------------------------------------- 1 | ExUnit.start() 2 | -------------------------------------------------------------------------------- /code/concurrency/nodes/slash_chat/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /cover 3 | /deps 4 | erl_crash.dump 5 | *.ez 6 | -------------------------------------------------------------------------------- /code/concurrency/nodes/slash_chat/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/slash_chat/README.md -------------------------------------------------------------------------------- /code/concurrency/nodes/slash_chat/config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/slash_chat/config/config.exs -------------------------------------------------------------------------------- /code/concurrency/nodes/slash_chat/lib/slash_chat.ex: -------------------------------------------------------------------------------- 1 | defmodule SlashChat do 2 | end 3 | -------------------------------------------------------------------------------- /code/concurrency/nodes/slash_chat/lib/slash_chat/client.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/slash_chat/lib/slash_chat/client.ex -------------------------------------------------------------------------------- /code/concurrency/nodes/slash_chat/lib/slash_chat/command.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/slash_chat/lib/slash_chat/command.ex -------------------------------------------------------------------------------- /code/concurrency/nodes/slash_chat/lib/slash_chat/server.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/slash_chat/lib/slash_chat/server.ex -------------------------------------------------------------------------------- /code/concurrency/nodes/slash_chat/mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/slash_chat/mix.exs -------------------------------------------------------------------------------- /code/concurrency/nodes/slash_chat/test/slash_chat_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/concurrency/nodes/slash_chat/test/slash_chat_test.exs -------------------------------------------------------------------------------- /code/concurrency/nodes/slash_chat/test/test_helper.exs: -------------------------------------------------------------------------------- 1 | ExUnit.start() 2 | -------------------------------------------------------------------------------- /code/currying/currying.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/currying/currying.exs -------------------------------------------------------------------------------- /code/enumerables/enumerables.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/enumerables/enumerables.exs -------------------------------------------------------------------------------- /code/erl_crash.dump: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/erl_crash.dump -------------------------------------------------------------------------------- /code/examples/coin_game.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/examples/coin_game.exs -------------------------------------------------------------------------------- /code/examples/coin_game.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/examples/coin_game.rb -------------------------------------------------------------------------------- /code/examples/pmap.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/examples/pmap.exs -------------------------------------------------------------------------------- /code/examples/shopping_cart.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/examples/shopping_cart.exs -------------------------------------------------------------------------------- /code/examples/shopping_cart.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/examples/shopping_cart.rb -------------------------------------------------------------------------------- /code/higher_order/greater_than.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/higher_order/greater_than.exs -------------------------------------------------------------------------------- /code/higher_order/times.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/higher_order/times.exs -------------------------------------------------------------------------------- /code/multiple_bodies/arithmetic.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/multiple_bodies/arithmetic.exs -------------------------------------------------------------------------------- /code/multiple_bodies/fizzbuzz.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/multiple_bodies/fizzbuzz.exs -------------------------------------------------------------------------------- /code/multiple_bodies/fizzbuzz.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/multiple_bodies/fizzbuzz.ipynb -------------------------------------------------------------------------------- /code/multiple_bodies/fizzbuzz.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/multiple_bodies/fizzbuzz.rb -------------------------------------------------------------------------------- /code/otp/cache/fun_cache.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/cache/fun_cache.exs -------------------------------------------------------------------------------- /code/otp/cache/gen_cache/.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/cache/gen_cache/.formatter.exs -------------------------------------------------------------------------------- /code/otp/cache/gen_cache/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/cache/gen_cache/.gitignore -------------------------------------------------------------------------------- /code/otp/cache/gen_cache/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/cache/gen_cache/README.md -------------------------------------------------------------------------------- /code/otp/cache/gen_cache/config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/cache/gen_cache/config/config.exs -------------------------------------------------------------------------------- /code/otp/cache/gen_cache/lib/gen_cache.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/cache/gen_cache/lib/gen_cache.ex -------------------------------------------------------------------------------- /code/otp/cache/gen_cache/lib/gen_cache/application.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/cache/gen_cache/lib/gen_cache/application.ex -------------------------------------------------------------------------------- /code/otp/cache/gen_cache/lib/gen_cache/fun_cache.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/cache/gen_cache/lib/gen_cache/fun_cache.ex -------------------------------------------------------------------------------- /code/otp/cache/gen_cache/mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/cache/gen_cache/mix.exs -------------------------------------------------------------------------------- /code/otp/cache/gen_cache/test/gen_cache_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/cache/gen_cache/test/gen_cache_test.exs -------------------------------------------------------------------------------- /code/otp/cache/gen_cache/test/test_helper.exs: -------------------------------------------------------------------------------- 1 | ExUnit.start() 2 | -------------------------------------------------------------------------------- /code/otp/shopping_cart_genservers.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/shopping_cart_genservers.exs -------------------------------------------------------------------------------- /code/otp/shopping_cart_supervised.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/otp/shopping_cart_supervised.exs -------------------------------------------------------------------------------- /code/partial_application/partial_application.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/partial_application/partial_application.exs -------------------------------------------------------------------------------- /code/pattern_matching/pattern_matching.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/pattern_matching/pattern_matching.exs -------------------------------------------------------------------------------- /code/pattern_matching/tuples.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/pattern_matching/tuples.exs -------------------------------------------------------------------------------- /code/recursion/factorial.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/recursion/factorial.exs -------------------------------------------------------------------------------- /code/recursion/forever.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/recursion/forever.exs -------------------------------------------------------------------------------- /code/recursion/headtail.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/recursion/headtail.exs -------------------------------------------------------------------------------- /code/recursion/short_circuit.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/recursion/short_circuit.exs -------------------------------------------------------------------------------- /code/recursion/square.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/recursion/square.exs -------------------------------------------------------------------------------- /code/recursion/sum.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/recursion/sum.exs -------------------------------------------------------------------------------- /code/recursion/walk_directory.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/recursion/walk_directory.exs -------------------------------------------------------------------------------- /code/side_effects/anonymous_solution.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/side_effects/anonymous_solution.exs -------------------------------------------------------------------------------- /code/side_effects/mutable_bad_data.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/side_effects/mutable_bad_data.rb -------------------------------------------------------------------------------- /code/side_effects/named_functions.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/side_effects/named_functions.exs -------------------------------------------------------------------------------- /code/side_effects/pure_functions.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/side_effects/pure_functions.exs -------------------------------------------------------------------------------- /code/side_effects/pure_functions.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/side_effects/pure_functions.rb -------------------------------------------------------------------------------- /code/side_effects/stateful_math.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kblake/functional-programming/HEAD/code/side_effects/stateful_math.rb --------------------------------------------------------------------------------