diff --git a/Examples.md b/Examples.md index f525cde..1e66644 100644 --- a/Examples.md +++ b/Examples.md @@ -19,4 +19,58 @@ fn main #### Formatted print (Skipping for now because we likely want "f-strings" in Husht, which require some thought/design.) -### Primitives \ No newline at end of file +### Primitives +``` +fn main() { + // Variables can be type annotated. + let logical: bool = true; + + let a_float: f64 = 1.0; // Regular annotation + let an_integer = 5i32; // Suffix annotation + + // Or a default will be used. + let default_float = 3.0; // `f64` + let default_integer = 7; // `i32` + + // A type can also be inferred from context. + let mut inferred_type = 12; // Type i64 is inferred from another line. + inferred_type = 4294967296i64; + + // A mutable variable's value can be changed. + let mut mutable = 12; // Mutable `i32` + mutable = 21; + + // Error! The type of a variable can't be changed. + mutable = true; + + // Variables can be overwritten with shadowing. + let mutable = true; +} +``` +<-> +``` +fn main + // Variables can be type annotated. + let logical: bool = true + + let a_float: f64 = 1.0 // Regular annotation + let an_integer = 5i32 // Suffix annotation + + // Or a default will be used. + let default_float = 3.0 // `f64` + let default_integer = 7 // `i32` + + // A type can also be inferred from context. + let mut inferred_type = 12 // Type i64 is inferred from another line. + inferred_type = 4294967296i64 + + // A mutable variable's value can be changed. + let mut mutable = 12 // Mutable `i32` + mutable = 21 + + // Error! The type of a variable can't be changed. + mutable = true + + // Variables can be overwritten with shadowing. + let mutable = true +``` \ No newline at end of file