import { anyToString } from '#src/utils/printers.js'; import { head, tail, nil, cons } from '#src/utils/list.functional.api.js'; let aList = cons(1, cons(2, nil)); console.log(anyToString(aList)); // -> (|1, 2|) console.logA(aList); // -> (|1, 2|) let anotherList = cons(3, tail(aList)); console.logA(anotherList) // -> (|3, 2|) ////////// Exercice 1 ////////// listIota(1,4); // -> cons(1, cons(2, cons(3, nil))) listIota(4,1); // -> nil listDisp(nil); // -> "(||)" listDisp(listIota(1, 4)); // -> "(|1,2,3|)" ////////// Exercice 2 ////////// listLength(nil); // -> 0 listLength(listIota(1, 6)); // -> 5 ////////// Exercice 3 ////////// listAbsRec(cons(1, cons(-2, nil))); // -> (|1,2|) ////////// Exercice 4 ////////// listAppend(listIota(1, 3), listIota(1, 4)); // -> (|1, 2, 1, 2, 3|) ////////// Exercice 5 ////////// listRotateLeft(listIota(1,5)); // (|1,2,3,4|) -> (|2,3,4,1|) listRotateRight(listIota(1,5)); // (|1,2,3,4|) -> (|4,1,2,3|) ////////// Exercice 6 ////////// ////////// Exercice 7 ////////// const left = cons(1, cons(6, cons(8, cons(47, cons(87, nil))))); const right = cons(3, cons(8, cons(9, cons(21, cons(50, nil))))); listMerge(left, right); // -> (|1,3,6,8,8,9,21,47,50,87|) const l4 = cons(3, cons(8, cons(9, cons(21, cons(50, nil))))); listSplit(l4) // -> [ (|3,8,9|), (|21,50|) ] ////////// Exercice 8 //////////