I was not initially sure whether something like
(-when-let* ((a (subr-that-could-return-nil))
(b (blow-up-if-arg-is-nil a)))
(message "All safe"))
would work properly. It does, so edit the docs (and that of `if-let*') to make it clear.
Initially mentioned in #142.
This change addreses issue #123. The two new optional parameters to
`-fixfn' allow the caller to specify a custom equality test function,
such as an approximate comparison of floats, and a halt test function,
which can trigger a halt to the fixpoint iteration if it fails to
converge.
The default equality test remains `equal'. The default halt test is a
simple counter up to `-fixfn-max-iterations'. The counter is provided by
the new function `-counter'.
The revised tests illustrate the usage of the new parameters.
defexample entries may now include a symbol `~>' instead of `=>' which
uses an approximate comparison instead of `equal' to compare actual and
expected floating-point values.
Also, for completeness, add support for the `should-error' symbol `!!>' in
`examples-to-docs.el'. This is formatted as the comment ";; Error"
This is a port of the CL function `some` and the Scheme function `any`
from SRFI-1. It is thought as addition to `-any?` (which returns a
boolean) and `-first` (which returns an element). Unlike these it
returns the first truthy value of applying the predicate on each list
item.
Resolves#122.
This change allows tests to be skipped for development purposes by
setting the environment variable `ERT_SELECTOR' to a valid ERT test
selector, e.g.:
ERT_SELECTOR='(not "-fixfn")' ./run-tests.sh
Refer to the docstrings for `ert-run-tests-batch-and-exit' and
`ert-select-tests' for details on how to compose test selectors.