Typing arguments

Previously, we saw an increment inc: func [n][n + 1] function . This function takes a n parameter, but no type is specified for n. inc works for numbers (inc 3.14 returns 4.14), but not, for example, for strings, because the + operation is not defined for strings. So when we use inc "abc", it shows the *** Script Error: + does not allow string! for its value1 argument error.

This dynamic typing, which you perhaps know from Python, Ruby, or JavaScript, makes functions very flexible and general, but also vulnerable to these runtime errors.

In Red, typing is optional, which means you can work this way, but you can also indicate an argument's type as shown in the following screenshot:

inc: func [n [integer!]][n + 1]

Here we ...

Get Learn Red - Fundamentals of Red now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.