Основы функционального программирования/Структуры данных и базисные операции: различия между версиями

Содержимое удалено Содержимое добавлено
м категория
Строка 145:
##<math>\operatorname{prefix}\Big(a_1,\; [b_1,\; b_2]\Big) = \operatorname{prefix}\Big(a_1,\; b_1:(b_2:[\,])\Big) = a_1:\Big(b_1:(b_2:[\,])\Big) = [a_1,\; b_1,\; b_2]</math> (Эти преобразование проведены по определению списка).
##<math>\operatorname{prefix}\Big([a_1,\; a_2],\; [b_1,\; b_2]\Big) = \operatorname{prefix}\Big([a_1,\; a_2],\; b_1:(b_2:[\,])\Big) = \Big([a_1,\; a_2]\Big):\Big(b_1:(b_2:[\,])\Big) = \Big[[a_1,\; a_2],\; b_1,\; b_2\Big]</math>.
##В качестве примера работы функции <math>\operatorname{append}</math> рассмотрим сцепку двух списков, каждый из которых состоит из двух элементов: <math>[a,\; b]</math> и <math>[c,\; d]</math>. Опять же для того, чтобы не загромождать объяснение, для записи операции <math>\operatorname{prefix}</math> используется инфиксная форма. Для более полного понимания приведённого объяснения необходимо помнить определение списка.
##*<math>\operatorname{append}\Big([a,\; b],\; [c,\; d]\Big) = a:\operatorname{append}\Big([b],\; [c,\; d]\Big) =</math>
##:<math>= a:\bigg(b:\operatorname{append}\Big([\,],\; [c,\; d]\Big)\bigg) = a:\bigg(b:\Big([c,\; d]\Big)\bigg) = a:\bigg(b:\Big(c:(d:[\,])\Big)\bigg) = [a,\; b,\; c,\; d]</math>.