This module extends the support for handling atoms in the SWI-Prolog
standard library.
- atom_capitalize(+Original:atom, +Capitalized:atom) is semidet
- atom_capitalize(+Original:atom, -Capitalized:atom) is det
- Succeeds if Capitalized is a copy of Original where the first
character is in upper case (if applicable).
If the first character of Atom is already in upper case then
Capitalized is a plain copy of Atom.
- atom_ellipsis(+Original:atom, +MaxLength:between(2,inf), +Ellipsed:atom) is semidet
- atom_ellipsis(+Original:atom, +MaxLength:between(2,inf), -Ellipsed:atom) is semidet
- atom_ellipsis(+Original:atom, -MaxLength:between(2,inf), -Ellipsed:atom) is nondet
- Succeeds if Ellipsed is like Orginal, but has ellipsis applied in
order to have MaxLength. If Original is not longer than MaxLength,
Orignal and Ellipsed are the same.
For mode `(+,-,-)' the enumeration order prioritizes shorter atoms:
?- atom_ellipsis(monkey, Length, Ellipsed).
Length = 2,
Ellipsed = 'm…' ;
Length = 3,
Ellipsed = 'mo…' ;
Length = 4,
Ellipsed = 'mon…' ;
Length = 5,
Ellipsed = 'monk…' ;
Length = 6,
Ellipsed = monkey.
Can be used to display a shorter atom to human users. For example,
an atom that is displayed inside a table cell.
- See also
- - string_ellipsis/3 provides the same functionality for strings.
- atom_postfix(+Original:atom, +Postfix:atom) is semidet
- atom_postfix(+Original:atom, -Postfix:atom) is multi
- atom_postfix(+Original:atom, +Length:nonneg, +Postfix:atom) is semidet
- atom_postfix(+Original:atom, +Length:nonneg, -Postfix:atom) is semidet
- atom_postfix(+Original:atom, -Length:nonneg, +Postfix:atom) is semidet
- atom_postfix(+Original:atom, -Length:nonneg, -Postfix:atom) is multi
- Succeeds if Postfix is a postfix of Original with consisting of
Length characters.
For mode `(+,-,-)' the enumeration order prioritizes longer atoms.
- See also
- - string_postfix/[2,3] provides the same functionality for strings.
- atom_prefix(+Original:atom, +Length:nonneg, +Prefix:atom) is semidet
- atom_prefix(+Original:atom, +Length:nonneg, -Prefix:atom) is semidet
- atom_prefix(+Original:atom, -Length:nonneg, +Prefix:atom) is semidet
- atom_prefix(+Original:atom, -Length:nonneg, -Prefix:atom) is multi
- Succeeds if Prefix is a prefix of Original consisting of Length
characters.
Fails when Length is greater than the length of Original.
For mode `(+,-,-)' the enumeration order prioritizes shorter atoms.
- See also
- - string_prefix/[2,3] provides the same functionality for strings.
- atom_same_ci(+A:atom, +B:atom) is semidet
- atom_strip(+Original:atom, +Stripped:atom) is det
- atom_strip(+Original:atom, -Stripped:atom) is det
- atom_strip(+Original:atom, +Strip:list(char), +Stripped:atom) is semidet
- atom_strip(+Original:atom, +Strip:list(char), -Stripped:atom) is det
- Succeeds if Stripped is a copy of Original where leading and
trailing characters in Strip have been removed.
Notice that the order in which the characters in Strip are specified
is significant.
The default Strip characters are space, newline and horizontal tab.
- Arguments:
-
Strip | - is a list of charaters that will be stripped from the
Original atom. The default includes: horizontal tab,
newline, space, NO-BREAK SPACE (0xa0). |
- See also
- - string_strip/[2,3] provides the same functionality for strings.
- atom_terminator(+Original:atom, +Terminator:char, +Terminated:atom) is semidet
- atom_terminator(+Original:atom, +Terminator:char, -Terminated:atom) is det
- Succeeds if Terminated is a copy of Original which is ensured to end
with the Terminator character.
- atom_truncate(+Original:atom, +MaxLength:nonneg, +Truncated:atom) is semidet
- atom_truncate(+Original:atom, +MaxLength:nonneg, -Truncated:atom) is det
- Hard-truncates the `Original' atom.
For example:
?- atom_truncate('This atom is too long.', 15, Truncated).
Trunaced = 'This atom is to'
- See also
- - Similar to atom_prefix/3, but the `Truncated' atom is the
`Original' atom in case `MaxLength' exceeds the `Original' atom's
length.
- - Use atom_ellipse/3 in case the truncated atom will be displayed
to human users.
- - string_truncate/3 provides the same functionality for strings.
- sub_atom(+Atom:atom, +Subatom:atom) is semidet
- sub_atom(+Atom:atom, -Subatom:atom) is nondet
- Suceeds iff `Subatom' is a subatom of `Atom'.
Undocumented predicates
The following predicates are exported, but not or incorrectly documented.
- atom_postfix(Arg1, Arg2, Arg3)
- atom_strip(Arg1, Arg2, Arg3)