Commit Graph

322 Commits

Author SHA1 Message Date
Jay Hayes
75c54e0585 Remove explanation of tail recursion
Curious readers might look it up, so just mention it in passing and let
them focus on the task at hand: handling multiple messages.
2016-05-04 15:13:49 -05:00
Jay Hayes
4e4e35f575 Remove process about killing others 😆 2016-05-04 15:13:35 -05:00
Jay Hayes
f7cced5913 Replace multiple receives with assert_receives
❤️ #101
2016-05-04 15:08:17 -05:00
Jay Hayes
65b9af48b4 Add example of process as state 2016-05-04 15:07:12 -05:00
Jay Hayes
6126d5a836 Add koan illustrating tail recursion 2016-05-04 15:06:57 -05:00
Jay Hayes
1f24de98f4 Rearrange existing koans to paint a clearer picture 2016-05-04 15:06:39 -05:00
Jay Hayes
322799a655 Remove koans illustrating self-exit
I don't really like these examples, because the process would exit
anyway when the function returns... Also having to sleep is not ideal.
2016-05-04 15:06:12 -05:00
Jay Hayes
cdfca2a24a Extract variable for spawned function 2016-05-04 15:05:47 -05:00
Jay Hayes
92ccbcd68d Tweak descriptions of a couple process koans 2016-05-04 15:05:47 -05:00
Jay Hayes
2629dc0523 whitespace 2016-05-04 15:05:19 -05:00
Jay Hayes
1f1112c888 Add koan illustrating that a process is referenced by a pid 2016-05-04 15:05:19 -05:00
Uku Taht
b39f951fcc Merge pull request #101 from elixirkoans/multiple-answers-for-assert-receive
Allow multiple answers in pinned context
2016-05-04 17:58:44 +01:00
Uku Taht
bc8f98d5d9 Merge pull request #100 from iamvery/tweak-maps-koan
Replace pipeline with composed function in maps koan
2016-05-04 15:49:05 +01:00
Jay Hayes
e2468b92cc Avoid keys order issue by using Maps.has_key?/2 2016-05-04 09:28:49 -05:00
Jay Hayes
f93e29cc8c Remove "keys and values" example 2016-05-04 09:28:35 -05:00
Uku Taht
a9ee9404ad Destructure answers in test function 2016-05-04 10:48:14 +01:00
Uku Taht
48b593be8e Merge pull request #99 from iamvery/tweak-enum-koan
Tweak enum koan
2016-05-04 10:18:08 +01:00
Uku Taht
43d4ac5360 Merge pull request #92 from iamvery/update-koans
Update various koans
2016-05-04 09:49:48 +01:00
Uku Taht
cda9b3526c Merge pull request #93 from iamvery/assert-receive-does-not-work
Problem with assert_receive in koans
2016-05-04 09:48:55 +01:00
Jay Hayes
c39916df2e Replace pipeline with composed function
At this point, the learner hasn't seen functions, the Enum module, or
the pipe operator, so it feels like a little much to add that here. The
reason it's needed is that the order of keys/1 and values/1 is reverse
of how it's defined. This is due to an implementation detail in Erlang's
maps. We /could/ use this as a learning opportunity rather than sorting
them, but I'm not sure what could be said about that...
2016-05-03 19:31:07 -05:00
Jay Hayes
19998b452c Add another match to illustrate that only the first is found 2016-05-03 19:22:16 -05:00
Jay Hayes
4017cfcd72 Change test data to illustrate that they /all/ must match 2016-05-03 19:21:51 -05:00
Jay Hayes
b184de5817 Remove parens from self
In my experience, the parens in this case are not idiomatic.
2016-05-03 19:11:28 -05:00
Jay Hayes
74b99676e7 Add example of anonymous function as argument 2016-05-03 19:08:51 -05:00
Jay Hayes
a808d275db Reword function pattern matching example 2016-05-03 19:08:51 -05:00
Jay Hayes
8311362f19 Reword function with default arg example 2016-05-03 19:08:51 -05:00
Jay Hayes
64d6e72b46 Add example of matching map with struct 2016-05-03 19:08:51 -05:00
Jay Hayes
8bcd7d2c94 Reword function pattern matching example 2016-05-03 19:08:51 -05:00
Jay Hayes
944f932ec5 Add example of lists not support partial match 2016-05-03 19:08:51 -05:00
Jay Hayes
12ce3ba2d3 Reword maps matching example 2016-05-03 19:08:51 -05:00
Jay Hayes
b577a24753 Extract initial example of binding before showing rebinding 2016-05-03 19:08:51 -05:00
Jay Hayes
4fda4ab9ff Reword pinning example 2016-05-03 19:08:51 -05:00
Uku Taht
cb47a17da9 Merge pull request #95 from iamvery/process-tests
Restructure/simplify process koans
2016-05-03 22:41:44 +01:00
Uku Taht
228c5f6879 Merge pull request #97 from elixirkoans/fix-version
Ensure elixir version is at least 1.2.1
2016-05-03 21:36:32 +01:00
Uku Taht
b7161fdc90 Ensure elixir version is at least 1.2.1 2016-05-03 19:06:29 +01:00
Jay Hayes
b2458bb472 Consistent one-liner for receive-blocked processes 2016-05-03 08:23:57 -05:00
Jay Hayes
1611483206 Reword some more examples 2016-05-03 08:23:57 -05:00
Jay Hayes
cc47f7c9c6 Simplify cases 2016-05-03 08:23:56 -05:00
Jay Hayes
71dfd882c6 Tweak wording 2016-05-03 08:23:23 -05:00
Jay Hayes
8ea68548fe Simplify example 2016-05-03 08:23:23 -05:00
Jay Hayes
2d7982e9a3 Remove indirection of wait/0 2016-05-03 08:23:23 -05:00
Jay Hayes
b955a4db64 Remove unneeded case 2016-05-03 08:23:23 -05:00
Jay Hayes
6772308e9a Add a little more context to example description 2016-05-03 08:23:23 -05:00
Jay Hayes
dacaf4c0b1 Actually illustrate use of receive function 2016-05-03 08:23:22 -05:00
Jay Hayes
bef1cf5028 Add new test illustrating spawning processes 2016-05-03 08:23:00 -05:00
Jay Hayes
c7c2fbcdff Auto-pin variables when replacing blanks in assert_receive 2016-05-02 20:45:03 -05:00
Jay Hayes
1b99ab0650 Pin missing values in assert_receive
Turns out the way assert_receive is implemented, the expression give the
macro is used literally as the match for the expanded receive call.
2016-05-02 16:12:03 -05:00
Jay Hayes
adabb403ea Fix typo in answers
This isn't failing due to an apparently problem with assert_receive in
the koans. Not quite sure yet why that macro isn't working.
2016-05-02 15:11:30 -05:00
Uku Taht
3892c0477e Merge pull request #89 from iamvery/assert-koan-test-results
Assert koan test results
2016-04-28 11:06:24 +01:00
Uku Taht
b422920387 Merge pull request #90 from elixirkoans/cleanup-display
Cleanup display
2016-04-28 11:03:56 +01:00