X-Git-Url: https://git.xandkar.net/?p=hope.git;a=blobdiff_plain;f=README.md;fp=README.md;h=5f2ed6cb3f4f18b6e2d1c7e04d29f29edf4a300f;hp=d9b4464bed8aeee11dd576812915cba93a912877;hb=c50166fd20aa19e46f474dc7399a5a8aead15d4b;hpb=07bb8aec885be42d05486e3bc431d5d0f31a191f diff --git a/README.md b/README.md index d9b4464..5f2ed6c 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