- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
function* map<T, R>(a: T[], f:(i: T) => R)
{
for (const v of a) yield f(v);
}
function main()
{
let count = 0;
for (const v of map([1, 2, 3], (i) => { count++; return i + 1; }))
{
print(v);
}
assert(count == 3);
}
Это кажись C++20.
Я не фанат крестухи и значков, но по-моему няшно.
Наконец-то украли что-то хорошее.
В идеале конечно лолжно быть конь-сиськентнее
А по-моему херня
Постфикс!
https://godbolt.org/z/c6erz864r
То ли дело "Си":
i++ нипирфомансно и так пишут только анскильные лалки.
> что будет если я напишу "%h\n\r". и кто меня остановит?
Никто. Одной и основных парадигм С является «не мешай стрелять себе в ноги». Малоизвестный факт, что программисты на С являются pro-choice и поддерживают легализацию эфтаназии.
На самом деле они мешают ходить на улицу без шапки (потому что программисты на других языках недостаточно умны чтобы принимать такие решения) а отстрелить себе ногу можно и в bash
Поэтому сишники презирают C++? Надо было называть ++С?
Я это прочитал в статье про разработку под какую-то древнюю платформу, там не рекомендовалось использовать постинкремент.
Какая оптимизация )))
И это говорит программист на С++.
Hint: перегрузка операторов.
Хм...
Да, одно и то же. Никаких проблем.
чувак, как ты умудрился дожить до седых мудей, и ниразу в жизни не столкнуться с printf?
У тебя в школе или инстике сишки не было?
А это всего лишь запятая:) Знаешь, в каком языке?
в перле это fat comma, в руби hash rocket. Но в перле она действительно синоним запятой
В «Перле» там тупо нечётные элементы используются как ключи, чётные — как значения, поэтому запятая и => равнозначны.
А вот в «PHP» разница есть, потому что может использоваться числовой ключ по умолчанию (как в массивах).
Какой пиздец. Хорошо, что у нас в перле массивы и хеши четко отделены
Вот например веб фреймворк "Dancer2".
x <- 5
x <-- y
x --> 0
x -=- 2
x --==-- y
x <<= 1
x -->> 1
https://govnokod.ru/26911
Я просто оставлю это здесь.
x +-0-+ y
x ==0== y
x ==(_|_)== y
Когда ты не умеешь читать, тоже нихуя непонятно. Именно поэтому я за иероглифы.
Взять, к примеру, воть такой код:
Почему php слева есть, а справа нет?
Зачем они нужны если уже есть точка с запятой?
Что значит "эхо"? Эхо обычно отражает что-то (дальнее эхо, ближнее эхо), а тут какое?
Пиздец заебный язык, вообще не верю, что кто-то может его реально выучить
Что за странная конструкция "main" с фигурными скобками? Почему нельзя просто написать "коут ёлочка привет мир"?
Что, собственно, значит "коут"? В англо-русском словаре такое слово отсутствует.
Зачем нужны два знака "меньше"? Почему не написать "привет мир" сразу после "коута"?
Какую смысловую нагрузку несут в себе первые две строки этого кода? Зачем мне инклюдить какой-то "иострим" и обозначать юзинг какого-то "намеспаца"? Почему я не могу просто написать "коут привет мир"?
Зачем ретурнить какой-то ноль?
Пиздец заёбный язык, вообще не верю, что кто-то может его реально выучить. Поэтому я за PHP.
Вот:
https://ideone.com/DjArdD
Написать короче пока не получается.
main — это точка входа в программу на Си, но точка входа находится в __libc_start_main.
Подумайте об этом, в этом нет смысла! С чего бы программе печатающей "Привет" начинаться с __libc_start_main?
В этом нет смысла!
Но что ещё более важно, вы должны спросить себя, а при чём тут данное дело? Да ни при чём, леди и джентльмены, это не имеет никакого отношения к данному делу. В этом нет никакого смысла!
Взгляните на меня, я адвокат, защищающий «PHP», и я веду речь о точке входа в программу на Си. Какой в этом смысл? Леди и джентльмены, я несу бессмыслицу, во всём этом вообще нет смысла!
Итак, запомните, когда вы, сидя в этой комнате, взвешиваете и сопрягаете «main» с фигурными скобками, есть ли в этом смысл? Нет, в этом нет смысла!
Итак, леди и джентльмены, если точка входа начинается в __libc_start_main, вы обязаны использовать «PHP».
Спасибо, ваша честь, я закончил.
Например, рантайм для подсистемы GUI Винды может требовать наличия WinMain в твоей программе, а main он будет игнорировать.
Но под гуй новичку вообще тяжело писать: какие-то коллбеки, какая-то обработка сообщений...
Хотя... тут даже совпадение не нужно. Вызов пихает указатель и puts ожидает указатель.
Потому я стараюсь в коде не использовать никакие типы данных, кроме int.
Это позволяет мне обходиться без .h файлов, то есть без дублирования кода.
Думаю, запретить все другие типы на уровне кодстайла в компании.
Какой Б )))
а потом пишу и он понимает что надо мувать dword это разве не означает, что x имеет тип dword?
А если
mov eax, x
mov [eax], 42
То он как-нибудь запомнит, что в eax вносился адрес на дворд, и поэтому 42 надо туда писать как дворд?
Это какая-то препроцессорная хуйня, а не "тип".
Да и вообще, что такое типы в языках программирования?
Так это и есть тип. Что тебя смущает?
Ну например как мне такой "тип" выделить на стеке? Это не "тип", это какой-то узкозаточенный костыль для того, чтоб не прописывать явно количество байт в мнемониках при записи в/из памяти
Чем не стек?
А теперь перепиши на AVR
Можно еще массив так выделить.
Где в ассемблере "типы" для хуйни, которая существует в стекфрейме "функций"?
Нет, ты объявил локальную переменную, она может быть и в регистре.
В ассемблере нету функций в таком понимании как в Си, со своим скоупом. Там ручками на стеке всё выделяется.
Но зато в фасме есть локальные метки и переменные, объявляются через local, область видимости — тело макроса.
А если массив из int размером в 300 элементов?
То есть в Сишке таки есть примитивный stack-based hardware-accelerated сборщик мусора.
В принципе если писать код без маллоков, или в начале аллоцировать сколько нужно, то память течь не будет.
Хотя в systemd вовсю юзают атрибут ((cleanup(...))).
Тут необязательно даже вводить "функции" вполне можно было б прикостылить такую хуйню, типа "в этом куске, ограниченной такими-то директивами доступ к адресам по смещению относительно ESP в таком-то диапазоне надо рассматривать как 16-битные переменные"
Но это всё говно убогое в любом случае. https://github.com/project-everest/vale - вот например херня для верификации ассемблера
The current implementation of Typed Assembly Language, TALx86, is based on Intel's IA32 architecture. This implementation extends the theoretical calculi described in our papers and provides support for sums, arrays, references, recursive types, subtyping, type tagging, and modules, among other features. Our distributions contain our Objective Caml source code and executables for the following:
* TAL tools including a type-checker for the assembly language.
* Popcorn: A prototype compiler for a safe C-like language.
* SCHEME--: A prototype compiler for a subset of the scheme language (written in Popcorn).
Опять это окамлеебство. Почему эти компутер сцаентисты так полюбили семейство ML язычков? Говно же
Coq: The world’s best macro assembler?
ты выделил это в .data :p
И программист должен был их оттуда брать
Это одноглазый смайлик?
Так это же православная СБишка.
Потому и выглядит заебато.
Единственый тип данных в бишке — мышиное слово, которое может интерпретироваться как целый питух, как символ и как указатель (значит, длинные указатели бишка поддержать не сможет). Отсюда и «автовывод» в инт у K&R, и неявные касты типов (целое <-> символ, целое <-> указатель).
А вот BCPL и CPL, считающиеся предшественниками бишки, на неё совсем не похожи. Они даже на Алгол непохожи.
Да.
И этот язык ГОРАЗДО ближе к тому что обсуждается выше:
>> Потому я стараюсь в коде не использовать никакие типы данных, кроме int.
>>У меня в "Assember" нет никаких типов
То есть на самом деле высокоуровневый, портируемый ассемблер это «B».
Есть машинный регистр, и все значения в программе неявно сводятся к нему.
Там всё просто и понятно: нет никаких опциональных int64_t и всякой дрисни вроде int_fast64_t.
И x86 говнища вроде cbw, cwd, cdq; mov dword ptr или fld dword[ref] там тоже нет.
Зато всё всегда выравнено на мышиное слово.
Вот в 1979-м году уже начались заморочки. Важной вехой можно считать высер XT, когда шину данных расширили до двух байт, и читать нечёт стало пинальтнее, чем чёт.
Ява-скипетры же вытаскивают баты & 0xFF, а их сердце даже человеку пересаживают.
Зачем? Зачем?
З.Ы. Вот реально не понимаю, что выигрывает конпелятор, возвращая мусор из main. Это не какой-нибудь горячий цикл ведь.
Потом зачем-то объявили return в main опциональным (нахуя?) Но тот же гцц строго следует стандарту и делает его опциональным только в новых стандартах, а в старых продолжает возвращать мусор.
Т.е. код конпелятора сложнее, чем мог бы быть, если бы он просто всегда считал его опциональным. И кроме как желанием отстрелить ногу программисту это сложно объяснить.
хуже только void main...
public — это чтобы продукт популярным был.
static — это чтобы в компании реорганизаций и сокращений не было.
void — это чтобы проекту постоянно денег давали, как в бездонную дыру.
> Зачем нужны два знака "меньше"? Почему не написать "привет мир" сразу после "коута"?
Вот мнение адекватного, незашоренного плюсами человека.
Зачем нужны два знака «меньше»? Зачем нужны два «двоеточия»? Зачем? Зачем?
>Что за странная конструкция "main" с фигурными скобками?
Кстати «B» был консистентнее. Как мы все знаем операторные скобки { ... } в си-подобных языках опциональны.
В «B» можно было опускать их и для функций если их тело состояло из одного гетигпа Для этого нужно было написать return (...);
Но в Сишке, к сожалению, эту чудесную фичу похерили.
Осталась только малополезная возможность оборачивать возвращаемое значение круглыми скобками.
Короче въебал плюс.
какой анскилл
Ещё более омерзительно писать джва джвоеточия std::cout.
А wcout подсказывает нам где место крестов. У параши.
а неподалеку жил sputbackc
и без рукописного мапа
Что есть функция в Python?
Эта статья предназначена только для тех людей, которым хочется узнать, чем на самом деле является функция в python....НО! Предупреждаю, я не буду лезть в сурсы питона. Эта статья была создана только для обычных вроде меня программистов.
https://habr.com/ru/post/710186/
В асме я могу сделать call в середину «функции». Могу джампнуть из одной «функции» в другую (см. tail call optimization, например). Можно написать такую лапшу, что код не будет разбит на функции.
В классическом Бейсике их тоже не было. GOSUB/RETURN имитировали ассемблер. Это уже потом в Кубейсике позаимствовали функции из Фортрана.
Ещё одно свойство функций — их можно употреблять в выражениях. Например:
А в ассемблере нет никаких «выражений». Именно поэтому я за «ассемблер».
похоже, в си и си плюсплюс тоже нет никаких функций
С другой стороны, в TASM/MASM есть блок proc...endp, но по факту он ничего не делает.
proc/endp это же просто макросня чтобы не писать код вручную
Вообще учитывая сколько всего "хардварного" сделано в проце и не используется (сегменты, гейты для хардварного переключения контекстов и само это переключение и пр) удивительно, что call всё еще используется (а не заменен на джампы с ручными сохранением стека)
Оказалось, что у Dell чтобы снять клаву, нужно разобрать нахуй пол ноута, снять систему охлаждения, поменять термопасту (бо она всё таки одноразовая) и пр.
Когда я стану диктатором вселенной, я издам указ, чтобы у инжинеров компании Dell кухню совместили с туалетом, и вход в нее сделали через ванную. А вход в спальню я сделаю через балкон.
Освещение пусть будет в стене, и закрыто прозрачным кафелем. Перегорела лампа? Ломай стену, хули
придется видимо покупать какую-нить пасту и пирдолица. Либо можно снести его админам, но это неспортивно
Например, такие:
https://www.ozon.ru/product/termoprokladka-0-5mm-smartmaster-pro-18-vt-mk-100x50mm-947186171/
Выглядит как листовой пластилин, принимает любую форму, не вытекает и не высыхает.
Жаль, что в моем детстве не было таких прокладок
Айпады они впринципе не ремонтируют
— Вы только неделю назад покупали такой.
— А хули мне с ним делать, если у него уже пепельница полная?
Короче я за десктопы
там тоже можно что-то перепаять
* у него достаточно простая архитектура
* там нет пхп, JS и пр
* там нет вайтишников, потому что не существует видеокурсов "стань асембдлер программистом под 8080 за 24 часа" от Дениса Попова
* там нет языков с ГЦ
* там прикольная клава на свитчах
Ну вот можно от руки написать коммент, и по бумажной почте послать
И игры были. Правда, джвухмерные, как оняме.
А еще надо оверлеить --- подгружать каждый следующий кадр с дискеты с скоростью 30 fpm
И ещё я видел XT и NEC V20. У последнего на клавиатуре был светодиод «Online». Если он погас, значит, комп в глубокой задумчивости и топтать клаву бессмысленно.
Разница между SX и DS, ЕМПИН, была в размере шины.
Но правда это речь про 386. У четёрки разница могла быть в чем-то другом.
Как я и думал: у 486SX просто отсутствовал FPU для плавающего питуха.
А сейчас с двумя гигами тяжко: заходишь на современный сайт с жопоскриптом, и у тебя всё в своп вываливается и тормозит, а то ещё и ООМ приключится.
Так вот, у этой параши есть REST API.
Я думаю написать команд-лайн утилиту для работы с этим говном на каком-нить Go, потом прикрутить псевдографику, и потечь
Вообще, без пинцета в современных ноутах хуйчо сделаеш
Prerequisites
1. Follow the procedure in Before working inside your computer.
2. Remove the base cover.
3. Remove the battery.
4. Remove the speakers.
5. Remove the memory.
6. Remove the solid state drive1.
7. Remove the solid state drive2.
8. Remove the heat sink.
NOTE: The system board can be removed or installed together with the heat sink attached. This simplifies the
procedure and avoids breaking the thermal bond between the system board and the heat sink.
9. Remove the left fan.
10. Remove the right fan.
11. Remove the I/O board.
12. Remove the display assembly. <------чтобы поменять клавиатуру блядь!!!!!!!!!!!
13. Remove the system board.
10. Remove the right fan.
а кто мне тогда на онлифансах донатить будет
Так бы сразу и сказал, что переселишь их в «лофт» или в «коливинг».
Справедливости ради, я это понимать не обязан (как не обязан крестовик понимать код буста)
> я это понимать не обязан
блядь
ну давайте составим пеиицию инью чтобы поправил
– на change.org или на strikeru.pohui?