lspitzner / lspitzner/pqueue

one PQueue datatype with type parameter for priority order

Offen
#8 7 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement
Vorherrschende Sprache
Haskell
Sterne
17
Forks
12
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Currently you define MaxPQueue as wrapper around MinPQueue. I would prefer a general PQueue data type with a type parameter that chooses between the Min and Max variant.
That would save the wrapper code in Data.PQueue.Max and code duplication in custom utility functions.
I think it can still be Haskell 98 with definitions like these:

class Dir dir where dirCompare :: (Ord a) => dir -> a -> a -> Ordering
data Min = Min; instance Dir Min where dirCompare Min = compare
data Max = Max; instance Dir Max where dirCompare Max = flip compare

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der Überprüfung des vorhandenen MaxPQueue-Wrappers in Data.PQueue.Max und der im Issue erwähnten benutzerdefinierten Utility-Funktionen. Vergleiche ihr Verhalten mit dem vorgeschlagenen parametrisierten PQueue-Design; als abgeschlossen gilt dies, wenn das Verhalten von Min und Max erhalten bleibt, der Wrapper und die duplizierten Utilities jedoch nicht mehr benötigt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
haskell
Bereich
data
Issue-Typ
Refactoring
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.