Packages
gleam_stdlib
0.33.1
1.0.3
1.0.2
1.0.1
1.0.0
0.71.0
0.70.0
0.69.0
0.68.1
0.68.0
0.67.1
0.67.0
0.65.0
0.64.0
0.63.2
0.63.1
0.63.0
0.62.1
0.62.0
0.61.0
0.60.0
0.59.0
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.1
0.35.0
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.2
0.30.1
0.30.0
0.29.2
0.29.1
0.29.0
0.28.2
0.28.1
0.28.0
0.27.0
0.26.1
0.26.0
0.25.0
0.24.0
0.23.0
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.18.0-rc1
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.4.0-rc1
0.3.1
0.3.0
0.2.0
retired
A standard library for the Gleam programming language
Current section
Files
Jump to
Current section
Files
src/gleam/map.gleam
import gleam/option.{type Option}
import gleam/dict
@deprecated("Please use the `gleam/dict` module instead")
pub type Map(key, value) =
dict.Dict(key, value)
@deprecated("Please use the `gleam/dict` module instead")
pub fn size(map) -> Int {
dict.size(map)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn to_list(map) -> List(#(key, value)) {
dict.to_list(map)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn from_list(list: List(#(k, v))) {
dict.from_list(list)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn has_key(map, key: k) -> Bool {
dict.has_key(map, key)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn new() {
dict.new()
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn get(from, get: key) -> Result(value, Nil) {
dict.get(from, get)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn insert(into map, for key: k, insert value: v) {
dict.insert(map, key, value)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn map_values(in map, with fun: fn(k, v) -> w) {
dict.map_values(map, fun)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn keys(map) -> List(keys) {
dict.keys(map)
}
@target(javascript)
fn reverse_and_concat(remaining, accumulator) {
case remaining {
[] -> accumulator
[item, ..rest] -> reverse_and_concat(rest, [item, ..accumulator])
}
}
@target(javascript)
fn do_keys_acc(list: List(#(k, v)), acc: List(k)) -> List(k) {
case list {
[] -> reverse_and_concat(acc, [])
[x, ..xs] -> do_keys_acc(xs, [x.0, ..acc])
}
}
@target(javascript)
fn do_keys(map) -> List(k) {
let list_of_pairs =
map
|> to_list
do_keys_acc(list_of_pairs, [])
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn values(map) -> List(values) {
dict.values(map)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn filter(in map, keeping predicate: fn(k, v) -> Bool) {
dict.filter(map, predicate)
}
@target(javascript)
fn do_filter(f: fn(key, value) -> Bool, map) {
let insert = fn(map, k, v) {
case f(k, v) {
True -> insert(map, k, v)
_ -> map
}
}
map
|> fold(from: new(), with: insert)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn take(from map, keeping desired_keys: List(k)) {
dict.take(map, desired_keys)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn merge(into map, from new_entries) {
dict.merge(map, new_entries)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn delete(from map, delete key: k) {
dict.delete(map, key)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn drop(from map, drop disallowed_keys: List(k)) {
dict.drop(map, disallowed_keys)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn update(in map, update key: k, with fun: fn(Option(v)) -> v) {
dict.update(map, key, fun)
}
@deprecated("Please use the `gleam/dict` module instead")
pub fn fold(over map, from initial: acc, with fun: fn(acc, k, v) -> acc) -> acc {
dict.fold(map, initial, fun)
}