Ho scritto rapidamente un codice in Haskell e ho utilizzato una funzione non totale pericolosa, ovvero fromJust
(dove mi aspetto un valore dall'input). Ho intenzione di pensare più tardi che tipo di stile di gestione degli errori voglio usare.GHC può avvisare in merito all'uso di funzioni non totali pericolose?
può GHC aiutarmi a fare in modo che ho sbarazzato di tutti gli usi di funzioni non totale pericolose (come fromJust
o head
, che potrebbe mandare in crash), dammi avvertimenti dove sono.
L'inferenza di parzialità è attualmente in discussione dagli sviluppatori di GHC. Nel frattempo, la soluzione migliore è probabilmente quella di nascondere le importazioni di tali funzioni e (per assicurarsi che siano davvero nascoste) ridefinirle da soli: 'fromJust =()' dovrebbe fare il trucco. – dfeuer
Anche solo ridefinirli in un modulo, che viene importato come non qualificato per "attivare l'avviso". Avrai quindi un errore di ambiguità che ti indica in qualunque posto tu usi effettivamente le versioni del Preludio (a meno che tu non si qualifichi, come in Prelude.fromJust'). Tuttavia, non sarà di aiuto per le funzioni parziali che si utilizzano dalle importazioni qualificate di altri moduli. – Ben