Я пытаюсь смоделировать функцию Length в Mathematica v.8 для получения длины списка. Учитывая эти факты:
Это мой первый год использования математики, и я не очень хорошо в этом разбираюсь, поэтому, вероятно, что-то (или все) не так в том, что я делаю:
Ej1[l_List] := Module[{i, v},
v = {{}};
i = 1;
While[l != v, l = Rest[l]; i++]
Return[i]
]
l = {a, b, c, d, e};
Когда Я пытаюсь запустить его, цикл никогда не заканчивается и выдает следующие предупреждения:
Set::shape: Lists {a,b,c,d,e} and {b,c,d,e} are not the same shape. >>
Set::shape: Lists {a,b,c,d,e} and {b,c,d,e} are not the same shape. >>
Set::shape: Lists {a,b,c,d,e} and {b,c,d,e} are not the same shape. >>
General::stop: Further output of Set::shape will be suppressed during this calculation. >>