Data types

Since the DDP is statically typed, every expression (e.g. mathematical expressions), every variable and every function has a fixed data type.

The type of variables, functions and expressions cannot change at runtime, it is determined at compile time.

Simple data types

type nameDescriptionrange of valuesliteralExample
ZahlA 64-bit integer-2^63 to 2^63A sequence of digits, e.g. 42Die Zahl x ist 69.,
1 plus -7
KommazahlA 64-bit floating point numberaprox. -1.797x10^308 to
1.797x10^308 with 16 decimal places
A number literal with decimal places, e.g. 3.1415Die Kommazahl x ist 6,5.,
2 durch 0,5
WahrheitswerA logical value (8 bits in size)true or falsetrue or falseDer Wahrheitswert x ist wahr.,
2 gleich 2
BuchstabeA 4-byte UTF-8 encoded character0 - 65535A utf8 character between single quotes, e.g. ‘a’ or ‘\n’Der Buchstabe x ist 'd'.
TextA utf-8 encoded sequence of lettersany sizeAny number of letters between quotation marks, e.g. “Hello\n”Der Text x ist "abc".,
"Hallo" verkettet mit " du da"

Unlike in other programming languages:

Escape sequences

Escape sequences are character combinations that stand for characters which one cannot normally write in text or letter literals.

nameescape sequenceASCII code
newline\n10
carriage return\r13
regression\b8
Tab\t9
Acoustic signal\a7
backslash\\92
Single quote*\'39
double quote**\"34

*: Only within a letter literal.
**: Only within a text literal.

Lists

Lists are collections of values of any size. Since DDP is statically typed, a list can only contain values of the same data type. The type name of a list is generally the element type name declined with list appended (number -> number list, text -> text list). A list can grow and shrink at runtime. How to work with lists is described in the article Operators under List Operators.

List literals

A list literal looks similar to an ordinary enumeration, but wrapped in a small phrase to avoid programming ambiguity. The general form is: eine[r] Liste, die aus x[, y, z] besteht. eine or ein can be used depending on the grammatical context and after the aus one or more must be used Expressions of the same type follow.

Empty lists can be created like this: eine[r] leere[n] (Typname) Liste.

Lists with a single element can also be created simply by using (Wert) als (Typname).

Examples

Die Zahlen Liste z ist eine Liste, die aus 1, 2, 3 besteht.
Die Text Liste t ist eine Liste, die aus "Hallo", "Welt" besteht.

Die Zahlen Liste z2 ist eine leere Zahlen Liste.
Die Text Liste t2 ist "Hallo" als Text Liste.
type nameExample
Zahlen ListeDie Zahlen Liste z ist eine Liste, die aus 1, 2, 3 besteht.
Kommazahlen ListeDie Kommazahlen Liste z ist eine Liste, die aus 1,2, 3,2, 3,1415 besteht.
Wahrheitswert ListeDie Wahrheitswert Liste b ist eine Liste, die aus wahr, falsch, wahr besteht.
Buchstaben ListeDie Buchstaben Liste b ist eine Liste, die aus 'b', 'h', 'z' besteht.
Text ListeDie Text Liste t ist eine Liste, die aus "Hallo", "du", "da" besteht.

Remark

Actually, one would expect that an ‘and’ would have to occur in the enumeration of a list literal (eine Liste, die aus 1, 2 und 3 besteht). However, this would lead to ambiguity in Wahrheitswert expressions (eine Liste, die aus wahr und falsch besteht), and since the enumeration grammatically does not need an ‘and’, literals are omitted in lists.