Dire Ho una funzione (che non ha alcuna applicazione pratica, solo un interesse accademico, in tal modo strano scriverlo, con monoidi, funtori applicative e combinatori di punto fisso)debug somma infinita in Haskell
f :: Num a => a -> Sum a
f = fix ((<>) <$> Sum <*>)
Si tratta di errori di battitura, ma non posso essere sicuro che faccia ciò che è necessario fare prima di poterlo verificare.
Come si può eseguire il test e/o il debugging? Intendo qualcosa come vedere il risultato dopo diverse iterazioni come è possibile con take 10 [1..]
.
so un po 'su semplici strutture di debug di ghci
come :break
e :step
, ma passi nel calcolo non-terminazione quindi non posso controllare nulla (è ancora problematico ^C
esso). E non riesco a capire come usare il modulo Debug
in questa funzione.
Qualsiasi suggerimento sarebbe apprezzato.
Bene, puoi facilmente vedere cosa fa se lo espandi in 'f = fix (\ g -> \ x -> Sum x <> gx)' – phg