2010-07-29 3 views
5

다형 함수를 작성하려고합니다. 매개 변수의 유형에 따라 약간 다른 작업이 필요합니다. 내장 유형을 사용하여 객체 유형에 패턴 일치를 수행 할 수있는 방법이 있습니까? 나는이 라인을 따라 뭔가를 생각하고있다 :OCaml 패턴은 내장형에서 일치합니다.

그러나 이것은 유효한 OCaml 프로그램이 아닌 것 같다.

나는 this question을 보았습니다.하지만 그건 내 질문에도 답이 없습니다. 을 선호합니다. 기본 유형을 사용하는 대신이 유형의 새로운 유형을 생성하는 것이 아니라 내장 유형을 사용하는 것이 좋습니다.

답변

3

사실 그 답변은 완전히 귀하에게 적용됩니다. 하나의 유형 클래스 만 일치시킬 수 있으며 int, string, float ... 등의 합집합에 정의 된 유형이 존재하지 않으며 생성해야합니다 (이전 답변과 동일). 'a은 특정 유형에서 작동하지만 모든 유형의 공용체를 나타내지는 않습니다.

당신은 원자 태그 섹션을이기는,하지만, 난 당신이 charint을 차별화 할 수 있습니다 모르겠어요, 외부 C 기능 (18.3)를 사용하여 원하는 작업을 수행 할 수 있습니다.

+0

:(그게 내가 두려워했던 것입니다. 오, 내 프로그램이 아주 멋지게 보이지 않을 것 같네요. –

+0

왜 이런 식으로하려고합니까? 아마도 더 좋은 방법이있을 것입니다. – nlucaroni

+0

나는 생각했습니다. 이 방법으로 다형 함수를 작성할 수있을 것입니다. 필요한 다른 유형에 대한 우선 적용이 가능할 것입니다.하지만 좀 더 생각해 보면 어차피 변형을 사용해야 할 것입니다. 왜냐하면 필자도 렉싱 단계를 수행하게 될 것이기 때문입니다. –