top | item 44519948

(no title)

sondr3 | 7 months ago

If you've never been exposed to a Hindley-Milner type system[1] it can seem a bit magical, but it essentially works by trying to figure out the types from the inside and out by inferring usage all the way to the top. The type of `n` however is `&str`, but I take it you mean the matching. `n.parse()` can be anything that implements `FromStr`, but `Token::Operand` can only take a `u32`, so it can immediately infer that the result of `n.parse().unwrap()` must be `u32` (`n.parse()` is a `Result<u32, Err>`).

[1]: https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_sy...

discuss

order

No comments yet.