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

Re: Perl or Python?



Hello!

On Tuesday 24 March 2009 22:29:36 Тихон Тарнавский wrote:
> Вы сказали что-то вроде "транспонирование матрицы -- это ерунда, это и
> си с sql-ем сделать не сложнее". Я привёл другой пример. В файле 92
> строки. Из них минимум треть добавена исключительно в целях, нужных
> для статьи; в частности, для рассмотрения некоторых искуственно
> введённых сюда приёмов и для удобства построчного комментирования.
> Плюс многочисленные проверки, которые на функциональном языке тоже
> выглядели бы лаконичнее. Итого строк 50 максимум. Добавим реализацию
> матаппарата в том объёме, который нужен для этой функции -- пусть ещё
> 50 строк (с большим запасом). Для императивного языка даю фору --
> порядок. В тысячу строк уложитесь? Уверен, что нет. Если два порядка
> форы дам -- тогда можно. Намного меньше вряд ли.

Согласен, что для символьных преобразований императивный подход использовать 
противопоказано. Что касается функционального... пожалуй, в основном нужно 
динамическое выполнение кода, а map и apply просто удобные обертки для 
итератора и стэка. Но в случае
apply #'map 'list matrix
явно лучше обойтись без map и apply, если они в данном случае требуют каких-то 
"хаков" с комментированием (#) и апострофами (это что, игра на ошибке 
реализации какого-то диалекта лиспа?!).

Пусть матрица содержит скалярное или векторное поле. Диффузионные уравнения и 
т.п. оперируют с элементом и его "соседями" (простое численное 
дифференцирование требует использования как минимум 1 соседней точки, 
симметричное - двух соседних), то есть обработка императивная по сути. 

Если в матрице находится нечто символьное, то возникнет задача индексации и 
различных выборок и оптимальнее будет использование SQL. Понятно, что в 
функциональном языке различные итерации и фильтры реализовать легко, но 
индексация и групповые функции (что-то вроде select sum(value) from test where 
value>1) станут проблемой. Я не видел функциональных реализаций b-tree и r-
tree индексов и мне кажется проще их реализовать на императивных языках 
(интересно, существуют ли для них высокопроизводительные и устойчивые к сбоям 
реализации на функциональных языках).

Best regards.

Reply to: