我想在 Mathematica 中创建一个模块,如果第一个列表 (L1) 在第二个列表 (L2) 中,则返回 true,假设 L2 的长度大于 L1 的长度。我是这样做的,问题是总是返回 False 我不知道为什么。编辑:我已经解决了一个问题:我写的是“if”而不是“If”。现在我得到一个无限循环。
isSegment[L1_List, L2_List] := Module[{i, j}, For[i = 1, i + Length[L1] - 1 <= Length[L2],
For[j = 1, j <= Length[L1],
If[L2[[i + j - 1]] != L1[[j]], Break;];
j++;
];
If[j == Length[L1] + 1,
Return[ True];];
i++; ]; Return [False]; ]