@@ -26,20 +26,20 @@ As a multi-paradigm language, Rust supports writing code in
26
26
procedural, functional and object-oriented styles. Some of its nice
27
27
high-level features include:
28
28
29
- * *** Pattern matching and algebraic data types (enums).* ** Common in
29
+ * ** Pattern matching and algebraic data types (enums).** Common in
30
30
functional languages, pattern matching on ADTs provides a compact
31
31
and expressive way to encode program logic.
32
- * *** Task-based concurrency.* ** Rust uses lightweight tasks that do
32
+ * ** Task-based concurrency.** Rust uses lightweight tasks that do
33
33
not share memory.
34
- * *** Higher-order functions.* ** Rust functions may take closures as
34
+ * ** Higher-order functions.** Rust functions may take closures as
35
35
arguments or return closures as return values. Closures in Rust are
36
36
very powerful and used pervasively.
37
- * *** Trait polymorphism.* ** Rust's type system features a unique
37
+ * ** Trait polymorphism.** Rust's type system features a unique
38
38
combination of Java-style interfaces and Haskell-style typeclasses
39
39
called _ traits_ .
40
- * *** Parametric polymorphism (generics).* ** Functions and types can be
40
+ * ** Parametric polymorphism (generics).** Functions and types can be
41
41
parameterized over type variables with optional type constraints.
42
- * *** Type inference.* ** Type annotations on local variable
42
+ * ** Type inference.** Type annotations on local variable
43
43
declarations can be omitted.
44
44
45
45
## First impressions
0 commit comments