Dies ist eher eine theoretische Frage, aber ich denke, es muss einen Weg geben, dies zu tun.Pure Funktioneller Ansatz zum Generieren einer eindeutigen ID
Ich habe JS-Komponenten, für die, wenn sie erstellt werden, müssen sie eine eindeutige ID zu einem HTML-Element zuweisen, eine, die in keiner anderen Komponente verwendet wurde. Das ist ziemlich trivial normalerweise:
let currentId = 0;
function getNextId() {
currentId += 1;
return currentId;
}
function MyComponent() {
this.id = getNextId();
// Code which uses id
}
let c1 = new MyComponent();
// c1.id === 1
let c2 = new MyComponent();
// c2.id === 2
Ich frage mich, ob es eine Möglichkeit, diese Art der Sache zu tun, nur reine Funktionen verwenden, wie ich versuche, meinen Kopf um einige erweitern rein funktionalen Ideen zu wickeln. Soweit ich sagen kann, würde es Monaden oder etwas von dieser Vielfalt erfordern, aber ich weiß nicht, wie ich das machen soll.
Vielen Dank!
globaler Zustand wird durch 1), die den Zustand als zusätzliches Argument simuliert alle 2) Zurückgeben des (möglicherweise aktualisierten) Zustands als einen zusätzlichen Rückgabewert und 3) Sicherstellen, dass alle Verbraucher des Zustands richtig sequenziert sind, so dass der aktualisierte Zustand von einer Funktion an die nächste Funktion weitergegeben wird. In Haskell ist dies durch die "State" -Monade gekapselt. – chepner
@chepner Das ist schon fast eine Antwort. – duplode
Hey @chepner! Danke für die Information! Könnten Sie vielleicht eine StackOverflow-Antwort bereitstellen, die diese Idee in der Praxis anhand des oben angegebenen Beispiels zeigt? Wenn Sie es tun und es funktioniert, würde ich gerne die Antwort akzeptieren! –