Returns the number of members contained in this Record
.
Converts this Value
into a boolean
value, if possible; otherwise
returns undefined
if this Value
can't be converted into a boolean
value.
Converts this Value
into a boolean
value, if possible; otherwise
returns orElse
if this Value
can't be converted into a boolean
value.
Returns the number of Field members contained in this Record
.
Returns the sole member of this Record
, if this Record
has exactly one
member, and its member is a Value
; returns Extant if this Record
is empty; otherwise returns this
if this Record
has more than one
member.
Used to convert a unary Record
into its member Value
. Facilitates
writing code that treats a unary Record
equivalently to a bare Value
.
Returns the first member of this Record
, if this Record
is non-empty;
otherwise returns Absent.
Returns the value of the first member of this Record
, if the first
member is an Attr whose key
string is equal to tag
; otherwise
returns Absent if the first member of this Record
is not an Attr
,
or if the first member of this Record
is an Attr
whose key
does not
equal the tag
.
Used to conditionally get the value of the head Attr
of a structure, if
and only if the key string of the head Attr
is equal to the tag
. Can
be used to check if a structure might conform to a nominal type named
tag
, while simultaneously getting the value of the tag
attribute.
Returns the unflattened header of
this Record
. The headers
of the tag
attribute of a structure are
like the attributes of an XML element tag; through unlike an XML element,
tag
attribute headers are not limited to string keys and values.
Returns true
if this Record
has only Value members–no Field
members.
Returns true
if this Value
is not Absent.
Returns true
if this Record
has no members.
Returns true
if this Record
has only Field members–no Value
members.
Converts this Value
into a number
value, if possible; otherwise returns
undefined
if this Value
can't be converted into a number
value.
Converts this Value
into a number
value, if possible; otherwise returns
orElse
if this Value
can't be converted into a number
value.
Returns the key
string of the first member of this Record
, if the
first member is an Attr; otherwise returns undefined
if the first
member is not an Attr
.
Used to concisely get the name of the discriminating attribute of a
structure. The tag
can be used to discern the nominal type of a
polymorphic structure, similar to an XML element tag.
Returns a view of all but the first member of this Record
, if this
Record
is non-empty; otherwise returns an empty Record
, if this
Record
is itself empty.
Returns the flattened members of this Record
after
all attributes have been removed.
Used to concisely get the scalar value of an attributed structure. An
attributed structure is a Record
with one or more attributes that modify
one or more other members.
Always returns this
because every Value
is its own value component.
Returns this
`Record.
Returns the number of Value members contained in this Record
.
Always returns Absent because a
Value
can't be aField
, so it can't have a key component.