С чем связан тип данных в haskell? - PullRequest
0 голосов
/ 27 февраля 2019

В разделе маршрутизации в статье говорится:

Мы можем видеть, что класс RenderRoute определяет связанный тип данных , предоставляющий маршруты для нашегоapplication.

Что означает связанный тип данных ?Это означает тип семьи?

1 Ответ

0 голосов
/ 27 февраля 2019

Цитирование кода из статьи:

instance RenderRoute HelloWorld where
    data Route HelloWorld = HomeR
        deriving (Show, Eq, Read)
    renderRoute HomeR = ([], [])

Как видите, Route - это связанный тип данных, и да, это означает семейство данных.Взгляните на wiki пример:

Мы определяем класс типов, экземплярами которого являются типы, которые мы можем использовать в качестве ключей в наших общих картах:

class GMapKey k where  
    data GMap k :: * -> *  
    empty       :: GMap k v  
    lookup      :: k -> GMap k v -> Maybe v  
    insert      :: k -> v -> GMap k v -> GMap k v

Интересной частью является объявление семейства связанных данных класса.Он дает подпись типа (здесь * -> *) для связанного типа данных GMap k - аналогично тому, как методы получают подпись типа в объявлении класса.

...