Функции выявления структуры списков
Списки относятся к данным сложной структуры. Поэтому при работе с ними возникает необходимость контроля за структурой, иначе применение списков может привести к грубым ошибкам, как явным, сопровождаемым выдачей сообщения об ошибке, так и неявным. Последние могут привести к серьезным просчетам.
Для выявления структуры списков используется ряд функций:
- 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] M={{1, 2.3}, {4, 5, 6}} | True | 
| Length [M] | 2 | 
| Dimensions [M] | {2.3} | 
Система предоставляет пользователю свободу действий, производимых по результатам анализа структуры списков.
