Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

IEIEIEIO

Автор arseniiv, октября 30, 2010, 18:47

0 Пользователи и 1 гость просматривают эту тему.

Python

Цитата: Drundia от ноября  7, 2010, 08:01
Цитата: Python от октября 31, 2010, 23:54Если сайтоверстатель создает сайт, соответствующий современным стандартам, но неработоспособный на браузере, совместимом лишь на уровне html2, то как это называется?
А мой 5,25-дюймовый флоппик отказывается блю-рей-диски читать! Как это называется?
По крайней мере, производитель не будет утверждать, что блю-рей — новая разновидность пятидюймовых дискет. В случае HTML, частичная совместимость форматов все же остается, старый сайт откроется и в новом браузере, и в старом, а при попытке прочитать плохо спроектированный новый сайт старым браузером мы, скорее всего, увидим частично нефункциональный уродливый сайт.

Главная особенность html состоит в том, что мы не знаем, каким браузером сайт будет открыт.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Python

Цитата: Drundia от ноября  7, 2010, 09:25
PS: Подозреваю, что в бейсике без лишнего цикла тоже так можно.
Цитата: myst от ноября  7, 2010, 07:40
Почему в первом примере один цикл, а во втором цикл в цикле?
Задача состояла в том, чтобы продемонстрировать возможность вермишелизации средствами структурного программирования. Что, впрочем, очевидно — написать плохой код можно всегда, было бы желание и кривые руки :)
Цитата: Drundia от ноября  7, 2010, 09:51
Lua имеет такую крутую штуку, как tailcall.
По существу, тот же переход, замаскированный под рекурсию. В языках, где такая возможность отсутствует, tailcall превращается в обычную рекурсию со свойственным ей пожиранием стека.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Python

Цитата: Drundia от ноября  7, 2010, 08:37
Нас учили, что goto — плохая манера. Из вложенных циклов выходить дополнительными переменными, что, впрочем, показывает убогость языка, поэтому в PHP имеем просто аргумент к брейку.
Выход дополнительными переменными — такое же средство вермишелизации, как и goto, если не хуже. Переход на метку из глубокого вложения отлаживать легче, чем дополнительное петляние с проверкой дополнительных переменных.
Цитата: Drundia от ноября  7, 2010, 09:08
Написать по-нормальному религия не позволяет?
В паскале нет break с меткой :(
Средствами джавы алгоритм имел бы примерно такую структуру:

search: do {
    for (i=0 ; i< encodings.length; i++)
if (encodings[i].title==charset) break search;
    //добавление новой кодировки:
    ...
}while(false);
  //добавление символа в найденную/созданную кодировку:
  ...
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

myst

А превратить быдлокод в нормальный? Низя, нет?

Python

Цитата: myst от ноября  7, 2010, 16:00
А превратить быдлокод в нормальный? Низя, нет?
Чем плох этот код?
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Drundia

Цитата: Python от ноября  7, 2010, 15:34Задача состояла в том, чтобы продемонстрировать возможность вермишелизации средствами структурного программирования. Что, впрочем, очевидно — написать плохой код можно всегда, было бы желание и кривые руки :)
Ну так гоутами можно ещё завермишелизировать сильнее.

Цитата: Python от ноября  7, 2010, 15:52Выход дополнительными переменными — такое же средство вермишелизации, как и goto, если не хуже. Переход на метку из глубокого вложения отлаживать легче, чем дополнительное петляние с проверкой дополнительных переменных.
Это характеризует убогость языка, а не структурного подхода. Проблема меток в том, что они глобальны. На 500 циклах вы запутаетесь как метки называть.

Python

Цитата: Drundia от ноября  7, 2010, 16:11
Это характеризует убогость языка, а не структурного подхода. Проблема меток в том, что они глобальны. На 500 циклах вы запутаетесь как метки называть.
Смотря в каком языке. В паскале они локальны на уровне процедуры. В джаве, где метка вообще не используется для goto, она видна лишь внутри цикла, перед которым стоит — в одной функции может быть два цикла с одинаковой меткой.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Drundia

Цитата: Python от ноября  7, 2010, 15:34По существу, тот же переход, замаскированный под рекурсию. В языках, где такая возможность отсутствует, tailcall превращается в обычную рекурсию со свойственным ей пожиранием стека.
Я так понимаю, что тейлколл можно реализовать на ассемблере.

Bhudh

[ontop]
Цитата: Pythonпри попытке прочитать плохо спроектированный новый сайт старым браузером мы, скорее всего, увидим частично нефункциональный уродливый сайт
В Опере 9.6x Гугльтранслятор уже не пашет, Гугльтранслятор — уродливый сайт, yep!
[/ontop]
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Цитата: Drundia от ноября  7, 2010, 16:18
Я так понимаю, что тейлколл можно реализовать на ассемблере.
Можно. Но в случае функции без параметров и локальных переменных, tailcall — не более чем переход к другой функции. Что же касается джавы, не уверен, допускается ли на уровне байткода прямой переход из одного метода в другой.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

myst


Python

Цитата: Bhudh от ноября  7, 2010, 16:22
В Опере 9.6x Гугльтранслятор уже не пашет, Гугльтранслятор — уродливый сайт, yep!
У меня опера 9.27. Гуглопереводчик все еще пашет (не считая некоторых функций), но выглядит действительно уродски.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

myst


Bhudh

Открыл специально 9.26.
Кнопки смены языков и прослушивания не пашут, но, как ни странно, переводит.
А в девятке чо-й-то там тормозит :what:.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Цитата: myst от ноября  7, 2010, 07:30
Подпрограммы Вам даны, чтобы писать на языке задачи. Вы же пишете на языке реализации. В Вашей подпрограмме смешаны реализации операций над разными объектами — списком кодировок и кодировкой. Это очень плохой стиль, и goto намекает на это. Читать такое неприятно. Это как пассажир такси, тараторящий: «Приотпусти педаль газа, выжми сцепление перейди на первую, сдай вправо, прижмись к обочине, нажми педаль тормоза,...», вместо «Остановите здесь, пожалуйста».
Пожалуй, правильная мысль, спасибо за совет.

С другой стороны, продолжая аналогию с водителем, иногда лучше самому быть за рулем, чтобы сделать все правильно, чем пытаться объяснить водителю, где именно нужно остановиться, а в результате пол-квартала брести пешком. Если функция вызывается в разных местах программы, нет гарантии, что она делает именно то, что нам нужно, если же она вызывается единственный раз, то у нее есть тот же недостаток, что и у меток — глобальность. К тому же, вызов процедуры — это дополнительные расходы времени и памяти, и у нас нет гарантии, что компилятор действительно заменит ее прямой вставкой кода в критичном по времени участке.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Python

Цитата: Bhudh от ноября  7, 2010, 16:34
Кнопки смены языков и прослушивания не пашут, но, как ни странно, переводит.
Прослушивание не пашет. Кнопки смены языков почему-то убегают от курсора. Кнопка перевода работает через раз. Если отключить джаваскрипт и перезагрузить гуглопереводчик, страница становится более функциональной.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

myst

Цитата: Python от ноября  7, 2010, 16:59
С другой стороны, продолжая аналогию с водителем, иногда лучше самому быть за рулем, чтобы сделать все правильно, чем пытаться объяснить водителю, где именно нужно остановиться, а в результате пол-квартала брести пешком.
Вас опять куда-то не туда понесло. Я Вам про стиль толкую, про то, как писать ясно и понятно. Программы пишут, чтобы их читать.

Цитата: Python от ноября  7, 2010, 16:59
Если функция вызывается в разных местах программы, нет гарантии, что она делает именно то, что нам нужно,
Чиво-чиво?! :o

Цитата: Python от ноября  7, 2010, 16:59
если же она вызывается единственный раз, то у нее есть тот же недостаток, что и у меток — глобальность.
У Вас же объектный язык. Этим операциям просто самой природой вещей  суждено быть методами. О какой глобальности Вы говорите? И что такое глобальные метки?

Цитата: Python от ноября  7, 2010, 16:59
К тому же, вызов процедуры — это дополнительные расходы времени и памяти, и у нас нет гарантии, что компилятор действительно заменит ее прямой вставкой кода в критичном по времени участке.
:wall: Я Вам уже говорил о смертном грехе преждевременной пессимизации. Вы опять за своё?
Возьмите хорошую книгу (Саттера с Александреску, например) по стилистике программирования, там всё разложено по полкам.

Bhudh

Отключил жабу по имени Скрипт. Кнопка «Прослушать» вообще пропала. Пересменка так и не заработала :( :'(.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Python

Цитата: Bhudh от ноября  7, 2010, 17:20
Пересменка так и не заработала
Имеется в виду обмен языков? Тогда, наверно, лучше с жабоскриптом.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Drundia

Цитата: Python от ноября  7, 2010, 16:59у нас нет гарантии, что компилятор действительно заменит ее прямой вставкой кода в критичном по времени участке.
Гарантия есть, этой гарантией управляет ключевое слово inline.

Python

Цитата: myst от ноября  7, 2010, 17:15
У Вас же объектный язык. Этим операциям просто самой природой вещей  суждено быть методами.
Там один огромный класс с кучей методов, который я вообще планирую убрать и переделать полностью, по возможности разделив все на несколько модулей — пока что «метод» и «глобальная процедура» в контексте этой программы воспринимаются почти как синонимы )

В принципе, там можно использовать даже локальную процедуру, но мне это кажется неоправданным введением дополнительной сущности: если функция содержит мало кода, вызывается один раз в программе и не вызывает сама себя, в ней нет необходимости.
Цитировать
О какой глобальности Вы говорите? И что такое глобальные метки?
Имелись в виду метки, о которых упоминал Drundia (правда, непонятно, какой именно язык имелся в виду — возможно, BASIC?).
Цитата: myst от ноября  7, 2010, 17:15
Чиво-чиво?!
Предположим, на более позднем этапе работы программы при поиске используется алгоритм, требующий дополнительной оптимизации данных, которая на этапе создания таблиц кодировок еще не произведена.
Цитата: myst от ноября  7, 2010, 17:15
Я Вам уже говорил о смертном грехе преждевременной пессимизации.
Я пессимист) Кроме того, процедуризация тоже может быть избыточной.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

myst

Цитата: Python от ноября  7, 2010, 18:12
Предположим, на более позднем этапе работы программы при поиске используется алгоритм, требующий дополнительной оптимизации данных, которая на этапе создания таблиц кодировок еще не произведена.
Ничо не понял. Вы в том сообщении такую страшную вещь сказали, что у меня на голове стало на два седых волоса больше.

Цитата: Python от ноября  7, 2010, 18:12
Кроме того, процедуризация тоже может быть избыточной.
Ваша риторика типа «Кроме того, у женщин тоже могут расти усы» мне уже в глазах навязла. :(

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр