Как стать автором
Обновить
77
0

Пользователь

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

Rust: for и итераторы

Время на прочтение6 мин
Количество просмотров15K
(предыдущая статья)

В данной статье мы обсудим for циклы, а так же родственные понятия итераторов и «итерируемых объектов».

В зависимости от вашего предыдущего опыта с другими языками программирования данные концепции могут показаться очень знакомыми в плане синтаксиса и семантики, или же совершенно новыми и непонятными. Наиболее близкие их аналоги можно найти в Питоне, но, думаю, программисты на Java, C# или же (современном) C++ так же увидят много пересечений с тем что есть в их языках.
Подробности
Всего голосов 45: ↑43 и ↓2+41
Комментарии8

Rust: & и ref в паттернах

Время на прочтение5 мин
Количество просмотров10K
(продолжение)

Как вам, думаю, известно, Раст входит в число языков реализующих сопоставление с образцом (pattern matching). В случае если вам незнаком данный термин, вы можете думать о нём как об обобщёном switch выражении в котором мы сравниваем объекты не только по значению, но и по структуре:

match hashmap.get(&key) {
    Some(value) => do_something_with(value),
    None => { panic!("Oh noes!"); },
}

Разумеется сравнением дело не ограничивается. Как вы можете видеть в примере выше, объекты так же могут быть деструктурированы во время сопоставления (Some(value)) и их части присвоены другим переменным (value), которые могут быть далее использованы в соответствующей ветви match выражения.

Изящно, не правда ли? В Расте сопоставление с образцом это хлеб и масло не только для match, но и для for, (if) let и даже для обыкновенных аргументов функции.

Однако, долгое время я достаточно смутно представлял себе что происходит в случае когда мы добавляем к сопоставлению ссылки и заимствования. & и ref являются двумя «операторами» часто используемых при этом. Разнице между ними и будет посвящена данная статья.
Читать дальше →
Всего голосов 48: ↑47 и ↓1+46
Комментарии2

Пусковая петля или не стоит верить всему написанному в интернете

Время на прочтение2 мин
Количество просмотров119K
Данная статья, возможно не тянет на полноценную статью, но тем не менее по ряду причин хотелось бы её опубликовать именно в таком виде, а не в виде комментария.

Итак, не разводя воды сразу к сути:

Прочитав статью "пусковая петля: запуск полезного груза на орбиту за 3$/кг" я обрадовался поднятой теме, но ссылка на статью на трендлабе насторожила (дальше будет понятно почему), ладно бы ссылка в P.S., автор благоразумно даёт только ссылку и не вытаскивает «факты» оттуда, в основном беря данные с сайта launchloop.com, но тем не менее частота упоминания в комментариях тренлабовской статьи и частота принятия её за авторитетный источник удручает. Причина в этом проста: я являюсь автором той статьи. Будь моя воля, то я бы написал об этом в комментариях к оригинальной статье, но статья по причине поездки была прочитана только вчера. Будучи автором статьи я могу утверждать одно: та статья никоим образом не является серьёзным техническим расчётом, многие цифры взяты с потолка, проведена лишь базовое согласование данных и расчётов; моей компетенции однозначно не хватает для корректного расчёта и конструирования подобных конструкций. Таким образом я хотел бы призвать аудиторию Хабра относиться к проверке фактов более внимательно и не принимать на веру всё что здесь пишут или на что ссылаются.
Немного подробностей
Всего голосов 153: ↑147 и ↓6+141
Комментарии40

Объектно-дезориентированный язык

Время на прочтение4 мин
Количество просмотров44K

Каждый раз когда речь заходит о Go приходится слышать один и тот же вопрос:
Является ли Go объектно-ориентированным языком?

Честно говоря, меня это окончательно достало. Моя задача — расписать сию тему в данной статье, напечатать ссылку на визитках и раздавать их каждый раз когда фанаты ООП будут спрашивать у меня этот вопрос.
Читать дальше →
Всего голосов 79: ↑57 и ↓22+35
Комментарии43

Манифест свободного информационного пространства

Время на прочтение5 мин
Количество просмотров19K

Данный текст ставит свой целью изложить позицию в вопросе копирайта и обмена информацией. Имеется надежда, что её возьмут на вооружение люди, которым она окажется близка, таким образом увеличив вероятность воплощения в жизнь описанных идеалов.

Манифест


Человек имеет право на:
  • обмен любой информацией
  • хранение и распространение любой информации
  • защиту каналов передачи информации

Ограничения данных прав возможны лишь в двух случаях:
  • добровольное взятие обязательств
  • по решению суда в качестве меры пресечения

Развёрнутое описания и пояснения
Всего голосов 49: ↑28 и ↓21+7
Комментарии36

Введение в теорию взаимодействующих последовательных процессов (CSP), часть 2

Время на прочтение5 мин
Количество просмотров4.7K
Продолжаем цикл статей посвящённый алгебре исчисления процессов. Данный текст является переводом и сокращённым пересказом начальных глав книги Чарльза Э. Хоара. Теория применяется для формального описания работы параллельных систем. Примерам её практических применений являются такие языки программирования как Erlang, Go и Limbo.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии6

Введение в теорию взаимодействующих последовательных процессов (Communicating Sequential Processes — CSP)

Время на прочтение6 мин
Количество просмотров16K

Предисловие


Данный текст является переводом и сокращённым пересказом начальных глав книги Чарльза Э. Хоара. Целью является ознакомление русскоязычной аудитории с данной алгеброй исчисления процессов, коя нашла достаточно широкое применение в современной вычислительной науке в связи с большим распространением параллельных систем. Наиболее близкими и понятными практическими применениями CSP, думаю, будут являться следующие языки программирования:

CSP является формальным математическим языком, позволяющим описывать взаимодействие параллельных систем, основным его применением является формальная спецификация параллельной работы систем, например таких как Транспьютер, кроме того он применяется при разработке высоконадёжных площадок электронной торговли.
В данной статье будут рассказаны основы данной алгебры, без которой невозможно её дальнейшее изучение, в основном это базовое описание процесса, что покрывает первую половину первой главы книги.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии9

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность