Полиморфные типы как операции над множествами значений

Nov 01, 2007 12:01


Полиморфные алгебраические типы данных можно рассматривать не только как типы с определенной структурой, но и как операции над множествами их значений. Например для некоторых двух типов a и b операцией объединения будет тип data Either a b = Left a | Right b, а операцией декартового произведения будет тип, аналогичный кортежу из двух элементов: ( Read more... )

haskell, типизация

Leave a comment

Comments 3

nivanych December 1 2007, 14:32:51 UTC
А в каком хаскеле ?
В GHC такое есть.

вот это ->
data QQQ a b = QQQ a b deriving Show
type WWW = Int `QQQ` Int
a :: WWW = 6 `QQQ` 5
работает, и print a выдаёт QQQ 6 5.

Reply

mibori December 4 2007, 14:44:17 UTC
да, точно, спасибо.
Я тестил, но у меня из-за какой-то посторонней ошибки не получилось.

А приоритет как? Через infixl/infixr/infix?

Reply

nivanych December 4 2007, 14:53:35 UTC
Да, приоритет через infix(l/r)

Там есть проблема с инфиксными конструкторами,
состоящими из небуквенных символов, например :>
Помнится, пробовал, но не все из них работают.

Reply


Leave a comment

Up