Я пытаюсь смоделировать функцию длины в Mathematica v.8, чтобы получить длину списка. Учитывая это факты:
- Пустой список представлен как {}
- l = Rest [l] назначает l (который является списком) список l без первого элемента
- а цикл пока
Это мой первый год использования mathematica, и я не слишком хорош в этом, поэтому, вероятно, что-то (или все) не так с тем, что я делаю:
Ej1[l_List] := Module[{i, v},
v = {{}};
i = 1;
While[l != v, l = Rest[l]; i++]
Return[i]
]
L = {а, б, в, д, е};
Когда я пытаюсь запустить его, цикл никогда не заканчивается, и он выдает мне следующие предупреждения:
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. >>