title
Elixir Tutorial

description
Get $5 for Free from Amazon : https://t.co/rU4pSFdEgG Get The Code Here : https://goo.gl/hT08tm Best Elixir Book : http://amzn.to/2oL5ySv Install Elixir : https://youtu.be/antnsMgA4Ro MY UDEMY COURSES ARE 87.5% OFF TIL January 8th ($9.99) ➡️ Python Data Science Series for $9.99 : Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_43 ➡️ C++ Programming Bootcamp Series for $9.99 : Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments + New Videos Every Month https://bit.ly/C_Course_43 ➡️ FREE 15 hour Golang Course!!! : https://bit.ly/go-tutorial4 (100 Available) In this tutorial I will cover the core syntax of the Elixir language in one video. I list below a rough overview of what is covered with time stamps so you can easily jump to what interests you. You can also use the time stamps so you can watch this video in parts. 00:45 Introduction 01:35 Input / Output 03:50 Data Types 06:38 Strings 12:44 Math 13:30 Comparison 16:06 Decision Making 23:15 Tuples 28:16 Lists 36:40 Maps 39:33 Pattern Matching 41:01 Anonymous Functions 45:52 Recursion 48:48 Looping 53:05 Enumerables 58:19 List Comprehensions 59:53 Exception Handling 1:01:21 Concurrency

detail
{'title': 'Elixir Tutorial', 'heatmap': [{'end': 397.577, 'start': 356.508, 'weight': 1}, {'end': 1783.694, 'start': 1740.526, 'weight': 0.77}, {'end': 1904.45, 'start': 1858.845, 'weight': 0.717}, {'end': 2229.445, 'start': 2175.238, 'weight': 0.913}], 'summary': 'This elixir tutorial provides an in-depth overview of elixir, covering core syntax and language with efficient viewing timestamps. it includes installation on mac os and windows, string manipulation, math operations, conditional statements, tuples, data structure management, functions, recursion, enumerables, and concurrency in elixir.', 'chapters': [{'end': 36.417, 'segs': [{'end': 53.1, 'src': 'embed', 'start': 20.529, 'weight': 0, 'content': [{'end': 22.27, 'text': "so you don't need to watch it all at one time.", 'start': 20.529, 'duration': 1.741}, {'end': 25.173, 'text': 'You can watch it and then come back to it and take your time.', 'start': 22.311, 'duration': 2.862}, {'end': 30.494, 'text': 'Also in the description is a link to all of the code in this video, as well as a cheat sheet,', 'start': 25.532, 'duration': 4.962}, {'end': 36.417, 'text': 'and it is heavily commented and you should get it and take notes as you go through it to properly learn this language.', 'start': 30.494, 'duration': 5.923}, {'end': 44.44, 'text': 'And also inside of there is a link to a tutorial on how to install Elixir on both Mac OS and on Windows.', 'start': 36.717, 'duration': 7.723}, {'end': 46.501, 'text': "And I have a lot to do, so let's get into it.", 'start': 44.54, 'duration': 1.961}, {'end': 53.1, 'text': "Okay, so I'm using Atom just like I showed you how to use whenever I showed you how to install Elixir.", 'start': 47.119, 'duration': 5.981}], 'summary': 'The video provides code, cheat sheet, and elixir installation tutorial for learning the language in depth.', 'duration': 32.571, 'max_score': 20.529, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL020529.jpg'}], 'start': 0.592, 'title': 'Elixir tutorial overview', 'summary': 'Covers the core syntax and language of elixir, providing the equivalent of a standard 300-page book in one tutorial, with timestamps for efficient viewing and access to comprehensive code and cheat sheet resources for effective learning.', 'chapters': [{'end': 36.417, 'start': 0.592, 'title': 'Elixir tutorial overview', 'summary': 'Covers the core syntax and language of elixir, providing the equivalent of a standard 300-page book in one tutorial, with timestamps for efficient viewing and access to comprehensive code and cheat sheet resources for effective learning.', 'duration': 35.825, 'highlights': ['The tutorial covers the core syntax and language of Elixir, equivalent to a standard 300-page book.', 'Viewers are provided with timestamps for efficient viewing, enabling them to access specific parts of the tutorial.', 'Comprehensive code and a heavily commented cheat sheet are available to aid in learning the language effectively.']}], 'duration': 35.825, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL0592.jpg', 'highlights': ['Covers the core syntax and language of Elixir, equivalent to a standard 300-page book.', 'Viewers are provided with timestamps for efficient viewing.', 'Comprehensive code and a heavily commented cheat sheet are available to aid in learning.']}, {'end': 364.511, 'segs': [{'end': 170.168, 'src': 'embed', 'start': 145.633, 'weight': 3, 'content': [{'end': 151.458, 'text': 'so if i want to now output this information, i go, i o puts here.', 'start': 145.633, 'duration': 5.825}, {'end': 154.02, 'text': "I won't use parentheses and I'll go hello.", 'start': 151.458, 'duration': 2.562}, {'end': 157.021, 'text': 'then I can use string, interpolation or just.', 'start': 154.02, 'duration': 3.001}, {'end': 164.465, 'text': "it just provides a way for me to take the variable name and insert it inside of this string that I'm going to output on the screen.", 'start': 157.021, 'duration': 7.444}, {'end': 170.168, 'text': "I'm gonna put name inside of there and as you can see, there are no semicolons, no periods, no, nothing.", 'start': 164.465, 'duration': 5.703}], 'summary': 'Using string interpolation, the variable name is inserted into the output without using parentheses or punctuation.', 'duration': 24.535, 'max_score': 145.633, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL0145633.jpg'}, {'end': 364.511, 'src': 'embed', 'start': 341.053, 'weight': 0, 'content': [{'end': 350.107, 'text': "So I'm going to say atom and I'll say is Adam, I'm guessing you probably was guessing, and this is an Adam right here.", 'start': 341.053, 'duration': 9.054}, {'end': 353.026, 'text': 'So Pittsburgh, is an example of an atom.', 'start': 350.428, 'duration': 2.598}, {'end': 356.488, 'text': 'The name for it is exactly the same as the value.', 'start': 353.267, 'duration': 3.221}, {'end': 361.21, 'text': "And I'm going to show you a whole bunch of examples here that are going to make all of this make a lot more sense.", 'start': 356.508, 'duration': 4.702}, {'end': 362.61, 'text': "Let's come in here and do that.", 'start': 361.53, 'duration': 1.08}, {'end': 364.511, 'text': 'And you can see atom true comes back.', 'start': 362.87, 'duration': 1.641}], 'summary': 'Pittsburgh is an example of an atom, with the name and value being the same.', 'duration': 23.458, 'max_score': 341.053, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL0341053.jpg'}], 'start': 36.717, 'title': 'Elixir basics and data types', 'summary': 'Covers elixir installation on mac os and windows, module creation, and function definition using atom. it also demonstrates user input and output, and covers different data types including integers, floats, and atoms in elixir.', 'chapters': [{'end': 95.511, 'start': 36.717, 'title': 'Elixir installation and module creation', 'summary': 'Covers the installation of elixir on mac os and windows, then demonstrates module creation and function definition in elixir using atom, with a focus on creating a main function for ease of use.', 'duration': 58.794, 'highlights': ['The chapter covers the installation of Elixir on Mac OS and Windows, emphasizing a tutorial link provided for installation.', "Demonstrates the creation of a module named 'm' and the definition of functions in Elixir using Atom.", 'Emphasizes the creation of a main function in Elixir for ease of use and practicality.']}, {'end': 213.173, 'start': 95.888, 'title': 'User input and output in elixir', 'summary': 'Demonstrates how to prompt the user for input, store it in a variable, and then output it using string interpolation in elixir, all without using semicolons or periods.', 'duration': 117.285, 'highlights': ['The chapter teaches how to ask the user for their name, store it in a variable, and then output it without using semicolons or periods.', "It demonstrates the process of receiving input from the user and trimming off the new line using 'io gets' and 'string trim'.", 'It explains the conventions for naming variables in Elixir, which start with lowercase letters or underscores and contain uppercase letters, underscores, or numbers.', "The tutorial also covers executing the code in the terminal using 'IEX' and provides a tip for aborting or exiting the terminal."]}, {'end': 364.511, 'start': 213.494, 'title': 'Learning elixir data types', 'summary': 'Covers different data types including integers, floats, and atoms in elixir, demonstrating their usage and checking their types through code examples.', 'duration': 151.017, 'highlights': ['The chapter covers different data types including integers, floats, and atoms in Elixir, demonstrating their usage and checking their types through code examples.', 'Integers have no maximum size, floats are represented by decimal numbers, and atoms have names that are the same as their values.', 'Examples of using integers, floats, and atoms are provided along with code demonstrations of checking their types and values.']}], 'duration': 327.794, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL036717.jpg', 'highlights': ['The chapter covers the installation of Elixir on Mac OS and Windows, emphasizing a tutorial link provided for installation.', 'The chapter covers different data types including integers, floats, and atoms in Elixir, demonstrating their usage and checking their types through code examples.', "Demonstrates the creation of a module named 'm' and the definition of functions in Elixir using Atom.", 'The chapter teaches how to ask the user for their name, store it in a variable, and then output it without using semicolons or periods.']}, {'end': 764.056, 'segs': [{'end': 459.28, 'src': 'embed', 'start': 431.536, 'weight': 3, 'content': [{'end': 438.262, 'text': 'And to do that you have to type in string followed by length and then you throw in whatever your string name is.', 'start': 431.536, 'duration': 6.726}, {'end': 439.463, 'text': "And I'm going to execute these.", 'start': 438.282, 'duration': 1.181}, {'end': 441.845, 'text': "I'm going to do a bunch of these and then I'll execute it all at once.", 'start': 439.523, 'duration': 2.322}, {'end': 448.139, 'text': "We're also going to be able to compare strings or actually I'm going to show you how to combine strings first.", 'start': 442.25, 'duration': 5.889}, {'end': 450.764, 'text': "So let's go and let's create another string.", 'start': 448.36, 'duration': 2.404}, {'end': 452.807, 'text': "Let's call this longer string.", 'start': 450.804, 'duration': 2.003}, {'end': 459.28, 'text': "And to combine it, we're going to go myString, and this is how we combine or concatenate strings.", 'start': 453.334, 'duration': 5.946}], 'summary': 'Demonstrating string manipulation and concatenation in code execution.', 'duration': 27.744, 'max_score': 431.536, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL0431536.jpg'}, {'end': 720.181, 'src': 'embed', 'start': 675.294, 'weight': 0, 'content': [{'end': 682.18, 'text': "i'm going to go string and reverse and we'll throw a longer string inside of there.", 'start': 675.294, 'duration': 6.886}, {'end': 686.804, 'text': "we're going to also be able to use uppercase, so let's do that.", 'start': 682.18, 'duration': 4.624}, {'end': 688.305, 'text': 'this is going to be just.', 'start': 686.804, 'duration': 1.501}, {'end': 691.147, 'text': 'all we need to do is come in here and get this and change this to upcase.', 'start': 688.305, 'duration': 2.842}, {'end': 695.199, 'text': "We're also going to make all the characters lowercase.", 'start': 692.418, 'duration': 2.781}, {'end': 698.221, 'text': 'And to do that, we type in downcase.', 'start': 695.44, 'duration': 2.781}, {'end': 704.004, 'text': "We're going to be able to capitalize just the very first character and have everything else be lowercase.", 'start': 698.741, 'duration': 5.263}, {'end': 707.045, 'text': 'So capitalize and that gets you that.', 'start': 704.664, 'duration': 2.381}, {'end': 710.247, 'text': "And also something else that's kind of neat to be able to do.", 'start': 707.446, 'duration': 2.801}, {'end': 714.754, 'text': "is to know that you're going to be able to pipe values from one thing to another.", 'start': 710.828, 'duration': 3.926}, {'end': 720.181, 'text': "So let's say I want to multiply 4 times 10, and then I want to pipe it to a different function.", 'start': 714.814, 'duration': 5.367}], 'summary': 'Demonstrates string manipulation, uppercase, lowercase, capitalize, and piping values.', 'duration': 44.887, 'max_score': 675.294, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL0675294.jpg'}, {'end': 767.678, 'src': 'embed', 'start': 742.305, 'weight': 6, 'content': [{'end': 747.188, 'text': 'This is the list representation inside of Elixir.', 'start': 742.305, 'duration': 4.883}, {'end': 749.769, 'text': 'You can see that was printed because we used Inspect.', 'start': 747.208, 'duration': 2.561}, {'end': 756.292, 'text': "You're going to see here we went and reversed everything uppercase, lowercase, capitalized and then 40 comes back,", 'start': 749.869, 'duration': 6.423}, {'end': 760.154, 'text': 'because we went and performed this calculation and passed it to puts.', 'start': 756.292, 'duration': 3.862}, {'end': 764.056, 'text': "Okay, so that's a rundown of a lot of the things we can do with strings.", 'start': 760.174, 'duration': 3.882}, {'end': 767.678, 'text': 'Now I want to show you briefly some of the things we can do mathematically.', 'start': 764.136, 'duration': 3.542}], 'summary': 'Demonstrated string operations and mathematical calculations in elixir.', 'duration': 25.373, 'max_score': 742.305, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL0742305.jpg'}], 'start': 364.811, 'title': 'String manipulation in programming', 'summary': 'Covers the basics of different data types and various string manipulation techniques in programming, including defining, combining, and comparing strings, along with operations such as equality checks, substring, reversing, and converting case, with examples provided.', 'chapters': [{'end': 475.655, 'start': 364.811, 'title': 'Working with data types and strings in programming', 'summary': 'Covers the basics of different data types in programming, including the use of spaces, defining ranges, and working with strings, such as defining, getting length, combining, and comparing, with examples provided.', 'duration': 110.844, 'highlights': ['The chapter introduces the basics of different data types, including the use of spaces, defining ranges, and working with strings, providing a fundamental understanding for programming (e.g. using spaces inside atoms, defining ranges, defining and manipulating strings).', 'The process of defining strings in programming is explained, including the use of double quotes and examples of creating and manipulating strings (e.g. defining strings, getting the length of strings, combining or concatenating strings).', 'The concept of comparing strings in programming is demonstrated, emphasizing the ability to compare strings for equality and providing insights into string manipulation (e.g. comparing strings for equality).']}, {'end': 764.056, 'start': 477.489, 'title': 'String manipulation in elixir', 'summary': 'Covers various string manipulation techniques in elixir, including checking for equality, substring operations, reversing, converting case, and piping values to different functions.', 'duration': 286.567, 'highlights': ["You can check for equality in both value and data type using the three equals operator, leading to a false equality result when comparing 'egg' and 'Egg'.", 'String manipulation allows for operations such as checking if a string contains another, obtaining the first character, and retrieving characters at specified indices.', "The ability to split a string into a list using the 'inspect' function, providing insight into the internal representation of a list, is demonstrated.", 'The demonstration of techniques to reverse strings, convert to uppercase, lowercase, and capitalize the first character showcases the variety of string manipulation capabilities in Elixir.', 'The concept of piping values from one function to another is introduced, exemplifying the functional language nature of Elixir and its application in executing code and outputting results.']}], 'duration': 399.245, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL0364811.jpg', 'highlights': ['The chapter introduces the basics of different data types, including the use of spaces, defining ranges, and working with strings, providing a fundamental understanding for programming (e.g. using spaces inside atoms, defining ranges, defining and manipulating strings).', 'The process of defining strings in programming is explained, including the use of double quotes and examples of creating and manipulating strings (e.g. defining strings, getting the length of strings, combining or concatenating strings).', 'The concept of comparing strings in programming is demonstrated, emphasizing the ability to compare strings for equality and providing insights into string manipulation (e.g. comparing strings for equality).', 'The concept of piping values from one function to another is introduced, exemplifying the functional language nature of Elixir and its application in executing code and outputting results.', 'The demonstration of techniques to reverse strings, convert to uppercase, lowercase, and capitalize the first character showcases the variety of string manipulation capabilities in Elixir.', "You can check for equality in both value and data type using the three equals operator, leading to a false equality result when comparing 'egg' and 'Egg'.", 'String manipulation allows for operations such as checking if a string contains another, obtaining the first character, and retrieving characters at specified indices.', "The ability to split a string into a list using the 'inspect' function, providing insight into the internal representation of a list, is demonstrated."]}, {'end': 1272.03, 'segs': [{'end': 897.196, 'src': 'embed', 'start': 871.956, 'weight': 1, 'content': [{'end': 877.581, 'text': 'And here, we are going to be, whoops, I went, I have to go in here and do this, obviously.', 'start': 871.956, 'duration': 5.625}, {'end': 881.284, 'text': "Let's go like that, and throw that new line inside of there.", 'start': 877.781, 'duration': 3.503}, {'end': 881.864, 'text': 'There we go.', 'start': 881.344, 'duration': 0.52}, {'end': 884.066, 'text': "Now we're going to get the proper output that we were expecting.", 'start': 881.884, 'duration': 2.182}, {'end': 885.847, 'text': 'Get out ahead of myself a little bit.', 'start': 884.286, 'duration': 1.561}, {'end': 886.448, 'text': "Let's run it.", 'start': 885.967, 'duration': 0.481}, {'end': 887.208, 'text': 'All right.', 'start': 886.868, 'duration': 0.34}, {'end': 891.792, 'text': 'So now you can see we were here just comparing the values and not paying attention to the data type.', 'start': 887.228, 'duration': 4.564}, {'end': 892.913, 'text': 'So that comes back as true.', 'start': 891.812, 'duration': 1.101}, {'end': 897.196, 'text': 'Here we were comparing the values and the data types.', 'start': 893.153, 'duration': 4.043}], 'summary': 'Comparison of values and data types in code execution.', 'duration': 25.24, 'max_score': 871.956, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL0871956.jpg'}, {'end': 994.602, 'src': 'embed', 'start': 965.416, 'weight': 5, 'content': [{'end': 966.858, 'text': "we'll talk about logical operators.", 'start': 965.416, 'duration': 1.442}, {'end': 977.63, 'text': "so i'm going to create a function here called age 16 and what i'm going to check for is if this person is going to be able to vote and drive.", 'start': 966.858, 'duration': 10.772}, {'end': 988.377, 'text': "so i'll say vote and drive and then inside of here we'll get rid of this and we're going to say If age is greater than or equal to 16,", 'start': 977.63, 'duration': 10.747}, {'end': 992.3, 'text': "and I know this is bad logic, what I'm doing here?", 'start': 988.377, 'duration': 3.923}, {'end': 994.602, 'text': "I'm just trying to demonstrate how logical operators work.", 'start': 992.32, 'duration': 2.282}], 'summary': 'Demonstrating logical operators in a function to check voting and driving eligibility based on age >= 16.', 'duration': 29.186, 'max_score': 965.416, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL0965416.jpg'}, {'end': 1239.058, 'src': 'embed', 'start': 1209.191, 'weight': 0, 'content': [{'end': 1215.517, 'text': "so whenever it hits this guy, it's going to say you can wait even though the age is set as 16.", 'start': 1209.191, 'duration': 6.326}, {'end': 1218.64, 'text': 'so putting these in the proper order is very, very important.', 'start': 1215.517, 'duration': 3.123}, {'end': 1222.443, 'text': "so actually, i should have put the 18 up here, but i'm just going to do it this way.", 'start': 1218.88, 'duration': 3.563}, {'end': 1225.086, 'text': "so yeah, let's just come in here and do it this way.", 'start': 1222.443, 'duration': 2.643}, {'end': 1232.552, 'text': 'you can vote and then, if you want to have a default action, that is always going to be true.', 'start': 1225.086, 'duration': 7.466}, {'end': 1239.058, 'text': "you just put true inside of there, exactly like that, and then we'll say default inside of here.", 'start': 1232.552, 'duration': 6.506}], 'summary': 'Ordering is crucial; default action is always true.', 'duration': 29.867, 'max_score': 1209.191, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL01209191.jpg'}], 'start': 764.136, 'title': 'Math operations & decision making in elixir', 'summary': 'Introduces mathematical operations such as addition, subtraction, multiplication, division, integer division, and modulus, along with functions like logs and power. it also covers comparing values, logical operators, and decision making using if, else, unless, and conditional statements in elixir.', 'chapters': [{'end': 806.771, 'start': 764.136, 'title': 'Mathematical operations in programming', 'summary': 'Introduces various mathematical operations including addition, subtraction, multiplication, division, integer division, and modulus, with examples and mentions of other functions like logs, power, e, cosine, and sine.', 'duration': 42.635, 'highlights': ['The chapter covers addition, subtraction, multiplication, division, integer division, and modulus operations in programming.', 'It mentions the execution of the math functions and provides examples of various operations.', 'The chapter mentions the availability of various other math functions like logs, power, E, cosine, and sine.']}, {'end': 1272.03, 'start': 807.051, 'title': 'Comparing values & decision making in elixir', 'summary': 'Covers comparing values using elixir, including examples of equals, not equals, greater than, less than, logical operators, and decision making with if, else, unless, and conditional statements.', 'duration': 464.979, 'highlights': ["The chapter demonstrates how to compare values using Elixir, including examples of equals, not equals, greater than, and less than, as well as logical operators. It covers examples of using double equal signs, three equal signs, not equals, greater than, greater than or equal to, less than, less than or equal to, and logical operators such as 'and', 'or', and 'not'.", 'The chapter explains decision making in Elixir through if, else, unless, and conditional statements, demonstrating different conditions and their corresponding actions. It showcases the usage of if, else, unless, and conditional statements to perform actions based on different comparisons, with examples of age-related conditions and their corresponding outputs.']}], 'duration': 507.894, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL0764136.jpg', 'highlights': ['The chapter covers addition, subtraction, multiplication, division, integer division, and modulus operations in programming.', 'The chapter demonstrates how to compare values using Elixir, including examples of equals, not equals, greater than, and less than, as well as logical operators.', 'The chapter explains decision making in Elixir through if, else, unless, and conditional statements, demonstrating different conditions and their corresponding actions.', 'The chapter mentions the availability of various other math functions like logs, power, E, cosine, and sine.', "It covers examples of using double equal signs, three equal signs, not equals, greater than, greater than or equal to, less than, less than or equal to, and logical operators such as 'and', 'or', and 'not'.", 'It mentions the execution of the math functions and provides examples of various operations.']}, {'end': 1661.118, 'segs': [{'end': 1379.602, 'src': 'embed', 'start': 1353.977, 'weight': 0, 'content': [{'end': 1363.107, 'text': "is greater than 18, and then I'm gonna put a comma inside of there, then do, and you're going to define what you want to be done.", 'start': 1353.977, 'duration': 9.13}, {'end': 1368.249, 'text': 'And otherwise, I can put an else statement directly inside of here.', 'start': 1363.868, 'duration': 4.381}, {'end': 1375.718, 'text': "In that situation, I'm going to put can't vote inside of there as the other option that's available to us.", 'start': 1368.529, 'duration': 7.189}, {'end': 1379.602, 'text': "And we'll come in here and we'll run it and we'll execute it.", 'start': 1376.178, 'duration': 3.424}], 'summary': 'Demonstrating conditional statements with python, executing code', 'duration': 25.625, 'max_score': 1353.977, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL01353977.jpg'}, {'end': 1554.129, 'src': 'embed', 'start': 1531.676, 'weight': 1, 'content': [{'end': 1542.599, 'text': "You're also going to be able to come in and delete an index inside of a tuple, but once again, You're going to have to store it in a new data area.", 'start': 1531.676, 'duration': 10.923}, {'end': 1545.261, 'text': 'So my stats three is going to be equal to.', 'start': 1542.739, 'duration': 2.522}, {'end': 1548.364, 'text': "We're going to say tuple delete at.", 'start': 1545.281, 'duration': 3.083}, {'end': 1551.767, 'text': "And you're going to pass in whatever tuple you want to work with.", 'start': 1548.824, 'duration': 2.943}, {'end': 1554.129, 'text': 'So this is going to be my stats two.', 'start': 1552.107, 'duration': 2.022}], 'summary': 'Ability to delete an index inside a tuple, stored in a new data area.', 'duration': 22.453, 'max_score': 1531.676, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL01531676.jpg'}], 'start': 1272.05, 'title': "Elixir's conditional statements and tuples", 'summary': 'Covers conditional statements in elixir, including if-else, case statements, and ternary operator, with code examples. it also focuses on tuples, covering their properties, operations, and use cases, including manipulation and pattern matching.', 'chapters': [{'end': 1379.602, 'start': 1272.05, 'title': 'Conditional statements in elixir', 'summary': 'Discusses different ways to perform actions based on conditions in elixir, including if-else statements, case statements, and the ternary operator, while showcasing code examples and their execution.', 'duration': 107.552, 'highlights': ['The chapter discusses different ways to perform actions based on conditions in Elixir The transcript covers various methods to execute actions based on conditions in Elixir, including if-else statements, case statements, and the ternary operator.', 'The demonstration of using case statements as a switch-like structure in Elixir The speaker demonstrates the usage of case statements as a switch-like structure in Elixir, allowing for different actions based on specific conditions or values.', 'The explanation and example of implementing a ternary operator in Elixir The transcript provides an explanation and code example of implementing a ternary operator in Elixir, showcasing how to execute different actions based on a specified condition.']}, {'end': 1661.118, 'start': 1379.762, 'title': 'Elixir: tuples and decision making', 'summary': 'Illustrates the use of tuples in elixir, emphasizing their properties, operations, and specific use cases, demonstrating how to create, manipulate, and utilize tuples, including checking, appending, retrieving, deleting, inserting, duplicating values, and pattern matching.', 'duration': 281.356, 'highlights': ['The chapter illustrates the use of tuples in Elixir, emphasizing their properties, operations, and specific use cases. Covers the purpose and usage of tuples in Elixir, providing an overview of their characteristics and functions.', "Demonstrates how to create, manipulate, and utilize tuples, including checking, appending, retrieving, deleting, inserting, duplicating values, and pattern matching. Provides detailed instructions on working with tuples, including checking if it's a tuple, appending values, retrieving values by index, getting tuple size, deleting an index, inserting at an index, creating a tuple with duplicated values, and using tuples for pattern matching.", 'Emphasizes that tuples are not for enumerating through or cycling through to check for values one by one. Highlights that tuples are not meant for enumeration or sequential checking, emphasizing their non-iterative nature.']}], 'duration': 389.068, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL01272050.jpg', 'highlights': ['The demonstration of using case statements as a switch-like structure in Elixir The speaker demonstrates the usage of case statements as a switch-like structure in Elixir, allowing for different actions based on specific conditions or values.', 'The explanation and example of implementing a ternary operator in Elixir The transcript provides an explanation and code example of implementing a ternary operator in Elixir, showcasing how to execute different actions based on a specified condition.', 'Covers the purpose and usage of tuples in Elixir, providing an overview of their characteristics and functions.', "Demonstrates how to create, manipulate, and utilize tuples, including checking, appending, retrieving, deleting, inserting, duplicating values, and pattern matching. Provides detailed instructions on working with tuples, including checking if it's a tuple, appending values, retrieving values by index, getting tuple size, deleting an index, inserting at an index, creating a tuple with duplicated values, and using tuples for pattern matching."]}, {'end': 2366.019, 'segs': [{'end': 1783.694, 'src': 'heatmap', 'start': 1740.526, 'weight': 0.77, 'content': [{'end': 1744.287, 'text': "So let's check if there is a six in list.", 'start': 1740.526, 'duration': 3.761}, {'end': 1752.63, 'text': 'four, you can separate the head, which is the very first item inside of the list, from the tail, which are all the other different items.', 'start': 1744.287, 'duration': 8.343}, {'end': 1754.376, 'text': 'just by going like this.', 'start': 1753.154, 'duration': 1.222}, {'end': 1756.979, 'text': "So we'll say head and tail.", 'start': 1754.776, 'duration': 2.203}, {'end': 1761.324, 'text': "I'm gonna put some spaces inside of there so it's a little bit easier to read.", 'start': 1756.999, 'duration': 4.325}, {'end': 1765.629, 'text': "And we'll say we're gonna perform this operation on list three.", 'start': 1761.785, 'duration': 3.844}, {'end': 1770.696, 'text': "And let's go in here and let's output the head for this guy.", 'start': 1765.65, 'duration': 5.046}, {'end': 1773.56, 'text': 'so go ahead with the very first item in the list.', 'start': 1771.096, 'duration': 2.464}, {'end': 1774.481, 'text': "that's what the head is.", 'start': 1773.56, 'duration': 0.921}, {'end': 1779.809, 'text': "you're going to be using this a lot, so let's go and get that guy and then let's go.", 'start': 1774.481, 'duration': 5.328}, {'end': 1783.694, 'text': "and i didn't cover this yet, so i'm going to use it.", 'start': 1779.809, 'duration': 3.885}], 'summary': 'Demonstrating separation of head and tail in a list.', 'duration': 43.168, 'max_score': 1740.526, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL01740526.jpg'}, {'end': 1833.688, 'src': 'embed', 'start': 1802.969, 'weight': 1, 'content': [{'end': 1806.671, 'text': "let's go run that and here you can see we come back as true.", 'start': 1802.969, 'duration': 3.702}, {'end': 1811.894, 'text': 'And where that comes from is we checked if there was a six in list four.', 'start': 1808.152, 'duration': 3.742}, {'end': 1815.196, 'text': 'we went and grabbed the very first item out of the list.', 'start': 1811.894, 'duration': 3.302}, {'end': 1819.359, 'text': "That's the one tail is all the other different items that we have inside of there.", 'start': 1815.297, 'duration': 4.062}, {'end': 1822.021, 'text': 'And then here we printed out the tail on the screen.', 'start': 1819.779, 'duration': 2.242}, {'end': 1825.343, 'text': "I've been using inspect here and want to point something out.", 'start': 1822.381, 'duration': 2.962}, {'end': 1826.844, 'text': 'It is possible.', 'start': 1825.943, 'duration': 0.901}, {'end': 1833.688, 'text': "Now, like I said, inspect is going to print the internal representation of a value, but it's important to understand that it may give you odd results.", 'start': 1826.864, 'duration': 6.824}], 'summary': "Code successfully checks for '6' in list 4 and prints tail on the screen.", 'duration': 30.719, 'max_score': 1802.969, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL01802969.jpg'}, {'end': 1904.45, 'src': 'heatmap', 'start': 1858.845, 'weight': 0.717, 'content': [{'end': 1863.128, 'text': "And if you do that, then you don't have to worry about it outputting bad data.", 'start': 1858.845, 'duration': 4.283}, {'end': 1866.55, 'text': 'And you can see that it printed 97, 98.', 'start': 1863.668, 'duration': 2.882}, {'end': 1869.713, 'text': 'The AB part there is just going to be.', 'start': 1866.551, 'duration': 3.162}, {'end': 1876.899, 'text': 'basically, what happens with Elixir like Erlang is whatever the last value inside of the function is, is going to print out on the screen.', 'start': 1869.713, 'duration': 7.186}, {'end': 1878.54, 'text': "Okay So there's that.", 'start': 1876.919, 'duration': 1.621}, {'end': 1883.013, 'text': 'All right, just in case you come across some problems with inspect and you want to fix it.', 'start': 1879.17, 'duration': 3.843}, {'end': 1887.757, 'text': "You're also going to be, with lists, be able to enumerate over lists.", 'start': 1883.193, 'duration': 4.564}, {'end': 1891.64, 'text': 'And to do so, we can go enum and each.', 'start': 1888.157, 'duration': 3.483}, {'end': 1895.263, 'text': "And I'm going to say tail fn item.", 'start': 1892.34, 'duration': 2.923}, {'end': 1901.227, 'text': 'And we can come in here and output the individual items as we come across them.', 'start': 1896.043, 'duration': 5.184}, {'end': 1904.45, 'text': 'Item and then close that off with end.', 'start': 1901.808, 'duration': 2.642}], 'summary': 'Elixir allows printing last function value, like 97, 98, and enables list enumeration using enum and each.', 'duration': 45.605, 'max_score': 1858.845, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL01858845.jpg'}, {'end': 2025.65, 'src': 'embed', 'start': 1981.18, 'weight': 0, 'content': [{'end': 1991.464, 'text': "you create this new function outside of that area and this guy is going to be passed in the words, the whole entire list and what it's going to do.", 'start': 1981.18, 'duration': 10.284}, {'end': 1996.813, 'text': "is it's going to actually break the head and the tail part right here inside of there.", 'start': 1992.17, 'duration': 4.643}, {'end': 2001.656, 'text': "I'm going to go do and then IO puts and word.", 'start': 1996.833, 'duration': 4.823}, {'end': 2005.298, 'text': "So it's going to break off the head and it's going to output it on the screen.", 'start': 2001.876, 'duration': 3.422}, {'end': 2007.059, 'text': "And then it's going to call itself.", 'start': 2005.598, 'duration': 1.461}, {'end': 2009.701, 'text': 'So display list again, pass in word.', 'start': 2007.299, 'duration': 2.402}, {'end': 2013.723, 'text': "It's going to break off the head, output it and so forth and so on.", 'start': 2009.741, 'duration': 3.982}, {'end': 2022.227, 'text': "One thing is you're going to have to, whenever you're using recursion, always have an ending, a situation in which it no longer calls itself.", 'start': 2014.139, 'duration': 8.088}, {'end': 2025.65, 'text': "And we're going to be able, we're going to give this the same name.", 'start': 2023.007, 'duration': 2.643}], 'summary': 'A function is created to recursively break and display parts of a list.', 'duration': 44.47, 'max_score': 1981.18, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL01981180.jpg'}, {'end': 2092.657, 'src': 'embed', 'start': 2066.467, 'weight': 4, 'content': [{'end': 2071.53, 'text': "What's the problem here? It's saying there's an error on 45, unexpected token end.", 'start': 2066.467, 'duration': 5.063}, {'end': 2076.812, 'text': 'Ah, whenever I originally created the displayList down here, the second one, it threw another end inside there.', 'start': 2072.11, 'duration': 4.702}, {'end': 2078.013, 'text': 'So we got rid of that.', 'start': 2077.152, 'duration': 0.861}, {'end': 2079.534, 'text': "And we'll run it.", 'start': 2078.773, 'duration': 0.761}, {'end': 2085.081, 'text': 'And now you can see it also is another way for us to print out all of those different words in a list.', 'start': 2080.054, 'duration': 5.027}, {'end': 2087.445, 'text': "And we'll do more with recursion as the tutorial continues.", 'start': 2085.121, 'duration': 2.324}, {'end': 2092.657, 'text': "Now we're also going to be able to come in here and delete given items from a list.", 'start': 2087.895, 'duration': 4.762}], 'summary': 'Fixing code errors, printing lists, and future plans for recursion and list deletion.', 'duration': 26.19, 'max_score': 2066.467, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL02066467.jpg'}, {'end': 2229.445, 'src': 'heatmap', 'start': 2175.238, 'weight': 0.913, 'content': [{'end': 2180.642, 'text': 'And the final thing is you can actually create lists of key value tuples.', 'start': 2175.238, 'duration': 5.404}, {'end': 2195.284, 'text': 'So to do that, you could say something like name, and then Derek, put a comma, height, and 6.25, and 6.25, and whatever.', 'start': 2181.184, 'duration': 14.1}, {'end': 2198.068, 'text': 'So you can go and experiment with that on your own.', 'start': 2195.304, 'duration': 2.764}, {'end': 2199.917, 'text': "So there's a rundown of lists.", 'start': 2198.376, 'duration': 1.541}, {'end': 2202.74, 'text': "Now I'm going to jump over and talk about maps.", 'start': 2200.218, 'duration': 2.522}, {'end': 2207.284, 'text': 'Now a map is going to hold a collection of key-valued pairs.', 'start': 2203.36, 'duration': 3.924}, {'end': 2210.687, 'text': "So let's say we want to do something like create a map called Capitals.", 'start': 2207.364, 'duration': 3.323}, {'end': 2216.572, 'text': "What we're going to do here is put a percent sign and then we're going to define our keys and our values.", 'start': 2211.107, 'duration': 5.465}, {'end': 2229.445, 'text': "So I'm going to say that Alabama is going to be my key and the value assigned to that is going to be Montgomery, which is the capital of Alabama.", 'start': 2217.153, 'duration': 12.292}], 'summary': 'Tutorial covers creating lists of key-value tuples and defining maps using key-value pairs for states and their capitals.', 'duration': 54.207, 'max_score': 2175.238, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL02175238.jpg'}, {'end': 2283.741, 'src': 'embed', 'start': 2255.094, 'weight': 3, 'content': [{'end': 2257.856, 'text': "Now you're going to be able to retrieve values using a key.", 'start': 2255.094, 'duration': 2.762}, {'end': 2264.901, 'text': "So let's say we want to get the capital of Alaska and output that on our screen.", 'start': 2258.676, 'duration': 6.225}, {'end': 2266.162, 'text': "We'll say is.", 'start': 2264.941, 'duration': 1.221}, {'end': 2272.966, 'text': 'Well, we can just go capitals like that and then pass in whatever your key is.', 'start': 2266.702, 'duration': 6.264}, {'end': 2274.668, 'text': 'Let me do some more stuff.', 'start': 2272.986, 'duration': 1.682}, {'end': 2279.411, 'text': "Let's say you can also use atoms as keys, which is nice to know.", 'start': 2274.988, 'duration': 4.423}, {'end': 2283.741, 'text': "Let's go and copy this and just use atoms instead of strings.", 'start': 2280.177, 'duration': 3.564}], 'summary': 'Retrieve values using a key, like the capital of alaska, using atoms or strings.', 'duration': 28.647, 'max_score': 2255.094, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL02255094.jpg'}], 'start': 1661.118, 'title': 'Managing data structures in python and elixir', 'summary': 'Covers manipulation of tuples and lists in python, including appending, checking for items, separating head and tail, and inspecting the internal representation. it also discusses the usage of lists in elixir, including enumeration, recursion, deletion, insertion, and accessing first and last items, as well as the creation and retrieval of key-value pairs in maps, with examples and explanations.', 'chapters': [{'end': 1869.713, 'start': 1661.118, 'title': 'Tuples and lists in python', 'summary': 'Covers the manipulation of tuples and lists in python, including operations such as appending, checking for items, separating head and tail, and using inspect to output the internal representation of a list.', 'duration': 208.595, 'highlights': ['The chapter covers the manipulation of tuples and lists in Python Includes operations such as appending, checking for items, and separating head and tail.', 'Using inspect to output the internal representation of a list Shows how to use inspect to display the internal representation of a list, and the importance of specifying the output format to avoid unexpected results.', 'Appending the age of 42 to the tuple Demonstrates the addition of a specific value (age 42) to a tuple.', 'Checking the size of the tuple Shows the process of verifying the number of elements in a tuple, indicating there are four pieces of data.', "Combining two different lists into a single list Illustrates the process of merging two separate lists into one larger list using the '+' operator."]}, {'end': 2366.019, 'start': 1869.713, 'title': 'Elixir lists and maps tutorial', 'summary': 'Covers the usage of lists in elixir, including enumeration, recursion, deletion, insertion, and accessing first and last items, alongside the creation and retrieval of key-value pairs in maps, with examples and explanations.', 'duration': 496.306, 'highlights': ['Usage of recursion to cycle through a list Demonstration of using recursion to cycle through a list, breaking off the head and outputting it, with an explanation of the ending condition for recursion.', 'Deletion and insertion in a list Illustration of deleting and inserting items within a list, along with specific examples of deletion at a given index and insertion at a specific position.', 'Creation and retrieval of key-value pairs in maps Explanation and examples of creating and accessing key-value pairs in maps, including the use of atoms as keys and the insertion of new key-value pairs in maps.']}], 'duration': 704.901, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL01661118.jpg', 'highlights': ['Using inspect to output the internal representation of a list Shows how to use inspect to display the internal representation of a list, and the importance of specifying the output format to avoid unexpected results.', 'Usage of recursion to cycle through a list Demonstration of using recursion to cycle through a list, breaking off the head and outputting it, with an explanation of the ending condition for recursion.', 'Creation and retrieval of key-value pairs in maps Explanation and examples of creating and accessing key-value pairs in maps, including the use of atoms as keys and the insertion of new key-value pairs in maps.', 'Deletion and insertion in a list Illustration of deleting and inserting items within a list, along with specific examples of deletion at a given index and insertion at a specific position.', 'The chapter covers the manipulation of tuples and lists in Python Includes operations such as appending, checking for items, and separating head and tail.']}, {'end': 3041.245, 'segs': [{'end': 2502.378, 'src': 'embed', 'start': 2472.853, 'weight': 8, 'content': [{'end': 2474.954, 'text': "So let's go and create an anonymous function.", 'start': 2472.853, 'duration': 2.101}, {'end': 2478.435, 'text': "And we'll have it assigned to the variable getSum.", 'start': 2475.214, 'duration': 3.221}, {'end': 2480.997, 'text': 'And getSum then could be passed into a function.', 'start': 2478.896, 'duration': 2.101}, {'end': 2485.179, 'text': "And what it's going to receive is an x and y value.", 'start': 2481.577, 'duration': 3.602}, {'end': 2491.481, 'text': "And what it's going to do is it's going to add x and y together.", 'start': 2485.819, 'duration': 5.662}, {'end': 2492.162, 'text': 'All right.', 'start': 2491.822, 'duration': 0.34}, {'end': 2493.102, 'text': "And that's all we got.", 'start': 2492.182, 'duration': 0.92}, {'end': 2494.663, 'text': "Now you've got an anonymous function.", 'start': 2493.242, 'duration': 1.421}, {'end': 2499.875, 'text': "Now what you're going to be able to do is throw it around just like it is any type of variable.", 'start': 2495.069, 'duration': 4.806}, {'end': 2502.378, 'text': "So what we're going to do here is we're going to go IOPUTS.", 'start': 2500.115, 'duration': 2.263}], 'summary': 'Creating an anonymous function to add x and y together and assign it to the variable getsum, allowing it to be used as a variable.', 'duration': 29.525, 'max_score': 2472.853, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL02472853.jpg'}, {'end': 2548.788, 'src': 'embed', 'start': 2515.293, 'weight': 0, 'content': [{'end': 2518.779, 'text': "And then you're going to pass in whatever the parameters are you want passed to that function.", 'start': 2515.293, 'duration': 3.486}, {'end': 2522.264, 'text': 'Whoops, two of these extra things slipped inside of there.', 'start': 2519.019, 'duration': 3.245}, {'end': 2523.526, 'text': 'So get rid of that.', 'start': 2522.545, 'duration': 0.981}, {'end': 2524.668, 'text': 'And there you go.', 'start': 2523.967, 'duration': 0.701}, {'end': 2529.015, 'text': "And we're going to do a couple more here so you can see them all executed at the same time.", 'start': 2525.149, 'duration': 3.866}, {'end': 2532.577, 'text': 'There is also a shorthand of the above.', 'start': 2529.295, 'duration': 3.282}, {'end': 2535.039, 'text': "So let's go and create another one of these.", 'start': 2532.897, 'duration': 2.142}, {'end': 2536.86, 'text': "Let's call it get less.", 'start': 2535.099, 'duration': 1.761}, {'end': 2540.602, 'text': "And what you're going to be able to do here, I'm going to model it in much the same way.", 'start': 2537.38, 'duration': 3.222}, {'end': 2548.788, 'text': "You're going to be able to go like that and then one and negative, throw another and sign inside of there and two.", 'start': 2540.622, 'duration': 8.166}], 'summary': 'Demonstration of passing parameters to functions and using shorthand notation.', 'duration': 33.495, 'max_score': 2515.293, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL02515293.jpg'}, {'end': 2901.977, 'src': 'embed', 'start': 2876.402, 'weight': 6, 'content': [{'end': 2885.59, 'text': 'Okay, so how did it calculate that? Well, basically what happens here is we call our factorial function and we have a value of 4 inside of here.', 'start': 2876.402, 'duration': 9.188}, {'end': 2890.191, 'text': 'So you get a value of 4 right here times factorial of 3.', 'start': 2885.89, 'duration': 4.301}, {'end': 2890.652, 'text': 'This is it.', 'start': 2890.191, 'duration': 0.461}, {'end': 2896.994, 'text': 'So 4 comes in, the 4 goes down to here, and we multiply that times factorial of 3.', 'start': 2891.032, 'duration': 5.962}, {'end': 2899.576, 'text': "What's that? What then happens? Well, we jump down to this line.", 'start': 2896.994, 'duration': 2.582}, {'end': 2901.977, 'text': 'We take 3 times the factorial 2.', 'start': 2899.796, 'duration': 2.181}], 'summary': 'Explanation of factorial calculation with values 4, 3, and 2', 'duration': 25.575, 'max_score': 2876.402, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL02876402.jpg'}, {'end': 2968.955, 'src': 'embed', 'start': 2922.389, 'weight': 4, 'content': [{'end': 2927.431, 'text': 'And that is an example of how we can calculate a factorial using recursion.', 'start': 2922.389, 'duration': 5.042}, {'end': 2932.194, 'text': "And now what I'd like to do is demonstrate how looping works inside of Elixir.", 'start': 2927.712, 'duration': 4.482}, {'end': 2938.077, 'text': 'OK, so with most languages, we loop by incrementing or decrementing a valuable.', 'start': 2932.554, 'duration': 5.523}, {'end': 2944.72, 'text': "However, since all variables are immutable inside of Elixir, we're going to use recursion to loop.", 'start': 2938.217, 'duration': 6.503}, {'end': 2946.861, 'text': "And I'm going to give you a demonstration of how this works.", 'start': 2944.88, 'duration': 1.981}, {'end': 2950.465, 'text': "So IO puts and I'm going to say sum.", 'start': 2947.521, 'duration': 2.944}, {'end': 2955.631, 'text': 'And what I want to do is I want to sum all of the different values.', 'start': 2950.485, 'duration': 5.146}, {'end': 2958.048, 'text': 'that are inside of a list.', 'start': 2956.207, 'duration': 1.841}, {'end': 2961.01, 'text': 'How do we do that? Well, we can show you right here.', 'start': 2958.328, 'duration': 2.682}, {'end': 2964.473, 'text': "So I'm going to go and get 1, 2, and 3.", 'start': 2961.09, 'duration': 3.383}, {'end': 2968.955, 'text': "And using recursion and Elixir, I'm going to show you how to easily sum all of these values.", 'start': 2964.473, 'duration': 4.482}], 'summary': 'Demonstrating looping with recursion in elixir for summing a list.', 'duration': 46.566, 'max_score': 2922.389, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL02922389.jpg'}], 'start': 2366.179, 'title': 'Elixir functions and recursion', 'summary': 'Introduces pattern matching for retrieving data and demonstrates the use of anonymous functions for arithmetic operations. it covers elixir functions, working with an unknown number of parameters, setting defaults, and recursion through factorial calculation, explaining looping and summing values in a list.', 'chapters': [{'end': 2583.038, 'start': 2366.179, 'title': 'Pattern matching & anonymous functions', 'summary': 'Introduces pattern matching for retrieving data from different data structures and highlights the use of anonymous functions, demonstrating the ability to pass them into functions and their shorthand notation for arithmetic operations.', 'duration': 216.859, 'highlights': ['The tutorial introduces pattern matching to retrieve data from different data structures.', 'Anonymous functions are demonstrated, showcasing their use in passing into functions and their shorthand notation for arithmetic operations.', 'Pattern matching allows for automatic retrieval of data from different data structures.', 'Anonymous functions, which have no name, can be passed into other functions for various operations.', 'The shorthand notation of anonymous functions provides a concise way to perform arithmetic operations.']}, {'end': 3041.245, 'start': 2583.038, 'title': 'Elixir functions and recursion', 'summary': 'Covers elixir functions, including working with an unknown number of parameters, setting defaults for parameters, and demonstrating recursion through factorial calculation. it also explains looping through recursion and summing values in a list.', 'duration': 458.207, 'highlights': ['Elixir functions can accept different numbers of parameters, allowing flexibility in function usage.', 'Demonstration of using default values for parameters in Elixir functions to simplify function calls.', 'Explanation and example of recursion through factorial calculation in Elixir, showcasing how the function calls itself to calculate the factorial of a number.', 'Illustration of looping through recursion in Elixir to sum values in a list, providing an alternative to traditional loops.']}], 'duration': 675.066, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL02366179.jpg', 'highlights': ['Elixir functions can accept different numbers of parameters, allowing flexibility in function usage.', 'Demonstration of using default values for parameters in Elixir functions to simplify function calls.', 'Explanation and example of recursion through factorial calculation in Elixir, showcasing how the function calls itself to calculate the factorial of a number.', 'Illustration of looping through recursion in Elixir to sum values in a list, providing an alternative to traditional loops.', 'The tutorial introduces pattern matching to retrieve data from different data structures.', 'Anonymous functions are demonstrated, showcasing their use in passing into functions and their shorthand notation for arithmetic operations.', 'Pattern matching allows for automatic retrieval of data from different data structures.', 'Anonymous functions, which have no name, can be passed into other functions for various operations.', 'The shorthand notation of anonymous functions provides a concise way to perform arithmetic operations.']}, {'end': 3960.03, 'segs': [{'end': 3068.606, 'src': 'embed', 'start': 3041.585, 'weight': 4, 'content': [{'end': 3045.108, 'text': 'Okay, so you see up here we passed in the values of 1, 2, and 3.', 'start': 3041.585, 'duration': 3.523}, {'end': 3045.548, 'text': 'Come up here.', 'start': 3045.108, 'duration': 0.44}, {'end': 3046.769, 'text': 'Whoa, gave me an error.', 'start': 3045.568, 'duration': 1.201}, {'end': 3048.27, 'text': 'Ignore all the red stuff.', 'start': 3047.17, 'duration': 1.1}, {'end': 3049.051, 'text': 'Just jump up here.', 'start': 3048.29, 'duration': 0.761}, {'end': 3051.273, 'text': "And it says there's an error at 10.", 'start': 3049.511, 'duration': 1.762}, {'end': 3052.374, 'text': "Oh, it's giving me an error.", 'start': 3051.273, 'duration': 1.101}, {'end': 3054.395, 'text': "All right, so let's go and create our loop function.", 'start': 3052.394, 'duration': 2.001}, {'end': 3058.799, 'text': "Or better yet, did I tell you what comments are? That's how you use comments.", 'start': 3054.695, 'duration': 4.104}, {'end': 3059.98, 'text': 'You throw in a hash symbol.', 'start': 3058.839, 'duration': 1.141}, {'end': 3062.662, 'text': "All right, so let's come in here, run it again.", 'start': 3060.48, 'duration': 2.182}, {'end': 3064.823, 'text': 'And there you can see the sum is equal to 6.', 'start': 3063.122, 'duration': 1.701}, {'end': 3067.265, 'text': 'Okay, so the sum functions work.', 'start': 3064.823, 'duration': 2.442}, {'end': 3068.606, 'text': 'All right, pretty neat stuff.', 'start': 3067.485, 'duration': 1.121}], 'summary': 'Values 1, 2, and 3 passed, sum equals 6, error at 10, loop function created', 'duration': 27.021, 'max_score': 3041.585, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL03041585.jpg'}, {'end': 3856.154, 'src': 'embed', 'start': 3785.575, 'weight': 0, 'content': [{'end': 3793.397, 'text': 'So what I want to do here is I want to actually send a message to this process, to this do stuff process.', 'start': 3785.575, 'duration': 7.822}, {'end': 3796.518, 'text': 'How can I do that? We could send messages to anything.', 'start': 3793.797, 'duration': 2.721}, {'end': 3800.825, 'text': "So what I want to do here is I'm going to say send self.", 'start': 3796.678, 'duration': 4.147}, {'end': 3803.169, 'text': "So I'm sending this message to myself.", 'start': 3801.386, 'duration': 1.783}, {'end': 3811.653, 'text': 'And what I want to do here is I want to pass in French and Adam, and I want to pass in the word Bob.', 'start': 3803.85, 'duration': 7.803}, {'end': 3812.854, 'text': "You're going to see what happens here.", 'start': 3811.673, 'duration': 1.181}, {'end': 3820.736, 'text': "I'm going to be able, in all my processes, I'm going to be able to receive different messages so we can communicate back and forth between processes.", 'start': 3813.154, 'duration': 7.582}, {'end': 3824.938, 'text': 'And I could do an entire tutorial on how we can do awesome things with this.', 'start': 3821.177, 'duration': 3.761}, {'end': 3828.219, 'text': 'But like I said, this is just a very, very brief explanation.', 'start': 3825.278, 'duration': 2.941}, {'end': 3831.501, 'text': "So I'm going to say if they receive the atom of German.", 'start': 3828.399, 'duration': 3.102}, {'end': 3832.962, 'text': 'in that situation,', 'start': 3831.501, 'duration': 1.461}, {'end': 3844.108, 'text': "what we're going to do is we're going to go IO puts and we're going to go Guten tag and we are going to output whatever they passed in for our name.", 'start': 3832.962, 'duration': 11.146}, {'end': 3849.171, 'text': 'And now what I want to do is I want to and this is exactly how it works.', 'start': 3844.508, 'duration': 4.663}, {'end': 3854.074, 'text': 'You have a normally a key here and then values that are passed inside of it.', 'start': 3849.631, 'duration': 4.443}, {'end': 3856.154, 'text': "So let's go and do a couple more of these.", 'start': 3854.494, 'duration': 1.66}], 'summary': 'Demonstrating message passing between processes for communication and processing data.', 'duration': 70.579, 'max_score': 3785.575, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL03785575.jpg'}], 'start': 3041.585, 'title': "Elixir's enumerables and concurrency", 'summary': 'Covers creating loops, working with enumerables, and handling exceptions in elixir, showcasing operations such as filtering even values, doubling list items, and demonstrating concurrency through the spawn function.', 'chapters': [{'end': 3238.18, 'start': 3041.585, 'title': 'Elixir loop and enumerables', 'summary': 'Covers the creation of a loop function in elixir to count through values until a certain condition is met, and discusses the concept of enumerables, demonstrating how to check if all values in a list are even.', 'duration': 196.595, 'highlights': ['Creation of a loop function in Elixir to count through values until a certain condition is met The speaker explains the process of creating a loop function in Elixir, which takes a maximum and minimum value and counts through them until a certain condition is met, demonstrating the functionality by counting from 5 to 1 and then leaving.', "Demonstration of checking if all values in a list are even using enumerables The concept of enumerables is introduced as a data type that allows its items to be counted off, and the speaker demonstrates how to check if all values in a list are even using the 'enum all' function, showcasing a simple example with the list [1, 2, 3]."]}, {'end': 3579.127, 'start': 3238.42, 'title': 'Working with enumerables in elixir', 'summary': 'Explains how to work with enumerables in elixir, showcasing operations such as filtering even values, doubling list items, reducing to a single value, and obtaining unique values, highlighting the simplicity and efficacy of these operations.', 'duration': 340.707, 'highlights': ['The chapter explains operations such as filtering even values, doubling list items, reducing to a single value, and obtaining unique values. The transcript covers various operations such as filtering even values, doubling list items, reducing to a single value, and obtaining unique values.', 'The transcript showcases the simplicity and efficacy of these operations in Elixir. The transcript demonstrates the ease and efficiency of performing complex operations in Elixir, which are often complicated in other languages.', 'The chapter demonstrates how to filter even values from a list using the remainder function and check if they are equal to zero. It explains the process of filtering even values from a list by using the remainder function and checking if the values are equal to zero.', 'The chapter illustrates the process of doubling each value in a list. It showcases the process of doubling each value in a list using the map operation in Elixir.', 'The transcript explains the process of reducing list values to a single value by adding them together. It explains the process of reducing list values to a single value by adding them together using the reduce operation in Elixir.', 'The chapter highlights the use of the unique function to obtain a list containing no duplicates. It highlights the usage of the unique function in Elixir to obtain a list that contains no duplicate values.']}, {'end': 3960.03, 'start': 3579.588, 'title': 'Elixir: exception handling & concurrency', 'summary': 'Covers list comprehensions, exception handling, and concurrency in elixir, where list comprehensions are emphasized as powerful and useful, exception handling is introduced with a simple example of handling a division by zero error, and concurrency is demonstrated through the use of the spawn function to create and run multiple processes concurrently.', 'duration': 380.442, 'highlights': ['List comprehensions are powerful and useful List comprehensions are emphasized as powerful and useful.', 'Introduction to exception handling with a simple example of handling a division by zero error Exception handling is introduced through a simple example of handling a division by zero error.', 'Demonstration of concurrency with the use of the spawn function to create and run multiple processes concurrently Concurrency is demonstrated through the use of the spawn function to create and run multiple processes concurrently.']}], 'duration': 918.445, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/pBNOavRoNL0/pics/pBNOavRoNL03041585.jpg', 'highlights': ['The chapter demonstrates how to filter even values from a list using the remainder function and check if they are equal to zero.', 'The chapter illustrates the process of doubling each value in a list using the map operation in Elixir.', 'The transcript explains the process of reducing list values to a single value by adding them together using the reduce operation in Elixir.', 'The chapter highlights the use of the unique function to obtain a list containing no duplicates.', 'Demonstration of concurrency with the use of the spawn function to create and run multiple processes concurrently', 'Introduction to exception handling with a simple example of handling a division by zero error', 'The speaker explains the process of creating a loop function in Elixir, which takes a maximum and minimum value and counts through them until a certain condition is met, demonstrating the functionality by counting from 5 to 1 and then leaving.', 'Demonstration of checking if all values in a list are even using enumerables']}], 'highlights': ['Covers the core syntax and language of Elixir, equivalent to a standard 300-page book.', 'The chapter covers the installation of Elixir on Mac OS and Windows, emphasizing a tutorial link provided for installation.', 'Demonstrates how to create, manipulate, and utilize tuples, including checking, appending, retrieving, deleting, inserting, duplicating values, and pattern matching.', 'The chapter covers addition, subtraction, multiplication, division, integer division, and modulus operations in programming.', 'Demonstration of concurrency with the use of the spawn function to create and run multiple processes concurrently', 'Demonstration of using recursion to cycle through a list, breaking off the head and outputting it, with an explanation of the ending condition for recursion.', 'Elixir functions can accept different numbers of parameters, allowing flexibility in function usage.', 'The chapter illustrates the process of reducing list values to a single value by adding them together using the reduce operation in Elixir.', 'The chapter demonstrates how to filter even values from a list using the remainder function and check if they are equal to zero.', 'The chapter explains decision making in Elixir through if, else, unless, and conditional statements, demonstrating different conditions and their corresponding actions.']}