Muldis::D::Outdated::Core::Scalar - Muldis D operators for all scalar types
This document is Muldis::D::Outdated::Core::Scalar version 0.148.2.
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. Moreover, you should read the Muldis::D::Outdated::Core document before this current document, as that forms its own tree beneath a root document branch.
This document describes essentially all of the core Muldis D generic scalar operators, applicable to all scalar types.
This documentation is pending.
These functions are applicable to mainly scalar types, but are generic in that they typically work with any scalar types. Now some of these functions (those with a parameter named possrep) work only with scalar values that have possreps, and not with values of the 2 system-defined scalar types lacking any possreps: Int, String; other functions are not limited in that way, but may be limited in other ways. Note that the terminology used to describe these functions is taking advantage of the fact that a scalar possrep looks just like a tuple. Each possrep and name parameter is optional and each defaults to the empty string if no explicit argument is given to it.
possrep
Int
String
name
function attr (Universal <-- topic : ScalarWP, possrep? : Name, name? : Name) {...}
This function results in the scalar or nonscalar value of the possrep attribute of topic where the possrep name is given by possrep and the attribute name is given by name. This function will fail if possrep specifies a possrep name that topic doesn't have or name specifies an attribute name that the named possrep of topic doesn't have. Note that this operation is also known as .{:}.
topic
.{:}
function update_attr (ScalarWP <-- topic : ScalarWP, possrep? : Name, name? : Name, value : Universal) {...}
This function results in its topic argument but that its possrep attribute whose possrep name is possrep and whose attribute name is name has been updated with a new scalar or nonscalar value given by value. This function will fail if possrep specifies a possrep name that topic doesn't have or name specifies an attribute name that the named possrep of topic doesn't have, or if value isn't of the declared type of the attribute; this function will otherwise warn if the declared type of value isn't a subtype of the declared type of the attribute.
value
function multi_update (ScalarWP <-- topic : ScalarWP, possrep? : Name, attrs : Tuple) {...}
This function is like sys.std.Core.Scalar.update_attr except that it handles N scalar possrep attributes at once rather than just 1. The heading of the attrs argument must be a subset of the heading of the topic argument's possrep named by possrep; this function's result is topic with all the possrep attribute values of attrs substituted into it. This function could alternately be named sys.std.Core.Scalar.static_subst.
sys.std.Core.Scalar.update_attr
attrs
function projection (Tuple <-- topic : ScalarWP, possrep? : Name, attr_names : set_of.Name) {...}
This function results in the Tuple that is the projection of the possrep (whose name is given in the possrep argument) of its topic argument that has just the subset of attributes of topic which are named in its attr_names argument. As a trivial case, this function's result is the entire named possrep of topic if attr_names lists all attributes of that possrep; or, it is the nullary tuple if attr_names is empty. This function will fail if possrep specifies a possrep name that topic doesn't have or attr_names specifies any attribute names that topic doesn't have. Note that this operation is also known as {:}.
Tuple
attr_names
{:}
function cmpl_proj (Tuple <-- topic : ScalarWP, possrep? : Name, attr_names : set_of.Name) {...}
This function is the same as projection but that it results in the complementary subset of possrep attributes of topic when given the same arguments. Note that this operation is also known as {:!}.
projection
{:!}
function Tuple_from_Scalar (Tuple <-- topic : ScalarWP, possrep? : Name) {...}
This function results in the Tuple that has all the same attributes of the possrep of topic whose name is given in possrep; in other words, the function results in the externalization of one of a scalar value's possreps. This function will fail if possrep specifies a possrep name that topic doesn't have.
function Scalar_from_Tuple (ScalarWP <-- topic : Tuple, type : APTypeNC, possrep? : Name) {...}
This function results in the ScalarWP value whose scalar root [|sub]type is named by type, which has a possrep whose name matches possrep, and whose complete set of attributes of that named possrep match the attributes of topic. This function can be used to select any scalar value at all that has a possrep.
ScalarWP
type
function has_possrep (Bool <-- topic : ScalarWP, possrep? : Name) {...}
This function results in Bool:True iff its topic argument has a possrep whose name is given by possrep; otherwise it results in Bool:False.
Bool:True
Bool:False
function possrep_names (set_of.Name <-- topic : ScalarWP) {...}
This function results in the set of the names of the possreps of its argument.
function degree (NNInt <-- topic : ScalarWP, possrep? : Name) {...}
This function results in the degree of its topic argument's possrep whose name is given by possrep (that is, the count of attributes the possrep has).
function has_attrs (Bool <-- topic : ScalarWP, possrep? : Name, attr_names : set_of.Name) {...}
This function results in Bool:True iff, for every one of the attribute names specified by its attr_names argument, its topic argument's possrep whose name is given by possrep has an attribute with that name; otherwise it results in Bool:False. As a trivial case, this function's result is Bool:True if attr_names is empty.
function attr_names (set_of.Name <-- topic : ScalarWP, possrep? : Name) {...}
This function results in the set of the names of the attributes of its topic argument's possrep whose name is given by possrep.
Go to Muldis::D for the majority of distribution-internal references, and Muldis::D::SeeAlso for the majority of distribution-external references.
Darren Duncan (darren@DarrenDuncan.net)
darren@DarrenDuncan.net
This file is part of the formal specification of the Muldis D language.
Muldis D is Copyright © 2002-2011, Muldis Data Systems, Inc.
See the LICENSE AND COPYRIGHT of Muldis::D for details.
The TRADEMARK POLICY in Muldis::D applies to this file too.
The ACKNOWLEDGEMENTS in Muldis::D apply to this file too.
To install Muldis::D::Outdated::Core::Scalar, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Muldis::D::Outdated::Core::Scalar
CPAN shell
perl -MCPAN -e shell install Muldis::D::Outdated::Core::Scalar
For more information on module installation, please visit the detailed CPAN module installation guide.