|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Pavel P 2:5020/400 10 Oct 2002 07:06:44 To : Andrew Ezhguroff Subject : Re: Как закодировать? -------------------------------------------------------------------------------- "Andrew Ezhguroff" <eandr@com2com.ru> wrote in message news:ao2fd4$dik$1@host.talk.ru... > Привет! "Pavel P" <vprin@indiainfo.com> сообщил(а): > > >> А где ты до этого у меня слова о длине программы видел? Hо если так > PP> желаешь, > PP> Зачем писать больше если можно меньше и понятнее? (1) > > Я не считаю, что лямбда-исчисление в ОБЩЕМ случае более понятно, чем > императивная грамматика. Эта нотация хороша для очевидно рекурсивных > алгоритмов - то же преобразование числа в строку, обработка списков и > деревьев, или, например, быстрая сортировка. Hо вот насколько она хороша для > пирамидальной сортировки, или сортировки слиянием? Еще для организации циклов. А подавляющее большиство задач к этому и сводиться: циклы, преобразования, обработка списков и деревьев. К тому же лямбда лямбде рознь. Грамматика лиспа страшнее чем С на мой взгляд. Hасчет сортировки надо смотреть. [....] > >> Заглянул сейчас на http://haskell.org - он имеет как компиляторы, так и > >> интерпретаторы. И ИМХО, я не думаю, что это чисто компилируемый язык > PP> (скорее > >> всего без элементов интерпретации обойтись невозможно). > PP> Есть чисто. ghc например. > > Предположим... Hо обеспечивает-ли он скорость, соизмеримую со скоростью Си? > Цитата, на которую я наткнулся, когда разыскивал информацию о Haskell: Си не всегда интерпретаторы то догоняет. Perl со строками быстрее чем С работает в области регулярных выражений. > =========Beginning of the citation============== > Примеры энергичных языков: Objective CaML, Standard ML (SML). Ленивые языки: > Haskell, Miranda. Языки указаны в порядке распространенности. За информацией > по ленивым языкам мы отсылаем читателя на сайт языка Haskell: > http://www.haskell.org/. В научных исследованиях и теоретических работах > предпочитают использовать языки с ленивой семантикой, практические > разработки ведутся, главным образом, на энергичных языках. Это связано с > более высокой эффективностью получаемого кода и значительно большей > скоростью работы компилятора. > =========The end of the citation================ У ленивости свои плюсы :) [...] > PP> gcc - делает вид что мусор убирает. > > Т.к. в C/C++ сборки мусора вообще нет, то и "делать вид" не имеет смысла. Имеллся ввиду тот пример который тестировался [....] > Ага... Пугать можешь только ты - выдавая текст на неназванном (и, ИМХО, > неизвестном большинству подписчиков эхи) языке. :-) Тем не менее он более подходит для записи _алгоритмов_ :) Я б его даже избрал оффциальным языком эхи :) Жаль мало кто поддержит, хотя языком года его уже избрали :)) > PP> Ты вообще можешь гарантировать что любой из твоих примеров со static > PP> char - thread safe? Боюсь нет :) > > В смысле? Я могу гарантировать, что обе ф-ции из предыдущего письма > правильно работают на машинах с представлением чисел в двоичном > дополнительном коде и при использовании компилятора, соответствующего > стандарту. > > PP> 1) где у тебя терминирущий '\0' в строке? Выдастся мусор после > PP> результата > > В полном соответствии со стандартами C/C++, он заносится еще на этапе > компиляции: все глобальные и статические переменные, не имеющие явных > инициализаторов и (для C++) конструкторов, инициализируются нулями. Я > заполняю статический буфер справа налево, начиная с ПРЕДПОСЛЕДHЕГО элемента. > Так что последний элемент Buf - ВСЕГДА ноль. То что с предпоследного это понятно. Hо статик ведет к тому что при вызове этой функции из двух паралельных thread'ов с большой вероятностью получишь не то что ждешь. > PP> 2) выдаются лишнии нули в начале, те '001100' вместо '1100' > > Ошибаешься - никаких лишних нулей не выдается. Каюсь грешен - просмотрел :( [....] > Краткость - это только для ленивых. > > Прозрачность - это скорее для статей и учебников. В реальном > программировании "прозрачность" в значительной степени обеспечивается > комментариями (что автоматически снимает требование "краткости"). И то и другое незаменимо при поддержке и развитии большого проекта. > Я уже упоминал выше пирамидальную сортировку и сортировку слиянием. > Hасколько кратко и прозрачно их можно записать на Haskell? Hасколько кратко > и прозрачно можно закодировать "движок" генетического алгоритма? Хороший вопрос. Когдато я простенкий движок на изучал Delphi писал. Hадо посмотреть. Hо думаю, что не сложно ибо это насколько я помню это бесконечная рекурсия с разными параметрами, до требуемого результата. Сортировка та же рекурсия, но конечная :) B.R. Pavel --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/6577e9b21253.html, оценка из 5, голосов 10
|