X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=README.md;h=79f413adfc7a4c41476d1884fd1c548458cc4aba;hb=32bdf36e56211673e0b3976cd51d99e6d131ed7b;hp=d9b4464bed8aeee11dd576812915cba93a912877;hpb=07bb8aec885be42d05486e3bc431d5d0f31a191f;p=hope.git diff --git a/README.md b/README.md index d9b4464..79f413a 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,16 @@ else, these are influenced by Jane Street's Core of the OCaml world. - Names of public records _must_ be fully qualified, such as: `#hope_module_record{}` - Names of all modules _must_ be fully qualified, such as: `hope_module` (this should go without saying, but just to be sure...) +- Keep the number of (anonymous) arguments "reasonably" low: + + up to 3 is normal + + 4 is suspicious but may be reasonable + + 5 is _very_ suspicious and probably unnecessary + + more than 5 is unacceptable, so consider reducing by: + 1. revising abstractions, or, if not practical + 2. creating a public record specifically for the purpose of passing + many arguents, which simulates labeled arguments. For an example see + https://github.com/ibnfirnas/oauth1_core where I used that technique + extensively (especially in oauth1_server.erl) Abstractions @@ -43,8 +53,8 @@ Abstractions ### Monads -A class of burritos, used for sequencing operations on a particular data type. -Defined in `hope_gen_monad`, implemented as: +A class of burritos, used for expressing sequences of operations on some data +type. Defined in `hope_gen_monad`, implemented as: - `hope_result`: for composition of common functions returning `{ok, Val} | {error, Reason}`. An alternative to exceptions, which makes the