REBOL 3 Docs | Guide | Concepts | Functions | Datatypes | Errors |

TOC < Back Next > | Updated: 6-Feb-2010 Edit History |

It is common to represent version numbers, Internet addresses, and RGB color values as a sequence of three or four integers. These types of numbers are called a tuple! (as in quintuple) and are represented as a set of integers separated by periods.

1.3.0 2.1.120 1.0.2.32 ; version 199.4.80.250 255.255.255.0 ; net addresses/masks 0.80.255 200.200.60 ; RGB colors

Each integer field of a tuple! datatype can range between 0 and 255. Negative integers produce an error.

Three to ten integers can be specified in a tuple. In the case where only two integers are given, there must be at least two periods, otherwise the value is treated as a decimal.

```
probe 1.2 ; is decimal
1.2
```

```
probe type? 1.2
decimal!
```

```
probe 1.2.3 ; is tuple
1.2.3
```

```
probe 1.2. ; is tuple
1.2.0
```

```
probe type? 1.2.
tuple!
```

Use the to-tuple function to convert data to the tuple! datatype:

```
probe to-tuple "12.34.56"
12.34.56
```

```
probe to-tuple [12 34 56]
12.34.56
```

Use tuple? to determine whether a value is a tuple! datatype.

```
probe tuple? 1.2.3.4
true
```

Use the form function to print a tuple as a string:

```
probe form 1.2.3.4
1.2.3.4
```

Use the mold function to convert a tuple into a string that can be read back into REBOL as a tuple:

```
probe mold 1.2.3.4
1.2.3.4
```

Use the print function to print a tuple to standard output after using the reform function:

```
print 1.2.3.4
1.2.3.4
```

During math operations, elements of a tuple will clip at 0 and 255. This is done to make math easier for common tuple operations such generating as color values.

```
print navy
0.0.128
```

```
print navy * 2
0.0.255
```

```
print gray
128.128.128
```

```
print gray + green
128.255.128
```

TOC < Back Next > | REBOL.com - WIP Wiki | Feedback Admin |