Forwarded from 71 6Ö5 [GMT +3]
комрады - вопрос, раст динамичное число агрументов не поддерживает - можно ли как-то сделать
a = Struct::new(arg1);
b = Struct::new(arg1, arg2);
Forwarded from SkyCoffee
можно, но костыльно и в nightly https://crates.io/crates/overloadable
Forwarded from Zygohistomorphic Prepromorphism🇺🇦
да если честно лучше это прочитать, чем абрамовщину
https://www.humblespark.com/blog/extensible-effects-in-node-part-1
https://www.humblespark.com/blog/extensible-effects-in-node-part-1
HumbleSpark
Extensible Effects in Node.js, Part 1 | HumbleSpark
Forwarded from Zygohistomorphic Prepromorphism🇺🇦
ну тут у тебя как бы фриер монада в жс))) адт через прототайп
Forwarded from Leonid 🦇 Onokhov
Поганое солнце стояло в зените,
Поганые люди сидели вокруг,
Автобусом правил поганый водитель,
И очень погано смеялся мой друг.
Поганые люди сидели вокруг,
Автобусом правил поганый водитель,
И очень погано смеялся мой друг.
Forwarded from Денис
x as u16 ничего не сломает, если x: u8, но если ты потом заменишь тип переменной на, скажем, u32, то код продолжит собираться без ошибок и предупреждений, поэтому лучше делать u16::fromSkyCoffee, [25.07.19 19:06]
хороший язык Rust, заставил меня полюбить Си)
компилятор бы ругался, что не может познать лайфтайм для того, что он возвращает
Mikola Summer Duck, [25.07.19 19:07]
Может же
Он его возьмёт с лайфтайма &mut self
Логично выведя, что поле self будет жить столько же, сколько сам self
Без элижона оно будет выглядеть так:
речь же о времени жизни заимствованний, а не самих объектов, так что сложно
вот так я бы не смог вернуть один и тот же регистр два раза за время жизни эмулятора
Mikola Summer Duck, [25.07.19 19:09]
Не, ты не оперируешь временем жизни заимстсвования.
Мог бы. Нельзя держать две пишущие ссылки одновременно, это да.
Но вот это бы работало
хороший язык Rust, заставил меня полюбить Си)
компилятор бы ругался, что не может познать лайфтайм для того, что он возвращает
Mikola Summer Duck, [25.07.19 19:07]
Может же
Он его возьмёт с лайфтайма &mut self
Логично выведя, что поле self будет жить столько же, сколько сам self
Без элижона оно будет выглядеть так:
fn get_reg<'a>(&'a mut self, vx: u8) -> &'a mut u8 {
&mut self.registers.v_registers[vx as usize]
}
SkyCoffee, [25.07.19 19:09]речь же о времени жизни заимствованний, а не самих объектов, так что сложно
вот так я бы не смог вернуть один и тот же регистр два раза за время жизни эмулятора
Mikola Summer Duck, [25.07.19 19:09]
Не, ты не оперируешь временем жизни заимстсвования.
Мог бы. Нельзя держать две пишущие ссылки одновременно, это да.
Но вот это бы работало
let mut reg_a = self.get_reg(1);Потому что недавно в расте включили NLL, и теперь борровчекер стал намного добрее.
a += 1;
let mut reg_b = self.get_reg(2);
b += 9;
Tux, [26.07.19 09:05]
помогите с лайфтаймами разобраться
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=eb8c22ce3b9df236f9da7e35861bb053
Дмитрий Беляев, [26.07.19 10:20]
[In reply to Tux]
мне кажется из Shared::get_ref не получится вернуть ссылку
так как владелец сдохнет по ее завершении
Andrey @ozkriff Lesnikov, [26.07.19 10:26]
да, там lock() мьютекса возвращает гард, который по определению локальный и в этом его смысл. так что прямо так взять и вернуть ссылку вовне нельзя и так и должно быть. в чем сама решаемая задача?
Tux, [26.07.19 10:31]
[In reply to Andrey @ozkriff Lesnikov]
хочу избавиться от статик (который глобальная переменная) синглтона
Tux, [26.07.19 10:34]
и везде его через arc+mutex передавать. и хочется при этом сохранить красивый api, чтобы без кишок типа мьютекса наружу. как в actix контекст в Data передается
помогите с лайфтаймами разобраться
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=eb8c22ce3b9df236f9da7e35861bb053
Дмитрий Беляев, [26.07.19 10:20]
[In reply to Tux]
мне кажется из Shared::get_ref не получится вернуть ссылку
так как владелец сдохнет по ее завершении
Andrey @ozkriff Lesnikov, [26.07.19 10:26]
да, там lock() мьютекса возвращает гард, который по определению локальный и в этом его смысл. так что прямо так взять и вернуть ссылку вовне нельзя и так и должно быть. в чем сама решаемая задача?
Tux, [26.07.19 10:31]
[In reply to Andrey @ozkriff Lesnikov]
хочу избавиться от статик (который глобальная переменная) синглтона
Tux, [26.07.19 10:34]
и везде его через arc+mutex передавать. и хочется при этом сохранить красивый api, чтобы без кишок типа мьютекса наружу. как в actix контекст в Data передается
doc.rust-lang.org
MutexGuard in std::sync - Rust
An RAII implementation of a “scoped lock” of a mutex. When this structure is dropped (falls out of scope), the lock will be unlocked.
Stanislav Popov:
врёти что хаскель простой. там такие нагромождения, просто ад
тайп фемелис, линейные типы, миллион экстеншенов, миллион фиксов позволяющих делать чтото для чего то что раньше не делалось
λeonid Onokhov:
линейных типов ещё нет
почти все экстеншены считай что просто часть языка
Stanislav Popov:
ну я вот это прочитал https://gist.github.com/klapaucius/8fc2fbb48606e6dd9a9a095898e3fac4
врёти что хаскель простой. там такие нагромождения, просто ад
тайп фемелис, линейные типы, миллион экстеншенов, миллион фиксов позволяющих делать чтото для чего то что раньше не делалось
λeonid Onokhov:
линейных типов ещё нет
почти все экстеншены считай что просто часть языка
Stanislav Popov:
ну я вот это прочитал https://gist.github.com/klapaucius/8fc2fbb48606e6dd9a9a095898e3fac4
Gist
9.2
9.2. GitHub Gist: instantly share code, notes, and snippets.
λоλторт:
задачи на собеседованиях помогают понять, умеет ли человек своей головой думать
в этом плане для интервьюера даже лучше, если человек изначально решения не знает
тогда можно проследить ход мыслей собеседуемого
Слава:
А интервьюер сам умеет, или его сюда по иному принципу взяли?
С одной стороны, я как бы за академичность, с другой - ну-ка, суки, давайте-ка выкиньте тогда Линукс и прочую инженерию в духе "good enough", которой вы так радостно пользуетесь (особенно мыскль). И переходите на FreeBSD, а то и на Hurd. Будьте последовательны.
Охуенный подход. Спрашивать человека о том, чего он гарантированно не знает. А вы кого берете-то, и в курсе ли вы, как работает человеческое мышление в моменты делания чего либо?
Если не в курсе, поясняю: человек делает то, что он умеет делать, и делает это так, как он умеет делать. Именно поэтому все успешные языки похожи на сраную сишечку - потому что её умеют программисты, те, что есть. Именно поэтому так популярен питон - его студентишки учат, а потом сразу его знают и пишут на нем километры кода на своей дата сцаенс работе. И поэтому же js жил, жив и жить будет - его уже умеют. То есть, более продуктивным и разумным возможно было бы заявить "так, программистишки, с завтрашнего дня начинаем учить Окамл, и будет на нем писать под браузер (компилируя в js)". Но этого никто не делает, потому что знают - подход не взлетит. А на собеседованиях глумиться - это как здрасьте. Я полагаю, что это от природного мазохизма физматов - в то время, как будущие юристы трахали одноклассниц и одноклассников, физматы учились, вот и привыкли к долготерпению и страданиям.
Откуда ты знаешь, ты собеседовал, и проводил допросы достаточного количества собеседующих?
задачи на собеседованиях помогают понять, умеет ли человек своей головой думать
в этом плане для интервьюера даже лучше, если человек изначально решения не знает
тогда можно проследить ход мыслей собеседуемого
Слава:
А интервьюер сам умеет, или его сюда по иному принципу взяли?
С одной стороны, я как бы за академичность, с другой - ну-ка, суки, давайте-ка выкиньте тогда Линукс и прочую инженерию в духе "good enough", которой вы так радостно пользуетесь (особенно мыскль). И переходите на FreeBSD, а то и на Hurd. Будьте последовательны.
Охуенный подход. Спрашивать человека о том, чего он гарантированно не знает. А вы кого берете-то, и в курсе ли вы, как работает человеческое мышление в моменты делания чего либо?
Если не в курсе, поясняю: человек делает то, что он умеет делать, и делает это так, как он умеет делать. Именно поэтому все успешные языки похожи на сраную сишечку - потому что её умеют программисты, те, что есть. Именно поэтому так популярен питон - его студентишки учат, а потом сразу его знают и пишут на нем километры кода на своей дата сцаенс работе. И поэтому же js жил, жив и жить будет - его уже умеют. То есть, более продуктивным и разумным возможно было бы заявить "так, программистишки, с завтрашнего дня начинаем учить Окамл, и будет на нем писать под браузер (компилируя в js)". Но этого никто не делает, потому что знают - подход не взлетит. А на собеседованиях глумиться - это как здрасьте. Я полагаю, что это от природного мазохизма физматов - в то время, как будущие юристы трахали одноклассниц и одноклассников, физматы учились, вот и привыкли к долготерпению и страданиям.
Откуда ты знаешь, ты собеседовал, и проводил допросы достаточного количества собеседующих?
Forwarded from Nick Ivanych
Неа, ничо там не исправляли.
Вот pijul, как раз, и есть почти что darcs (какой-то одной фичи не хватает), но с оптимальными алгоритмами.
Вот pijul, как раз, и есть почти что darcs (какой-то одной фичи не хватает), но с оптимальными алгоритмами.
Forwarded from Nick Ivanych
However, Pijul's pristine format was designed to comply with axioms on a specific set of operations only.
As a result, some of darcs' features, such as darcs replace, are not (yet) available.
https://pijul.org/manual/why_pijul.html
As a result, some of darcs' features, such as darcs replace, are not (yet) available.
https://pijul.org/manual/why_pijul.html