considerare il seguenteQual'è la sintassi per il coprodotto (unione disgiunta) dei tipi in Haskell?
data Point=Point{x::Float,y::Float}
data Shape=Circle{centre::Point,radius::Float}
|Rectangle {uleft::Point,bRight::Point}
Qui la forma tipo è un coprodotto di due tipi cerchio e rettangolo. Potrei voler riutilizzare i tipi Circle and Rectangle altrove. Quindi sarebbe utile fare questo, invece:
data Point=Point{x::Float,y::Float}
data Circle=Circle{centre::Point,radius::Float}
data Rectangle=Rectangle {uleft::Point,bRight::Point}
data Shape =Circle | Rectangle
ma ottengo un errore di compilazione quando faccio questo: Circle viene dichiarato due volte. Qual è la sintassi corretta per tentare questo, o questo non è possibile?
Look: http://calculist.blogspot.com.au/2008/02/true-unions.html – CMCDragonkai