diff --git a/subjects/DPxAI/i-win-arguments/README.md b/subjects/DPxAI/i-win-arguments/README.md new file mode 100644 index 000000000..606076951 --- /dev/null +++ b/subjects/DPxAI/i-win-arguments/README.md @@ -0,0 +1,158 @@ +## I Win Arguments + +> Mindful AI mode + +### Context + +You made it to the last mission in getting your full power, to make your robot alive and fully functional! + +The final step involves mastering the use of `arguments` in functions. By learning how to use and manage these `arguments` effectively, you can unlock the full potential of your robot and make it later truly come alive. + +Let's find out more! + +### AI-Powered Learning Techniques + +`Code Chunking Technique:` + +This type of prompt encourages you to break down larger pieces of code into smaller, digestible chunks. + +Each chunk is explained individually, allowing you to understand the purpose and functionality of each part. + +Find the examples across the subject ;) + +### Concepts + +### One Argument + +We mentioned it before with methods, functions can take arguments. They are always in between parens `()`. + +Let's use the same examples that we used for function calls: + +Remember this example of function call ? + +```js +// ↙ method +console.log("Hello There !"); //<- +// ↖ The String 'Hello There!' is +// the argument of console.log() +``` + +We are now going to adapt `myFirstFuntion` so that it takes one argument : `arg1`. + +```js +let myFirstFunction = (arg1) => { + //<-arg1 is inputed in between the parens + console.log(arg1); // arg1 can be use inside the scope of the function + // ↖ arg1 is "transfered" to be the arg of console.log() +}; //<-end of the scope of the function +``` + +Now if the function is called, it displays the output of `console.log(arg1)`. + +```js +myFirstFunction("using my first arg"); // "using my first arg" +``` + +But let's say we want to change what the function logs. Now, instead of modifying `myFirstFunction` we just need to modify the `argument` in the `function call`. + +```js +myFirstFunction("another arg"); // "another arg" +myFirstFunction("and another one"); // "and another one" +myFirstFunction("and one more"); // "and one more" +``` + +### More Arguments + +We’ve seen how to add `one` argument to a function. Now, let’s learn how to add `two (or more)` arguments. + +All we need to do to add a second argument `arg2` is to add a comma `,` after `arg1` and then add `arg2`. + +```js +let myFirstFunction = (arg1, arg2) => { + //<-arg1 and arg2 are inputed in between the parens + console.log(arg1, arg2); + // ↖ arg1 and arg2 are "transfered" to be the args of console.log() +}; +// Now we call the function +myFirstFunction("first arg", "second arg"); +// "first arg" +// "second arg" +``` + +For more args, you will need to simply repeat the same process! Comma `,` then the other argument and it goes on. + +> Please note that you can name your arguments however you please. Just make sure that you reuse the proper name inside the scope of your function. + +### Return value + +In addition to accepting arguments, functions can also `return` values. + +Return values are the `outputs` that a function provides after completing its task. + +We are now going to adapt `myFirstFunction` so that it `returns` a value instead of just `logging it`. + +```js +let myFirstFunction = (arg1) => { + return arg1; // the function now returns the value of arg1 +}; +``` + +Now if the function is called, it returns the value of `arg1`: + +```js +let result = myFirstFunction("using my first return"); +console.log(result); // "using my first return" +``` + +But let's say we want to change what the function `returns`. Now, instead of modifying `myFirstFunction`, we just need to modify `the argument` in `the function call`. + +```js +let anotherResult = myFirstFunction("another return"); +console.log(anotherResult); // "another return" +``` + +#### **`Prompt Example`**: + +- "Can you guide me through creating and using a JavaScript function that takes multiple arguments, starting from a basic function without arguments, then adding single and multiple arguments ?" + +### Instructions + +#### Task 1: + +You are the general's aide responsible for transmitting communications to the other RoboGuards. + +1- Create the `battleCry` Function: + +- This function should take `one argument` and display it in the `console`. +- The battlefield is vast, so ensure that `the argument is uppercased` before displaying it. + +2- Create the `secretOrders` Function: + +- Sometimes, communications need to be given quietly. + +- This function will do the `same` as `battleCry`, except `it will lowercase` the argument before sending it. + +> hint: you remmeber methods? + +#### Task 2: + +As the leader of the RoboGuard forces, you're not just preparing for battle—you're also forming dynamic duos of robots to work together on special missions. + +1- Create the `duos` Function: + +- This function will take `two arguments`, representing the **names** of **two robots**. +- It will `log them` together with an **and** and an **exclamation mark**. + +2- Create the `duosWork` Function: + +- This function will take `three arguments`: the **names** of two robots and the **task** they will perform together. + +- It will `log them` together in a sentence describing their task. + +#### Task 3: + +Rick's robot, knows his purpose. (Remember ? 'He passes butter.') + +- Define the function `passButter` that returns the string 'The butter'. + +> "Your hard work is paying off. The only limit to your impact is your imagination and commitment." – Tony Robbins