Functions that can only be called once — for immutable lovers

function createOnceFunction(f) {
return new (class extends class {} {
constructor() {
return (...args) => {
super();
return f(...args);
};
}
})();
}
js

Usage:

const f = createOnceFunction(() => console.log("Hello"));
f(); // Hello
f();
js