Как стать автором
Обновить
43
0.1

астрофизик

Отправить сообщение

Контакты приварятся к разъему (или, скорее, сам разъем сплавит всё в единое целое) и Тесла не сможет уехать с зарядки!

Варочная панель просто не включится. Наверное. Проверять это я, конечно, не буду)

"Сербы не знали, что он невидимый" (tm) :)

А если серьезно, то ЭПР голубя, это, конечно, хорошо, но эффект Доплера никто не отменял же? Радар может не только координаты определять, но и скорость. Голубь со скоростью самолета должен вызывать некоторые подозрения, не?

Это зависит от реализации компилятора, не все они поддерживают вывод типов на этапе компиляции. Кроме того, для лиспа нормальной практикой является самомодифицирующийся во время исполнения код (сейчас, в несколько урезанном виде, это известно как JIT), так что новые методы вполне легально могут появляться уже во время исполнения программы. Впрочем, стандарт языка позволяет влиять на процесс компиляции средствами самого же языка, так что существует, например, библиотека, которая делает как раз искомое. Подключаете ее и у вас методы компилируются статически, если удается определить тип параметра на этапе компиляции.

Идея, это одна из причин, по которым всё провалилось. То есть, ее, как таковой, не было. Были какие-то сумбурные мысли, которые выразились в бродилке, вид сверху, по карте довольно большого размера -- мне удалось придумать очень компактный способ хранения карты, что было важно при ~42 килобайтах доступной памяти, в которые еще должен был помещаться ZEUS) Каждый раз, когда концепция корректировалась, приходилось сильно править код на ассемблере, что и явилось причиной нервного перенапряжения)

Ах, эта детская мечта о написании своей игры!

Примерно на 15 лет раньше я сам, будучи школьником, писал игру. Вместо компьютера у меня был ZX Spectrum, который грузился с магнитофона, а вместо дельфей хардкорный ассемблер ZEUS. Выглядело это так: сначала с кассеты грузится ZEUS, это примерно минуты три, потом с другой кассеты грузится код игры, это еще минуты две. Несколько исправлений в коде, запуск, зависание, ресет, потом снова грузим ZEUS и так много, много раз подряд. Принтера не было, вся моя комната была завалена листками бумаги с записанными на них от руки кусками кода. Адреса, по которым хранились данные, спрайты и пр. я просто держал в памяти. Ох, мне бы сейчас хоть 10% от той памяти школьника! В итоге нервное перенапряжение, я начал отлаживать программу во сне, пугая родителей словами типа "ячейка", "регистры" и "стек", произносимыми глубокой ночью, так что разработку пришлось прекратить :)

В Lisp объектная модель пошла по другой "ветке развития", там у классов нет методов в понимании C++ или Java, а просто определяются функции с явным указанием типов параметров:

(defmethod render ((w widget))
  (error "Don't know, how to render a widget, please define a render for your subclass!"))

(defmethod render ((b button))
  (render a button))

(defmethod render ((c checkbox))
  (render a checkbox))

(defmethod dump ((w widget) stream)
  (format stream "Dump of ~A widget" (class-name (class-of w))))

(defmethod dump ((c checkbox) stream)
  (format stream "Dump of checkbox ~A" (name c))
  (call-next-method)) ;; Тут будет вызван метод для widget с теми же параметрами

То есть мы просто объявляем новые функции через defmethod , а компилятор уже сам будет решать, какую из них вызывать, в зависимости от типа параметров. Да, можно указать несколько параметров с разными типами.

Изначально такая схема была в госконторах, потому что оклад нельзя было установить произвольно, а, кроме того, обычно имеются бюджетные деньги (которые есть всегда) и внебюджетные, которые обычно есть, но иногда их нет. Оклад платится из бюджета, а внебюджет делится между закупками, всякими неотложными нуждами, типа ремонта, а что останется идет в виде надбавок к зарплате. Возможно, руководство коммерческих предприятий принесло эту схему "не разбираясь" из бюджетной сферы, где оно (руководство) изначально воспитывалось. Причем в бюджетных конторах как раз типичное распределение ближе к 10+90, чем к 50+50. 50+50, скорее всего, заслуга налоговой как раз.

В кожухе выглядит как:

:)

Спасибо!

А что касается MITM, то после случившегося я бы и докерхабу уже не доверял. Мало ли что они будут отдавать в нашу сторону. Если начинаешь бороться за демократию, то трудно бывает остановиться)

У меня в одном месте синхронно упали все запущенные контейнеры, четыре дня назад. У кого-нибудь еще такое случалось? Если это связано с баном докерхаба, то каким образом?!

Если нужны векторные операции, то нужно использовать массивы, а не списки, массивы в Лиспе тоже есть. Я не призываю заменить Фортнан на Лисп (хотя было бы смешно), оба языка имеют свою область применения. Я просто хочу сказать, что, в принципе, Лисп, который умеет в самомодифицирующийся код и строгую типизацию, может быть не менее эффективен даже в фортрановской нише.

Вообще, это две совершенно разные ветви развития, Фортнан шел по пути совершенствования компиляторов, оставляя архаичные формы в языке, за которые его так не любят. Зато по уровню оптимизации фортрановские компиляторы рвут всех и всё. Лисп же шел по пути совершенствования именно языка и шел этим путем 60+ лет. Его ниша -- сложные алгоритмы, то есть действительно сложные, которые не помещаются в голове программиста целиком. Все модные в разное время концепции программирования или появились сразу в Лиспе или были им приняты в первых рядах. Впрочем, это иногда выливается в вещи типа CLOS, который не очень похож на объектно-ориентированное программирование в других языках, зато более логичен и гибок. Забавно, что два самых старых языка до сих пор остаются лучшими в своих нишах.

А (declare (optimize speed)) пробовали добавить? Типы явно прописать? Лисп очень хорошо умеет в оптимизацию, но он слишком "внимателен" и не включает ее там, где она может сломать универсальность. В том же случае с sqrt, если явно ему не указать, что тип аргумента не отрицателен, то Лисп добавит проверку на отрицательный аргумент и будет учитывать, что возвращаемое значение может быть комплексным числом, а это, в свою очередь, заставит его все места, где оно используется, тоже снабдить проверками. Ну и на счет массивов -- можно сделать их объектами, генерировать и хранить с каждым массивом функцию для доступа к его элементу, которую компилировать "на ходу" в момент создания массива. Тогда ей не придется вытаскивать из памяти размеры массива, например, что сделает доступ примерно таким же быстрым, как в фортране, когда размер массива задан при компиляции, только тут размеры могут быть динамическими. Наконец, есть такая штука, как маросы компилятора в Лисп. Благодаря им, например, может существовать библиотека (!) добавляющая поддержку SIMD-инструкицй процессора в компилятор, который их не поддерживает.

Реализация в языке, это еще и реализация в стандартной библиотеке и поддержка оптимизаций компилятором. Например, какое значение выдаст sqrt(x), если x -- типа real? В каком-нибудь C это будет real, а в нормальном языке это зависит от знака x :)

Сами ядра вряд ли когда-нибудь будут на питоне. Скорее всего пишут обертки на питоне для модулей, написанных на фортране.

До Lisp надо дорасти) Вообще, это самый, наверное, развитый из всех современных языков, все эти 60 лет он непрерывно совершенствовался.

Форт до сих пор во всяких модных заменах BIOS используется, из массового современного, ЕМНИП, загрузчик Apple, например.

Мне не очень понятно, что именно сейчас зарубежные правообладатели могут предъявить нашим пиратам? Упущенную прибыль? Но они сами отказались от нее, "уйдя из России", их упущенная прибыль равна нулю. Моральный ущерб? У юрлиц нет "морали". Если же они "ушли" не по своей воле, а испугавшись санкций, то им стоит предъявлять претензии к своим правительствам, которые эти санкции ввели. Будет справедливо, если они компенсируют "ушедшим" потери. В любом случае, какие могут быть у них сейчас претензии к россиянам? Роскомнадзор, впрочем, делает хорошее дело, определяя уровень пиратства, это поможет "ушедшим" компаниям более обоснованно требовать у своих правительств компенсации.

1
23 ...

Информация

В рейтинге
2 666-й
Откуда
Москва и Московская обл., Россия
Зарегистрирован
Активность