---
title: "API | ReScript"
metaTitle: "API"
description: "The ReScript API documentation"
canonical: "/docs/manual/api"
---
# Introduction
## Stdlib
[Stdlib](/docs/manual/api/stdlib) is ReScript's built-in 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 equivalent JavaScript API, for example `[1, 2, 3]->Array.map(a => a + 1)` compiles to `[1, 2, 3].map(a => a + 1)`.
## Additional Libraries
- [WebAPI](https://rescript-lang.github.io/experimental-rescript-webapi/): Experimental, but we expect it to be stable very soon. Similar to how the Stdlib allows interacting with move of the JavaScript API this library allows you to work with Web APIs like `fetch`, `navigator`, `localStorage`, etc...
- [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 |