Guardando il Haskell Servant package, c'è un esempio iniziale di definire un'API webservice come:intesa Tipo Haskell Livello letterali
-- GET /date
type MyAPI = "date" :> Get '[JSON] Date
-- GET /time/:tz
:<|> "time" :> Capture "tz" Timezone :> Get '[JSON] Time
Sto avendo difficoltà a capire cosa significa e apprezzerei una spiegazione per quanto segue:
:>
e:<|>
sono costruttori infissa. Questa dichiarazione di tipo significa che sono definiti qui o sono usati qui? O forse:>
è definito qui ma:<|>
è definito altrove? O qualcos'altro? Non sei sicuro di come leggere questo tipo.Che cos'è
'[JSON]
? Questa è una sorta di elenco letterale di livello testo? Cosa fa la citazione?
Grazie. La documentazione di GHC sui letterali a livello di testo non dice nulla sulle liste. Sai dove è definito? – Ana
@Le versioni di tipo AA di tutti i tipi di dati promuovibili vengono definite automaticamente quando è in uso l'estensione 'DataKinds'. [Vedi qui per i dettagli.] (Https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/promotion.html) –