Clojure offers a wide variety of built-in data types.
Following is a list of data types which are defined in Clojure.
Integers − Following are the representation of Integers available in Clojure.
Decimal Integers (Short, Long and Int) − These are used to represent whole numbers. For example, 1234.
Octal Numbers − These are used to represent numbers in octal representation. For example, 012.
Hexadecimal Numbers − These are used to represent numbers in representation. For example, 0xff.
Radix Numbers − These are used to represent numbers in radix representation. For example, 2r1111 where the radix is an integer between 2 and 36, inclusive.
Floating point
The default is used to represent 32-bit floating point numbers. For example, 12.34.
The other representation is the scientific notation. For example, 1.35e-12.
char − This defines a single character literal. Characters are defined with the backlash symbol. For example, /e.
Boolean − This represents a Boolean value, which can either be true or false.
String − These are text literals which are represented in the form of chain of characters. For example, “Hello World”.
Nil − This is used to represent a NULL value in Clojure.
Atom − Atoms provide a way to manage shared, synchronous, independent state. They are a reference type like refs and vars.
Since all of the datatypes in Clojure are inherited from Java, the bounded values are the same as in Java programming language. The following table shows the maximum allowed values for the numerical and decimal literals.
literals | Ranges |
---|---|
Short | -32,768 to 32,767 |
int | -2,147,483,648 to 2,147,483,647 |
long | -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 |
float | 1.40129846432481707e-45 to 3.40282346638528860e+38 |
double | 4.94065645841246544e-324d to 1.79769313486231570e+308d |
In addition to the primitive types, the following object types (sometimes referred to as wrapper types) are allowed.
Name |
---|
java.lang.Byte |
java.lang.Short |
java.lang.Integer |
java.lang.Long |
java.lang.Float |
java.lang.Double |
The following program shows a consolidated clojure code to demonstrate the data types in Clojure.
(ns clojure.examples.hello (:gen-class)) ;; This program displays Hello World (defn Example [] ;; The below code declares a integer variable (def x 1) ;; The below code declares a float variable (def y 1.25) ;; The below code declares a string variable (def str1 "Hello") (println x) (println y) (println str1)) (Example)
The above program produces the following output.
1 1.25 Hello