1
행렬이 단수인지 확인하기 위해 SML 프로그램을 작성하려고합니다. 매트릭스가 목록 목록으로 표시되었습니다. 예 [[1,2], [3,4], [15,50]]은 유효한 것이지만 [[1,2], [1,2,3]]는 아닙니다.SML - 캐치되지 않는 예외 빈
fun remove (l,r)=
let fun iter(front,l,i)=
if i=r then [email protected](l)
else
iter([email protected][hd(l)],tl(l),i+1)
in
iter([],l,1) end;
fun removed (l,r)=
let fun iter(l,m)=if tl(l)=[]
then [email protected][remove (hd(l),r)]
else iter(tl(l),[email protected][remove (hd(l),r)])
in
iter(tl(l),[]) end;
fun nth (l,i)=let fun iter(l,c)=if i=c then hd(l) else iter(tl(l),c+1) in iter(l,1) end;
fun deter (l)=let fun iter(det,i,j)=if i=(length l)+1 then det else iter (det+j*(nth (hd(l),i))*(deter (removed(l,i))),i+1,j*(~1))
in iter(0,1,1) end
deter 기능이 정의되었지만 입력을 입력하면 캐치되지 않은 예외 빈 오류가 발생합니다. 제발 디버깅 도와주세요.
감사
문제는 빈리스트에hd
또는
tl
중 하나를 호출하는 시도에서 유래
때문에, 그것을 게시하기 전에 코드를 정리하십시오 사람들은 실제로 * 읽을 수 있습니다. 빈 목록에서 nth를 호출하려고하기 때문에 오류가 'nth'호출과 함께 발생할 가능성이 큽니다. –