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)