Re: Алгоритм

From
Alexey Desyatnik ()
To
Pavel P
Date
2002-10-11T15:23:57Z
Area
RU.ALGORITHMS
From: Alexey Desyatnik <desyatnik@dax.ru>

Pavel P пишет:

>>Это окупается. В программах побольше 10 килострок.
> 
> А.... ээээ.... понятно :) Учитывая что на Clean игрушки
> типа SuperMario занимают 3 Кстрок, то что можно впихать
> в 10 Кстрок я даже прдставить боюсь :)

Вот-вот. И я боюсь. Как почитал исходники GHC, да как
сравнил с читабельностью исходников GNAT - так до сих
пор и боюсь. Ада дает эффект в программах, которые надо
поддерживать долгое время. В т.ч. когда начинает работать
один программист, продолжает другой, а тараканов травит
третий. Нечто вроде Perl или хотя бы C obfuscated в варианте
для Ады ну ОЧЕНЬ сложно представить. Haskell/Clean в этом
отношении промежуточную позицию занимают.

>>скипнутый пример работает со _списками_, что не совсем
> 
> Это еще почему? Список из n списков одиноковой длины m
> можно считать матрицей m*n.
> 
>>соответствует букве задания. И немного :) менее эффективен.
> 
> Не факт. Ленивость может вылится в то, что сортировка
> может быть не полно а только до достижения нужных условий

Дык анализировать надо. Серьезно. Просто так на ленивость
полагаться не пойдет. Окасаки читал? Ну и к тому же не
надо забывать про накладные расходы ленивости. Они хотя
и уменьшились неплохо в последнее время, но не настолько,
чтобы их полностью игнорировать.


> 
>>Особенно по критерию памяти.
> 
> Это ты зря. Давно известно - хочешь быстрой работы дай
> побольше памяти.

Правильно, конечно. Но если не надо побыстрее?
В задании этого не сказано... Так что опустим :)


>>Ну, параметризации и в Аду можно добавить побольше.
>>
>>generic
>>   type Index is (<>);
>>   type Element is private;
>>   type Matrix is array (Index range <>, Index range <>) of Element;
>>   with function "="(A, B: Element) return Boolean;
>>procedure Find_Duplicate(..... ну и далее по тексту
>>
>>Писанины, конечно, много... Но Ада так и задумывалась, чтобы
>>программы можно было легко _читать_. А Хаскельные программы
>>могут быть _очень_ запутаны...
> 
> Да вспомнил. Изящное деление на языки по категориям :)
> 1) на которых легко писать (C, Perl....)
> 2) которые легко читать (Ada, Pascal....)
> .... и т.д.

И т.д. здесь совсем не к месту.

> А _очень_ запутаны программы могут быть на _любой_ языке.
> Хотя отровенно говоря Clean мне больше нравиться чем Haskell

Непринципиальная разница (хотя и мне явно-графическая семантика
Clean нравится больше подхода Haskell).

Проблема (и удобство) Haskell состоит в возможности свой язык
на его основе сделать. Наподобие FranTK. Создателю, может,
и понятно, а все остальные должны к его стилю привыкать.
Возможности мощные - но пользоваться ими надо _уметь_.
Ада, с другой стороны, диктует свой стиль. Но очень продуманный.

WBR, AD (desyatnik@dax.ru)



-- 
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
 * Origin: Talk.Mail.Ru (2:5020/400)