a-synchronous / a-synchronous/rubico
rubico/monad/Queue
- Vorherrschende Sprache
- JavaScript
- Sterne
- 283
- Forks
- 17
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
## Queue
the queue data structure
## synopsis
```coffeescript
new Queue(values Iterable|any) -> Queue {
map: function,
concat: function,
chain: function,
enqueue: function,
dequeue: function,
peek: function,
}
```
## description
A **Queue** is a data structure that supports `enqueue` and `dequeue` operations in O(1) time as well as monadic operations that enable iteration, concatenation, and flattening. Items pushed into a queue are first in first out (FIFO).
```javascript [playground]
const myQueue = new Queue([1, 2, 3])
console.log(myQueue) // Queue [3, 2, 1]
myQueue.enqueue(4)
myQueue.enqueue(5)
myQueue.enqueue(6)
console.log(myQueue) // Queue [6, 5, 4, 3, 2, 1]
console.log(myQueue.dequeue()) // 1
```
Beitragsleitfaden
Rechercherichtung
Suche im Codebestand nach dem Modul monad/Queue, wahrscheinlich in einem Verzeichnis namens 'monad'. Das Issue gibt die Implementierung einer Queue-Datenstruktur mit enqueue, dequeue, peek und monadischen Operationen (map, concat, chain) vor. Untersuche zunächst vorhandene monadische Implementierungen (wie Maybe, Either), um das Muster zu verstehen. Schreibe Tests, um O(1)-Operationen und FIFO-Verhalten zu überprüfen. Fertig ist die Aufgabe, wenn die Queue-Klasse der Synopsis entspricht und alle Tests besteht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- coffeescript, javascript
- Issue-Typ
- Feature
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 45/100