.. index:: characterp
.. _characterp/0:

.. rst-class:: right

**protocol**

``characterp``
==============

Character protocol.

| **Author:** Paulo Moura
| **Version:** 1:3:0
| **Date:** 2019-06-29

| **Compilation flags:**
|    ``static``


| **Dependencies:**
|   (none)


| **Remarks:**
|    (none)

| **Inherited public predicates:**
|    (none)

.. contents::
   :local:
   :backlinks: top

Public predicates
-----------------

.. raw:: html

   <div id="is_ascii/1"> </div>

.. index:: is_ascii/1
.. _characterp/0::is_ascii/1:

``is_ascii/1``
^^^^^^^^^^^^^^

True if the argument is an ASCII character.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_ascii(Char)``
| **Mode and number of proofs:**
|    ``is_ascii(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_alphanumeric/1"> </div>

.. index:: is_alphanumeric/1
.. _characterp/0::is_alphanumeric/1:

``is_alphanumeric/1``
^^^^^^^^^^^^^^^^^^^^^

True if the argument is an alphanumeric character.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_alphanumeric(Char)``
| **Mode and number of proofs:**
|    ``is_alphanumeric(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_alpha/1"> </div>

.. index:: is_alpha/1
.. _characterp/0::is_alpha/1:

``is_alpha/1``
^^^^^^^^^^^^^^

True if the argument is a letter or an underscore.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_alpha(Char)``
| **Mode and number of proofs:**
|    ``is_alpha(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_letter/1"> </div>

.. index:: is_letter/1
.. _characterp/0::is_letter/1:

``is_letter/1``
^^^^^^^^^^^^^^^

True if the argument is a letter.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_letter(Char)``
| **Mode and number of proofs:**
|    ``is_letter(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_bin_digit/1"> </div>

.. index:: is_bin_digit/1
.. _characterp/0::is_bin_digit/1:

``is_bin_digit/1``
^^^^^^^^^^^^^^^^^^

True if the argument is a binary digit.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_bin_digit(Char)``
| **Mode and number of proofs:**
|    ``is_bin_digit(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_octal_digit/1"> </div>

.. index:: is_octal_digit/1
.. _characterp/0::is_octal_digit/1:

``is_octal_digit/1``
^^^^^^^^^^^^^^^^^^^^

True if the argument is an octal digit.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_octal_digit(Char)``
| **Mode and number of proofs:**
|    ``is_octal_digit(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_dec_digit/1"> </div>

.. index:: is_dec_digit/1
.. _characterp/0::is_dec_digit/1:

``is_dec_digit/1``
^^^^^^^^^^^^^^^^^^

True if the argument is a decimal digit.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_dec_digit(Char)``
| **Mode and number of proofs:**
|    ``is_dec_digit(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_hex_digit/1"> </div>

.. index:: is_hex_digit/1
.. _characterp/0::is_hex_digit/1:

``is_hex_digit/1``
^^^^^^^^^^^^^^^^^^

True if the argument is an hexadecimal digit.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_hex_digit(Char)``
| **Mode and number of proofs:**
|    ``is_hex_digit(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_lower_case/1"> </div>

.. index:: is_lower_case/1
.. _characterp/0::is_lower_case/1:

``is_lower_case/1``
^^^^^^^^^^^^^^^^^^^

True if the argument is a lower case letter.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_lower_case(Char)``
| **Mode and number of proofs:**
|    ``is_lower_case(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_upper_case/1"> </div>

.. index:: is_upper_case/1
.. _characterp/0::is_upper_case/1:

``is_upper_case/1``
^^^^^^^^^^^^^^^^^^^

True if the argument is a upper case letter.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_upper_case(Char)``
| **Mode and number of proofs:**
|    ``is_upper_case(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_vowel/1"> </div>

.. index:: is_vowel/1
.. _characterp/0::is_vowel/1:

``is_vowel/1``
^^^^^^^^^^^^^^

True if the argument is a vowel.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_vowel(Char)``
| **Mode and number of proofs:**
|    ``is_vowel(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_white_space/1"> </div>

.. index:: is_white_space/1
.. _characterp/0::is_white_space/1:

``is_white_space/1``
^^^^^^^^^^^^^^^^^^^^

True if the argument is a white space character (a space or a tab) inside a line of characters.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_white_space(Char)``
| **Mode and number of proofs:**
|    ``is_white_space(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_layout/1"> </div>

.. index:: is_layout/1
.. _characterp/0::is_layout/1:

``is_layout/1``
^^^^^^^^^^^^^^^

True if the argument is a layout character.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_layout(Char)``
| **Mode and number of proofs:**
|    ``is_layout(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_quote/1"> </div>

.. index:: is_quote/1
.. _characterp/0::is_quote/1:

``is_quote/1``
^^^^^^^^^^^^^^

True if the argument is a quote character.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_quote(Char)``
| **Mode and number of proofs:**
|    ``is_quote(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_punctuation/1"> </div>

.. index:: is_punctuation/1
.. _characterp/0::is_punctuation/1:

``is_punctuation/1``
^^^^^^^^^^^^^^^^^^^^

True if the argument is a sentence punctuation character.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_punctuation(Char)``
| **Mode and number of proofs:**
|    ``is_punctuation(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_period/1"> </div>

.. index:: is_period/1
.. _characterp/0::is_period/1:

``is_period/1``
^^^^^^^^^^^^^^^

True if the argument is a character that ends a sentence.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_period(Char)``
| **Mode and number of proofs:**
|    ``is_period(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_control/1"> </div>

.. index:: is_control/1
.. _characterp/0::is_control/1:

``is_control/1``
^^^^^^^^^^^^^^^^

True if the argument is an ASCII control character.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_control(Char)``
| **Mode and number of proofs:**
|    ``is_control(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_newline/1"> </div>

.. index:: is_newline/1
.. _characterp/0::is_newline/1:

``is_newline/1``
^^^^^^^^^^^^^^^^

True if the argument is the ASCII newline character.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_newline(Char)``
| **Mode and number of proofs:**
|    ``is_newline(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="is_end_of_line/1"> </div>

.. index:: is_end_of_line/1
.. _characterp/0::is_end_of_line/1:

``is_end_of_line/1``
^^^^^^^^^^^^^^^^^^^^

True if the argument is the ASCII end-of-line character (either a carriage return or a line feed).

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``is_end_of_line(Char)``
| **Mode and number of proofs:**
|    ``is_end_of_line(+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="parenthesis/2"> </div>

.. index:: parenthesis/2
.. _characterp/0::parenthesis/2:

``parenthesis/2``
^^^^^^^^^^^^^^^^^

Recognizes and converts between open and close parenthesis.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``parenthesis(Char1,Char2)``
| **Mode and number of proofs:**
|    ``parenthesis(?char,?char)`` - ``zero_or_more``
|    ``parenthesis(+char,?char)`` - ``zero_or_one``
|    ``parenthesis(?char,+char)`` - ``zero_or_one``


------------

.. raw:: html

   <div id="lower_upper/2"> </div>

.. index:: lower_upper/2
.. _characterp/0::lower_upper/2:

``lower_upper/2``
^^^^^^^^^^^^^^^^^

Recognizes and converts between lower and upper case letters.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``lower_upper(Char1,Char2)``
| **Mode and number of proofs:**
|    ``lower_upper(?char,?char)`` - ``zero_or_more``
|    ``lower_upper(+char,?char)`` - ``zero_or_one``
|    ``lower_upper(?char,+char)`` - ``zero_or_one``


------------

Protected predicates
--------------------

(none)

Private predicates
------------------

(none)

Operators
---------

(none)

.. seealso::

   :ref:`character <character/0>`

