5
我花了一段時間試圖瞭解在這個例子從耶索德書採取模板哈斯克爾生成的代碼:理解代碼
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Person
name String
age Int
deriving Show
Car
color String
make String
model String
deriving Show
|]
我覺得我主要是看看這是怎麼回事(很多類型編組),但有部分還是混淆了我:
instance PersistEntity (PersonGeneric backend) where
data instance Unique (PersonGeneric backend) =
data instance EntityField (PersonGeneric backend) typ
= typ ~ KeyBackend backend (PersonGeneric backend) => PersonId |
typ ~ String => PersonName |
typ ~ Int => PersonAge
type instance PersistEntityBackend (PersonGeneric backend) =
backend
數據實例instance EntityField (PersonGeneric backend) typ
有三個數據構造,這是有道理的(每列在數據庫中),但細算起來,即使什麼在haskell中代字號的確是有用的,我無法理解在那裏做什麼。爲什麼=>
通常用於通用量化,在似乎沒有任何類型的東西之後使用?
請讓我知道,如果我能以某種方式更清晰。