title
Erlang Tutorial

description
Get the Code Here : https://goo.gl/cAkuQD Best Erlang Book : http://amzn.to/2mYrXfW How to Install Erlang : https://youtu.be/SyIRB_DaIjg Support my videos on Patreon : https://www.patreon.com/derekbanas 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) 00:58 Setup 06:44 Variables 07:59 Atoms 08:54 Math 11:34 Comparison 13:31 If 15:21 Case 16:30 Strings 20:48 Tuples 22:32 Lists 24:44 List Comprehensions 28:19 Type Conversions 29:41 Recursion 34:42 Tail Recursive 35:56 Custom For Loop 37:24 Maps 39:56 Records 42:05 Higher Order Functions 43:16 Fun 45:59 File I/O 49:06 Exception Handling 51:47 Macros 53:07 Concurrency In this tutorial I'm going to teach the core syntax of the Erlang language with many examples. This video is for someone that already knows another language and wants to translate common programming syntax into Erlang. For best results take notes on the cheat sheet provided above as you watch and leave any questions you have. Thank you to Patreon supporters like the following for helping me make this video facebook.com/cottageindustriesbuild/ jaryd remillard : instagram: @distant_admiration bugreplay.com @kyleaisho @thetwistedhat vjFaLk jaryd remillard : https://github.com/YearOfProgramming/2017Challenges

detail
{'title': 'Erlang Tutorial', 'heatmap': [{'end': 243.532, 'start': 206.506, 'weight': 0.892}, {'end': 1381.326, 'start': 1309.601, 'weight': 0.798}, {'end': 1553.267, 'start': 1412.764, 'weight': 0.942}, {'end': 2172.737, 'start': 2134.756, 'weight': 1}, {'end': 2276.346, 'start': 2240.081, 'weight': 0.805}, {'end': 2425.755, 'start': 2372, 'weight': 0.768}], 'summary': "The 'erlang tutorial' video covers the core syntax of erlang, creating functions and modules, python functions and math operations, exploring strings and data structures, recursion, functional programming, and concurrency. it caters to the most requested video from the audience and provides practical demonstrations for easy understanding.", 'chapters': [{'end': 135.79, 'segs': [{'end': 38.545, 'src': 'embed', 'start': 0.543, 'weight': 0, 'content': [{'end': 3.584, 'text': 'Well hello internet and welcome to my Erlang video tutorial.', 'start': 0.543, 'duration': 3.041}, {'end': 11.127, 'text': "In this one tutorial I'm going to cover the core syntax of the Erlang language through a ton of example code.", 'start': 3.624, 'duration': 7.503}, {'end': 16.91, 'text': 'Now this is the number one most requested next all-in-one video you guys asked for and so here it is.', 'start': 11.348, 'duration': 5.562}, {'end': 24.755, 'text': 'Like always, all of the code, as well as a cheat sheet for this entire video and also timestamps to all the different parts of the video,', 'start': 17.31, 'duration': 7.445}, {'end': 26.276, 'text': 'are available in the description.', 'start': 24.755, 'duration': 1.521}, {'end': 35.423, 'text': 'And this video is basically for somebody that already knows another programming language and wants to learn how to do in Erlang what they do in other languages,', 'start': 26.476, 'duration': 8.947}, {'end': 38.545, 'text': "like Python or Java, or C Sharp, or whatever they're used to.", 'start': 35.423, 'duration': 3.122}], 'summary': 'Erlang tutorial covers core syntax with examples, addressing requests for the most sought-after video.', 'duration': 38.002, 'max_score': 0.543, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4543.jpg'}], 'start': 0.543, 'title': 'Erlang syntax tutorial', 'summary': 'Provides a tutorial on the core syntax of the erlang language for individuals familiar with other programming languages, catering to the number one most requested video from the audience.', 'chapters': [{'end': 135.79, 'start': 0.543, 'title': 'Erlang syntax tutorial', 'summary': 'Provides a tutorial on the core syntax of the erlang language with a focus on code examples and is intended for individuals familiar with other programming languages like python, java, or c sharp, catering to the number one most requested video from the audience.', 'duration': 135.247, 'highlights': ['The video tutorial covers the core syntax of Erlang through example code and is the most requested video by the audience. The video tutorial covers the core syntax of Erlang through a ton of example code and is the number one most requested next all-in-one video by the audience.', 'The tutorial is designed for individuals familiar with other programming languages like Python, Java, or C Sharp who want to learn how to do in Erlang what they do in other languages. The tutorial is designed for individuals familiar with other programming languages like Python, Java, or C Sharp who want to learn how to do in Erlang what they do in other languages.', 'The video tutorial includes a cheat sheet for the entire video and timestamps to all the different parts of the video, available in the description. The video tutorial includes a cheat sheet for the entire video and timestamps to all the different parts of the video, available in the description.']}], 'duration': 135.247, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4543.jpg', 'highlights': ['The video tutorial covers the core syntax of Erlang through example code and is the most requested video by the audience.', 'The tutorial is designed for individuals familiar with other programming languages like Python, Java, or C Sharp who want to learn how to do in Erlang what they do in other languages.', 'The video tutorial includes a cheat sheet for the entire video and timestamps to all the different parts of the video, available in the description.']}, {'end': 430.586, 'segs': [{'end': 175.373, 'src': 'embed', 'start': 136.05, 'weight': 0, 'content': [{'end': 142.353, 'text': "And this is going to be where you're going to find what functions can be called from this module, your personal module.", 'start': 136.05, 'duration': 6.303}, {'end': 145.935, 'text': "And to start off, I'm just going to put in Hello World.", 'start': 142.714, 'duration': 3.221}, {'end': 147.176, 'text': "I'm going to keep this very simple.", 'start': 145.955, 'duration': 1.221}, {'end': 150.226, 'text': "And don't worry I'm going to get into all kinds of complicated stuff.", 'start': 147.603, 'duration': 2.623}, {'end': 155.211, 'text': 'So this is not going to receive any attribute and that is going to be the end of that file.', 'start': 150.486, 'duration': 4.725}, {'end': 161.158, 'text': 'Also remember to always end these statements with a period like that and likewise like that.', 'start': 155.452, 'duration': 5.706}, {'end': 165.963, 'text': "And now what we're going to do is actually go and create a function inside here.", 'start': 161.478, 'duration': 4.485}, {'end': 169.647, 'text': 'And this is the hello world function that I just previously mentioned.', 'start': 166.303, 'duration': 3.344}, {'end': 173.692, 'text': "Put the parentheses at the end, and then you're going to put this little arrow inside of here.", 'start': 170.011, 'duration': 3.681}, {'end': 175.373, 'text': "You're going to then tab in.", 'start': 173.832, 'duration': 1.541}], 'summary': "Introduction to creating a simple 'hello world' function in a personal module.", 'duration': 39.323, 'max_score': 136.05, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4136050.jpg'}, {'end': 243.532, 'src': 'heatmap', 'start': 206.506, 'weight': 0.892, 'content': [{'end': 209.187, 'text': 'You can see that right here, Erlang, Tut, and Source.', 'start': 206.506, 'duration': 2.681}, {'end': 211.929, 'text': "It's going to be different for you unless you have a Derek Banas directory.", 'start': 209.268, 'duration': 2.661}, {'end': 213.55, 'text': "And if you do, you're very awesome.", 'start': 212.169, 'duration': 1.381}, {'end': 215.531, 'text': "And we're going to hit Enter inside of there.", 'start': 213.81, 'duration': 1.721}, {'end': 218.773, 'text': "And then to execute this guy, we're going to come over here.", 'start': 215.831, 'duration': 2.942}, {'end': 221.695, 'text': "And we're going to go, well, first off, we have to compile it.", 'start': 219.153, 'duration': 2.542}, {'end': 226.959, 'text': "So we're going to go C, put tut inside of there, which is the name of our file, right like this.", 'start': 221.735, 'duration': 5.224}, {'end': 235.966, 'text': 'And then we can come in here and go tut like that, and main, and then, and hello world with our parentheses, and then period.', 'start': 227.279, 'duration': 8.687}, {'end': 238.888, 'text': 'And we run that, and you can see hello world comes up there.', 'start': 236.286, 'duration': 2.602}, {'end': 240.81, 'text': 'All right, so pretty simple stuff.', 'start': 239.148, 'duration': 1.662}, {'end': 243.532, 'text': "Don't worry, we're going to get much more complicated than that.", 'start': 241.01, 'duration': 2.522}], 'summary': "Demonstration of compiling and executing erlang code to display 'hello world' in tutorial.", 'duration': 37.026, 'max_score': 206.506, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4206506.jpg'}, {'end': 385.364, 'src': 'embed', 'start': 352.15, 'weight': 1, 'content': [{'end': 354.491, 'text': 'And just go module info and dot.', 'start': 352.15, 'duration': 2.341}, {'end': 361.257, 'text': "And it's going to provide you all kinds of information in regards to the different modules that you have inside here, or different functions you have,", 'start': 354.692, 'duration': 6.565}, {'end': 364.519, 'text': "and a whole bunch of other different things which I'm not going to get into here right now.", 'start': 361.257, 'duration': 3.262}, {'end': 372.618, 'text': "And now only to save time and keep things a little bit constrained here, I'm only going to export one function.", 'start': 364.895, 'duration': 7.723}, {'end': 374.199, 'text': "And it's going to be main.", 'start': 373.059, 'duration': 1.14}, {'end': 377.56, 'text': "And the main function isn't going to receive any attributes.", 'start': 374.579, 'duration': 2.981}, {'end': 379.041, 'text': "So I'm going to put a zero inside of there.", 'start': 377.58, 'duration': 1.461}, {'end': 385.364, 'text': "Now Erlang normally doesn't work this way in regards to using a main function or whatever.", 'start': 379.421, 'duration': 5.943}], 'summary': 'The transcript discusses using a main function in erlang.', 'duration': 33.214, 'max_score': 352.15, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4352150.jpg'}, {'end': 419.786, 'src': 'embed', 'start': 393.067, 'weight': 4, 'content': [{'end': 398.831, 'text': "And then, like this, and I'm going to call a function that's going to be called variable stuff.", 'start': 393.067, 'duration': 5.764}, {'end': 402.754, 'text': 'Well, make sure this is indented, variable stuff, and put a dot at the end of that.', 'start': 399.031, 'duration': 3.723}, {'end': 410.82, 'text': 'Now, variable names are going to start with an uppercase letter or an underscore, and then they can contain either letters,', 'start': 403.094, 'duration': 7.726}, {'end': 414.702, 'text': 'both uppercase and lowercase numbers, underscores or at symbols.', 'start': 410.82, 'duration': 3.882}, {'end': 419.786, 'text': "And it's very important to understand with Erlang that variable values cannot change.", 'start': 415.163, 'duration': 4.623}], 'summary': 'Erlang variables must start with uppercase letter or underscore, cannot change', 'duration': 26.719, 'max_score': 393.067, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4393067.jpg'}], 'start': 136.05, 'title': 'Creating hello world function in module and erlang functions and module info', 'summary': "Discusses the creation of a simple 'hello world' function inside a module, emphasizing the process of defining and calling functions, as well as running the code in eclipse. it also covers defining and calling functions, exporting functions, adding multiple numbers, and accessing module information in erlang, with variable naming conventions and type dynamics explained.", 'chapters': [{'end': 213.55, 'start': 136.05, 'title': 'Creating hello world function in module', 'summary': "Discusses the creation of a simple 'hello world' function inside a module, emphasizing the process of defining and calling functions, as well as running the code in eclipse.", 'duration': 77.5, 'highlights': ["The chapter discusses the creation of a simple 'hello world' function inside a module, emphasizing the process of defining and calling functions, as well as running the code in Eclipse.", "The function being created does not receive any attribute and prints 'hello world' on the screen.", 'The process of defining and calling functions is explained, with an emphasis on tabbing in and saving the code in Eclipse.', 'The tutorial also mentions the importance of ending statements with a period and provides a reminder about proper formatting.']}, {'end': 430.586, 'start': 213.81, 'title': 'Erlang functions and module info', 'summary': 'Covers defining and calling functions, exporting functions, adding multiple numbers, and accessing module information in erlang, with variable naming conventions and type dynamics explained.', 'duration': 216.776, 'highlights': ['You can define and call functions, export functions, add multiple numbers, and access module information in Erlang.', 'Variable names in Erlang start with an uppercase letter or an underscore, and can contain letters, numbers, underscores, or at symbols.', 'Variable values cannot change in Erlang, but variable types are defined dynamically based on the stored data type.', 'Functions can be defined with the same name but a different number of attributes to handle various scenarios.']}], 'duration': 294.536, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4136050.jpg', 'highlights': ["The chapter discusses the creation of a simple 'hello world' function inside a module, emphasizing the process of defining and calling functions, as well as running the code in Eclipse.", 'You can define and call functions, export functions, add multiple numbers, and access module information in Erlang.', "The function being created does not receive any attribute and prints 'hello world' on the screen.", 'The process of defining and calling functions is explained, with an emphasis on tabbing in and saving the code in Eclipse.', 'Variable names in Erlang start with an uppercase letter or an underscore, and can contain letters, numbers, underscores, or at symbols.']}, {'end': 989.379, 'segs': [{'end': 455.86, 'src': 'embed', 'start': 430.806, 'weight': 3, 'content': [{'end': 439.112, 'text': "And another thing that's interesting to point out here is that you are going to be able to call a function inside of here before it's actually been defined.", 'start': 430.806, 'duration': 8.306}, {'end': 443.276, 'text': 'And that just means that I can come down here and put variable stuff up here or down here.', 'start': 439.393, 'duration': 3.883}, {'end': 445.197, 'text': 'below where it was actually defined.', 'start': 443.676, 'duration': 1.521}, {'end': 446.757, 'text': 'And all this guy is going to do.', 'start': 445.397, 'duration': 1.36}, {'end': 451.338, 'text': "it's just going to be a function that is going to define a variable.", 'start': 446.757, 'duration': 4.581}, {'end': 455.86, 'text': 'remember uppercase letters and commas if you want to have multiple different lines inside of here.', 'start': 451.338, 'duration': 4.522}], 'summary': 'You can call a function before its definition and define variables below their use.', 'duration': 25.054, 'max_score': 430.806, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4430806.jpg'}, {'end': 678.755, 'src': 'embed', 'start': 646.647, 'weight': 0, 'content': [{'end': 648.348, 'text': 'We also have square root.', 'start': 646.647, 'duration': 1.701}, {'end': 650.328, 'text': 'So square root.', 'start': 648.848, 'duration': 1.48}, {'end': 652.489, 'text': "And let's just change this to 100.", 'start': 650.809, 'duration': 1.68}, {'end': 655.03, 'text': "And there's 10.", 'start': 652.489, 'duration': 2.541}, {'end': 658.911, 'text': "And you're also going to have all of these other different functions you have right here.", 'start': 655.03, 'duration': 3.881}, {'end': 663.273, 'text': "Of course you're going to put math in front of them like we did here to be able to use them.", 'start': 659.091, 'duration': 4.182}, {'end': 668.973, 'text': "And if I didn't mention it before, if you want to put a comment, you just put a percent sign inside of there.", 'start': 663.752, 'duration': 5.221}, {'end': 671.454, 'text': 'And everything after that is going to be completely ignored.', 'start': 669.013, 'duration': 2.441}, {'end': 678.755, 'text': "If you'd also like to know how to generate a random value, you can just come in and go random uniform.", 'start': 671.474, 'duration': 7.281}], 'summary': 'Introduction to using math functions with examples and tips for comments.', 'duration': 32.108, 'max_score': 646.647, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4646647.jpg'}, {'end': 721.195, 'src': 'embed', 'start': 691.338, 'weight': 1, 'content': [{'end': 693.678, 'text': "And there's 10.", 'start': 691.338, 'duration': 2.34}, {'end': 697.241, 'text': 'And now I want to talk a little bit about how we can compare values.', 'start': 693.678, 'duration': 3.563}, {'end': 708.85, 'text': "So I'm going to come up inside of here in this main area and I'm going to say compare and I'm going to put a 4 inside of here and a 4.0.", 'start': 697.261, 'duration': 11.589}, {'end': 709.93, 'text': 'Change this to compare.', 'start': 708.85, 'duration': 1.08}, {'end': 711.452, 'text': 'Leave A and B in there.', 'start': 710.411, 'duration': 1.041}, {'end': 716.736, 'text': 'Now you can check for a quality of both value and type by just going A.', 'start': 711.832, 'duration': 4.904}, {'end': 721.195, 'text': 'and an equal sign with a colon inside of there and B.', 'start': 717.714, 'duration': 3.481}], 'summary': 'Demonstrating comparison of values with 4 and 4.0', 'duration': 29.857, 'max_score': 691.338, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4691338.jpg'}, {'end': 778.932, 'src': 'embed', 'start': 757.053, 'weight': 2, 'content': [{'end': 766.862, 'text': "this is going to be less than or equal to, and you're also going to have the logical operators, which are going to be and or not and exclusive or,", 'start': 757.053, 'duration': 9.809}, {'end': 771.205, 'text': "and I'll come in here and do a quick example here to show you what's up with this.", 'start': 766.862, 'duration': 4.343}, {'end': 775.549, 'text': "so let's say you have age is equal to 18.", 'start': 771.205, 'duration': 4.344}, {'end': 778.932, 'text': 'put a comma inside of there and then we can do some comparisons.', 'start': 775.549, 'duration': 3.383}], 'summary': 'Introduction to logical operators and comparisons in programming.', 'duration': 21.879, 'max_score': 757.053, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4757053.jpg'}, {'end': 826.018, 'src': 'embed', 'start': 799.708, 'weight': 4, 'content': [{'end': 805.433, 'text': 'You can test, you know, the other different logical operators, but I think you get a good idea of how comparisons work.', 'start': 799.708, 'duration': 5.725}, {'end': 807.835, 'text': "So now I'd like to talk about if conditionals.", 'start': 805.713, 'duration': 2.122}, {'end': 816.996, 'text': "OK, so in the main section, I'm going to create a function called what grade and I'm going to throw 10 inside of here.", 'start': 808.234, 'duration': 8.762}, {'end': 826.018, 'text': "Now, down inside of here, I will basically I'm going to create two functions and one of them is going to be called preschool.", 'start': 817.436, 'duration': 8.582}], 'summary': 'Introduction to logical operators and if conditionals in functions', 'duration': 26.31, 'max_score': 799.708, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4799708.jpg'}], 'start': 430.806, 'title': 'Python functions, math operations, and conditional statements', 'summary': 'Covers python functions and various math operations such as addition, subtraction, multiplication, division, modulus, exponential, logarithms, and random value generation, with numerical outputs. it also includes comparing values, types, equality, inequality, logical operators, and conditional statements using if and case, demonstrated through code examples.', 'chapters': [{'end': 691.338, 'start': 430.806, 'title': 'Python functions and math operations', 'summary': 'Covers the usage of functions and various math operations in python, showcasing examples and specific functions such as addition, subtraction, multiplication, division, modulus, exponential, logarithms, and random value generation, with numerical outputs demonstrated for each operation.', 'duration': 260.532, 'highlights': ['Python function call before definition allows flexible code organization and variable placement.', 'Demonstrated addition, subtraction, multiplication, division, modulus, exponential, logarithmic, square root, and random value generation functions.', 'Usage of specific math functions such as exp, log, pow, square root, and random uniform, providing numerical outputs for each function call.']}, {'end': 989.379, 'start': 691.338, 'title': 'Comparing values and conditional statements', 'summary': 'Covers comparisons of values and types, including equality, inequality, disregarding type, logical operators, and conditional statements using if and case, demonstrated through code examples.', 'duration': 298.041, 'highlights': ['The chapter covers comparisons of values and types Discusses how to compare values and types using various operators and methods.', 'The chapter demonstrates conditional statements using if and case Demonstrates how to use if and case statements to create conditional logic in the code.', 'Examples of different logical operators are provided Provides examples of using logical operators such as and, or, not, and exclusive or in code.', 'Detailed examples of comparing values and types are given Provides detailed examples of comparing values and types with specific values, demonstrating equality, inequality, and disregarding type.', 'The chapter explains the functionality of if conditionals Explains the functionality of if conditionals and demonstrates their usage with different value comparisons.']}], 'duration': 558.573, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4430806.jpg', 'highlights': ['Demonstrated addition, subtraction, multiplication, division, modulus, exponential, logarithmic, square root, and random value generation functions.', 'The chapter covers comparisons of values and types Discusses how to compare values and types using various operators and methods.', 'Examples of different logical operators are provided Provides examples of using logical operators such as and, or, not, and exclusive or in code.', 'Python function call before definition allows flexible code organization and variable placement.', 'The chapter demonstrates conditional statements using if and case Demonstrates how to use if and case statements to create conditional logic in the code.']}, {'end': 1592.207, 'segs': [{'end': 1105.018, 'src': 'embed', 'start': 1070.067, 'weight': 0, 'content': [{'end': 1072.328, 'text': "Okay, let's continue doing some more.", 'start': 1070.067, 'duration': 2.261}, {'end': 1076.209, 'text': "You're also going to be able to use a format for similar results.", 'start': 1072.748, 'duration': 3.461}, {'end': 1077.89, 'text': "So let's create another string here.", 'start': 1076.269, 'duration': 1.621}, {'end': 1082.632, 'text': "And so we'll go IO, lib, and format.", 'start': 1078.57, 'duration': 4.062}, {'end': 1091.495, 'text': "And here I'm going to say it's a, say I'm just going to go tilde S and tilde S,", 'start': 1083.172, 'duration': 8.323}, {'end': 1096.597, 'text': 'throw in a new line inside of there and then go string one and string two.', 'start': 1091.495, 'duration': 5.102}, {'end': 1097.597, 'text': 'Close that off.', 'start': 1096.857, 'duration': 0.74}, {'end': 1105.018, 'text': "And now I'm going to output it on the screen by going IO and FWrite, string 3, and then close that off.", 'start': 1097.95, 'duration': 7.068}], 'summary': 'Using format to combine strings and outputting on the screen.', 'duration': 34.951, 'max_score': 1070.067, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41070067.jpg'}, {'end': 1144.668, 'src': 'embed', 'start': 1116.19, 'weight': 1, 'content': [{'end': 1121.111, 'text': 'If we wanted to output on the screen the string length, We could do some.', 'start': 1116.19, 'duration': 4.921}, {'end': 1122.932, 'text': "Let's go string length like that.", 'start': 1121.171, 'duration': 1.761}, {'end': 1125.254, 'text': 'And you can see 15 pops back right there.', 'start': 1123.212, 'duration': 2.042}, {'end': 1126.054, 'text': 'Do some more.', 'start': 1125.474, 'duration': 0.58}, {'end': 1127.315, 'text': "There's a whole bunch of these guys.", 'start': 1126.074, 'duration': 1.241}, {'end': 1131.078, 'text': 'I told you before you can concatenate strings or join strings together.', 'start': 1127.675, 'duration': 3.403}, {'end': 1133.34, 'text': 'We can go string 4 is equal to.', 'start': 1131.098, 'duration': 2.242}, {'end': 1138.664, 'text': "And we'll go concat and string 1 and string 2.", 'start': 1133.84, 'duration': 4.824}, {'end': 1140.325, 'text': "And then I'll go string 4 like that.", 'start': 1138.664, 'duration': 1.661}, {'end': 1144.668, 'text': 'Main And you can see a random string and another string comes back there together.', 'start': 1140.945, 'duration': 3.723}], 'summary': 'Demonstrating string manipulation with examples, achieving 15 pops and concatenating strings.', 'duration': 28.478, 'max_score': 1116.19, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41116190.jpg'}, {'end': 1190.446, 'src': 'embed', 'start': 1162.136, 'weight': 2, 'content': [{'end': 1164.277, 'text': "So I'm going to go string 4.", 'start': 1162.136, 'duration': 2.141}, {'end': 1170.078, 'text': "And then you're going to put a dollar sign and then the string that you were specifically looking for inside of there.", 'start': 1164.277, 'duration': 5.801}, {'end': 1174.559, 'text': 'And I can go character index and execute that.', 'start': 1170.738, 'duration': 3.821}, {'end': 1177.16, 'text': 'And you can see it shows up in the third spot, which is this.', 'start': 1174.579, 'duration': 2.581}, {'end': 1184.944, 'text': "Likewise, you're going to be able to get a substring of a string by defining the starting index where you want to start.", 'start': 1178.502, 'duration': 6.442}, {'end': 1188.025, 'text': "And then the number of characters thereafter you'd like to receive.", 'start': 1185.304, 'duration': 2.721}, {'end': 1190.446, 'text': "So let's go and call this string 5.", 'start': 1188.105, 'duration': 2.341}], 'summary': 'Using string manipulation to extract and display specific characters and substrings.', 'duration': 28.31, 'max_score': 1162.136, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41162136.jpg'}, {'end': 1263.003, 'src': 'embed', 'start': 1227.211, 'weight': 3, 'content': [{'end': 1232.494, 'text': "And for the final two examples of things you can do with strings, let's say we also wanted to do uppercase.", 'start': 1227.211, 'duration': 5.283}, {'end': 1234.855, 'text': 'We wanted to uppercase every single one of those characters.', 'start': 1232.514, 'duration': 2.341}, {'end': 1235.576, 'text': 'We can do that.', 'start': 1234.895, 'duration': 0.681}, {'end': 1237.359, 'text': 'And random string pops up.', 'start': 1236.097, 'duration': 1.262}, {'end': 1241.626, 'text': "And then we're also going to be able to likewise go to lower.", 'start': 1237.719, 'duration': 3.907}, {'end': 1243.81, 'text': "And there you can see everything's lowercase.", 'start': 1242.327, 'duration': 1.483}, {'end': 1248.257, 'text': "Alright, so there's a rundown of a lot of things you can do with strings inside of Erlang.", 'start': 1244.11, 'duration': 4.147}, {'end': 1249.68, 'text': "And now I'm going to talk about tuples.", 'start': 1248.297, 'duration': 1.383}, {'end': 1254.421, 'text': 'Now a tuple is going to be able to hold multiple values.', 'start': 1250.68, 'duration': 3.741}, {'end': 1257.542, 'text': "So what we're going to do here is define another function.", 'start': 1254.741, 'duration': 2.801}, {'end': 1260.903, 'text': "I'm going to call this tuple stuff and I'm going to find a tuple.", 'start': 1257.562, 'duration': 3.341}, {'end': 1263.003, 'text': "So let's just call this my data.", 'start': 1260.943, 'duration': 2.06}], 'summary': 'Erlang can manipulate strings, convert to uppercase/lowercase. tuples hold multiple values.', 'duration': 35.792, 'max_score': 1227.211, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41227211.jpg'}, {'end': 1321.227, 'src': 'embed', 'start': 1287.58, 'weight': 5, 'content': [{'end': 1290.123, 'text': 'And then reference our tuple here.', 'start': 1287.58, 'duration': 2.543}, {'end': 1294.689, 'text': 'And then output the value of C in this situation.', 'start': 1290.484, 'duration': 4.205}, {'end': 1297.271, 'text': 'And you can see 6.25 shoots back there.', 'start': 1295.029, 'duration': 2.242}, {'end': 1302.575, 'text': "You're also going to be able to use what are called anonymous variables to match a pattern.", 'start': 1297.611, 'duration': 4.964}, {'end': 1305.558, 'text': "So let's just come in here and do another one of these.", 'start': 1302.595, 'duration': 2.963}, {'end': 1309.581, 'text': 'An anonymous variable basically is an underscore.', 'start': 1305.578, 'duration': 4.003}, {'end': 1312.744, 'text': "So you're going to put if you don't care about something, you don't want the data back.", 'start': 1309.601, 'duration': 3.143}, {'end': 1321.227, 'text': "just put those underscores inside of there and there's my data, and then here we can output the value of d and you can see 42 pop back.", 'start': 1312.904, 'duration': 8.323}], 'summary': 'Using anonymous variables, the value of c is 6.25 and the value of d is 42.', 'duration': 33.647, 'max_score': 1287.58, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41287580.jpg'}, {'end': 1381.326, 'src': 'heatmap', 'start': 1309.601, 'weight': 0.798, 'content': [{'end': 1312.744, 'text': "So you're going to put if you don't care about something, you don't want the data back.", 'start': 1309.601, 'duration': 3.143}, {'end': 1321.227, 'text': "just put those underscores inside of there and there's my data, and then here we can output the value of d and you can see 42 pop back.", 'start': 1312.904, 'duration': 8.323}, {'end': 1327.969, 'text': "you're also going to be able to use an atom as the key for a value, and this is what we call a tagged tuple.", 'start': 1321.227, 'duration': 6.742}, {'end': 1336.755, 'text': "so let's go my data 2 equal 2, and we can put height inside of here, which is the atom, and then 6.25,", 'start': 1327.969, 'duration': 8.786}, {'end': 1346.186, 'text': "and then after that we could go height and let's just call this ht is equal to and my data 2,", 'start': 1336.755, 'duration': 9.431}, {'end': 1349.749, 'text': "and then i'll put the height on the screen and there you go all right.", 'start': 1346.186, 'duration': 3.563}, {'end': 1351.872, 'text': "so there's some things we can do with tuples.", 'start': 1349.749, 'duration': 2.123}, {'end': 1353.474, 'text': "so now i'm going to look at lists.", 'start': 1351.872, 'duration': 1.602}, {'end': 1357.423, 'text': "So I put list stuff inside of there and there's list stuff.", 'start': 1353.934, 'duration': 3.489}, {'end': 1362.335, 'text': 'And basically, lists are going to contain multiple values from any data type.', 'start': 1357.683, 'duration': 4.652}, {'end': 1364.582, 'text': "So let's go and define a list.", 'start': 1362.742, 'duration': 1.84}, {'end': 1369.344, 'text': 'List 1 is equal to 1, 2, and 3.', 'start': 1364.763, 'duration': 4.581}, {'end': 1371.004, 'text': "And let's define another one.", 'start': 1369.344, 'duration': 1.66}, {'end': 1374.345, 'text': 'List 2 is equal to 4, 5, and 6.', 'start': 1371.224, 'duration': 3.121}, {'end': 1378.286, 'text': "Now you're going to be able to join lists.", 'start': 1374.345, 'duration': 3.941}, {'end': 1381.326, 'text': "So let's go and create another list, list 3.", 'start': 1378.346, 'duration': 2.98}], 'summary': 'Using tuples and lists to store and manipulate data in the programming language. introduction to tagged tuples and list manipulation.', 'duration': 71.725, 'max_score': 1309.601, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41309601.jpg'}, {'end': 1553.267, 'src': 'heatmap', 'start': 1412.764, 'weight': 0.942, 'content': [{'end': 1422.354, 'text': "you're also going to be able to retrieve elements and in this situation what i want to receive is the head or the first element inside of our list.", 'start': 1412.764, 'duration': 9.59}, {'end': 1424.296, 'text': "so we'll go list four.", 'start': 1422.354, 'duration': 1.942}, {'end': 1431.644, 'text': "likewise, you'll be able to receive the tail by going t l, and we'll do that for list four as well.", 'start': 1424.296, 'duration': 7.348}, {'end': 1436.028, 'text': 'here we can just execute that guy and there you can see it grabbed it.', 'start': 1431.644, 'duration': 4.384}, {'end': 1440.251, 'text': 'the four would have come back for the head and the five and six come back for the tail,', 'start': 1436.028, 'duration': 4.223}, {'end': 1444.235, 'text': "and you're going to be doing a lot of things like that using erlang.", 'start': 1440.251, 'duration': 3.984}, {'end': 1450.08, 'text': "you're also going to be able to add a value to a list using something called the cons operator.", 'start': 1444.235, 'duration': 5.845}, {'end': 1457.267, 'text': "so i'm going to go list five is equal to, and i'm going to go three And then list four like that.", 'start': 1450.08, 'duration': 7.187}, {'end': 1464.734, 'text': 'And then if we output list five on the screen, you can see the three is now in there in the top position inside of the list.', 'start': 1457.627, 'duration': 7.107}, {'end': 1469.018, 'text': "And then finally, you're going to be able to get the head and the tail from a list.", 'start': 1465.175, 'duration': 3.843}, {'end': 1472.422, 'text': "And like I said, you'll be doing a lot of this later on.", 'start': 1469.599, 'duration': 2.823}, {'end': 1476.325, 'text': "So we'll go head and tail is equal to list five.", 'start': 1472.842, 'duration': 3.483}, {'end': 1479.729, 'text': "And in this situation, I'll just get the head and I'll put that.", 'start': 1476.906, 'duration': 2.823}, {'end': 1481.657, 'text': 'And there you can see three pops back.', 'start': 1480.256, 'duration': 1.401}, {'end': 1484.038, 'text': 'Okay, so a whole bunch of things we can do with lists.', 'start': 1481.677, 'duration': 2.361}, {'end': 1488.68, 'text': "Now let's go and take a look at something more interesting, which is list comprehensions.", 'start': 1484.278, 'duration': 4.402}, {'end': 1492.381, 'text': "So I'm calling this guy LC stuff for list comprehensions.", 'start': 1489, 'duration': 3.381}, {'end': 1496.403, 'text': 'Now list comprehensions are going to make it very easy for us to manipulate lists.', 'start': 1492.461, 'duration': 3.942}, {'end': 1498.664, 'text': "So let's go and create a list.", 'start': 1496.823, 'duration': 1.841}, {'end': 1500.805, 'text': 'Go and show you an example of that.', 'start': 1498.724, 'duration': 2.081}, {'end': 1505.547, 'text': "So let's just have one, two, and three inside of this guy.", 'start': 1501.185, 'duration': 4.362}, {'end': 1508.728, 'text': "And let's say we want to multiply every list item by two.", 'start': 1505.967, 'duration': 2.761}, {'end': 1510.246, 'text': 'pretty easy to do.', 'start': 1509.246, 'duration': 1}, {'end': 1517.988, 'text': 'we can just go list two is equal to, and then we are going to define what operation we want to perform.', 'start': 1510.246, 'duration': 7.742}, {'end': 1525.43, 'text': "put two of those pipes inside of there and then we're going to define the temporary name for each list item.", 'start': 1517.988, 'duration': 7.442}, {'end': 1527.51, 'text': "that's going to be pulled out of the list one by one.", 'start': 1525.43, 'duration': 2.08}, {'end': 1533.271, 'text': 'let me grab that like that, and then we can output the new results that we have here and there.', 'start': 1527.51, 'duration': 5.761}, {'end': 1535.352, 'text': 'you can see it went and multiplied all those by two.', 'start': 1533.271, 'duration': 2.081}, {'end': 1537.574, 'text': 'Okay, so we do even cooler things.', 'start': 1535.732, 'duration': 1.842}, {'end': 1547.502, 'text': "Let's say that we would like to come in here and add conditions like for example, we want to get a list and we only want the even values from it.", 'start': 1538.114, 'duration': 9.388}, {'end': 1553.267, 'text': "Let's go and create list three, and just 123 and four.", 'start': 1547.842, 'duration': 5.425}], 'summary': 'Erlang allows manipulation of lists, such as retrieving head and tail, adding values, and using list comprehensions for easy manipulation and filtering.', 'duration': 140.503, 'max_score': 1412.764, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41412764.jpg'}, {'end': 1457.267, 'src': 'embed', 'start': 1431.644, 'weight': 7, 'content': [{'end': 1436.028, 'text': 'here we can just execute that guy and there you can see it grabbed it.', 'start': 1431.644, 'duration': 4.384}, {'end': 1440.251, 'text': 'the four would have come back for the head and the five and six come back for the tail,', 'start': 1436.028, 'duration': 4.223}, {'end': 1444.235, 'text': "and you're going to be doing a lot of things like that using erlang.", 'start': 1440.251, 'duration': 3.984}, {'end': 1450.08, 'text': "you're also going to be able to add a value to a list using something called the cons operator.", 'start': 1444.235, 'duration': 5.845}, {'end': 1457.267, 'text': "so i'm going to go list five is equal to, and i'm going to go three And then list four like that.", 'start': 1450.08, 'duration': 7.187}], 'summary': 'Using erlang, you can manipulate lists and add values with the cons operator.', 'duration': 25.623, 'max_score': 1431.644, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41431644.jpg'}, {'end': 1525.43, 'src': 'embed', 'start': 1492.461, 'weight': 8, 'content': [{'end': 1496.403, 'text': 'Now list comprehensions are going to make it very easy for us to manipulate lists.', 'start': 1492.461, 'duration': 3.942}, {'end': 1498.664, 'text': "So let's go and create a list.", 'start': 1496.823, 'duration': 1.841}, {'end': 1500.805, 'text': 'Go and show you an example of that.', 'start': 1498.724, 'duration': 2.081}, {'end': 1505.547, 'text': "So let's just have one, two, and three inside of this guy.", 'start': 1501.185, 'duration': 4.362}, {'end': 1508.728, 'text': "And let's say we want to multiply every list item by two.", 'start': 1505.967, 'duration': 2.761}, {'end': 1510.246, 'text': 'pretty easy to do.', 'start': 1509.246, 'duration': 1}, {'end': 1517.988, 'text': 'we can just go list two is equal to, and then we are going to define what operation we want to perform.', 'start': 1510.246, 'duration': 7.742}, {'end': 1525.43, 'text': "put two of those pipes inside of there and then we're going to define the temporary name for each list item.", 'start': 1517.988, 'duration': 7.442}], 'summary': 'List comprehensions make it easy to manipulate lists and perform operations like multiplication on its items.', 'duration': 32.969, 'max_score': 1492.461, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41492461.jpg'}], 'start': 989.439, 'title': 'Exploring strings and erlang data structures', 'summary': 'Explores the usage of strings in programming, covering topics such as string manipulation, formatting, length calculation, concatenation, character indexing, substring extraction, and case conversion. it also covers erlang tuples, demonstrating the creation, accessing values, using anonymous variables, tagged tuples, and then shifts focus to erlang lists, explaining list creation, joining, subtraction, element retrieval, adding values, and list comprehensions for manipulation.', 'chapters': [{'end': 1243.81, 'start': 989.439, 'title': 'Strings in depth', 'summary': 'Explores the usage of strings in programming, covering topics such as string manipulation, formatting, length calculation, concatenation, character indexing, substring extraction, and case conversion.', 'duration': 254.371, 'highlights': ['The chapter introduces the concept of strings, showcasing their creation and manipulation, including formatting and output. It covers the creation and manipulation of strings, including formatting and output, using examples like StringStuff and tilde P formatting.', 'Demonstration of string formatting and output using tilde S and tilde S, and IO FWrite for displaying formatted strings on the screen. It demonstrates the usage of tilde S and IO FWrite for string formatting and output on the screen.', 'Illustration of obtaining the length of a string and concatenating strings together. It illustrates obtaining the length of a string and concatenating strings together, exemplified by the string length and string concatenation operations.', 'Explanation of finding the index of a specific character within a string and extracting substrings based on the starting index and length. It explains finding the index of a specific character within a string and extracting substrings based on the starting index and length.', 'Demonstration of obtaining the index of a string and converting strings to uppercase and lowercase. It demonstrates obtaining the index of a string and converting strings to uppercase and lowercase.']}, {'end': 1592.207, 'start': 1244.11, 'title': 'Erlang tuples and lists', 'summary': 'Covers erlang tuples, demonstrating the creation, accessing values, using anonymous variables, tagged tuples, and then shifts focus to erlang lists, explaining list creation, joining, subtraction, element retrieval, adding values, and list comprehensions for manipulation.', 'duration': 348.097, 'highlights': ['Demonstrated creation and accessing values of Erlang tuples, showcasing the use of different data types and retrieving values from tuples. Examples of creating tuples and accessing their values.', 'Explained the use of anonymous variables and matching patterns in Erlang tuples, with a practical example of using underscore as an anonymous variable. Explanation and demonstration of using an anonymous variable to match patterns.', 'Showcased the creation and usage of tagged tuples in Erlang, with an example of using an atom as the key for a value. Demonstration of creating and accessing tagged tuples using atoms as keys.', 'Explained the creation and manipulation of Erlang lists, including joining lists, subtracting lists, retrieving elements, adding values, and getting head and tail of a list. Explanation and demonstration of list manipulation operations.', 'Demonstrated the usage of list comprehensions to manipulate lists, including examples of performing operations on list items and adding conditions to filter list elements. Demonstration of list comprehensions for list manipulation with examples.']}], 'duration': 602.768, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG4989439.jpg', 'highlights': ['Covers string creation, manipulation, formatting, and output.', 'Illustrates obtaining string length and concatenating strings.', 'Explains finding character index and extracting substrings.', 'Demonstrates converting strings to uppercase and lowercase.', 'Demonstrates creation and accessing values of Erlang tuples.', 'Explains the use of anonymous variables and matching patterns in Erlang tuples.', 'Showcases the creation and usage of tagged tuples in Erlang.', 'Explains the creation and manipulation of Erlang lists.', 'Demonstrates the usage of list comprehensions to manipulate lists.']}, {'end': 2518.082, 'segs': [{'end': 1687.338, 'src': 'embed', 'start': 1657.743, 'weight': 0, 'content': [{'end': 1668.69, 'text': "and then what we're going to do here is we're going to Go city weather, reference that list of tuples and then we're going to define our condition.", 'start': 1657.743, 'duration': 10.947}, {'end': 1675.133, 'text': 'We are looking for temperature greater than or equal to 65.', 'start': 1668.81, 'duration': 6.323}, {'end': 1679.935, 'text': "Put that inside of there, close that off, and then let's go and see what our results are.", 'start': 1675.133, 'duration': 4.802}, {'end': 1687.338, 'text': "So we just go great temp, and it's going to give us everything that matches up with that condition.", 'start': 1680.435, 'duration': 6.903}], 'summary': 'Using go city weather to find temperatures >= 65.', 'duration': 29.595, 'max_score': 1657.743, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41657743.jpg'}, {'end': 1996.524, 'src': 'embed', 'start': 1968.063, 'weight': 1, 'content': [{'end': 1972.328, 'text': 'Multiply 3 times 2 is equal to 6, and that gives you your final result.', 'start': 1968.063, 'duration': 4.265}, {'end': 1977.755, 'text': "Okay, so a simple example of recursion, as I'm guessing you probably have already seen.", 'start': 1972.488, 'duration': 5.267}, {'end': 1979.916, 'text': "Let's go in here and do a whole bunch more.", 'start': 1978.135, 'duration': 1.781}, {'end': 1982.737, 'text': "Let's go and create another function.", 'start': 1980.216, 'duration': 2.521}, {'end': 1989.161, 'text': "This guy is just simply going to be called sum and it's going to receive a list and it's going to sum all the values inside of it.", 'start': 1982.777, 'duration': 6.384}, {'end': 1993.383, 'text': 'So the list this guy is going to receive is just going to be one, two and three.', 'start': 1989.461, 'duration': 3.922}, {'end': 1996.524, 'text': "And then I'm going to go sum and define our conditions.", 'start': 1993.403, 'duration': 3.121}], 'summary': 'Demonstrating recursion with a simple math example and creating a sum function to add values in a list.', 'duration': 28.461, 'max_score': 1968.063, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41968063.jpg'}, {'end': 2172.737, 'src': 'heatmap', 'start': 2134.756, 'weight': 1, 'content': [{'end': 2140.699, 'text': "We'll just go sum once again, close that off, and then we're going to be calling sum again,", 'start': 2134.756, 'duration': 5.943}, {'end': 2148.103, 'text': "and in this situation we'll get the tail and the head plus and we'll add that to our sum.", 'start': 2140.699, 'duration': 7.404}, {'end': 2155.187, 'text': 'Once again, we come down here, and we can run this guy, and there you can see we got the same answer of six, just like we did before.', 'start': 2148.463, 'duration': 6.724}, {'end': 2159.727, 'text': "Now Erlang doesn't contain four loops, but you could actually create one.", 'start': 2155.563, 'duration': 4.164}, {'end': 2164.15, 'text': "I'll show you how to do it using these same recursive tricks.", 'start': 2159.967, 'duration': 4.183}, {'end': 2166.572, 'text': "So in this situation, we're going to have a function.", 'start': 2164.651, 'duration': 1.921}, {'end': 2172.737, 'text': "It's going to be called four and it's going to receive the maximum value we want to count up to and where we're going to start from.", 'start': 2166.612, 'duration': 6.125}], 'summary': 'Erlang recursion to sum with tail and head, achieving a result of six.', 'duration': 37.981, 'max_score': 2134.756, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG42134756.jpg'}, {'end': 2276.346, 'src': 'heatmap', 'start': 2240.081, 'weight': 0.805, 'content': [{'end': 2242.766, 'text': "We're going to do some more with recursion as the tutorial continues.", 'start': 2240.081, 'duration': 2.685}, {'end': 2245.25, 'text': 'But now I want to take a look at maps.', 'start': 2243.147, 'duration': 2.103}, {'end': 2250.399, 'text': 'Now a map is a grouping of key-valued pairs.', 'start': 2246.078, 'duration': 4.321}, {'end': 2252.14, 'text': "And so let's go and define one.", 'start': 2250.859, 'duration': 1.281}, {'end': 2254.72, 'text': "You're just going to say, let's say Bob is the name of this.", 'start': 2252.16, 'duration': 2.56}, {'end': 2256.761, 'text': "Let's start off with a hash symbol.", 'start': 2255.1, 'duration': 1.661}, {'end': 2260.482, 'text': "And let's say we want to have the key be first name.", 'start': 2257.181, 'duration': 3.301}, {'end': 2262.882, 'text': "Then I'm going to put a little arrow inside of there.", 'start': 2260.862, 'duration': 2.02}, {'end': 2266.083, 'text': "And we're going to define that this is Bob.", 'start': 2263.102, 'duration': 2.981}, {'end': 2269.984, 'text': 'Then we can come in and go, oops, go to last name.', 'start': 2266.443, 'duration': 3.541}, {'end': 2272.445, 'text': 'And put the arrow inside of there again.', 'start': 2270.704, 'duration': 1.741}, {'end': 2274.305, 'text': 'And have this be Smith.', 'start': 2272.945, 'duration': 1.36}, {'end': 2276.346, 'text': "Now we're going to be able to do all kinds of things with it.", 'start': 2274.625, 'duration': 1.721}], 'summary': 'Introduction to maps with key-value pairs and example of defining a map with bob as the key and first name as bob and last name as smith.', 'duration': 36.265, 'max_score': 2240.081, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG42240081.jpg'}, {'end': 2425.755, 'src': 'heatmap', 'start': 2372, 'weight': 0.768, 'content': [{'end': 2386.877, 'text': "And to do that we can just go maps and put and we'll put address inside of here and 123 main and where we want to put it, which is inside of Bob.", 'start': 2372, 'duration': 14.877}, {'end': 2393.304, 'text': 'And we can execute that, and you will see that the address is in there along with the first name and the last name.', 'start': 2387.337, 'duration': 5.967}, {'end': 2396.009, 'text': 'Okay, so rundown of things we can do with maps.', 'start': 2393.507, 'duration': 2.502}, {'end': 2397.75, 'text': "Now let's take a look at records.", 'start': 2396.109, 'duration': 1.641}, {'end': 2402.773, 'text': "So I'm gonna change this to record stuff and change this to record stuff.", 'start': 2398.37, 'duration': 4.403}, {'end': 2409.358, 'text': "Now basically with a record, you're gonna be able to define a custom type that's going to contain multiple different fields.", 'start': 2403.294, 'duration': 6.064}, {'end': 2413.24, 'text': "And to do this, let's come in here and define a record.", 'start': 2410.018, 'duration': 3.222}, {'end': 2425.755, 'text': "So I'm gonna go record and customer, And then what I want to have inside of here is the field for name, which is going to have a default nothing.", 'start': 2413.26, 'duration': 12.495}], 'summary': 'Demonstrates how to use maps and records to store and retrieve data.', 'duration': 53.755, 'max_score': 2372, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG42372000.jpg'}, {'end': 2413.24, 'src': 'embed', 'start': 2387.337, 'weight': 2, 'content': [{'end': 2393.304, 'text': 'And we can execute that, and you will see that the address is in there along with the first name and the last name.', 'start': 2387.337, 'duration': 5.967}, {'end': 2396.009, 'text': 'Okay, so rundown of things we can do with maps.', 'start': 2393.507, 'duration': 2.502}, {'end': 2397.75, 'text': "Now let's take a look at records.", 'start': 2396.109, 'duration': 1.641}, {'end': 2402.773, 'text': "So I'm gonna change this to record stuff and change this to record stuff.", 'start': 2398.37, 'duration': 4.403}, {'end': 2409.358, 'text': "Now basically with a record, you're gonna be able to define a custom type that's going to contain multiple different fields.", 'start': 2403.294, 'duration': 6.064}, {'end': 2413.24, 'text': "And to do this, let's come in here and define a record.", 'start': 2410.018, 'duration': 3.222}], 'summary': 'Introducing maps and records for defining custom data types.', 'duration': 25.903, 'max_score': 2387.337, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG42387337.jpg'}], 'start': 1592.627, 'title': 'Data structures and recursion in programming languages', 'summary': 'Covers python list comprehensions, demonstrating filtering temperatures above 65, and exploring type conversions. it also explains recursion in erlang through examples of finding factorial and summing values in a list. additionally, it introduces maps and records, showcasing key-valued pairs manipulation and custom types with various functionalities.', 'chapters': [{'end': 1776.651, 'start': 1592.627, 'title': 'Python list comprehensions & type conversions', 'summary': 'Introduces python list comprehensions by demonstrating a weather data example, filtering temperatures above 65 and exploring type conversions, showcasing the ease of checking data types and converting between them.', 'duration': 184.024, 'highlights': ['The chapter introduces Python list comprehensions by demonstrating a weather data example, filtering temperatures above 65.', 'It explains the syntax and usage of list comprehensions to filter and manipulate data effectively.', 'The tutorial briefly touches on type conversions, showcasing the ease of checking data types and converting between them.']}, {'end': 2240.061, 'start': 1776.671, 'title': 'Recursion in erlang', 'summary': 'Explains the concept of recursion in erlang through examples of finding factorial, summing values in a list, and creating a for loop using recursive functions.', 'duration': 463.39, 'highlights': ['The chapter explains the concept of recursion in Erlang through examples of finding factorial, summing values in a list, and creating a for loop using recursive functions. recursion concept, examples of finding factorial, summing values in a list, creating a for loop using recursive functions', 'The chapter demonstrates finding a factorial using recursion, where the value of 3 results in a factorial of 6, showcasing the process of function calling itself and handling the exit condition. demonstration of finding factorial, value of 3 resulting in a factorial of 6, showcasing the process of function calling itself and handling the exit condition', 'An example of summing values in a list using recursion is provided, displaying the process of adding the head to the sum of the tail as it cycles through the list, resulting in a final sum of 6. example of summing values in a list using recursion, displaying the process of adding the head to the sum of the tail, resulting in a final sum of 6', 'The chapter showcases the creation of a for loop using recursive functions, demonstrating how the decrementing values are printed out using recursion. creation of for loop using recursive functions, demonstration of decrementing values printed out using recursion']}, {'end': 2518.082, 'start': 2240.081, 'title': 'Maps, records, and recursion in tutorial', 'summary': 'Introduces the concept of maps and records, showcasing how to define, manipulate, and access key-valued pairs as well as custom types with fields, with examples demonstrating the functionalities such as getting values, keys, removing a key, checking if a key exists, adding a key-value pair, and changing data.', 'duration': 278.001, 'highlights': ['The chapter introduces the concept of maps and records It provides an overview of the tutorial content and sets the stage for the subsequent explanations.', 'Examples demonstrating the functionalities such as getting values, keys, removing a key, checking if a key exists, adding a key-value pair, and changing data It showcases practical use cases and manipulations of maps and records, illustrating the diverse operations possible with these data structures.', 'Defining a record with custom type containing multiple fields Illustrates the process of defining a record with specific fields, providing an example of creating a custom type with default values.']}], 'duration': 925.455, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG41592627.jpg', 'highlights': ['The chapter introduces Python list comprehensions by demonstrating a weather data example, filtering temperatures above 65.', 'The chapter explains the concept of recursion in Erlang through examples of finding factorial, summing values in a list, and creating a for loop using recursive functions.', 'The chapter introduces the concept of maps and records, showcasing key-valued pairs manipulation and custom types with various functionalities.']}, {'end': 3446.51, 'segs': [{'end': 2659.111, 'src': 'embed', 'start': 2631.629, 'weight': 0, 'content': [{'end': 2638.253, 'text': 'and you can see that it gave us three, six, nine and of course, if we got rid of this guy and save that like that,', 'start': 2631.629, 'duration': 6.624}, {'end': 2642.135, 'text': 'we could then come in and run that guy and just double those values.', 'start': 2638.253, 'duration': 3.882}, {'end': 2647.308, 'text': "Okay, so that's an example of a higher order function, but we're going to do some more stuff here.", 'start': 2642.506, 'duration': 4.802}, {'end': 2652.289, 'text': "Let's also come in and I'm going to create another one function inside of here.", 'start': 2647.328, 'duration': 4.961}, {'end': 2659.111, 'text': "And this is going to be called fun stuff, just so you can see more examples of the how we're going to use this.", 'start': 2653.049, 'duration': 6.062}], 'summary': 'Demonstration of higher order function with multiple examples.', 'duration': 27.482, 'max_score': 2631.629, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG42631629.jpg'}, {'end': 2782.7, 'src': 'embed', 'start': 2752.38, 'weight': 1, 'content': [{'end': 2754.963, 'text': 'And if we run it, you can see that this sum comes back at 7.', 'start': 2752.38, 'duration': 2.583}, {'end': 2758.367, 'text': 'So a couple neat little examples there.', 'start': 2754.963, 'duration': 3.404}, {'end': 2760.65, 'text': 'Now I want to take a look at file I.O.', 'start': 2758.387, 'duration': 2.263}, {'end': 2764.872, 'text': "Now I'm going to create a function that is going to be called WriteText.", 'start': 2761.01, 'duration': 3.862}, {'end': 2769.274, 'text': "And it's going to pass in a string called WriteToTheFile.", 'start': 2765.332, 'duration': 3.942}, {'end': 2772.055, 'text': "And then let's come down here and define this function.", 'start': 2769.734, 'duration': 2.321}, {'end': 2774.696, 'text': "So we'll go WriteText.", 'start': 2772.415, 'duration': 2.281}, {'end': 2777.958, 'text': "It's going to receive a string that's going to write to a file.", 'start': 2775.196, 'duration': 2.762}, {'end': 2782.7, 'text': "What we want to do here is get a file handler that we're going to use to write to our file.", 'start': 2778.258, 'duration': 4.442}], 'summary': 'Code demonstration includes writing text to a file with a file handler.', 'duration': 30.32, 'max_score': 2752.38, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG42752380.jpg'}, {'end': 3214.027, 'src': 'embed', 'start': 3181.273, 'weight': 2, 'content': [{'end': 3182.834, 'text': 'And you can see that 11 comes back.', 'start': 3181.273, 'duration': 1.561}, {'end': 3183.334, 'text': 'All right.', 'start': 3183.094, 'duration': 0.24}, {'end': 3186.656, 'text': 'So real brief example, macros just wanted to definitely cover that.', 'start': 3183.374, 'duration': 3.282}, {'end': 3191.358, 'text': "And now I'm going to provide you with some simple examples on concurrency.", 'start': 3187.116, 'duration': 4.242}, {'end': 3199.362, 'text': 'Okay So concurrency is when several processes are going to execute at the same time and potentially interact.', 'start': 3191.758, 'duration': 7.604}, {'end': 3205.724, 'text': "And as long as the processes aren't dependent on each other, they can run at the same time.", 'start': 3199.862, 'duration': 5.862}, {'end': 3214.027, 'text': "So, for example, if you had one process that its only purpose was to count to one million and another that's purpose was to calculate pi.", 'start': 3205.984, 'duration': 8.043}], 'summary': 'Concurrency allows multiple processes to execute simultaneously if not dependent on each other.', 'duration': 32.754, 'max_score': 3181.273, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG43181273.jpg'}], 'start': 2518.142, 'title': 'Functional programming and concurrency', 'summary': 'Introduces higher order functions and demonstrates their use for multiplying items by two and three using map and creating anonymous functions. it also covers file i/o, exception handling, and macros, demonstrating writing to and reading from a file, handling errors using try-catch blocks, and utilizing macros for inline code replacement. additionally, it provides a brief explanation of concurrency in erlang, demonstrating the execution of independent processes and showcasing a simple example of creating and executing processes using spawner functions.', 'chapters': [{'end': 2751.96, 'start': 2518.142, 'title': 'Higher order functions tutorial', 'summary': 'Introduces higher order functions by defining and demonstrating their use, such as multiplying items by two and three using map, and creating and using anonymous functions to output information on the screen.', 'duration': 233.818, 'highlights': ['The chapter explains higher order functions, such as multiplying values by two and three using map, and creating and using anonymous functions to output information on the screen.', 'It illustrates applying the double and triple functions to a list of numbers using map, resulting in the values being multiplied by two and three, and demonstrates how to access values outside of a function.', 'It provides examples of defining and using higher order functions, such as multiplying every item by two and three using map, and creating anonymous functions to output information on the screen.']}, {'end': 3180.873, 'start': 2752.38, 'title': 'File i.o., exception handling, macros', 'summary': 'Covers file input/output operations, exception handling, and macros. it demonstrates writing to and reading from a file, handling errors using try-catch blocks, and utilizing macros for inline code replacement.', 'duration': 428.493, 'highlights': ['It demonstrates writing to and reading from a file The transcript covers creating functions for writing text to a file, appending data, and reading text from the file.', 'Handling errors using try-catch blocks The transcript provides examples of using try-catch blocks to handle errors, such as division by zero and file reading errors.', 'Utilizing macros for inline code replacement It explains the concept of macros and demonstrates using a macro for inline code replacement with an example.']}, {'end': 3446.51, 'start': 3181.273, 'title': 'Understanding concurrency in erlang', 'summary': 'Provides a brief explanation of concurrency in erlang, demonstrating the execution of independent processes and showcasing a simple example of creating and executing processes using spawner functions and how they take turns to execute code.', 'duration': 265.237, 'highlights': ['The chapter provides a brief explanation of concurrency in Erlang, showcasing a simple example of creating and executing processes using spawner functions and how they take turns to execute code.', 'The example demonstrates the execution of independent processes, with one counting from 50 to 1 and the other counting from 100 to 51.', 'Processes are shown to interact by executing code and trading places, showcasing the concurrent behavior in Erlang.', 'An explanation of concurrency in Erlang and its practical application is given, with a focus on demonstrating the capabilities of Erlang compared to other languages.']}], 'duration': 928.368, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/IEhwc2q1zG4/pics/IEhwc2q1zG42518142.jpg', 'highlights': ['The chapter explains higher order functions, such as multiplying values by two and three using map, and creating and using anonymous functions to output information on the screen.', 'It demonstrates writing to and reading from a file, creating functions for writing text to a file, appending data, and reading text from the file.', 'The chapter provides a brief explanation of concurrency in Erlang, showcasing a simple example of creating and executing processes using spawner functions and how they take turns to execute code.']}], 'highlights': ['The video tutorial covers the core syntax of Erlang through example code and is the most requested video by the audience.', 'The tutorial is designed for individuals familiar with other programming languages like Python, Java, or C Sharp who want to learn how to do in Erlang what they do in other languages.', 'The video tutorial includes a cheat sheet for the entire video and timestamps to all the different parts of the video, available in the description.', "The chapter discusses the creation of a simple 'hello world' function inside a module, emphasizing the process of defining and calling functions, as well as running the code in Eclipse.", 'You can define and call functions, export functions, add multiple numbers, and access module information in Erlang.', "The function being created does not receive any attribute and prints 'hello world' on the screen.", 'The process of defining and calling functions is explained, with an emphasis on tabbing in and saving the code in Eclipse.', 'Variable names in Erlang start with an uppercase letter or an underscore, and can contain letters, numbers, underscores, or at symbols.', 'Demonstrated addition, subtraction, multiplication, division, modulus, exponential, logarithmic, square root, and random value generation functions.', 'The chapter covers comparisons of values and types Discusses how to compare values and types using various operators and methods.', 'Examples of different logical operators are provided Provides examples of using logical operators such as and, or, not, and exclusive or in code.', 'Python function call before definition allows flexible code organization and variable placement.', 'The chapter demonstrates conditional statements using if and case Demonstrates how to use if and case statements to create conditional logic in the code.', 'Covers string creation, manipulation, formatting, and output.', 'Illustrates obtaining string length and concatenating strings.', 'Explains finding character index and extracting substrings.', 'Demonstrates converting strings to uppercase and lowercase.', 'Demonstrates creation and accessing values of Erlang tuples.', 'Explains the use of anonymous variables and matching patterns in Erlang tuples.', 'Showcases the creation and usage of tagged tuples in Erlang.', 'Explains the creation and manipulation of Erlang lists.', 'Demonstrates the usage of list comprehensions to manipulate lists.', 'The chapter introduces Python list comprehensions by demonstrating a weather data example, filtering temperatures above 65.', 'The chapter explains the concept of recursion in Erlang through examples of finding factorial, summing values in a list, and creating a for loop using recursive functions.', 'The chapter introduces the concept of maps and records, showcasing key-valued pairs manipulation and custom types with various functionalities.', 'The chapter explains higher order functions, such as multiplying values by two and three using map, and creating and using anonymous functions to output information on the screen.', 'It demonstrates writing to and reading from a file, creating functions for writing text to a file, appending data, and reading text from the file.', 'The chapter provides a brief explanation of concurrency in Erlang, showcasing a simple example of creating and executing processes using spawner functions and how they take turns to execute code.']}