Haskell Language
사용자 정의 데이터 유형 작성
수색…
간단한 데이터 형식 만들기
하스켈에서 사용자 정의 데이터 유형을 생성하는 가장 쉬운 방법은 data
키워드를 사용하는 것입니다.
data Foo = Bar | Biz
형식의 이름은 data
와 =
사이에 지정되며 형식 생성자 라고합니다. After =
우리는 데이터 유형의 모든 값 생성자 를 |
기호. 하스켈에는 모든 유형 및 값 생성자가 대문자로 시작해야한다는 규칙이 있습니다. 위의 선언은 다음과 같이 읽을 수 있습니다 :
Foo
라는 유형을 정의하십시오. 여기에는Bar
와Biz
두 가지 값이 있습니다.
맞춤형 변수 생성하기
let x = Bar
위의 명령.은 Foo
유형의 x
라는 변수를 작성합니다. 유형을 확인하여이를 확인해 봅시다.
:t x
인쇄물
x :: Foo
값 생성자 매개 변수를 사용하여 데이터 유형 만들기
값 생성자는 데이터 형식의 값을 반환하는 함수입니다. 이 때문에 다른 함수와 마찬가지로 하나 이상의 매개 변수를 사용할 수 있습니다.
data Foo = Bar String Int | Biz String
Bar
값 생성자의 유형을 확인해 봅시다.
:t Bar
인쇄물
Bar :: String -> Int -> Foo
Bar
가 실제로 함수라는 것을 증명합니다.
맞춤형 변수 생성하기
let x = Bar "Hello" 10
let y = Biz "Goodbye"
형식 매개 변수를 사용하여 데이터 형식 만들기
타입 생성자는 하나 이상의 타입 파라미터를 가질 수 있습니다 :
data Foo a b = Bar a b | Biz a b
Haskell의 타입 파라미터는 소문자로 시작해야합니다. 사용자 정의 데이터 유형은 아직 실제 유형이 아닙니다. 유형의 값을 생성하려면 모든 유형 매개 변수를 실제 유형으로 대체해야합니다. a
와 b
는 어떤 타입이든 될 수 있기 때문에 값 생성자는 다형 함수입니다.
맞춤형 변수 생성하기
let x = Bar "Hello" 10 -- x :: Foo [Char] Integer
let y = Biz "Goodbye" 6.0 -- y :: Fractional b => Foo [Char] b
let z = Biz True False -- z :: Foo Bool Bool
레코드 매개 변수가있는 사용자 지정 데이터 형식
이름과 성, 나이, 전화 번호, 거리, 우편 번호 및 도시가있는 Person 유형의 데이터를 작성한다고 가정하십시오.
우리는 쓸 수 있었다.
data Person = Person String String Int Int String String String
지금 우리가 전화 번호를 얻길 원한다면, 우리는 함수를 만들 필요가있다.
getPhone :: Person -> Int
getPhone (Person _ _ _ phone _ _ _) = phone
글쎄, 이건 재미 없어. 매개 변수를 사용하면 더 잘 수행 할 수 있습니다.
data Person' = Person' { firstName :: String
, lastName :: String
, age :: Int
, phone :: Int
, street :: String
, code :: String
, town :: String }
이제 우리는 함수 phone
얻습니다.
:t phone
phone :: Person' -> Int
우리는 이제 우리가 원하는대로 할 수 있습니다. 예 :
printPhone :: Person' -> IO ()
printPhone = putStrLn . show . phone
패턴 매칭을 통해 전화 번호를 바인딩 할 수도 있습니다.
getPhone' :: Person' -> Int
getPhone' (Person {phone = p}) = p
매개 변수를 쉽게 사용하려면 RecordWildCards