aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2024-04-18 18:48:07 +0100
committerLouis Pilfold <louis@lpil.uk>2024-04-18 18:48:09 +0100
commit3fde1cdf30523354b4dacbc76a856e922dcad2f4 (patch)
tree85161018afed19f11ddd03696e41ed850a584747
parentb76a08f958a34c66b61b1e80860514544f6f951b (diff)
downloadgleam_stdlib-3fde1cdf30523354b4dacbc76a856e922dcad2f4.tar.gz
gleam_stdlib-3fde1cdf30523354b4dacbc76a856e922dcad2f4.zip
map -> dict
Closes https://github.com/gleam-lang/stdlib/issues/564
-rw-r--r--src/gleam/set.gleam30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/gleam/set.gleam b/src/gleam/set.gleam
index 42e2d59..b88e07c 100644
--- a/src/gleam/set.gleam
+++ b/src/gleam/set.gleam
@@ -1,8 +1,8 @@
-import gleam/list
import gleam/dict.{type Dict}
+import gleam/list
import gleam/result
-// A list is used as the map value as an empty list has the smallest
+// A list is used as the dict value as an empty list has the smallest
// representation in Erlang's binary format
@target(erlang)
type Token =
@@ -24,7 +24,7 @@ const token = Nil
/// logarithmic time complexity.
///
pub opaque type Set(member) {
- Set(map: Dict(member, Token))
+ Set(dict: Dict(member, Token))
}
/// Creates a new empty set.
@@ -48,7 +48,7 @@ pub fn new() -> Set(member) {
/// ```
///
pub fn size(set: Set(member)) -> Int {
- dict.size(set.map)
+ dict.size(set.dict)
}
/// Inserts an member into the set.
@@ -66,7 +66,7 @@ pub fn size(set: Set(member)) -> Int {
/// ```
///
pub fn insert(into set: Set(member), this member: member) -> Set(member) {
- Set(map: dict.insert(set.map, member, token))
+ Set(dict: dict.insert(set.dict, member, token))
}
/// Checks whether a set contains a given member.
@@ -90,7 +90,7 @@ pub fn insert(into set: Set(member), this member: member) -> Set(member) {
/// ```
///
pub fn contains(in set: Set(member), this member: member) -> Bool {
- set.map
+ set.dict
|> dict.get(member)
|> result.is_ok
}
@@ -111,7 +111,7 @@ pub fn contains(in set: Set(member), this member: member) -> Bool {
/// ```
///
pub fn delete(from set: Set(member), this member: member) -> Set(member) {
- Set(map: dict.delete(set.map, member))
+ Set(dict: dict.delete(set.dict, member))
}
/// Converts the set into a list of the contained members.
@@ -129,7 +129,7 @@ pub fn delete(from set: Set(member), this member: member) -> Set(member) {
/// ```
///
pub fn to_list(set: Set(member)) -> List(member) {
- dict.keys(set.map)
+ dict.keys(set.dict)
}
/// Creates a new set of the members in a given list.
@@ -146,11 +146,11 @@ pub fn to_list(set: Set(member)) -> List(member) {
/// ```
///
pub fn from_list(members: List(member)) -> Set(member) {
- let map =
+ let dict =
list.fold(over: members, from: dict.new(), with: fn(m, k) {
dict.insert(m, k, token)
})
- Set(map)
+ Set(dict)
}
/// Combines all entries into a single value by calling a given function on each
@@ -173,7 +173,7 @@ pub fn fold(
from initial: acc,
with reducer: fn(acc, member) -> acc,
) -> acc {
- dict.fold(over: set.map, from: initial, with: fn(a, k, _) { reducer(a, k) })
+ dict.fold(over: set.dict, from: initial, with: fn(a, k, _) { reducer(a, k) })
}
/// Creates a new set from an existing set, minus any members that a given
@@ -195,14 +195,14 @@ pub fn filter(
in set: Set(member),
keeping predicate: fn(member) -> Bool,
) -> Set(member) {
- Set(dict.filter(in: set.map, keeping: fn(m, _) { predicate(m) }))
+ Set(dict.filter(in: set.dict, keeping: fn(m, _) { predicate(m) }))
}
pub fn drop(from set: Set(member), drop disallowed: List(member)) -> Set(member) {
list.fold(over: disallowed, from: set, with: delete)
}
-/// Creates a new map from a given map, only including any members which are in
+/// Creates a new set from a given set, only including any members which are in
/// a given list.
///
/// This function runs in loglinear time.
@@ -217,11 +217,11 @@ pub fn drop(from set: Set(member), drop disallowed: List(member)) -> Set(member)
/// ```
///
pub fn take(from set: Set(member), keeping desired: List(member)) -> Set(member) {
- Set(dict.take(from: set.map, keeping: desired))
+ Set(dict.take(from: set.dict, keeping: desired))
}
fn order(first: Set(member), second: Set(member)) -> #(Set(member), Set(member)) {
- case dict.size(first.map) > dict.size(second.map) {
+ case dict.size(first.dict) > dict.size(second.dict) {
True -> #(first, second)
False -> #(second, first)
}