-1
두 개의 튜플 목록을 가져 와서 두 개의 개별 목록으로 구성된 튜플을 생성하는 함수를 구현하고 싶습니다. SML은 = 프롬프트에서 tubple을 닫습니다 마지막에 추가 )
에unzip 함수를 구현하는 중에 오류가 발생했습니다.
두 개의 튜플 목록을 가져 와서 두 개의 개별 목록으로 구성된 튜플을 생성하는 함수를 구현하고 싶습니다. SML은 = 프롬프트에서 tubple을 닫습니다 마지막에 추가 )
에unzip 함수를 구현하는 중에 오류가 발생했습니다.
필요를 나에게 제공,
fun unzip [] = ([],[])
| unzip [(a,b)] = ([a],[b])
| unzip (a,b)::ps = (a::(#1(unzip(ps))),(b::(#2(unzip(ps))));
그러나 컴파일되지 않습니다 :
는 그 코드를 시도했다. 필요함(
(a,b)::ps
)
. 어떻게 든 SML은 패턴이
unzip (a, b)
이고 그 다음 패턴을 설명하는 것과 다른
::
을 처리하고 있다고 생각했습니다. 나는 아직도 SML이 필요로하는 괄호가 필요한시기와 이유를 알지 못한다. 그러나 적절한 곳에 더 많이 추가하는 것은 많은 실수를 푸는 것으로 보인다.
사용중인 버전과 구문 수정. (나는 가능 코드에 다른 개선을하지 않았다, 나는 단지 고정 구문 있습니다.)
fun unzip [] = ([],[])
| unzip [(a,b)] = ([a],[b])
| unzip ((a,b)::ps) = (a::(#1(unzip(ps))),(b::(#2(unzip(ps)))))
먼저 불균형 괄호있다. –