---
title: "API | ReScript"
metaTitle: "API"
description: "The ReScript API documentation"
canonical: "/docs/manual/api"
---
# Introduction
## Stdlib
[Stdlib](/docs/manual/api/stdlib) is ReScript's builtin standard library.
It contains just what you need for day-to-day programming in ReScript and covers most of the built in JavaScript API along with extra functions that work well in ReScript.
When possible it will compile directly to the equivelent JavaScript API, for example `[1, 2, 3]->Array.map(a => a + 1)` compiles to `[1, 2, 3].map(a => a + 1)`.
## Additional Libraries
ReScript ships with these two additional modules in its standard library:
- [WebAPI](https://rescript-lang.github.io/experimental-rescript-webapi/): Experimental, but we expect it to be stable very soon.
- [Belt](/docs/manual/api/belt): Immutable collections and extra helpers not available in JavaScript / [Stdlib](/docs/manual/api/stdlib).
- [Dom](/docs/manual/api/stdlibdom): Deprecated Dom related types and modules. You should use the `WebAPI` library instead.
---
title: "Array & List"
description: "Arrays and List data structures"
canonical: "/docs/manual/array-and-list"
section: "Language Features"
order: 12
---
# Array and List
## Array
Arrays are the main ordered data structure in ReScript. They can be randomly accessed, dynamically resized, and updated.
{React.string("Tag: " ++ params.tag /* params is fully typed! */)}
{React.string("Item: " ++ params.item)}
| Example | Description |
|---|---|
| ``` let myFun = (x, y) => { let doubleX = x + x let doubleY = y + y doubleX + doubleY } ``` | Function body with implicit return |
| ``` let result = { let x = 23 let y = 34 x + y } ``` | Block expression bound to a variable |