16 lines
561 B
JavaScript
16 lines
561 B
JavaScript
// 'normal' implementation
|
|
export const emptyList = [];
|
|
// const emptyListType = makeGeneric(a => lsType(() => a));
|
|
export const get = ls => i => ls[i];
|
|
export const put = ls => i => elem => ls.with(Number(i), elem);
|
|
export const push = ls => elem => ls.concat([elem]);
|
|
export const pop = ls => ls.pop();
|
|
export const map = ls => fn => ls.map(elem => fn(elem));
|
|
export const length = ls => ls.length;
|
|
export const fold = callback => initial => ls => {
|
|
let acc = initial;
|
|
for (let i=0; i<ls.length; i++) {
|
|
acc = callback(acc)(ls[i]);
|
|
}
|
|
return acc;
|
|
}
|