This is a `playground`

to test code. It runs a full `Node.js`

environment and already has all of `npm`

’s 1,000,000+ packages pre-installed, including `sanctuary-int`

with all `npm`

packages installed. **Try it out**:

var sanctuaryInt = require("sanctuary-int")

- all documents on RunKit are public
`require()`

any package directly from npm- use arrow functions, classes, template strings, and most of ES6
`await`

any promise instead of using callbacks (example)- create your own embedded
**node.js**snippets

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

A collection of functions which operate on 32-bit signed integers.

`Int :: Type`

The Int type represents integers in the range [-2^31 .. 2^31).

`NonZeroInt :: Type`

The NonZeroInt type represents non-zero integers in the range [-2^31 .. 2^31).

`add :: Int -> Int -> Int`

Returns the sum of its two arguments.

```
> add (1) (2)
3
```

`sub :: Int -> Int -> Int`

Returns the result of subtracting its first argument from its second argument.

```
> sub (1) (100)
99
```

`mul :: Int -> Int -> Int`

Returns the product of its two arguments.

```
> mul (6) (7)
42
```

`quot :: NonZeroInt -> Int -> Int`

Returns the result of dividing its second argument by its first argument, truncating towards zero.

Throws if the divisor is zero.

See also `div`

.

```
> quot (5) (42)
8
> quot (-5) (42)
-8
> quot (5) (-42)
-8
> quot (-5) (-42)
8
```

`rem :: NonZeroInt -> Int -> Int`

Integer remainder, satisfying:

```
quot (y) (x) * y + rem (y) (x) === x
```

Throws if the divisor is zero.

See also `mod`

.

```
> rem (5) (42)
2
> rem (-5) (42)
2
> rem (5) (-42)
-2
> rem (-5) (-42)
-2
```

`div :: NonZeroInt -> Int -> Int`

Returns the result of dividing its second argument by its first argument, truncating towards negative infinity.

Throws if the divisor is zero.

See also `quot`

.

```
> div (5) (42)
8
> div (-5) (42)
-9
> div (5) (-42)
-9
> div (-5) (-42)
8
```

`mod :: NonZeroInt -> Int -> Int`

Integer modulus, satisfying:

```
div (y) (x) * y + mod (y) (x) === x
```

Throws if the divisor is zero.

See also `rem`

.

```
> mod (5) (42)
2
> mod (-5) (42)
-3
> mod (5) (-42)
3
> mod (-5) (-42)
-2
```

`and :: Int -> Int -> Int`

Bitwise AND. Returns an Int with a one at each bit position at which both arguments have a one.

```
> and (0b1100) (0b1010)
0b1000
```

`or :: Int -> Int -> Int`

Bitwise OR. Returns an Int with a one at each bit position at which at least one argument has a one.

```
> or (0b1100) (0b1010)
0b1110
```

`xor :: Int -> Int -> Int`

Bitwise XOR. Returns an Int with a one at each bit position at which exactly one argument has a one.

```
> xor (0b1100) (0b1010)
0b0110
```

`not :: Int -> Int`

Bitwise NOT, satisfying:

```
not (x) === -(x + 1)
```

```
> not (42)
-43
```

`even :: Int -> Boolean`

Returns `true`

if its argument is even; `false`

if it is odd.

```
> even (42)
true
```

`odd :: Int -> Boolean`

Returns `true`

if its argument is odd; `false`

if it is even.

```
> odd (42)
false
```

- package on npmhttps://npmjs.com/package/sanctuary-int
- licenseMIT

RunKit is a free, in-browser JavaScript dev environment for prototyping **Node.js** code, with every **npm** package installed. Sign up to share your code.

Sign Up for Free