Life of Tau
318 subscribers
4.63K photos
301 videos
34 files
1.15K links
Большая часть постов форвардятся из мастодона (@magistau@mas.to)
Правила чата/комментариев: https://xn--r1a.website/tauslife/9
Download Telegram
boops boops boops boops boops boops boops boops
👍4👎2
Forwarded from Санечка Ъысь (Anna Weiss)
Я ДЛЯ ТЕБЯ ОСТАНУСЬ СВЕ-Е-Е-ТОМ
👎1
Forwarded from шиза
судьба, проказница — шалунья, определила так сама: всем глупым — счастье от безумья, всем умным — горе от ума
к чему приводит LBYL
Forwarded from Блог*
#prog #rust #itsec

blog.rust-lang.org/2022/01/20/cve-2022-21658.html

> Rust 1.0.0 through Rust 1.58.0 is affected by this vulnerability.

Oof
обожаю свою полиаморность
ненавижу свою полиаморность
он шагнул из окна, как шагала она,
он взлетел, как взлетала она
но не вверх, а вниз
только не говорите что это работает
Life of Tau
что ж... это работает
в чате по питону обсуждали такую задачу:
нужно написать функцию add, которая ведёт себя так:

>>> add(1)(2)(3)()
6
>>> add(1)(2)(3)(4)()
10


ну в принципе ничего сложного:

def add(succ = None):
acc = getattr(add, "_acc", 0)
if succ is None:
if hasattr(add, "_acc"):
del add._acc
return acc
add._acc = acc + succ
return add


тут используется None, хотя следовало бы создать свой sentinel или смотреть количество аргументов - вдруг кому-то придёт в голову сложить что-то с None
а потом я решила написать это на расте... встречайте:

#![feature(fn_traits, unboxed_closures)]

use std::ops::Add;

#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub struct Adder<T> {
acc: T,
}

impl<L, R, O> FnOnce<(R,)> for Adder<L>
where
L: Add<R, Output = O>,
{
type Output = Adder<O>;
extern "rust-call" fn call_once(self, (succ,): (R,)) -> Self::Output {
Adder {
acc: self.acc + succ,
}
}
}

impl<A> FnOnce<()> for Adder<A> {
type Output = A;
extern "rust-call" fn call_once(self, (): ()) -> Self::Output {
self.acc
}
}

#[allow(non_camel_case_types)]
pub struct add;

impl<A> FnOnce<(A,)> for add {
type Output = Adder<A>;
extern "rust-call" fn call_once(self, (acc,): (A,)) -> Self::Output {
Adder { acc }
}
}

fn main() {
println!("{}", add(1)(2)(3)());
}


единственное, что не получилось сделать - разрешить делать сразу add()

#prog #rust #python
👍3
кому-то нужны инвайты для warp.dev?
👎2
Life of Tau pinned «если вам не нравится мой контент, читайте:»
в смысле уже скомпилировалось
у меня пет-проект дольше компилировался, чем сейчас cpython
Forwarded from Психолег
Богатый внутренний мир))
каминг-аут как признание в любви
дальше либо эйфория либо депрессия
Life of Tau
каминг-аут как признание в любви дальше либо эйфория либо депрессия
ну и да, перед этим тысячу раз подумаешь
но стоит начать - и дальше будет легко
кто поймёт тот поймёт
👍5
Forwarded from шиза
я бесконечно верю в доброту, порядочность и искренность.
и каждый раз убеждаюсь: такой дуры, как я, больше нет.
объясните DI плиз
оп опять переименовываю гитхаб