![]() |
Ultra 0.9.4
|
#include <function.h>
Public Member Functions | |
| virtual value_t | fetch_arg (std::size_t) const =0 |
| virtual value_t | fetch_opaque_arg (std::size_t) const =0 |
| value_t | operator[] (std::size_t i) const |
Interface for accessing function arguments during evaluation.
The params interface abstracts argument retrieval and allows function implementations to evaluate inputs lazily. This enables optimisations such as short-circuiting, memoisation or selective evaluation.
Implementations may distinguish between referentially transparent evaluation and opaque evaluation with side effects.
|
nodiscardpure virtual |
Retrieves the value of an input parameter assuming referential transparency.
Implemented in ultra::interpreter.
|
pure virtual |
Retrieves the value of an input parameter without assuming referential transparency.
Implemented in ultra::interpreter.
|
inlinenodiscard |
Accesses a parameter using referentially transparent evaluation.