Esiste qualche nozione sulla qualità del puntatore in Haskell? == richiede che le cose derivino Eq, e ho qualcosa che contiene un valore (Valore -> Valore IO), e né -> né IO derivano Eq.Uguaglianza puntatore in Haskell?
EDIT: Sto creando un interprete per un'altra lingua che fa ha uguaglianza puntatore, quindi sto cercando di modellare questo comportamento, pur essendo in grado di utilizzare le funzioni di Haskell per modellare le chiusure.
EDIT: Esempio: Voglio una funzione special
che farebbe questo:
> let x a = a * 2
> let y = x
> special x y
True
> let z a = a * 2
> special x z
False
Voglio solo vedere se due funzioni che sto ottenendo sono in realtà la stessa funzione. Sto cercando di creare un interprete per un'altra lingua che abbia uguaglianza di puntatore e voglio imitare questo comportamento. – Claudiu
Ma cosa significa esattamente "stessa funzione"? (\ x -> x) ha la stessa funzione di (\ x -> x). La stessa funzione di ((\ x y -> y) x), ecc. Penso che quello che ti serve sia un dato aggiuntivo per tracciare l '"indirizzo" di una funzione nella tua lingua interpretata. Una monade che modella un a -> (Int, a) coalgebra potrebbe essere in ordine. – Apocalisp
Purtroppo abbiamo il caso male = ID {unId = const undefined} anche, quindi il tuo esempio non è vero al 100%. Quei fastidiosi fondi. :) – Tirpen