Attualmente sto cercando di scrivere una piccola istanza Show per le funzioni aritmetiche primitive.Istanza Mostra per la funzione
Obiettivo per creare un elenco di funzioni visualizzabili.
La funzione molto semplice per lo show sembra che:
showOp :: (Int -> Int -> Int) -> String
showOp op
| op 3 3 == 6 = "plus"
| op 3 3 == 0 = "minus"
| op 3 3 == 9 = "times"
| op 3 3 == 1 = "divide"
| otherwise = "undefined"
Ma io non può ottenere un'istanza di Show for (int -> int -> Int). Ho provato così:
instance Show (Int -> Int -> Int) where
show op = show "asdf"
Ma non funziona. WinHugs restituisce semplicemente l'errore
Syntax error in instance head (variable expected)
È possibile definire anche Mostra per le funzioni? Se lo è, come potrei affrontare quel problema?
Detto questo, non è possibile definire "Mostra" per fornire effettivamente maggiori dettagli sulla funzione. –
Sicuro che lo sia. Può mostrare il tipo (dato via Typeable); oppure può mostrare alcuni degli ingressi e delle uscite (come avviene in QuickCheck). –
... Sì. Va bene. Scusate. Tuttavia, non può mostrare l'implementazione o il nome. –