Rowan home > Reference

Rowan Reference

This is the reference for Rowan.net version 1.2. Each # function has a link describing its full syntax, exceptions it can throw, and functionality. Symbols which need a special key combination to enter show what to type to get them with the default keyboard map.

Data Types

The following are real data types:

i, n and c type arguments can also be an array type argument, every atomic member of which is of the appropriate type (i, n or c). obj is used to mean any stack item. is, ns and cs are used where a vector type is invalid.

Types nv and cv no longer exist, as they once did in R (treated as arrays). Types i and n can now be vector. Also [1 2 3] will be of type (Integer | Vector), i.e. an integer vector, although it may be passed where array is required. (See #type for details.)

Symbolic Functions

All functions which take one or more extended-precision arguments on return an extended-precision value if one is passed. In general, the return type of a function is that of the ‘widest’ of its arguments.

(AltGr+A) and (AltGr+W) are not functions, they are read-only names within a user-defined function and are treated as nouns by the interpreter.

Monads

Arithmetic functions (default level -1). Many are shorthands for the dyad version (see below) with an implicit left argument. Array functions (default level 0):

Miscellaneous functions; default level 0 unless otherwise stated:

Dyads

Arithmetic functions, all of default level (-1 -1):

Logical functions:

Array functions:

Miscellaneous functions:

# Functions

There are also some subsidiary # functions in control structures which are always linked to one of those above:

Operators and Conjunctions

Operators and conjunctions modify the way other functions work. Operators have either one or two functions as their arguments, and conjunctions have one function and one noun. The functional arguments are signified by fn, dfn for a dyad only and mfn for a monad only.

System Variables

Errors

The following errors can be signalled by the R.net interpreter. In addition, external calls may produce any .Net exception.

Plugins

Plugins for Rowan must be placed in the /RowanPlugins subfolder. Classes within the assemblies which implement the RedCorona.Rowan.IRowanPlugin interface (defined in RowanCore.dll) will be loaded. The standard Rowan installation includes various plugins, which will be in your RowanPlugins directory already. Missing plugins can cause scripts not to load, as the tokeniser will throw a R.MissingSystemTokenException for unknown interpreter features.