Fix and re-apply formatter on all acceptance tests

Less noise, pretty tuples. Everyone's happy.
This commit is contained in:
KtorZ
2023-01-14 11:45:34 +01:00
parent 5b7147fc43
commit 8c19d4ec08
16 changed files with 152 additions and 107 deletions

View File

@@ -1,19 +1,19 @@
pub opaque type AssocList<key, value> {
inner: List<#(key, value)>,
inner: List<(key, value)>,
}
pub fn new() -> AssocList<key, value> {
AssocList { inner: [] }
}
pub fn from_list(xs: List<#(key, value)>) -> AssocList<key, value> {
pub fn from_list(xs: List<(key, value)>) -> AssocList<key, value> {
AssocList { inner: do_from_list(xs) }
}
fn do_from_list(xs: List<#(key, value)>) -> List<#(key, value)> {
fn do_from_list(xs: List<(key, value)>) -> List<(key, value)> {
when xs is {
[] -> []
[#(k, v), ..rest] -> do_insert(do_from_list(rest), k, v)
[(k, v), ..rest] -> do_insert(do_from_list(rest), k, v)
}
}
@@ -26,35 +26,35 @@ pub fn insert(
}
fn do_insert(
elems: List<#(key, value)>,
elems: List<(key, value)>,
k: key,
v: value,
) -> List<#(key, value)> {
) -> List<(key, value)> {
when elems is {
[] -> [#(k, v)]
[#(k2, v2), ..rest] ->
[] -> [(k, v)]
[(k2, v2), ..rest] ->
if k == k2 {
[#(k, v), ..rest]
[(k, v), ..rest]
} else {
[#(k2, v2), ..do_insert(rest, k, v)]
[(k2, v2), ..do_insert(rest, k, v)]
}
}
}
pub fn union(
left left: AssocList<key, value>,
right right: AssocList<key, value>,
left: AssocList<key, value>,
right: AssocList<key, value>,
) -> AssocList<key, value> {
AssocList { inner: do_union(left.inner, right.inner) }
}
fn do_union(
left: List<#(key, value)>,
right: List<#(key, value)>,
) -> List<#(key, value)> {
left: List<(key, value)>,
right: List<(key, value)>,
) -> List<(key, value)> {
when left is {
[] -> right
[#(k, v), ..rest] -> do_union(rest, do_insert(right, k, v))
[(k, v), ..rest] -> do_union(rest, do_insert(right, k, v))
}
}