G>>Разве Немерле даёт что-то новое, чего не давал бы какой-нибудь другой язык? Он только комбинирует в себе кучу разных идей... VD>Вот их комбинацию и дает.
Комбинация идей — будет "новым подходом к программированию" ?
Если человек может выбирать любой язык для своих проектов — то имеет смысл выбрать (и изучить) язык просто ради личного удобства.
А вот если нет — то изучение языка — это только самообьразование, изучение новых подходов а не самого языка.
И тогда зачем дополнительно изучать комбинацию, если в том языке, который используется, ее все равно не применишь, а идеи отдельно уже изучены ?
VD>Ответом в той же манере будет: А зачем изучать Лисп?
Он же написал, что он ужде шугается — т.е. он уже в какой-то мере изучил Лисп. А Немерл будет совсем новым.
Здравствуйте, deniok, Вы писали:
D>Сравнивать явовские интерфейсы и классы типов Хаскелла — всё равно, что сравнивать макросы C и Лиспа. Инструменты радикально разной мощности.
Если убрать понты в корман, то окажется, что ничего особо революционного там нет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, lomeo, Вы писали:
G>>Разве Немерле даёт что-то новое, чего не давал бы какой-нибудь другой язык? Он только комбинирует в себе кучу разных идей...
L>Вообще это вопрос личный, язык как женщина — мне не даёт, тебе не даёт, Владу даёт.
Значит с женищинами у вас та же история. Ну, оно и понятно .
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, geniepro, Вы писали:
G>Просто Лисп — классика. Полувековая история компьютинга, всё-таки... ;о)
Копйка тоже классика, но на сегодня ездить на ней можно только от большой нужды.
G>Нет-нет, Влад, это не ко мне. Я не тот Аноним 673, который шугается от Немерле... :о)
Может быть. Когда вас там сортировать то?
G>Мне Немерле любопытен, хотя и не настолько, что бы скачивать исходники компилятора из SVN или где они там хранятся, и билдить их вручную.
Вообще-то если на машине стоит Тортила, то нужно забить пукть к репозиторию (http://nemerle.org/svn/nemerle/trunk). Нажать ОК, и дождаться пока исходники скачаются. Далее выполрить BuildAndReg-1-phase.cmd и через две минуты на машине будет компилятор. С интеграцией, правад, сложнее. Но как правильно заметил
товарищь Mirrorer есть CTP-версия. Она отстает от компилятора максимум на 2 недели.
G>А та версия, что я скачал с их сайта (в виде инсталлятора), не может откомпилировать твой вариант Ack на Немерле...
В прочем, ссылку тебе дали. Так что обсуждать уже точно нечего.
G>Когда, кстати, немерлевцы обновят инсталлятор компилятора?
Скажу по сикрету, что теперь это делает товаридь Блудов. Он сделал единый инсталятор для компилятора и Интеграции со студией. CTP которых переодически выкладываются в соответствующем формуе.
G> А иначе о каком промышленном применении может идти речь, когда такие несовместимости даже в простейших случаях?
Что у тебя там за косят вылез я не знаю. Акерман должен компилироваться даже компилятором трехлетней давности. Правда похоже, что за последнее время Немерле отстал в области компиляции акерманов. F# это делает лучше .
VD2>> Я все же справился с разворотом рекусрии на C#, так что думю, что он сейчас станет победятлом :
G>Боюсь, эта версия стала дятлом, а не победятлом... :о)) Она работает ещё медленнее (немного), чем оригинальная...
Что то не то говоришь. Возможно в дебаге компилируешь или запускаешь из под студии, а не отдельно или по Ctrl+F5. Или все зависит от процессора. У меня F#-ная версия показвает .29 сек, а Шарповская .20. Код почти идентичный, только у Шарповской версии размер стека 8. Может из-за выравнивания все дело происходит. Вообще — это конечно не тест, а идиотизм. Тут уже ветер за форточкой на результат влияет (выравнивания и т.п.).
G>Как мне известно, в этой функции нельзя обойтись одними итерациями, не сэмулировав при этом стек и "рекурсию для бедных"...
А ты код то внимтельно посмотрел? Развернута концевая рекурисия (заменена на цикл в соответствии с классикой жанра). Обычный рекурсивный вызов оставлен на месте.
VD2>> Короче крутость ленивых языков не подтвердилась.
G>О какой крутости ленивости шла речь? Я лишь заявил, что ленивость можно побороть анализатором строгости или ручным форсированием выполнения...
Кто утверждал, что на том же акермане все будут порваны. А вот у меня C# лидер в желтой майке, только надо рекурсию ручками развернуть.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, geniepro, Вы писали:
G>Я просто хочу сказать, что динамичность или ленивость — не непреодолимые преграды, их можно обойти хорошими компиляторами.
Однозначные, однозначные. Причем если ленивость еще теоретически преодолима, а вот дикамика — это приговор. Там где удастся сделать вывод типов можно о чем-то говорить, но на то она и динамика, что сделать полный вывод типов невозможно принципиально.
G>Например, Stalin (компилер для Scheme) для той же функции Аккермана генерирует код в три раза более быстрый, чем GCC
Это бред. GCC конечно не лучший компилятор, но до 5 раз это нереально. И опят же фокус с акрерманом исключительно в концевой рекурсии. Используй привденный мной императивный вариант и все функциональные языки в лучшем случае покажут похожий результат.
Вот только Акерманы и Фибоначи — это вырожденные случае примитивщины по совместительству являющиеся юнит-тестами для компиляторов функциональных языков. Так что их результаты не показательны. Вот тут был неплохой тест — Альфа Блэнд. Как я помню единственный функциональный язык приблизившийся к С++ по скрости был Клин и то после полной аннотации типов всего что можно и после устранения всех причуд компилятора. Код при этом был хуже чем на С++. Лично у меня даже сомнений не осталось после этого.
G> (правда, сразу признаюсь, я сам этого не проверял, мне показывали бенчмарки)...
Еще раз повторяю, что пдобные тесты начинают зависить от ветра за форточкой. Выравнивание чуть по другому и уже приемущество на треть. Тут как крата ляжет. Если же компилятор специально на алгоритм оптимизировлся, то и говорить не о чем. Вседа можно подобрать последовательность инструкций которые некоторый процессор исполнит идиально. Алгоритмически быстрее этого варианта думаю сделать невозможно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, <Аноним>, Вы писали:
А>Комбинация идей — будет "новым подходом к программированию" ?
Радикально новых идей нет лет 30. Все что придумано развитие тех времен. Не программировать же из-за этого на Симуле и Лиспе тех времен?
А>Если человек может выбирать любой язык для своих проектов — то имеет смысл выбрать (и изучить) язык просто ради личного удобства.
Если человеку не совсем плевать на сам проект, то выбирать нужно наиболее удобный язык (как в прочем и вообще инфраструктуру). Такой, чтобы максимально облегчал решение задачи.
VD>>Ответом в той же манере будет: А зачем изучать Лисп? А>Он же написал, что он ужде шугается — т.е. он уже в какой-то мере изучил Лисп. А Немерл будет совсем новым.
Ну, а что шагать, то в пролое? Ежу понятно, что у Лиспа окромя макросов ничего нет. Ну, так теперь не только Лисп ими обладает.
Вот и выглядит странно это заявление. Больше похоже на откровенный снабизм или фанатизм. Из серии "Васик это для ламеров".
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, <Аноним>, Вы писали:
VD>Вот и выглядит странно это заявление. Больше похоже на откровенный снабизм или фанатизм. Из серии "Васик это для ламеров".
VD> Сгенерировать более быстрый код они не в силах приципиально. Тут могут быть ... или сравнение разных алгоритмов.
Если в разных языках естественно выглядят разные алгоритмы — почему это не записать в достоинства языку и чем это делает сравнение бессмысленным ?
Возражение странное.
A>>а почему, собственно, все так шугаются от него в сторону Nemerle или Хаскеля?
G>Ну прям так сразу и все. Грамотные пацаны и девчонки шугаются в сторону Erlang!
Ну, дык, я зря, что ли, "Декларативное программирование" заспамливаю сообщениями об Эрланге?
Здравствуйте, Mamut, Вы писали:
A>>>а почему, собственно, все так шугаются от него в сторону Nemerle или Хаскеля?
G>>Ну прям так сразу и все. Грамотные пацаны и девчонки шугаются в сторону Erlang!
M>Ну, дык, я зря, что ли, "Декларативное программирование" заспамливаю сообщениями об Эрланге?
Здравствуйте, <Аноним>, Вы писали:
А>Если в разных языках естественно выглядят разные алгоритмы — почему это не записать в достоинства языку и чем это делает сравнение бессмысленным ?
Записывай, но не надо сюда производительность прилетать.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Lloyd, Вы писали:
VD>>Попробуй присвой переменную до цикла, измени ее значение в цикле, и используй его после цикла.
L>Как это сделать покажешь?
Не, ну, это вы же ученые. Вы и думайте. Мое дело предложение сделать. (с)
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: ocaml срочно!!!
От:
Аноним
Дата:
18.05.07 12:53
Оценка:
А>>Комбинация идей — будет "новым подходом к программированию" ?
VD>Радикально новых идей нет лет 30. Все что придумано развитие тех времен. Не программировать же из-за этого на Симуле и Лиспе тех времен?
Заметь, geniepro говорит "изучать", а ты говоришь "программировать". Не факт что у него етсь такая возможность.
А>>Если человек может выбирать любой язык для своих проектов — то имеет смысл выбрать (и изучить) язык просто ради личного удобства.
VD>Если человеку не совсем плевать на сам проект, то выбирать нужно наиболее удобный язык (как в прочем и вообще инфраструктуру). Такой, чтобы максимально облегчал решение задачи.
Если ты управляешь проектом и наьираешь под свой вкус программеров — то да. А есл наоборот.
Сам же говорил, кажется, что в серьезном проекте за самопальную макро-библиотеку в Лиспе ли, Немерле ли надо наказывать?
Вот и представь что ты ведёшь проект, выбрал для него, допустим Nemerle. А твой подчиненный выбрал для своей части общего проекта — Scala. Потому что eмy так удобнее и максимально облегает ему решение своей задачи.
Здравствуйте, Mamut, Вы писали:
A>>> а почему, собственно, все так шугаются от него в сторону Nemerle или Хаскеля?
G>> Ну прям так сразу и все. Грамотные пацаны и девчонки шугаются в сторону Erlang!
M> Ну, дык, я зря, что ли, "Декларативное программирование" заспамливаю сообщениями об Эрланге?
Кстати, а что там за история была с запретом на использование Эрланга в Эриксоне, что привело к уходу из Эриксона почти всех создателей Эрланга?
Здравствуйте, VladD2, Вы писали:
VD2> А ты код то внимтельно посмотрел? Развернута концевая рекурисия (заменена на цикл в соответствии с классикой жанра). Обычный рекурсивный вызов оставлен на месте.
VD2> Кто утверждал, что на том же акермане все будут порваны. А вот у меня C# лидер в желтой майке, только надо рекурсию ручками развернуть.
В-общем, ждём Трурля. Он меня когда-то убедил, что функцию Аккермана нельзя реализовать с хвостовой рекурсией или в итеративном виде без имитации рекурсии...
VD2> Вот только Акерманы и Фибоначи — это вырожденные случае примитивщины по совместительству являющиеся юнит-тестами для компиляторов функциональных языков.
Так я сразу оговорился, что пример искусственный. За уши можно любое опровержение чему угодно притянуть...
Здравствуйте, VladD2, Вы писали:
VD>Вот и выглядит странно это заявление. Больше похоже на откровенный снабизм или фанатизм. Из серии "Васик это для ламеров".
Однако мы сильно отклонились от темы. Вряд ли наш фанатизм поможет Настасье с её дипломной работой...
Предлагаю такую тему для Анастасии:
Регулярно проводятся различные соревнования между программистами, в частности — ICFP, на которых разрешено использовать любые языки программирования. Вот, например, описание одного из финалов в презентации "Industrial Functional Programming", стр. 27 и далее.
Участие принимало более 800 команд со всего мира, было принято 39 решений, на следующих языках:
В результате первые четыре места заняли: (трассировщик лучей)
1) O’Caml
2) O’Caml
3) Haskell
4) Mercury
C/C++ и прочие императивные языки оказались в глубоком пролёте...
В следующих соревнованиях места распределились так: (программа компрессии HTML страниц)
1) Haskell
2) Dylan
3) O'Caml, C (видимо, часть программы на O'Caml, часть — на С)
В прошлогодних (ICFP-2006) соревнованиях первые места выглядели так: (вапще куча разных крутых задач)
1) Haskell
2) O'Caml
3) Haskell
Короче, вывод для диплома предлагаю такой:
Функциональные языки позволяют сэкономить кучу времени при создании алгоритмически сложных программ в условиях жёсткого дефицита времени и потратить это сэкономленное на кодировании и отладке программ время на поиск наиболее оптимальных алгоритмов — самых быстрых, самых качественных и т.д...
Здравствуйте, geniepro, Вы писали:
G>Предлагаю такую тему для Анастасии:
G>Регулярно проводятся различные соревнования между программистами, в частности — ICFP, на которых разрешено использовать любые языки программирования. G>Короче, вывод для диплома предлагаю такой:
G>Функциональные языки позволяют сэкономить кучу времени при создании алгоритмически сложных программ в условиях жёсткого дефицита времени и потратить это сэкономленное на кодировании и отладке программ время на поиск наиболее оптимальных алгоритмов — самых быстрых, самых качественных и т.д...
ого, уже и вывод придумали! как тут у вас хорошо, я только с интерпретатором борюсь, а вы мне уже результат подогнали)) спасибо )))
А еще вопросик, более старые версии окамла где поискать можно?годика так 2000-2002...
Здравствуйте, anastassia, Вы писали:
A>А еще вопросик, более старые версии окамла где поискать можно?годика так 2000-2002... http://caml.inria.fr/pub/distrib/