[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Perl or Python?



 >> Сходил за книжкой в другую комнату.
 >> Открываем первый том двух-томника "Мир лиспа", смотрим заглавие.
 >> Ага, 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.


Reply to: