summaryrefslogtreecommitdiff
path: root/exercises/00_intro
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/00_intro')
-rw-r--r--exercises/00_intro/README.md8
-rw-r--r--exercises/00_intro/intro1.rs41
-rw-r--r--exercises/00_intro/intro2.rs12
3 files changed, 61 insertions, 0 deletions
diff --git a/exercises/00_intro/README.md b/exercises/00_intro/README.md
new file mode 100644
index 0000000..d32e4a8
--- /dev/null
+++ b/exercises/00_intro/README.md
@@ -0,0 +1,8 @@
+# Intro
+
+Rust uses the `print!` and `println!` macros to print text to the console.
+
+## Further information
+
+- [Hello World](https://doc.rust-lang.org/rust-by-example/hello.html)
+- [Formatted print](https://doc.rust-lang.org/rust-by-example/hello/print.html)
diff --git a/exercises/00_intro/intro1.rs b/exercises/00_intro/intro1.rs
new file mode 100644
index 0000000..c5196d6
--- /dev/null
+++ b/exercises/00_intro/intro1.rs
@@ -0,0 +1,41 @@
+// intro1.rs
+//
+// About this `I AM NOT DONE` thing:
+// We sometimes encourage you to keep trying things on a given exercise, even
+// after you already figured it out. If you got everything working and feel
+// ready for the next exercise, remove the `I AM NOT DONE` comment below.
+//
+// If you're running this using `rustlings watch`: The exercise file will be
+// reloaded when you change one of the lines below! Try adding a `println!`
+// line, or try changing what it outputs in your terminal. Try removing a
+// semicolon and see what happens!
+//
+// Execute `rustlings hint intro1` or use the `hint` watch subcommand for a
+// hint.
+
+// I AM NOT DONE
+
+fn main() {
+ println!("Hello and");
+ println!(r#" welcome to... "#);
+ println!(r#" _ _ _ "#);
+ println!(r#" _ __ _ _ ___| |_| (_)_ __ __ _ ___ "#);
+ println!(r#" | '__| | | / __| __| | | '_ \ / _` / __| "#);
+ println!(r#" | | | |_| \__ \ |_| | | | | | (_| \__ \ "#);
+ println!(r#" |_| \__,_|___/\__|_|_|_| |_|\__, |___/ "#);
+ println!(r#" |___/ "#);
+ println!();
+ println!("This exercise compiles successfully. The remaining exercises contain a compiler");
+ println!("or logic error. The central concept behind Rustlings is to fix these errors and");
+ println!("solve the exercises. Good luck!");
+ println!();
+ println!("The source for this exercise is in `exercises/intro00/intro1.rs`. Have a look!");
+ println!(
+ "Going forward, the source of the exercises will always be in the success/failure output."
+ );
+ println!();
+ println!(
+ "If you want to use rust-analyzer, Rust's LSP implementation, make sure your editor is set"
+ );
+ println!("up, and then run `rustlings lsp` before continuing.")
+}
diff --git a/exercises/00_intro/intro2.rs b/exercises/00_intro/intro2.rs
new file mode 100644
index 0000000..990b20f
--- /dev/null
+++ b/exercises/00_intro/intro2.rs
@@ -0,0 +1,12 @@
+// intro2.rs
+//
+// Make the code print a greeting to the world.
+//
+// Execute `rustlings hint intro2` or use the `hint` watch subcommand for a
+// hint.
+
+// I AM NOT DONE
+
+fn main() {
+ println!("Hello {}!");
+}