## Primitive Types in Quorum

When programming a computer, we often say that a variable has a type. For example, suppose that I have a variable with the name "a". It could be the case that this variable is a number, like 4.2, or it could be some text that we have written for a book, like, "It was the best of times." In Quorum, there are several types, and if those types are not enough, we can define our own. In this section, we go over the various types allowed in the Quorum programming language.

### integer

An integer is a number, either positive, negative, or zero, that does not have a decimal point. You can create an integer in Quorum by declaring it as follows:

``````integer a = 10
output a``````

This would create a variable, named "a", that has the value of 10. Similarly, while we can use the word "integer" before the variable named "a", we can also optionally leave that off, like so:

``````a = 10
output a``````

## Activity: Try integers

Try the above code blocks.

### number

A number is similar to an integer, except that it allows decimal points. For example:

``````number a = 10.4
output a``````

Like before, the type annotation in this case is optional. We can either tell Quorum it is a number directly or we can allow Quorum to figure this out on its own. Either way, once Quorum has detected what a variable is defined as, it is fixed to that type to help prevent accidental mistakes. Like before, we can leave the type annotation off as so:

``````a = 10.4
output a``````

## Activity: Try numbers

Try the above code blocks.

### boolean

The type of boolean has only two possible values, true and false. We can create a boolean as follows:

``````boolean a = true
output a``````

To use a boolean, we can either create it directly, like above, using the keywords "true" or "false". Alternatively, booleans come up regularly in computers when we compare different values. For example, suppose we had two integers, a and b, and we wanted to see whether a was "bigger" than b. We could do this using the following code:

``````integer a = 5
integer b = 6
boolean answer = a > b
c = answer //Quorum can figure out the type, if you prefer
output c``````

## Activity: Try booleans

Try the above code blocks.

### text

The text type is designed to let you use normal written text in your computer program. You can type any phrase, from a phrase to a page in a book. You can create a variable of type text as follows:

``````text a = "Hello, World!"
output a``````

## Activity: Try text

Try the above code blocks.

## Type conversion

Sometimes you need to convert one type to another. This is called converting types, or more commonly, type casting. Suppose, for example, that you had text like so:

``````text someText = "4.2"
output someText``````

This text has the value of 4.2, which looks like a number would, but how would you convert it? In Quorum, you do this using the cast action:

``````text someText = "4.2"

## Activity: Try Type Conversion

Try the above code blocks.

## Variable names

While you can create variables of many types, the names are constrained. First, any variable you name must start with a letter, and it can be followed by any number of characters, numbers, or underscore characters. For example, any of the following names would be allowed:

``````integer sally = 5
integer billy_likes_sally = 10
integer billy_likes_sally2 = 15
output sally
output billy_likes_sally
output billy_likes_sally2``````

However, none of the following names are allowed:

``````integer 5sally = 5 //a number cannot be the first character
integer _sally = 10 //an underscore cannot be the first character
integer sall&&%%^\$*#(y //not all characters are allowed to be used in names``````

## Activity: Try Variable Naming

Try the above code blocks, noting which names are allowed and which are not.

## Next Tutorial

In the next tutorial, we will discuss operators, which describes how to apply mathematical operators to types.