let moja_matrika1 = [[1; 2]; [3; 4]];;
let moja_matrika2 = [[4; 7; 8]; [3; 2; 1]];;
let rec does_it_contain (lis1, lis2) =
if (List.hd lis1 = []) then false
else if (List.hd lis1 = lis2) then true
else does_it_contain ((List.tl lis1), lis2);;
let rec does_it (matrix, lis1) =
if (matrix = []) then false
else if does_it_contain (List.hd matrix, List.hd lis1) = true then true
else does_it (List.tl matrix, lis1);;
does_it (moja_matrika1, moja_matrika2);;
他のマトリックスのサブマトリックスであるかどうかを確認しようとしています。しかし、私はタイプリストのリストを使用する必要があります。そして、私は定義されたList関数のどれも使うことができません。 Obviosly私はList hd、tlを使用していますが、私はそれを置き換えます。サブマトリックスOcaml
私が理解していない機能を呼び出そうとすると、エラーが発生します。
does_it (moja_matrika1, moja_matrika2);;
Error: This expression has type int list list
but an expression was expected of type 'a list list list
Type int is not compatible with type 'a list #
助けてください!
"しかしリストリストを使用する必要があります: 学習以外の目的でこれを行う場合、リストを使用して行列を表すべきではありません。非常に非効率的です。 – ChriS
私は知っている、これは学校のためだった。 – Broda