The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Muldis::D::Ext::Interval - Muldis D extension for Interval specific operators

VERSION

This document is Muldis::D::Ext::Interval version 0.97.0.

PREFACE

This document is part of the Muldis D language specification, whose root document is Muldis::D; you should read that root document before you read this one, which provides subservient details.

DESCRIPTION

Muldis D has a mandatory core set of system-defined (eternally available) entities, which is referred to as the Muldis D core or the core; they are the minimal entities that all Muldis D implementations need to provide; they are mutually self-describing and are used to bootstrap the language; any entities outside the core, called Muldis D extensions, are non-mandatory and are defined in terms of the core or each other, but the reverse isn't true.

This current Interval document describes the system-defined Muldis D Interval Extension, which consists of generic operators that are specific to the Interval parameterized tuple type. They can potentially be used with values of any data type as long as said data type has a (total) order-determination function defined for it, and all system-defined conceptually-ordered Muldis D scalar root types do.

This current document does not describe the polymorphic operators that all types, or some types including core types, have defined over them; said operators are defined once for all types in Muldis::D::Core.

This documentation is pending.

Most functions that should be in the Interval Extension are pending.

SYSTEM-DEFINED INTERVAL-CONCERNING FUNCTIONS

Each of these functions which has the parameter named func is a wrapper over the order-determination function named in its func argument when the latter function is curried by a is_reverse_order argument of Bool:false. For any scalar root type's type-default order function, the argument for func is sys.std.Core.Scalar.order. Each func parameter is optional and defaults to sys.std.Core.Scalar.order if no explicit argument is given to it.

These functions' Interval-typed arguments' min and max attribute values must be of compatible declared types with the wrapped functions' topic and other parameters; otherwise these functions will fail|warn when the wrapped function would. Likewise, any other argument values would be compared to an interval's endpoints must be compatible with them. Likewise, said attributes of any multiplicity of Interval-typed arguments must be mutually compatible.

sys.std.Interval.has_member

function sys.std.Interval.has_member (Bool <-- $interval : Interval, $value : Universal, $func? : OrdDetFuncRef)

This function results in Bool:true iff its value argument is included within the interval defined by its interval argument, and Bool:false otherwise. That is, if conceptually the interval represents a set of values, this function tests if value is a member of interval. Note that this operation is also known as I∋.

sys.std.Interval.has_not_member

function sys.std.Interval.has_not_member (Bool <-- $interval : Interval, $value : Universal, $func? : OrdDetFuncRef)

This function is exactly the same as sys.std.Interval.has_member except that it results in the opposite boolean value when given the same arguments. Note that this operation is also known as I∌.

SEE ALSO

Go to Muldis::D for the majority of distribution-internal references, and Muldis::D::SeeAlso for the majority of distribution-external references.

AUTHOR

Darren Duncan (perl@DarrenDuncan.net)

LICENSE AND COPYRIGHT

This file is part of the formal specification of the Muldis D language.

Muldis D is Copyright © 2002-2009, Muldis Data Systems, Inc.

See the LICENSE AND COPYRIGHT of Muldis::D for details.

TRADEMARK POLICY

The TRADEMARK POLICY in Muldis::D applies to this file too.

ACKNOWLEDGEMENTS

The ACKNOWLEDGEMENTS in Muldis::D apply to this file too.