'profile1'목록의 데이터를 'DataSubject'라는 사용자 지정 유형으로 변환하려고합니다.하스켈 - 타입 변환?
이type Name = String
type Age = Int
type Iq = Int
type Language = String
data DataSubject = DS {name :: Name, age :: Age, iq :: Iq, language :: Language} deriving (Show)
data Contain = Name String | Age Int | Iq Int | Language String deriving (Show) --Use so list can take multiple types
profile1 = [Name "Bob", Age 22, Iq 100, Language "French"]
makeDS :: [Contain] -> DataSubject
makeDS t = DS {name = t!!0, age = t!!1, iq = t!!2, language = t!!3}
main = do
let x = makeDS profile1
putStrLn $ show x
가 오류 :
Couldn't match type ‘Contain’ with ‘[Char]’
난 그냥 시작있어 다음과 같은 작동하지 않습니다하지만 -
나는이 변환을 시도하는 'makeDS'기능이 전달 해요 하스켈과 함께 - 누군가 내 오류에 대해 조언 할 수 있습니까? 그리고 이것을하는 더 좋은 방법이 있다면?
이러한 기능의 목적은 무엇입니까? '[Contain]'를 생성 할 수있는 어떤 것이라도'DataSubject'를 쉽게 만들 수 있습니다. – chepner