Haskell, "다중 유형"목록 생성

데미안 라파엘 라테 네로

하스켈 유형을이 표현으로 만드는 방법이 있습니까?

ls  = [4, 3.2, True, "home"] 

친구가 나에게 준 도전이지만 아이디어가 나오지 않고 가능한지 말하지 않았으므로 소중한 시간을 낭비하고 있을지도 모릅니다.

자유형

농담으로 다음과 같이 할 수 있습니다.

{-# LANGUAGE OverloadedStrings #-}

import Data.String                                                          

instance Num Bool where                                                     
    fromInteger 0 = False
    fromInteger _ = True

instance Fractional Bool where
    fromRational 0 = False
    fromRational _ = True

instance IsString Bool where
    fromString "" = False
    fromString _  = True

ls = [4, 3.2, True, "home"]

그러나 이것은 의미가 없습니다.


식의 형식이 기본이 아닌 경우 주석에 쓴대로 ExistentialType. 하지만 그렇게하는 데는 많은 변형이 있습니다. 사용 Data.Dynamic에서 사용자 정의 존재 유형까지.

예를 들면 다음과 Data.Dynamic같습니다.

import Data.Dynamic

ls = [toDyn (4 :: Int), toDyn (3.2 :: Double), toDyn True, toDyn "hello"]

사용자 정의 유형 :

 {-# LANGUAGE ExistentialQuantification #-}

 data Any = forall a. {- here can be restrictions on `a` => -} Any a

 ls :: [Any]
 ls = [Any (4 :: Int), Any (3.2 :: Double), Any True, Any "home"] 

유형 집합이 닫혀 있으면 ADT 만 사용할 수 있습니다.

 data Variant = I Int | D Double | B Bool | S String

 ls :: [Variant]
 ls = [I 4, D 3.2, B true, S "home"]

따라서 올바른 솔루션을 선택하려면 문제에 대해 더 많이 알아야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Ninject 다중 유형 생성자

분류에서Dev

클래스 속성의 다중 유형

분류에서Dev

클래스 속성의 다중 유형

분류에서Dev

다형성의 다중 유형 출력

분류에서Dev

Haskell : 데이터 다중 유형 변수의 인스턴스?

분류에서Dev

Haskell에서 목록 작성

분류에서Dev

다중 유형 배열 선언

분류에서Dev

Typescript 다중 유형 매개 변수

분류에서Dev

패턴 목록에서 Int를 추가하여 Haskell에서 Int 목록 생성

분류에서Dev

Haskell에서 더 높은 차원의 목록 생성

분류에서Dev

Haskell 목록 생성기 높은 메모리 사용량

분류에서Dev

Haskell에서 함수 목록 작성

분류에서Dev

Haskell에서 생성 된 데이터 유형 목록에서 요소 필터링

분류에서Dev

Haskell 목록 이해력의 생성기가 작동하지 않습니다.

분류에서Dev

가능한 모든 값 조합을 생성하는 Haskell 목록 이해

분류에서Dev

두 함수 (Haskell)로 생성 된 두 목록을 압축합니다.

분류에서Dev

VB.NET-다중 레벨 다중 유형 어레이

분류에서Dev

R : 다중 유형 포인트 패턴 스캔. 테스트

분류에서Dev

MVC 5 다중 유형 매칭 컨트롤러

분류에서Dev

다중 유형 인수의 가변 함수

분류에서Dev

데이터베이스 아키텍처 : 다중 유형 관계

분류에서Dev

Structuremap 3 단일 인터페이스 다중 유형

분류에서Dev

다중 레벨 및 다중 유형 Highchart 드릴 다운

분류에서Dev

NSData를 다중 유형 Ints로 변환하는 방법

분류에서Dev

RestKit-다중 유형 하위 배열 매핑

분류에서Dev

구문 : "width"에 대한 다중 유형 선언

분류에서Dev

Haskell UUID 생성

분류에서Dev

목록 목록에 목록 추가-Haskell

분류에서Dev

항목이 발생하는 인덱스 목록이 주어지면 목록에서 항목 제거-Haskell

Related 관련 기사

뜨겁다태그

보관