Próbuję wprowadzić podobną do Monady cechę w Rust. Głównie tylko dla zabawy i zapoznania się z systemem typów. Jestem prawie pewien, że nie będę w stanie w pełni wdrożyć cechy Monady z powodu braku "wyższych rodzajów", jak wyjaśniono w tym reddit discussion, ale chcę zobaczyć, jak blisko mogę się dostać. Z jakiegoś powodu nie mogę skompilować tego kodu. Wydaje się, że powinno. Czy ktoś może wyjaśnić, dlaczego? Dzięki.Kolejne ćwiczenie generycznego rdzy
trait Monad<T> {
fn lift(val: T) -> Self;
}
struct Context<T>{
val: T
}
impl<T> Monad<T> for Context<T> {
fn lift(x: T) -> Context<T> {
Context{val: x}
}
}
fn main() {
let c:Context<int> = Context<int>::lift(5i);
}
kwestia ta mogłaby być lepsza jeśli dodano dokładny komunikat o błędzie, że dał ci (pomaga inni ludzie go znaleźć) :) – OMGtechy
Masz rację, ja następnym razem .... W ciągu ostatnich kilku lat nie użyłem rdzy, nie wiedziałbym, od czego zacząć. – MFlamer