2012-10-21 3 views
2

예를 들어 모든 것이 정수라고 가정 해 보겠습니다. 또한 컴파일러가 함수가 모든 경우를 설명하지 못한다는 사실을 알고 있습니다. 비슷한 스타일로 함께 F1 및 F2를 (넣어OCaml에서 함수를 연결할 수 있습니까?

| a -> b;; 
    | c -> d;; 

:이 수행하는 기능을 할 수있는 방법이 있나요

let f1 = function 
    | a -> b;; 

let f2 = function 
    | c -> d;; 

:

의 나는이 두 가지 기능이 있다고 가정 해 봅시다 명시 적으로 함께 하드 코딩하지 않고 2 개의리스트를 연결하는 것)?

+0

답변을 시도했지만 충분히 구체적이지는 않습니다. 나는 모든 질문과 대답으로 끝난다. 첫 번째 질문 : 숙제가 있습니까? 둘째 : 어떤 유형이 관련되어 있습니까? 'a'와'c'는 무엇입니까? 만약 그들이 같은 타입의 상수라고 가정하면,이 두 함수는 부분적입니다. 즉, 예외를 발생시키는 경향이 있습니다. 이것은 힌트 일 수 있습니다. –

+0

1. 예 2. 모두 정수라고 가정합니다. –

+1

@AlexChiou : 숙제 문제입니까? 그것은 나에게 너무 좋아서 (조금 너무 이상 함) 나는 이것을 더 명백하게 대답 할 것이지만, Jeffrey가 단지 암시하는 데서 취한 큰 관심을 취소하고 싶지는 않습니다. – gasche

답변

0

숙제의 경우, 내가 시도한 코드를 보여줘야하고 잘못되었다고 말하는 것이 원칙이라고 생각합니다. 그렇지 않으면 단지 문제를 해결하지 않고도 논평하기가 어렵습니다.

는 그러나, 나는 모두 f1f2 난 당신이 f1과 유사한 두 기능이 작업을 수행 할 수 있습니다 (고차 함수를 찾고 이해 가정, 꽤 큰 힌트가 될 수있는 부분이라는 사실을 생각한다 및 f2).

2
let concat_funs f1 f2 x = 
    try f1 x 
    with Match_failure _ -> f2 x 

이며 결합 적이지만 교환 가능하지 않습니다.

관련 문제