📝 add built-in section of the guide.
parent
462959e6ab
commit
2d277d3381
|
@ -0,0 +1,106 @@
|
||||||
|
Guide
|
||||||
|
=====
|
||||||
|
In this guide, we're going to cover the main CCM features.
|
||||||
|
We'll first start by the base data types CCM provides,
|
||||||
|
as well as their associated operators.
|
||||||
|
|
||||||
|
Statements VS Expressions
|
||||||
|
-------------------------
|
||||||
|
In virtually all programming languages, statements and expressions are two different things.
|
||||||
|
Most of the time, statements don't return values, but expressions do.
|
||||||
|
In CCM, everything is an expression, so a program is just a bunch of expressions that CCM evaluates
|
||||||
|
one after the other.
|
||||||
|
|
||||||
|
Data Types
|
||||||
|
----------
|
||||||
|
Coco Mango provides five main built-in types: numbers, booleans, strings, tuples and arrays.
|
||||||
|
All these types comes with operators such as addition and substraction, or concatenation and duplication.
|
||||||
|
Tuples and arrays are both collections of expressions. Their main difference lies in the fact
|
||||||
|
that tuples are not mutables, whereas arrays are.
|
||||||
|
|
||||||
|
Numbers
|
||||||
|
~~~~~~~
|
||||||
|
Let's begin by the ``num`` data type. A num represents numbers:
|
||||||
|
integers as well as floating points. It comes with the usual mathematic operations.
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
:caption: num operations
|
||||||
|
|
||||||
|
5 + 3
|
||||||
|
2 - 3
|
||||||
|
-7
|
||||||
|
7 * 9
|
||||||
|
3 / 2
|
||||||
|
2 ^ 3
|
||||||
|
15 % 4
|
||||||
|
|
||||||
|
|
||||||
|
Booleans
|
||||||
|
~~~~~~~~
|
||||||
|
The ``bool`` data type represents boolean values. It can be either ``true`` or ``false``.
|
||||||
|
It supports the logical operations: ``and``, ``or`` and ``not``.
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
:caption: boolean operations
|
||||||
|
|
||||||
|
not true # false
|
||||||
|
not false # true
|
||||||
|
|
||||||
|
true and true # true
|
||||||
|
true and false # false
|
||||||
|
false and true # false
|
||||||
|
false and false # false
|
||||||
|
|
||||||
|
true or true # true
|
||||||
|
true or false # true
|
||||||
|
false or true # true
|
||||||
|
false or false # false
|
||||||
|
|
||||||
|
Strings
|
||||||
|
~~~~~~~
|
||||||
|
A ``str`` is the immutable string type of CCM. Strings supports three main operation:
|
||||||
|
concatenation, duplication and indexing.
|
||||||
|
|
||||||
|
We can concatenate two strings using the ``+`` operator and duplicate them using the ``*`` operator.
|
||||||
|
Indexing is syntaxically the same as in C like languages.
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
:caption: string
|
||||||
|
|
||||||
|
"hello world"
|
||||||
|
"hello " + "world" # returns "hello world"
|
||||||
|
3 * "a" # returns "aaa"
|
||||||
|
"pizza"[0] # returns "p"
|
||||||
|
|
||||||
|
Tuples
|
||||||
|
~~~~~~
|
||||||
|
A ``tuple`` is an immutable collection of expression used
|
||||||
|
to group *n* semantically relevant values together (with *n* > 1).
|
||||||
|
We can extract a tuple sub-expression using the indexing operator,
|
||||||
|
and membership can be tested with the ``in`` keyword.
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
:caption: tuples
|
||||||
|
|
||||||
|
(4, 3)
|
||||||
|
("hello", 29)
|
||||||
|
(3, 5, 2)[1] # returns 5
|
||||||
|
1 in (3, 2) # returns false
|
||||||
|
2 in (3, 2) # returns true
|
||||||
|
|
||||||
|
|
||||||
|
Array
|
||||||
|
~~~~~
|
||||||
|
An ``array`` is a mutable collection of expressions that supportes the same operations as
|
||||||
|
tuples, with the addition of concatenation (``+``) and duplication (``*``) operators.
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
:caption: array
|
||||||
|
|
||||||
|
[2, 4]
|
||||||
|
[2] + [3] # returns [2, 3]
|
||||||
|
[3, 6, 8][1] # returns 6
|
||||||
|
"love" in ["love", "pizzas"] # returns true
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,14 @@
|
||||||
CCM Documentation
|
CCM Documentation
|
||||||
=================
|
=================
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
CCM is at an early stage of development.
|
||||||
|
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
installation
|
installation
|
||||||
|
guide
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue