FR wrote:
> угу: ...
Издеваешься? Я ж не зря ссылку привел, я с проблемой ознакомился.
gleb@gleb:~> cat bye-bye.py
def foo():
x = 1
def inner():
x += 1
inner()
print x
foo()
gleb@gleb:~> python bye-bye.py
Traceback (most recent call last):
File "bye-bye.py", line 8, in ?
foo()
File "bye-bye.py", line 5, in foo
inner()
File "bye-bye.py", line 4, in inner
x += 1
UnboundLocalError: local variable 'x' referenced before assignment
А так? Что-то мне подсказывает, что global не поможет
Здравствуйте, PhantomIvan, Вы писали:
E>>Если мне достается на сопровождение так написанный код, я что должен делать?
PI>тут ты загнался, признай — потому что на сопровождение приходит сколь угодно запутанный код на любом языке (хоть с++, хоть васик)
Нет, дело в том, что со свободным синтаксисом даже качественный код со временем становится плохо воспринимаемым.
E>>Угу, в распечатке. PI>никогда не печатал проги... хотя попробую, может это прикольно...
А примеры в документации и книгах?
PI>сдаюсь в общем, что там в результате?
Это функция возвращается, а не список. Со скобками -- список.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, PhantomIvan, Вы писали:
PI>> а можешь выписать что есть в Скале, чего нет в Немерле?
VD>Можно. Но туташняя публика во сновном не поймет того о чем идет речь.
VD>В скале есть две вещи которые мощьнее Немерла. VD>1. Более общая реализация алгеброических типов. VD>2. Не явные замыкания.
3. traits
4. actors
5. try-блоки — это выражения
(это мне нравится (удобно для обработки неверного ввода):
val i = try { Integer.parseInt(some_string); }
catch { case _ => 1 };
)
А вот насчет п.1 — не уверен, что хорошо.
Т.к. неограниченное количество case class ов не позволяет выявлять когда в pattern matching не были обработаны все случаи.
Компиляторы Haskell и Nemerle в этом случае выдают предупреждения, а Scala только в рантайме выбросит исключение MatchError.
PI>>ну да, Влад не относится к "слепо верующим" — тогда кого ты имел в виду?
E>Как раз Влад типичный "слепо верующий" об нем и речь.
ну, тут спорить не о чем даже — ты ошибаешься, даже не знаю почему так явно ошибаешься
впрочем, мне по этому поводу все равно
E>Угу-угу. Я, к примеру, занимаюсь сопровождением продуктов, которые стартовали еще в 2001-м/2002-м годах. А на местах моей предыдущей работы еще продолжают развивать начатые еще в 99-м и 2000-м году проекты. Практически на тех же технологиях. Так что самые умные берут новую технологию и линяют в другое место. А кто-то их наработки потом сопровождает. А политика "после нас хоть потоп", уж так получилось, не по мне.
такая уж судьба наверно... я из этих:
самые умные берут новую технологию и линяют в другое место
но это не значит, что я плохо програмил на старых технологиях
FR>>>Тогда зачем ты предлагаешь мне его использовать для работы? FR>>>А для нерабочих условий (есть и у меня такое хобби) уже образовалась очередь из языков которые было бы интересно посмотреть — поковырять, но времени не хватает а для вас похоже свет клином сошелся на одном языке.
PI>>"мы" вообще-то как минимум, 2-3 языка использовали профессионально, и ещё пяток "пробовали" PI>>а некоторые из "нас" пяток профессионально и еще десяток — "так"
PI>>так что вряд-ли для "нас" свет клином где-то случайно сошелся
FR>Значит вы в это вас не входите
от теперь уже это нас-вас-нас-вас окончательно запуталось
я вообще-то немерлистов поименно могу, а кто захочет тот напишет, на чем он програмил профессионально, и что пробовал "так"
E>>>Если мне достается на сопровождение так написанный код, я что должен делать?
PI>>тут ты загнался, признай — потому что на сопровождение приходит сколь угодно запутанный код на любом языке (хоть с++, хоть васик)
E>Нет, дело в том, что со свободным синтаксисом даже качественный код со временем становится плохо воспринимаемым.
а с "несвободным" синтаксисом он как будто не становится плохо воспринимаемым
это типичное применение закона "повышения энтропии" в любом проекте на любом языке, описанное ещё у Брукса (опять же), неизбежное при сопровождении
E>>>Угу, в распечатке. PI>>никогда не печатал проги... хотя попробую, может это прикольно...
E>А примеры в документации и книгах?
ну, давно не читал бумажные книги
как из них копипаст примеров делать, чтобы по-быстрячку проверить?
PI>>сдаюсь в общем, что там в результате?
E>Это функция возвращается, а не список. Со скобками -- список.
о, и точно, что-то я перемудрил... век живи — век учись... но зачем ты название функции на экране печатаешь? тем более стандартной функции... это чтобы запутать китайскую разведку?
VD>>В скале есть две вещи которые мощьнее Немерла. VD>>1. Более общая реализация алгеброических типов.
а кинуть пару примеров можешь?
VD>>2. Не явные замыкания.
и от это прокомментировать?
АХ>3. traits
пришла пора, кажись, их реализовать (поговорили поговорили вроде на гугле об этом, но нифига кода никто так и не сделал)
АХ>4. actors
тут я вообще не в теме, буду изучать как время появится
а пока для ламаков кто-нибудь может сказать что это такое? в 2 словах
и докупы, что такое chords ?
АХ>5. try-блоки — это выражения АХ>(это мне нравится (удобно для обработки неверного ввода): АХ>
АХ>val i = try { Integer.parseInt(some_string); }
АХ> catch { case _ => 1 };
АХ>
АХ>)
дык вроде удобно...
проверил — ты ошибаешься (luckily)
для этого быренько перелабал уже запощеный снипет
def found = foundMultiple.FoldLeft(foundMultiple.Head, (ring, ring') =>
{
def warning = "Find Usages should produce the same results, disregarding on which usage a user places a cursor";
def coincide =
try
{
FoldLeft2(ring, ring', true, (a, b, coincideToTheLeft) =>
if (coincideToTheLeft) a.Location.CompareLines(b.Location) == 0 else false)
}
catch
{
| _ => false
};
when (stopAfterFirstFailedTest)
Assert.IsTrue(coincide, warning);
ring
});
АХ>А вот насчет п.1 — не уверен, что хорошо.
пока не в курсе че там в п.1 на самом деле, АХ>Т.к. неограниченное количество case class ов не позволяет выявлять когда в pattern matching не были обработаны все случаи.
но это — сакс по-любому, учитывая саму природу вариантов (как часто расширяемых структур данных) АХ>Компиляторы Haskell и Nemerle в этом случае выдают предупреждения, а Scala только в рантайме выбросит исключение MatchError.
-1 скале, причем такой, жырный -1... ты уверен в сказанном? (меня сомнения берут, давай подробней)
Здравствуйте, Programmierer AG, Вы писали:
PA>FR wrote:
>> угу: ... PA>Издеваешься? Я ж не зря ссылку привел, я с проблемой ознакомился.
Так кто на ссылку смотрит, если по приведенному коду сразу видно как исправить ошибку
Спасибо про данную проблему не слышал, притом замыканиями пользуюсь достаточно активно, но почему-то так сложилось что в чисто функциональном стиле, для котором данная проблема не существенна.
В принципе по ссылке описано как решить, но некрасиво. Покрасивше можно сделать как в лиспе функцию set которая пройдется по фреймам функций (через inspect) и присвоит первой встревшейся переменной с данным именем нужное значение.
FR>>Значит вы в это вас не входите
PI>от теперь уже это нас-вас-нас-вас окончательно запуталось PI>я вообще-то немерлистов поименно могу, а кто захочет тот напишет, на чем он програмил профессионально, и что пробовал "так"
Это не важно, важно то что среди вас есть несколько для которых свет именно клином сошелся, из-за них любая тема (например эта или про D) превращается в Nemerle vs ...
Я уже предлагал тут радикальное решение переименовать "философию программирования" в "оду немерле", всех недовольных забанить, и будет вообще классно
FR>Это не важно, важно то что среди вас есть несколько для которых свет именно клином сошелся, из-за них любая тема (например эта или про D) превращается в Nemerle vs ...
так, вношу три замечания:
0. я так понимаю, имеется в виду Влад, ну то понятно
1. что для "нас" на немерле свет клином сошелся, это наверно потому, что мы его сейчас используем активно, и видим, что он лучше всего пользованного ранее
2. что темы превращаются в немерле-против-"икс", это хорошо (для немерле): есть реальная возможность для немерле потягаться с "икс", и есть реальная возможность для "икс" потягаться в немерле (только что-то "тяганий" не видно, видно только флейм статика-против-динамики — причем здесь нет ни одного(!) человека, который постиг истинную сущность одного и другого одновременно)
3. но я разочарован тем, что дальше разговоров дело пока не пошло (на рсдне людей много, но никто не пользует немерле, никто не включается в дискуссию с его авторами, никто не репортит новые баги, никто не выкладывает свой крутой макро-код — практически никто) появляется ощущение водителя, едущего по встречной полосе, и считающего, что это они — все остальные — неправы
FR>Я уже предлагал тут радикальное решение переименовать "философию программирования" в "оду немерле", всех недовольных забанить, и будет вообще классно
я предлагал создать отдельный форум для Немерле... 2 раза... но этот нехороший Влад...
ну, думаю, он вас использует для грязного пиара этого языка (когда на 2 срок избирали ельцина, все его ругали-ругали, ругали-ругали... а его рейтинг рос и рос, рос и рос... было мнение, что это пиаровцы специально придумали, и подогревали)
точно! чтобы Немерле наконец сдох — попробуйте говорить "какой хороший язык однако"
Здравствуйте, eao197, Вы писали:
E>Если оттакиваться от пропагандируемого здесь мнения, что C++ отстой и глюкодром, то уже удивительно, что кто-то на C++ смог составить конкуренцию C# и Java. А уж результат на C вообще выглядит выдающимся.
Позволь задать вопрос: В скольки подобных соревнованиях ты приниимал участие?
Например я в свое время очень не мало покатался по всяким олимпиадам.
Так вот скажу тебе как краевед: Программирование на олимпиадах не имеет ничего общего с написание реальных программ. Те вобще ничего.
По сему абсолютно не корректно делать какие либо выводы о возможностях языков в реальных проектах на основе подобных соревнований.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, PhantomIvan, Вы писали:
E>>Если мне достается на сопровождение так написанный код, я что должен делать?
PI>тут ты загнался, признай — потому что на сопровождение приходит сколь угодно запутанный код на любом языке (хоть с++, хоть васик)
Т.е. тебе нет разницы какой код сопровождать: просто плохой или изощрённо плохой?
PI>>>в немерле ответ на "шо це таке" обычно получаешь при наведении на икс и получении хинта
E>>Угу, в распечатке. PI>никогда не печатал проги... хотя попробую, может это прикольно...
Ты совершенно напрасно ёрничаешь, есть масса ситуаций когда нет под рукой IDE с подсветкой синтаксиса, но код понять надо.
Ты как блаб программист — ты не можешь себе их представить и думаешь, что их нет.
now playing: Eraldo Bernocchi & Harold Budd — Fragment Four
Здравствуйте, PhantomIvan, Вы писали:
FR>>Это не важно, важно то что среди вас есть несколько для которых свет именно клином сошелся, из-за них любая тема (например эта или про D) превращается в Nemerle vs ...
PI>так, вношу три замечания: PI>0. я так понимаю, имеется в виду Влад, ну то понятно
не только
PI>1. что для "нас" на немерле свет клином сошелся, это наверно потому, что мы его сейчас используем активно, и видим, что он лучше всего пользованного ранее PI>2. что темы превращаются в немерле-против-"икс", это хорошо (для немерле): есть реальная возможность для немерле потягаться с "икс", и есть реальная возможность для "икс" потягаться в немерле
Для икс это плохо, посмотри ту же тему про D, если бы там не было горлопанов от немерле было бы гораздо лучше для всех, вместо этого получилась очередная тема-помойка.
PI>(только что-то "тяганий" не видно, видно только флейм статика-против-динамики — причем здесь нет ни одного(!) человека, который постиг истинную сущность одного и другого одновременно)
А ты постиг?
PI>3. но я разочарован тем, что дальше разговоров дело пока не пошло (на рсдне людей много, но никто не пользует немерле, никто не включается в дискуссию с его авторами, никто не репортит новые баги, никто не выкладывает свой крутой макро-код — практически никто) появляется ощущение водителя, едущего по встречной полосе, и считающего, что это они — все остальные — неправы
Так может стратегия "все в дерьме, одни мы в белом" ущербна и стоит ее пересмотреть?
FR>>Я уже предлагал тут радикальное решение переименовать "философию программирования" в "оду немерле", всех недовольных забанить, и будет вообще классно
PI>я предлагал создать отдельный форум для Немерле... 2 раза... но этот нехороший Влад...
PI>ну, думаю, он вас использует для грязного пиара этого языка
Толку то.
PI>(когда на 2 срок избирали ельцина, все его ругали-ругали, ругали-ругали... а его рейтинг рос и рос, рос и рос... было мнение, что это пиаровцы специально придумали, и подогревали) PI>точно! чтобы Немерле наконец сдох — попробуйте говорить "какой хороший язык однако"
Ты меня неправильно понял, у меня нет такого желания, наоборот пусть живет и процветает.
Здравствуйте, WolfHound, Вы писали:
WH>Позволь задать вопрос: В скольки подобных соревнованиях ты приниимал участие?
Пару раз в школе (89-90). Раз пять в ВУЗе, в том числе в двух республиканских (92-93). Пару раз участвовал в олимпиадах как организатор и судья.
WH>Так вот скажу тебе как краевед: Программирование на олимпиадах не имеет ничего общего с написание реальных программ. Те вобще ничего.
Однако, для оценки способностей отдельных индивидов они вполне хороши.
WH>По сему абсолютно не корректно делать какие либо выводы о возможностях языков в реальных проектах на основе подобных соревнований.
Точно так же, как утвержать, что какой-то язык абстрактно мощнее другого (без учета предметной области, к примеру, или наличия готовых унаследованных разработок).
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, PhantomIvan, Вы писали:
E>>Нет, дело в том, что со свободным синтаксисом даже качественный код со временем становится плохо воспринимаемым.
PI>а с "несвободным" синтаксисом он как будто не становится плохо воспринимаемым
Он становится лучше воспринимаемым. Стоит только самому начать скобки при вызове местодов использовать и подчиненных заставить это делать.
E>>А примеры в документации и книгах?
PI>ну, давно не читал бумажные книги
Многое теряешь.
PI>но зачем ты название функции на экране печатаешь? тем более стандартной функции... это чтобы запутать китайскую разведку?
А нет у меня VS
Увидел решение задачки -- запустил, обнаружил ошибку. Начал править, наткнулся на сюрприз автоматического вывода типов
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
E>>>Если мне достается на сопровождение так написанный код, я что должен делать?
PI>>тут ты загнался, признай — потому что на сопровождение приходит сколь угодно запутанный код на любом языке (хоть с++, хоть васик)
EC>Т.е. тебе нет разницы какой код сопровождать: просто плохой или изощрённо плохой?
лучше заново переписать, а еще лучше — новую систему (интеграцию "эн" например )
реальность конечно, сложнее, и код, как правило просто изощрённо плохой
PI>>никогда не печатал проги... хотя попробую, может это прикольно...
EC>Ты совершенно напрасно ёрничаешь, есть масса ситуаций когда нет под рукой IDE с подсветкой синтаксиса, но код понять надо.
серьезно, у меня давно уже нет бумажных книг по программированию
и IDE я не закрываю... для хаскеля помню, скачал плагин к студии... а совсем экзотических языков (brainfuck?) я не юзал никогда
EC>Ты как блаб программист — ты не можешь себе их представить и думаешь, что их нет.
может, я блаб-программист, но не блоб-программист
но по секрету скажу, что когда я был маленький, и переходил с васика (спектрум) на паскаль (бибиэм), и хотел поступить т.н. "компьютерный колледж" (единственная школа, наверно, где програмить учили), то все лето я "программировал" в толстой тетрадке в клеточку
с тех пор дебаггер у меня в голове... но не пользоваться IDE, когда она есть... гм, это изврат все-таки...
E>Он становится лучше воспринимаемым. Стоит только самому начать скобки при вызове местодов использовать и подчиненных заставить это делать.
это в руби можно скобки опускать?
(сомневаюсь, что любые насильственные методы помешают "индусу" работать в режиме кодогенерации, обфускации и псевдослучайности)
PI>>ну, давно не читал бумажные книги
E>Многое теряешь.
я как бы их тырю с сети и читаю с моника (давно, правда, не читал по програмщине чего-либо)
PI>>но зачем ты название функции на экране печатаешь? тем более стандартной функции... это чтобы запутать китайскую разведку?
E>А нет у меня VS E>Увидел решение задачки -- запустил, обнаружил ошибку. Начал править, наткнулся на сюрприз автоматического вывода типов
я тоже пробовал немерле без студии сначала — меня хватило только на упражнения с их сайта
зато теперь получаю все больше и больше удовольствия от процесса написания кода (по мере добавления фич и удаления багов из интеграции)
Здравствуйте, eao197, Вы писали:
E>Однако, для оценки способностей отдельных индивидов они вполне хороши.
На олимпиадах рулят не самые умные, а те кто перед олимпиадой сидел и учил фокусы.
Те из этого можно оценить только то что человек может заучить кучу фокусов. Не болие того.
И что интересно многие олимпиадники сталкиваясь с задачками где заученные фокусы не работают пасуют.
E>Точно так же, как утвержать, что какой-то язык абстрактно мощнее другого (без учета предметной области, к примеру, или наличия готовых унаследованных разработок).
Если ты про немерле то для него готовых библиотек как родных .НЕТных так и пришедших с кучи других языков которые можно интеропнуть с .НЕТом...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, PhantomIvan, Вы писали:
EC>>Т.е. тебе нет разницы какой код сопровождать: просто плохой или изощрённо плохой?
PI>лучше заново переписать, а еще лучше — новую систему (интеграцию "эн" например ) PI>реальность конечно, сложнее, и код, как правило просто изощрённо плохой
Такой легкомысленный подход прокатывает в некритичных задачах, а если от твоего косяка может пострадать бизнес, то твои эстетические страдания идёт лесом в пользу банальной прагматичности — работает и хрен с ним.
PI>с тех пор дебаггер у меня в голове... но не пользоваться IDE, когда она есть... гм, это изврат все-таки...
Процитируй часть сообщения, где тебе это предлагали.
По секрету: я пишу в Visual Studio 2005.
now playing: Eraldo Bernocchi & Harold Budd — Fragment Six