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

Re: Perl or Python?



On Sat, 21.03.2009 20:22:27 , Aleksey Cheusov wrote:
>  >> Шаг 10: Почитал книжку
>  >> Шаг 11: Лег спать
>  >> 
>  >> Именно вот так, последовательно, императивно, по шагам человек думает
>  >> всю свою жизнь.
> > Глупости. Это последовательность отдельных, не связанных между собой
> > задач. Она не имеет никакого отношения ни к императивному подходу, ни
> > к функциональному, ни к какому другому.
> Ничего подобного. Это АЛГОРИТМ поведения человека в течение рабочего
> дня. Вместе вспоминаем определение алгоритма (одно из, да, я в курсе).
> Алгоритм - это последовательность действий...
Это высокоуровневый алгоритм. Какая связь между ним и конкретной
парадигмой программирования?

>  >> map? -- банальный foreach или итераторы с циклами делают то же самое в
>  >> любом языке таким же количеством строк.
> > Только не стоит забывать, что и eval, и foreach позаимствованы именно
> > из функционального подхода.
> Не надо ляля. eval вообще к функциональной парадигме не имеет ни
> малейшего отношения. Читаем lambda-исчисление. Хотя бы у Харрисона.
> Где там eval???
Функциональный подход -- это не только лямбда-исчисление. И map, и
apply -- это принцип "всё есть функция" в чистом виде.

> foreach - это syntactic sugar для цикла, не более того.
Ну да, не более того; и одновременно полная замена map...

> > Другими словами, грань между этими двумя подходами вообще весьма
> > размыта.
> Нет. Чистая функциональщина - это lambda исчисление.
> И в Лиспе ее нет. Нет ее и в SML и CAML.
А чистая императивщина где есть, интересно?.. Конечно, если под
функциональным подходом понимать только лямбда-исчисление и более
ничего, а в императивный притягивать за уши eval и прочее, то
императивный становится интереснее. Но давай всё-таки оставаться в
одной и той же системе координат. В любой -- но в одной и той же.

>  >> >Думаю, в том же "Мире лиспа" можно найти однострочники,
>  >> >которые при переводе на императивный язык развернутся не в два цикла с
>  >> >одним оператором
>  >> Лаконичность не является и никогда не являлась критерием качества языка
>  >> сама по себе. На перле тоже вот можно такого наворотить...
> > Речь не о лаконичности, а о ёмкости.
> Программирование - это "разделяй и властвуй". После того, как ты
> разделил и овладел, никого больше не интересует мифическая и непонятная
> мне разница между лаконичностью и ёмкостью.
Мы об образе мышления и обучения всё ещё говорим, или уже о
технических подходах? Если о первом, то эта разница тебя должна
интересовать _до_ того, как ты разделил и овладел, а не после.

-- 
С уважением,
Тихон Тарнавский.
http://linuxforum.ru
http://posix.ru


Reply to: