Ich habe schnell etwas Code in Haskell geschrieben und eine gefährliche Nicht-Gesamtfunktion verwendet, nämlich (wobei ich einen Wert von der Eingabe erwarte). Ich werde später darüber nachdenken, welche Art von Fehlerbehandlung ich verwenden möchte.Kann GHC vor der Verwendung gefährlicher Nicht-Gesamtfunktionen warnen?
Kann GHC mir helfen sicherzustellen, dass ich alle Verwendungen von gefährlichen Nicht-Gesamtfunktionen losgeworden bin (wie oder head
, die abstürzen könnten), gib mir Warnungen, wo sie sind.
Partialitätsschluss wird derzeit von den GHC-Entwicklern diskutiert. In der Zwischenzeit ist es wahrscheinlich am besten, die Importe dieser Funktionen zu verbergen und (um sicherzustellen, dass sie wirklich versteckt sind) sie selbst neu zu definieren: 'fromJust =()' sollte den Trick machen. – dfeuer
Sie können sie sogar in einem Modul neu definieren, das Sie unqualifiziert importieren, um "die Warnung zu aktivieren". Sie erhalten dann einen Mehrdeutigkeitsfehler, der Sie auf Orte verweist, an denen Sie tatsächlich die Versionen des Preludes verwenden (es sei denn, Sie qualifizieren sich dann wie in "Prelude.fromJust"). Es hilft jedoch nicht für Teilfunktionen, die Sie von qualifizierten Importen anderer Module verwenden. – Ben