haskell / haskell/deepseq

Add method to help with strict containers

Offen
#97 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Haskell
Sterne
45
Forks
31
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I propose an `NFData` method (by some name)

```haskell
whnfIsNf :: proxy a -> Bool
whnfIsNf _ = False
```

Then we can have, for example,

```haskell
instance NFData Integer where
whnfIsNf _ = True
instance NFData a => NFData (Set a) where
whnfIsNf _ = whnfIsNf (Proxy :: Proxy a)
rnf
| whnfIsNf (Proxy :: Proxy a)
= \ !_ -> ()
| otherwise
= ....
```

This can avoid a bunch of unnecessary traversals.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne mit der Durchsicht des NFData-Interfaces und der vorgeschlagenen Set-Instanz und untersuche anschließend, wie strikte Container derzeit durchlaufen werden. Der Issue nennt keine Dateien oder Tests; für die Fertigstellung müssten der Methodenname und die Semantik festgelegt, die relevante NFData-Unterstützung hinzugefügt und gezeigt werden, dass unnötige Durchläufe vermieden werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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