fix missing return stmt

This commit is contained in:
Joeri Exelmans 2025-04-18 09:14:42 +02:00
parent 28f60e77be
commit c51e517b66

View file

@ -1,10 +1,10 @@
// Total ordering of composed types
import { compareNumbers } from "./primitives.js" import { compareNumbers } from "./primitives.js"
import { get, length as lengthLs } from "../structures/list.js"; import { get, length as lengthLs } from "../structures/list.js";
import { read, length as lengthSet } from "../structures/set.js"; import { read, length as lengthSet } from "../structures/set.js";
import { constructorProduct, getLeft, getRight } from "../structures/product.js"; import { constructorProduct, getLeft, getRight } from "../structures/product.js";
import { match } from "../structures/sum.js"; import { match } from "../structures/sum.js";
import { makeGeneric } from "../generics/generics.js";
import { lsType } from "../structures/types.js";
// (a -> a -> Int) -> [a] -> [a] -> Int // (a -> a -> Int) -> [a] -> [a] -> Int
export const compareLists = compareElems => x => y => { export const compareLists = compareElems => x => y => {
@ -48,13 +48,13 @@ export const compareSets = compareElems => x => y => {
// because of the underlying red-black tree, iteration happens in ordered fashion // because of the underlying red-black tree, iteration happens in ordered fashion
const iterate = iterX => iterY => const iterate = iterX => iterY =>
read(iterX) read(iterX)
(keyX => nextX => (keyX => nextX =>
read(iterY) read(iterY)
// we could also use the comparison function that is embedded in the set object, // we could also use the comparison function that is embedded in the set object,
// but to be consistent with the other comparison-functions, we don't. // but to be consistent with the other comparison-functions, we don't.
(keyY => nextY => compareElems(keyX)(keyY) || iterate(nextX)(nextY)) (keyY => nextY => compareElems(keyX)(keyY) || iterate(nextX)(nextY))
(0)) // end of set y (we'll never get here because sets are same size) (0)) // end of set y (we'll never get here because sets are same size)
(0) // end of set x; (0); // end of set x
iterate(first(x))(first(y)); return iterate(first(x))(first(y));
})(); })();
}; };