Блог*
Ох, постараюсь уложить это в голове. Есть ещё что-то, что нужно знать о замыканиях? Да. Иногда требуется одно и тоже замыкание передать в качестве аргумента в несколько функций. Клонировать в этом случае не получится, потому что замыкание является клонируемым…
Так что же, эти HRTB ограничены одними лишь замыканиями?
Отнюдь. Например, в библиотеке serde есть трейт
Да. Во всяком случае, пока что.
Спасибо, после общения с тобой я чувствую себя... Мудрее.
Что, правда?
Нет, конечно, лол
Ну и зараза
Отнюдь. Например, в библиотеке serde есть трейт
Deserialize<'de>
и DeserializeOwned
. Первый трейт параметризован временем жизни входных данных 'de
, его реализуют типы, которые заимствуют из входа (скажем, строки) какие-то данные. Второй же, как следует из его названия, реализуется типами, которые не заимствуют данные из входа и являются владеющими. Очевидно, если тип реализует DeserializeOwned
, то он реализует и Deserialize<'de>
, причём для произвольного 'de
. И действительно, DeserializeOwned
объявлен следующим образом:pub trait DeserializeOwned: for<'de> Deserialize<'de> { }Также эту можно применять и для обычных функций, не являющихся замыканиями. Например, если мы почему-то хотим в
example_hof
выше принимать только функции-не-замыкания, то мы могли бы написать её тип так:fn example_hof<F>(n: u32, s: &str, func: for<'a> fn(&str, &'a str) -> &'a str) -> &str;Фух, это было довольно много. Это всё?
Да. Во всяком случае, пока что.
Спасибо, после общения с тобой я чувствую себя... Мудрее.
Что, правда?
Нет, конечно, лол
Ну и зараза
Блог*
Мне прилетел случай, когда моё решение давало ответ, на единицу отличающийся от правильного. Это выглядело странно, потому что это не могло быть эффектом ошибки на единицу — в противном случае более простые примеры давали бы ту же ошибку. Я внимательно изучил…
#prog #моё
НЕ ЧИТАЙТЕ, ЕСЛИ ВЫ ЕЩЁ НЕ РЕШАЛИ СЕГОДНЯШНЮЮ ЗАДАЧУ AUGUST LEETCODING CHALLENGE, НО ХОТИТЕ РЕШИТЬ ЕЁ САМИ
А вот в сегодняшней задаче union-find таки пригодилась. В задаче дан массив чисел, и требуется для графа, в котором вершинами являются числа из этого массива, а рёбра соединяют числа, не являющиеся взаимно простыми, найти размер наибольшей (по числу вершин) связной компоненты. Я, конечно, сначала сделал поиск в глубину, но тест на наличие ребра оказался довольно дорогим даже при предварительном разложении чисел на множители, что приводило к тому, что мои решения отваливались по таймауту на больших тесткейсах (100 000 чисел в диапазоне от 1 до 20 000). Объединение чисел по общему простому множителю в разложении дало куда более хорошую асимптотику и, как следствие, производительность. Единственное, на что нужно было обратить внимание при решении — это изменить процедуру union так, чтобы она возвращала размер вновь образованного множества (естественно, в этом случае нужно объединение по размеру, а не по рангу) и своевременно обновлять текущее максимальное значение.
НЕ ЧИТАЙТЕ, ЕСЛИ ВЫ ЕЩЁ НЕ РЕШАЛИ СЕГОДНЯШНЮЮ ЗАДАЧУ AUGUST LEETCODING CHALLENGE, НО ХОТИТЕ РЕШИТЬ ЕЁ САМИ
А вот в сегодняшней задаче union-find таки пригодилась. В задаче дан массив чисел, и требуется для графа, в котором вершинами являются числа из этого массива, а рёбра соединяют числа, не являющиеся взаимно простыми, найти размер наибольшей (по числу вершин) связной компоненты. Я, конечно, сначала сделал поиск в глубину, но тест на наличие ребра оказался довольно дорогим даже при предварительном разложении чисел на множители, что приводило к тому, что мои решения отваливались по таймауту на больших тесткейсах (100 000 чисел в диапазоне от 1 до 20 000). Объединение чисел по общему простому множителю в разложении дало куда более хорошую асимптотику и, как следствие, производительность. Единственное, на что нужно было обратить внимание при решении — это изменить процедуру union так, чтобы она возвращала размер вновь образованного множества (естественно, в этом случае нужно объединение по размеру, а не по рангу) и своевременно обновлять текущее максимальное значение.
Хочется найти новую работу, но на hh и linkedin предлагают работать администратором БД в Пятёрочке или двигать формочки на электроне за 2 косаря в месяц? Можешь зайти на @profunctor_jobs, там публикуют нормальные вакансии, которых больше нет нигде.
Пост проплачен обитателями Нибиру
Пост проплачен обитателями Нибиру
Forwarded from rusta::mann
Опытный разработчик ударился в религию и создал не только образ докера, но и подобие
Блог*
Хочется найти новую работу, но на hh и linkedin предлагают работать администратором БД в Пятёрочке или двигать формочки на электроне за 2 косаря в месяц? Можешь зайти на @profunctor_jobs, там публикуют нормальные вакансии, которых больше нет нигде. Пост проплачен…
Вау, у меня много новых подписчиков! Интересно, откуда?
Раз уж тут так много новых людей — и особенно много тех, с кем я совершенно не знаком — пожалуй, стоит рассказать немного о себе и об этом канале.
Меня зовут Антон, ястудент человек студенческого возраста и в настоящий момент я работаю программистом, по работе пишу в основном... Да, на Rust, а как вы догадались? Я люблю Rust и ненавижу примерно все остальные языки программирования. Круг моих интересов относительно широк, но на канал изливается в основном программирование (серьёзно, около половины постов с хештегом #prog). Этот канал изначально планировался как удобная свалка ссылок, материалов и #meme-ов, и... Он таковым, в сущности, и остался. В своё оправдание я могу сказать, что все статьи (выкладываемые с хештегом #article) я всегда читаю перед тем, как выложить, так что делюсь я тем, что считаю стоящим своей аудитории.
Также ведение своего канала сподвигнуло меня на написание своих постов (и иногда даже перевод чужих статей), которые я выкладываю под хештегом #моё (как, впрочем, и созданные мною мемы). В их числе я хотел бы отметить:
- написание трейта, гарантирующего нулевой размер типа
- оптимизация размера итератора из стандартной библиотеки Rust (увы, не принятая)
- реализация zero-cost форматировщиков даты
- разбор различных способ реализации полиморфизма, с их достоинствами и недостатками
- эпические "Хроники замыканий" в 3 (пока что) частях: раз, два, три
- деликатный и глубокий анализ недостатков регулярных выражений
Для удобства привожу список всех хештегов на канале (может быть пополнен в будущем):
#3dcg
#abnormalprogramming
#algo
#amazingopensource
#anime
#art
#article
#bash
#bio
#blogrecommendation
#c
#cinema
#clojure
#cpp
#csharp
#db
#demoscene
#design
#dotnet
#erlang
#game
#go
#idris
#itsec
#haskell
#js
#java
#julia
#justrustaceanthings
#kbd
#life
#math
#mechanics
#meme
#menacingopensource
#ml
#mood
#music
#outoflinestorage
#parsing
#performancetrap
#php
#pixelart
#politota
#postgresql
#prog
#psy
#puzzle
#python
#quotes
#regex
#retroit
#r
#rust
#rustasync
#rustforlinux
#rustreleasenotes
#rustlib
#scala
#science
#serde
#shell
#soc
#softskills
#sql
#successstory
#suckassstory
#tips
#typescript
#video
#web
#zig
#бомбёжкипост
#культурнаяпрограмма
#лингво
#моё
#право
#трудовыебудни
Ну и традиционно — лайки, колокольчик, рассказывайте друзьям, бла бла бла, ну, вы знаете, как это обычно выглядит. Ну и раз уж я пока не могу поприветствовать каждого лично, я поприветствую всех новоприбывших скопом:
Добро пожаловать на канал!
Меня зовут Антон, я
Также ведение своего канала сподвигнуло меня на написание своих постов (и иногда даже перевод чужих статей), которые я выкладываю под хештегом #моё (как, впрочем, и созданные мною мемы). В их числе я хотел бы отметить:
- написание трейта, гарантирующего нулевой размер типа
- оптимизация размера итератора из стандартной библиотеки Rust (увы, не принятая)
- реализация zero-cost форматировщиков даты
- разбор различных способ реализации полиморфизма, с их достоинствами и недостатками
- эпические "Хроники замыканий" в 3 (пока что) частях: раз, два, три
- деликатный и глубокий анализ недостатков регулярных выражений
Для удобства привожу список всех хештегов на канале (может быть пополнен в будущем):
#3dcg
#abnormalprogramming
#algo
#amazingopensource
#anime
#art
#article
#bash
#bio
#blogrecommendation
#c
#cinema
#clojure
#cpp
#csharp
#db
#demoscene
#design
#dotnet
#erlang
#game
#go
#idris
#itsec
#haskell
#js
#java
#julia
#justrustaceanthings
#kbd
#life
#math
#mechanics
#meme
#menacingopensource
#ml
#mood
#music
#outoflinestorage
#parsing
#performancetrap
#php
#pixelart
#politota
#postgresql
#prog
#psy
#puzzle
#python
#quotes
#regex
#retroit
#r
#rust
#rustasync
#rustforlinux
#rustreleasenotes
#rustlib
#scala
#science
#serde
#shell
#soc
#softskills
#sql
#successstory
#suckassstory
#tips
#typescript
#video
#web
#zig
#бомбёжкипост
#культурнаяпрограмма
#лингво
#моё
#право
#трудовыебудни
Ну и традиционно — лайки, колокольчик, рассказывайте друзьям, бла бла бла, ну, вы знаете, как это обычно выглядит. Ну и раз уж я пока не могу поприветствовать каждого лично, я поприветствую всех новоприбывших скопом:
Добро пожаловать на канал!
Telegram
Блог*
#prog #rust #article #моё
Как я и обещал, я... Так, погодите, я не писал об этом в блоге? Впрочем, ладно, напишу сейчас: я планировал написать перевод этой статьи и выложить его на Хабре. Собственно, сегодня я это и сделал.
Как я и обещал, я... Так, погодите, я не писал об этом в блоге? Впрочем, ладно, напишу сейчас: я планировал написать перевод этой статьи и выложить его на Хабре. Собственно, сегодня я это и сделал.
👍8🤮1💩1🤡1
Блог*
Ради чего вы подписаны на канал?
Ну а как осмотритесь — пожалуйста, отметитесь в этом опросе (если что, там можно выбрать несколько вариантов)
Forwarded from XYZ
#галерея_xyz
Якуб Розальски — польский художник и иллюстратор, создавший вселенную 1920+. В ней культура XX века сочетается с боевыми роботами.
Свои первые картины Якуб писал на холсте и бумаге, к компьютерной графике он перешёл гораздо позже. Цифровой арт помогает художнику быстрее создавать новые работы, но иногда он всё же возвращается к традиционной живописи, так как любит её больше.
Источник: artstation.com/jakubrozalski
Якуб Розальски — польский художник и иллюстратор, создавший вселенную 1920+. В ней культура XX века сочетается с боевыми роботами.
Свои первые картины Якуб писал на холсте и бумаге, к компьютерной графике он перешёл гораздо позже. Цифровой арт помогает художнику быстрее создавать новые работы, но иногда он всё же возвращается к традиционной живописи, так как любит её больше.
Источник: artstation.com/jakubrozalski
👍2