2011-12-03 3 views
0

내가 수집 된 [CalendarDay] 한 번에 모든 정보를 구성의 의도 에 여러 필터를 통해 중간 데이터 형식을 전달하고, 지금이올바른 디자인 선택은 무엇입니까?

newtype CalendarDay = MKCal (Either AvailableDay UnAvailableDay) deriving Show 

처럼 보이는 [CalendarDay]을 구성하고있다. 문제는 튜플이 이제 4 개 값 튜플이되었다는 것입니다. 즉, 뭔가 다른 것을 할 시간입니다.

내 옵션이 두 가지 중 하나로 보입니다.

1) 4 개의 값을 지닌 레코드를 구성하여 각 필터에 전달한 다음 [CalendarDay]을 구성하십시오.

2) [CalendarDay]를 구성하여 각 필터를 통과하면서 중간 데이터 유형을 모두 제거합니다.

의견 환영합니다. 나는 옵션 2쪽으로 기대고있다.

나는 이것을 blog 항목에 쓴다. 블로그가 없어도 문제가 해결 될 때까지 Michael Snoyman의 사이트가 제공됩니다.

+1

'[CalendarDay]'에 목록 표기법을 사용하고 싶습니까? 그렇다면 어떤 종류의 목록을 만들려고합니까? 또한 원하는 결과를 얻기 위해 어떤 종류의 값이 필터링되고 있습니까? 일어날 필요가있는 것을 더 잘 이해하지 못하면 디자인에 대해 더 많이 말하기 어렵습니다. – acfoltzer

+0

나는 문제를 상세하게 설명하는 중이었습니다. 문제가 생겼을 때, 제가 트리플 값 튜플을 유지하고 원래 설계의 요점을 유지할 수있는 방식으로 단순화 할 수있었습니다. 내가 다시 붙어서 더 자세히 설명 하겠지만, 이것은 해결 될 수 있습니다. –

+2

길을 따라 무언가를 배웠던 것처럼 들리므로 커뮤니티가 자신의 질문에 답하는 것이 좋을 것입니다. – acfoltzer

답변

1

나는 발견 된대로 undefined 값을 발견 된 값으로 대체하여 점진적으로 유형을 구축하려고합니다.

게으름에 의존하는 것이 매력적이지 않으면 각 단계에 대해 잘 정의 된 중간 유형으로 안전을 보장 할 수 있습니다.

관련 문제