X-Git-Url: https://git.xandkar.net/?p=hope.git;a=blobdiff_plain;f=README.md;h=0c939d985e318cdf98a277b164af65ccdf0b5549;hp=d9b4464bed8aeee11dd576812915cba93a912877;hb=HEAD;hpb=07bb8aec885be42d05486e3bc431d5d0f31a191f diff --git a/README.md b/README.md index d9b4464..0c939d9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Build Status](https://travis-ci.org/ibnfirnas/hope.svg?branch=master)](https://travis-ci.org/ibnfirnas/hope) +[![Build Status](https://travis-ci.org/xandkar/hope.svg?branch=master)](https://travis-ci.org/xandkar/hope) Hope ==== @@ -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/xandkar/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