Доступно про XSLT
May. 30th, 2013 05:57 pmМеня как бы попросили что-то доступное про это написать. Я как бы попробовал. Выложу на растерзание.
Значит, когда обезьяны слезли с дерева и развели костер, они легко научились выполнять последовательности действий. Берем горький жесткий корень, кладем в угли костра, достаем - мягкий и сладкий. Запомнили. Повторяем последовательность по голодной необходимости. Все счастливы.
Поэтому, когда появились языки программирования, тоже было проще так делать - берем число из корзинки Х, добавляем в корзинку Y, получается в итоге X+Y. Все вроде всем понятно.
Но так вышло, что к моменту когда появились эти языки программирования, уже появился новый видобез... людей. Их называли "математики" и они на дух не переносили эти громоздкие недоказуемые последовательности. Они с молоком матери впитывали функции, везде видели функции и все строили из функций. z=x+y превращалось для них в z=add(x,y), но и функции с двумя переменными они посчитали не нужными и придумали каррирование и стало z=add(x)(y) где результатом add(x) является функция с одним аргументом. То есть add(2)(3) читается как "создай функцию add2(x), потом примени ее к числу 3". Ну и тут к ним привалило вообще счастье в виде лямбда исчисления. Но это отступление, и всю эту лямбду и каррирование можно смело вытереть из головы, хотя придумали их лет за 50 до первых компьютеров. Ну такие они, эти математики. В общем, пришли они к программистам и говорят - не годятся ваши "возьми х, положи в y", хотим всю программу описывать только функциями.
Программисты по натуре люди добрые и ленивые. И они очень не любят спорить и упираться. Им проще написать, чтобы отстали. Так появились функциональные языки программирования. Чтобы долго не разбираться, когда какие функции применять, программисты заодно создали функциональные декларативные языки. XSLT - функциональный декларативынй язык. А, к примеру, SQL - просто декларативный язык, тогда как LISP - просто функциональный язык.
Ну ладно, это вступление, по сути не важное. Что важно - это как оно работает.
Скажем, приходим мы на бал. И нам надо раздать юношам платочки, а девушкам - розочки. Можно описать процесс так:
А можно описать тот же процесс декларативно - функционально:
( Read more... )
Значит, когда обезьяны слезли с дерева и развели костер, они легко научились выполнять последовательности действий. Берем горький жесткий корень, кладем в угли костра, достаем - мягкий и сладкий. Запомнили. Повторяем последовательность по голодной необходимости. Все счастливы.
Поэтому, когда появились языки программирования, тоже было проще так делать - берем число из корзинки Х, добавляем в корзинку Y, получается в итоге X+Y. Все вроде всем понятно.
Но так вышло, что к моменту когда появились эти языки программирования, уже появился новый вид
Программисты по натуре люди добрые и ленивые. И они очень не любят спорить и упираться. Им проще написать, чтобы отстали. Так появились функциональные языки программирования. Чтобы долго не разбираться, когда какие функции применять, программисты заодно создали функциональные декларативные языки. XSLT - функциональный декларативынй язык. А, к примеру, SQL - просто декларативный язык, тогда как LISP - просто функциональный язык.
Ну ладно, это вступление, по сути не важное. Что важно - это как оно работает.
Скажем, приходим мы на бал. И нам надо раздать юношам платочки, а девушкам - розочки. Можно описать процесс так:
подходим к каждому человеку, если это "он" - запихиваем ему платочек, если "она" - вручаем розочку.Это императивно.
А можно описать тот же процесс декларативно - функционально:
( Read more... )