2016-09-23 10 views
0

오즈를 배우기 위해 노력하고 있습니다. 공식 문서는 제외하고 온라인 리소스가 거의 없지만 실제로 작업 파티션을 만들기 위해 목록을 스캔하는 방법을 찾는 데 어려움을 겪고 있습니다. 기능. 이 예제에서는 목록의 첫 번째 숫자 만 반환하려합니다. 어떻게하면 좋을까요?Oz를 사용하여 목록의 개별 번호를 스캔합니다.

declare 

fun {Partition ?X} 
    case X of nil then nil 
    else 
     {Show "HELLO!"} 
     RETURN FIRST DIGIT OF X HERE? 
    end 
end 

in 
{Show {Partition [5 1 7 3 4 6 5]}} 
+0

"공식적인 문서를 제외하고는 온라인 리소스가 거의 없습니다. 정말 어려움을 겪고 있습니다."루빈의 카톨릭 대학교 (Catholic University of Louvain)에서 도움을받을 수있는 온라인 과정에 대해 알고 있습니까? – beroal

답변

2

두 번째 경우 절에 넣어, 패턴 매칭을 사용할 수

case X of nil then nil 
[] A|B then A  
end 

X이 경우 [5 1 7 3 4 5 6]으로 동일하고, 단지 일치 절은 불허 가장 간단한 방법은 A에 5를 지정하고 B에 [1 7 3 4 6 5]를 할당하는 것입니다. 이것은 단지 시작에 불과합니다. 이제 더 복잡한 절을 추가하거나 재귀를 사용하여 다른 작업을보다 복잡하게 만들 수 있습니다.