вторник, 13 января 2015 г.

из одного списка вычесть другой список

# -*- coding:utf-8 -*-
'''
Задача: из одного списка вычесть другой список
1
Цикл for для списка l11 от 0 до len(l11)
Если нулевой элемент удовлетворяет условию,
то он удаляется и все элементы сдвигаются влево.
Цикл продолжается с позиции 1 и тот элемент,
который сдвинулся не попадает в проверку условия.
2
Решение проблемы
Цикл делаем по срезу на списке L[:]
В этом случае создается копия (клон) списка,
сам список не изменяется
'''
# 1
def sublist(l11, l22):
    for i in l11:
        if i in l22:
            l11.remove(i)
# 2         
def sublistT(l11, l22):
    for i in l11[:]:
        if i in l22:
            l11.remove(i)
             
l1 = [1,2,3,4]
l2 = [1,2,5,6]

sublist(l1, l2)

print(l1)

l21 = [1,2,3,4]
l22 = [1,2,5,6]

sublistT(l21, l22)

print(l21)

вторник, 6 января 2015 г.

The truth about C & Unix history

Оригинал  http://www.rutschle.net/tech/c_unix.shtml
Эта ссылка не работает. Прошло время и эта шутливая статья исчезла с моего горизонта.
 
This article has been translated to Serbo-Croatian by WHGeeks, and to Polish by Valeria Aleksandrova.
Я впервые прочитал это во французском журнале программирования, посвященном Паскалю. Журнал процитировал статью как "из американской BBS". Мне было трудно найти ее копию в сегодняшнем Интернете, поэтому я решил оставить ее на своем сайте, чтобы будущие поколения знали Истину.

Правда о истории C & Unix

В заявлении, ошеломившем компьютерную индустрию, Кен Томпсон, Деннис Ричи и Брайан Керниган признали, что созданная ими операционная система Unix и язык программирования C - это тщательно продуманная шутка, которая существует уже более 20 лет. Выступая на недавнем форуме разработчиков программного обеспечения UnixWorld, Томпсон сообщил следующее:

«В 1969 году AT&T только что завершила свою работу над проектом GE / Honeywell / AT&T Multics. Брайан и я начали работу с раннего выпуска Pascal из лабораторий ETH профессора Никлауса Вирта в Швейцарии, и мы были впечатлены его элегантной простотой и мощностью. . Деннис только что закончил читать "Bored of the Rings", национальную пародию на пасквиль на трилогию Толкина "Властелин колец". В качестве шутки мы решили сделать пародии на среду Multics и Паскаль. Деннис и я были ответственны за операционное окружение. Мы уже изучили Multics и разработали новую ОС, чтобы она была настолько сложной и загадочной, насколько это возможно, чтобы довести до максимума уровень разочарования случайных пользователей, назвав ее Unix пародией на Multics, а также другими более рискованными намеками. командный язык для новичков, говоря им, что он избавил их от набора текста.

Затем Деннис и Брайан работали над искаженной версией Паскаля, названной «А». «А» было очень похоже на Паскаль, но в нем понятие прямого адреса памяти (которое Вирт изгнал) было поднято до центральной концепции языка. Это был вклад Денниса, и он фактически ввел термин «указатель» как безобидно звучащее название для действительно злонамеренной конструкции.

Следует отдать должное Брайану за идею о том, что у него нет абсолютно никакой стандартной спецификации ввода-вывода: это гарантировало, что по крайней мере 50% типичной коммерческой программы пришлось бы перекодировать при смене аппаратных платформ. Брайан также был ответственен за то, что этот недостаток ввода-вывода был обозначен как особенность: это позволило нам охарактеризовать язык как «действительно переносимый». Когда мы обнаружили, что другие на самом деле создают настоящие программы с A, мы удалили обязательную проверку типов для аргументов функций. Позже мы добавили понятие, которое мы назвали «приведением»: это позволяло программисту обрабатывать целое число, как если бы это была определяемая пользователем структура размером 50 Кбайт. Когда мы обнаружили, что некоторые программисты просто не используют указатели, мы исключили возможность передавать структуры функциям, заставив их использовать указатели даже в простейших приложениях. Мы представили эту и многие другие функции как повышение эффективности языка. Таким образом, наша шутка превратилась в B, BCPL и, наконец, в C. Мы остановились, когда получили чистую компиляцию со следующим синтаксисом:
for (;P("\n"),R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("|"+(*u/4)%2);
Одно время мы шутили о продаже всего этого Советам, что бы отбросить их компьютерную науку на 20 или более лет назад. К сожалению, AT&T и другие корпорации США фактически начали использовать Unix и C. Мы решили, что лучше помалкивать, предполагая, что это всего лишь переходный этап. Фактически, американским компаниям потребовалось более 20 лет, чтобы накопить достаточно опыта для создания полезных приложений с использованием этой технологической пародии 1960-х годов. Мы впечатлены упорством обычного программиста Unix и C. Фактически, Брайан, Деннис и я никогда сами не пытались написать коммерческое приложение в этой среде.
 
Мы чувствуем себя действительно виноватыми за хаос, неразбериху и поистине потрясающие программные проекты, которые возникли в результате нашей глупой шутки так давно ».

Деннис Ричи сказал: «Что действительно разорвало это (как раз когда AIDA стала популярной), так это то, что Бьярн Страуструп уловил нашу шутку. Он расширил ее до еще одной пародии, Smalltalk. Как и мы, он был застигнут врасплох, когда никто не засмеялся. Так что он добавил множественное наследование, виртуальные базовые классы и более поздние ... шаблоны. Все безрезультатно. Итак, теперь у нас есть компиляторы, которые могут компилировать 100 000 строк в секунду, но должны обрабатывать файлы заголовков в течение 25 минут, прежде чем они дойдут до сути " Привет, мир".

Основные поставщики и клиенты Unix и C, включая AT&T, Microsoft, Hewlett-Packard, GTE, NCR и DEC, в настоящее время отказались от комментариев. Borland International, ведущий поставщик объектно-ориентированных инструментов, включая популярные Turbo Pascal и Borland C ++, заявил, что они подозревали это в течение нескольких лет. Фактически, печально известная поздняя версия Quattro Pro для Windows изначально была написана на C ++. Филипп Кан сказал: «После двух с половиной лет программирования и массового выгорания программистов мы перекодировали все это на Turbo Pascal за три месяца. Я думаю, будет справедливо сказать, что Turbo Pascal спас наш бекон». Другой представитель Borland сказал, что они продолжат улучшать свои продукты Pascal и прекратят дальнейшие усилия по разработке C / C ++.

Профессор Вирт из института ETH и отец структурированных языков Паскаль, Модула 2 и Оберон загадочно сказал: «П.Т. Барнум был прав». Дальнейших комментариев у него не было.

The truth about C++

The previous article talks about C++ being a furtherance of the C joke. There is an interview of Stroustrup about C++.

X-Plane 11, 12 - любитель, Фото любитель со стажем

Постоянные читатели

Архив блога