Forwarded from The Wacky Yellow Dog
Нет, за счёт того, что вызов функции ты всегда безопасно можешь заменить её результатом
Forwarded from Αλεχ Zhukovsky
только ты его весь прочитать не сможешь, а еще он обычно копипастный из-за чего у тебя постоянно ошибки "тут заменили - там забыли"
Forwarded from red75prime
"Über".bytes().map(|b| b as char).collect::<String>() = "Ã\u{9c}ber"https://t.iss.one/rust_offtopic/67685
Alex Zhukovsky:
вместо методов ToList/ToArray/ToHashSet/... можно было бы сделать один метод To<>
Но из-за того, что List/Array/HashSet/... сами по себе генерики ты не можешь, т.к. тебе надо сделать To<List<>>
а шарп так не разрешает
Alex Zhukovsky:
вместо методов ToList/ToArray/ToHashSet/... можно было бы сделать один метод To<>
Но из-за того, что List/Array/HashSet/... сами по себе генерики ты не можешь, т.к. тебе надо сделать To<List<>>
а шарп так не разрешает
public static T<A> To<T>(this IEnumerable<A> xs)
where T : <>, new(), ICollection<>
{
var ta = new T<A>();
foreach(var x in xs) {
ta.Add(x);
}
return ta;
}
...
{
var data = Enumerable.Range(0, 20);
var set = data.To<HashSet<>>(); // sorcery!
var linkedList = data.To<LinkedList<>>();
var list = data.To<List<>>();
}
Коротко об "удобстве" сишарпаTelegram
Alex Zhukovsky in rust_offtopic
public static T<A> To<T>(this IEnumerable<A> xs)
where T : <>, new(), ICollection<>
{
var ta = new T<A>();
foreach(var x in xs) {
ta.Add(x);
}
return ta;
}
...
{
var data = Enumerable.Range(0, 20);
var set = data.To<HashSet<>>();…
where T : <>, new(), ICollection<>
{
var ta = new T<A>();
foreach(var x in xs) {
ta.Add(x);
}
return ta;
}
...
{
var data = Enumerable.Range(0, 20);
var set = data.To<HashSet<>>();…
Forwarded from Αλεχ Zhukovsky
1. Следствие того, что выражать мысли на ФП можно гораздо более точно. Это аргументация гошников, что им простыня на 100 строк кода иф-элсов понятнее, чем какие-нибудь более серьезные абстракции вроде макрософ и генериков. См статью про сравнение го и Д. То что в 1 стрчоку можно сделать то что на сишарпе делается в 50 - это хорошо, а не плохо.
2. Это сишный синтаксис инопланетный, просто ты к нему привык. Детям в 5 классе в штатах дают хачкель вместо плюсов и они прекрасно его пережеыввают. Потом не понимают что в сишной программе происходит
2. Это сишный синтаксис инопланетный, просто ты к нему привык. Детям в 5 классе в штатах дают хачкель вместо плюсов и они прекрасно его пережеыввают. Потом не понимают что в сишной программе происходит
Forwarded from Αλεχ Zhukovsky
interface (Applicative f, VerifiedFunctor f) => VerifiedApplicative (f : Type -> Type) where
applicativeMap : (x : f a) -> (g : a -> b) ->
map g x = pure g <*> x
applicativeIdentity : (x : f a) ->
pure Basics.id <*> x = x
applicativeComposition : (x : f a) -> (g1 : f (a -> b)) -> (g2 : f (b -> c)) ->
((pure (.) <*> g2) <*> g1) <*> x = g2 <*> (g1 <*> x)
applicativeHomomorphism : (x : a) -> (g : a -> b) ->
(<*>) {f} (pure g) (pure x) = pure {f} (g x)
applicativeInterchange : (x : a) -> (g : f (a -> b)) ->
g <*> pure x = pure (\g' : (a -> b) => g' x) <*> gForwarded from Jack
Вон недавно багу нашли
static UNIT: &'static &'static () = &&();
fn foo<'a, 'b, T>(_: &'a &'b (), v: &'b T) -> &'a T { v }
fn bad<'a, T>(x: &'a T) -> &'static T {
let f: fn(&'static &'a (), &'a T) -> &'static T = foo;
f(UNIT, x)
}
Forwarded from вафля 🧇🍓
Telegram
Rust GameDev — русскоговорящее сообщество | НЕ игра Rust
Русскоговорящее сообщество разработчиков комьютерных игр на языке программирования Rust.
Правила: https://t.iss.one/rust_gamedev_ru/9723
Полезные ресурсы и ссылки (включая оффтоп чат): https://t.iss.one/rust_gamedev_ru/225321
Правила: https://t.iss.one/rust_gamedev_ru/9723
Полезные ресурсы и ссылки (включая оффтоп чат): https://t.iss.one/rust_gamedev_ru/225321