Списки относятся к данным сложной структуры. Поэтому при работе с ними возникает необходимость контроля за структурой, иначе применение списков может привести к грубым ошибкам, как явным, сопровождаемым выдачей сообщения об ошибке, так и неявным. Последние могут привести к серьезным просчетам.
Для выявления структуры списков используется ряд функций:
Count [list, pattern] — возвращает количество элементов в списке list, которые соответствуют образцу pattern;
Dimensions [list] — возвращает список размеров списка по каждой размерности;
FreeQ [list, form] — возвращает True, если список list не содержит form;
Length [list] — возвращает число элементов одномерного списка list или число размерностей в случае многомерного списка;
MatrixQ [list ] — проверяет, является ли список матрицей, и дает True, если это так, и False в противном случае;
MemberQ [list, form] — проверяет, есть ли form в списке, и возвращает True, если это так, и False в противном случае;
Position [list, form] — возвращает номер позиции form в списке;
TensorRank[list] — находит ранг списка, если он является тензором;
VectorQ [list] — проверяет, является ли список вектором, и дает True, если это так, и False в противном случае.
Функции с буквой Q в конце имени являются тестирующими и возвращают логические значения True или False. Остальные функции возвращают численные значения соответствующего параметра списка.
Ниже даны примеры использования этих функций.
Ввод (In)
Вывод(Out)
11={1,2,3,4,1};
Length [11]
5
Dimensions [11]
{5}
MatrixQ [11]
False
TensorRank [ 11 ]
1
MemberQ[ll,l]
True
Count[ll,l]
2
FreeQ [11, 5]
True
Position [11,1]
{{1},{5}}
VectorQ [11]
True
M={{1, 2,3}, {4, 5, 6}}
Length [M]
2
Dimensions [M]
{2,3}
Система предоставляет пользователю свободу действий, производимых по результатам анализа структуры списков.