Ultra 0.9.4
Loading...
Searching...
No Matches
ultra::nullary Class Referenceabstract

#include <nullary.h>

Inheritance diagram for ultra::nullary:
ultra::terminal ultra::symbol

Public Member Functions

virtual value_t eval () const =0
value_t instance () const final
std::string to_string (format=c_format) const override
Public Member Functions inherited from ultra::terminal
std::string to_string (format=c_format) const override
 symbol (const std::string &, category_t=default_category)
Public Member Functions inherited from ultra::symbol
 symbol (const std::string &, category_t=default_category)
virtual ~symbol ()=default
 Virtual destructor to allow safe polymorphic deletion.
category_t category () const noexcept
opcode_t opcode () const noexcept
const std::string & name () const noexcept
void category (category_t) noexcept
virtual bool is_valid () const

Additional Inherited Members

Public Types inherited from ultra::symbol
enum  format { c_format , cpp_format , python_format , sup_format }
 Supported rendering formats for symbol stringification.
using category_t = unsigned
using opcode_t = unsigned
Static Public Attributes inherited from ultra::symbol
static constexpr category_t default_category = 0
 Default category assigned when typing is not used.
static constexpr category_t undefined_category
 Sentinel value indicating that the category has not yet been assigned.

Detailed Description

A lambda function without arguments.

Function without arguments can be meaningful and not necessarily constant (due to side effects). Such functions may have some hidden input, such as global variables or the whole state of the system (time, free memory...).

A lambda function (aka anonymous function) is a literal for the function type.

Member Function Documentation

◆ instance()

value_t ultra::nullary::instance ( ) const
inlinenodiscardfinalvirtual

Produce the runtime value of the terminal.

Returns
the value associated with this terminal

This function returns the value represented by the terminal when the program is evaluated. The returned value may depend on the evaluation context (e.g. the current input vector), but does not depend on any child expressions.

Note
Implementations must not throw exceptions and should be side-effect free to preserve referential transparency during program evaluation.

Implements ultra::terminal.

◆ to_string()

std::string ultra::nullary::to_string ( format = c_format) const
inlinenodiscardoverridevirtual

Implements ultra::symbol.


The documentation for this class was generated from the following file: