나는 this question을 만났고 무 프로그래밍 프로그래밍 클래스에서 많은 것들을 잊어 버렸습니다.erlang 및 함수 프로그래밍에 대한 중요하지 않은 질문
코드를 이해하려고 노력하면서 코드가 너무 길어서 코드를 짧게하려고했습니다. 이것은 원래 코드가하는 것과 동일한 일을합니까?
merge([X|Xs], Ys) -> [X | merge(Ys, Xs)];
merge([], []) -> [].
는 ... 내가 전에 얼랑 함께 일한 적이없는, 그래서 어쩌면 네, 제대로 작동
목록을 빈 목록과 병합하면이 코드가 원래 목록을 반환합니까? 패턴 일치가 나에게 완전하지 않습니다. –
원래 작업은 같은 길이의 두 목록에 대한 것이 었습니다. – cube
큐브가 옳았습니다. 동일하지 않은 길이의 두 목록에서 원래 코드를 실행하려고 시도하면 실패하게됩니다. MergeR ([], [], Zs)에 일치하는 terminal 절 Xs와 Ys의 길이가 다른 경우 하나의 목록이 다른 목록보다 먼저 소모됨에 따라 오류가 발생합니다. –