js-slang
Version:
Javascript-based implementations of Source, written in Typescript
20 lines • 681 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stream = stream;
exports.list_to_stream = list_to_stream;
const list_1 = require("./list");
/**
* Makes a Stream out of its arguments\
* LOW-LEVEL FUNCTION, NOT SOURCE
*/
function stream(...elements) {
if (elements.length === 0)
return null;
const [item, ...rest] = elements;
return (0, list_1.pair)(item, () => stream(...rest));
}
// same as list_to_stream in stream.prelude.ts
function list_to_stream(xs) {
return (0, list_1.is_null)(xs) ? null : (0, list_1.pair)((0, list_1.head)(xs), () => list_to_stream((0, list_1.tail)(xs)));
}
//# sourceMappingURL=stream.js.map