Patrząc na Haskell Servant package istnieje początkowa przykład definiowania usługa API jak:Zrozumienie Haskell Typ Poziom Literówki
-- GET /date
type MyAPI = "date" :> Get '[JSON] Date
-- GET /time/:tz
:<|> "time" :> Capture "tz" Timezone :> Get '[JSON] Time
mam problemy ze zrozumieniem, co to oznacza i będę wdzięczny za wyjaśnienie, co następuje:
:>
i:<|>
są konstruktorzy Infix. Czy deklaracja tego typu oznacza, że są one zdefiniowane tutaj lub są tutaj używane? A może zdefiniowano tutaj:>
, ale:<|>
jest zdefiniowany gdzie indziej? Albo coś innego? Nie wiem, jak czytać ten typ.Co to jest
'[JSON]
? Czy jest to rodzaj literalnej listy poziomu? Co robi cytat?
Dzięki. Dokumentacja GHC na literałach poziomu nie mówi nic o listach. Czy wiesz, gdzie to jest zdefiniowane? – Ana
@Ana poziomowe wersje wszystkich promowanych typów danych są automatycznie definiowane, gdy używane jest rozszerzenie 'DataKinds'. [Zobacz tutaj, aby poznać szczegóły.] (Https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/promotion.html) –