On Saturday 21 March 2009 20:03:51 Aleksey Cheusov wrote: > >> Сходил за книжкой в другую комнату. > >> Открываем первый том двух-томника "Мир лиспа", смотрим заглавие. > >> Ага, apply - страница 246, читаем, apply - функция двух переменных. > >> В примере 4. Все. 5 минут прошло. Мое время и терпение иссякли. > >> > >> Искать и ставить настоящий CommonLisp и искать его документацию, чтобы > >> вспомнить, что читал несколько лет назад и вроде бы знал мне некогда. > >> > >> При этом гораздо больше строк > >> > >> function transposition (matrix A [N,M]) > >> matrix B = create_matrix (M, N) > >> for i in 1,N > >> for j in 1,M > >> B [j, i] = A [i, j] > >> end > >> end > >> return B > >> end > >> > >> понимают _абсолютно все_ мгновенно. > > > > Во-первых, не абсолютно все, а те, кто обучен на императивном подходе. > > Абсолютно все. Потому что императивный подход - это естественный способ > мышления человека. Какой у человека распорядок дня? > Шаг 1: Проснулся > Шаг 2: Умылся, побрился, причесался, оделся > Шаг 3: Позавтракал > Шаг 4: Поехал на работу или учебу > Шаг 5: Дождался обеда, сходил в столовую или слопал "ссобойку" > Шаг 6: Поработал еще немного > Шаг 7: Вернулся домой > Шаг 8: Сходил в магазин, купил чего-нибудь на ужин > Шаг 9: Позанимался с детьми, женой, подругой, любовницей... > Шаг 9: Приготовил чего-нибудь, поужинал > Шаг 10: Почитал книжку > Шаг 11: Лег спать > > Именно вот так, последовательно, императивно, по шагам человек думает > всю свою жизнь.
Это событийный подход. Здесь не шаги, а время, например. > > > Во-вторых, это был _элементарный_ пример. Функции apply и map на > > порядки мощнее и эффективнее > > Опять дешевая пропаганда. apply/funcall - это банальный eval во многих > динамических ЯП. Автоматические цацки со списками можно прикрутить к > почти любому языку. Cons - нашли, блин, мегаконцепцию... > map? -- банальный foreach или итераторы с циклами делают то же самое в > любом языке таким же количеством строк. > > >Думаю, в том же "Мире лиспа" можно найти однострочники, > >которые при переводе на императивный язык развернутся не в два цикла с > >одним оператором > > Лаконичность не является и никогда не являлась критерием качества языка > сама по себе. На перле тоже вот можно такого наворотить... > > >, а в несколько сотен строк кода, который очень мало кто поймёт > >"мгновенно". > > Уровень абстракции в императивных ЯП элементарно наращивается при помощи > функций, классов, объектов, пространств имен, модулей и т.д. > Нет здесь у Лиспа никаких преимуществ и не было никогда. > Все это байки 60-х. > > > Одним словом, очень уж демагогией запахло, если откровенно. > > Вот именно. > > -- > Best regards, Aleksey Cheusov.

