Slice patterns in Nightly Rust
QAston via Digitalmars-d
digitalmars-d at puremagic.com
Sun Jun 21 02:39:18 PDT 2015
On Sunday, 21 June 2015 at 03:23:18 UTC, Dennis Ritchie wrote:
> Recently published documentation Nightly Rust. I saw this:
> https://doc.rust-lang.org/nightly/book/slice-patterns.html
>
> What do you think about this: a terrible thing or a cool
> feature?
>
> fn is_symmetric(list: &[u32]) -> bool {
> match list {
> [] | [_] => true,
> [x, inside.., y] if x == y => is_symmetric(inside),
> _ => false
> }
> }
>
> fn main() {
> let sym = &[0, 1, 4, 2, 4, 1, 0];
> assert!(is_symmetric(sym));
>
> let not_sym = &[0, 1, 7, 2, 4, 1, 0];
> assert!(!is_symmetric(not_sym));
> }
>
> http://is.gd/TvrXSn
>
> I see this competition slices of D. Also seen are not very
> clear design.
Like, every modern language has a notion of closed iteration
abstraction (Ranges, Java streams, Clojure seqs, .net LINQ,
etc...). Many also have slicing: go, python, rust, ml...
It's time to get over thinking those are unique :)
What you linked here is a tutorial for pattern matchig on slices
(which is a feature unrelated to D as it doesn't have pattern
matching)- the doc for slices themselves is here:
http://doc.rust-lang.org/nightly/std/slice/
More information about the Digitalmars-d
mailing list