행렬의 첫 번째 및 마지막 열을 삭제하는 보이지 않는 구성 요소와 보이지 않는 구성 요소가있는 ML 모듈. 행렬은 다음과 같이 목록 목록으로 저장됩니다.재귀를 사용하여 sml 맵 및 구조
| 4 | 5 | 6 | 7 | | 8 | 9 | 10 | 11 | | 12 | 13 | 14 | 15 | => 4x4 배열
위의 행렬은 val mat = [[4,5,6,7], [8,9,10,11], [12,13,14,15] ];
지도 기능을 사용해야합니다.
샘플 실행 :
- 발 매트 = [4,5,6,7], [8,9,10,11], [12,13,14,15];
- S.reduce (매트);
발 그것은 = [[5,6], [9,10], [13,14]] :
: 목록 목록는하지만 같은 다른 방법으로 시도 INT
fun reduce(x,y,z,t)=(y,z);
val mat = [(4,5,6,7),(8,9,10,11),(12,13,14,15)];
map reduce(mat);
출력 :
- val reduce = fn : 'a * 'b * 'c * 'd -> 'b * 'c
val mat = [(4,5,6,7),(8,9,10,11),(12,13,14,15)] : (int * int * int * int) list
val it = [(5,6),(9,10),(13,14)] : (int * int) list
어떻게 정답을 찾는 방법은?
리스트의 길이는 고정되어 있지만 튜플의 길이는 고정되어 있습니다 : 4 개 튜플을 처리 할 함수를 정의하면 (a, b , c, d), (a, b, c) 또는 (a, b, c, d, e, f, g)와 같은 다른 튜플을 처리 할 수 없습니다. 따라서 튜플이 아닌 목록을 가지고 작업해야합니다. 패턴 일치를 사용하십시오. –