title
F# Tutorial

description
Get the Code Here : https://goo.gl/frsmGF Best F# Book : http://amzn.to/2ote5eD 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) In this video I will cover the core syntax of the F# language in one video. This is basically a 300 page book on F# in one video. Here are time stamps to all the main parts, but much more is covered then I list here. 00:29 Input / Output 09:10 Binding / Mutable 11:10 Functions 22:09 Math 25:21 Strings 33:54 Looping 34:07 While 35:47 For 36:53 Iterating 38:35 Conditionals 38:50 IF ELIF ELSE 42:32 Match 44:38 Lists 55:27 Enums 57:15 Options 59:40 Tuples 1:01:49 Records 1:03:31 Sequences 1:08:30 Maps 1:12:52 Generics 1:14:03 Exception Handling 1:16:45 Structs 1:19:10 Classes 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 https://github.com/YearOfProgramming/2017Challenges http://tradeterminal.io/

detail
{'title': 'F# Tutorial', 'heatmap': [{'end': 355.596, 'start': 301.786, 'weight': 0.732}, {'end': 709.477, 'start': 605.005, 'weight': 0.959}, {'end': 1764.923, 'start': 1707.764, 'weight': 0.748}, {'end': 2673.614, 'start': 2564.527, 'weight': 0.759}, {'end': 3481.581, 'start': 3427.747, 'weight': 1}, {'end': 3733.518, 'start': 3679.498, 'weight': 0.811}], 'summary': 'Tutorial on f# covers core syntax, formatting, math functions, string operations, programming concepts like looping, conditionals, lists, enums, tuples, records, sequences, maps, generics, and exception handling, with practical demonstrations and examples in visual studio 2017, focusing on predictability, shorter code length, and functional list operations.', 'chapters': [{'end': 352.673, 'segs': [{'end': 28.221, 'src': 'embed', 'start': 0.558, 'weight': 3, 'content': [{'end': 3.601, 'text': 'Well hello internet and welcome to my F sharp video tutorial.', 'start': 0.558, 'duration': 3.043}, {'end': 8.985, 'text': 'In this one tutorial you are going to learn the core syntax of the F sharp language,', 'start': 3.641, 'duration': 5.344}, {'end': 14.71, 'text': 'and in the description underneath this video I have a link to all the code as well as a transcript of the video,', 'start': 8.985, 'duration': 5.725}, {'end': 20.995, 'text': "and also I have time stamps to all the individual topics covered in this video, so you don't have to watch everything all at once.", 'start': 14.71, 'duration': 6.285}, {'end': 27.4, 'text': 'you can watch part and then come back to it and just click on a time stamp and go back to where you started, and, like always, I have a lot to do,', 'start': 20.995, 'duration': 6.405}, {'end': 28.221, 'text': "so let's get into it.", 'start': 27.4, 'duration': 0.821}], 'summary': 'F sharp video tutorial covers core syntax, with code and timestamps for easy navigation.', 'duration': 27.663, 'max_score': 0.558, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U558.jpg'}, {'end': 139.898, 'src': 'embed', 'start': 63.666, 'weight': 0, 'content': [{'end': 67.689, 'text': "and you can also see program FS over here, okay? So let's just start it here.", 'start': 63.666, 'duration': 4.023}, {'end': 77.856, 'text': "Now. basically, Fsharp is Microsoft's functional language and it's gonna provide a way to develop predictable code that is often way shorter,", 'start': 67.769, 'duration': 10.087}, {'end': 87.463, 'text': "and that's a major benefit of functional languages, in that they apply functions to data rather than focus on state changes,", 'start': 77.856, 'duration': 9.607}, {'end': 89.805, 'text': 'like most object-oriented languages.', 'start': 87.463, 'duration': 2.342}, {'end': 98.262, 'text': 'And another benefit of functional languages is that they are great in regards to executing multiple processes at once.', 'start': 90.43, 'duration': 7.832}, {'end': 102.568, 'text': 'And one of the reasons why is because variables for the most part are immutable.', 'start': 98.342, 'duration': 4.226}, {'end': 106.923, 'text': 'meaning that once the value is assigned, it cannot be changed.', 'start': 102.921, 'duration': 4.002}, {'end': 108.964, 'text': "But we'll get into all that.", 'start': 107.804, 'duration': 1.16}, {'end': 116.809, 'text': 'What we want to do here, very first thing, is we want to open up Open and System.', 'start': 109.265, 'duration': 7.544}, {'end': 122.352, 'text': 'And what this is going to allow us to do is access things like read line and write line,', 'start': 117.129, 'duration': 5.223}, {'end': 128.615, 'text': 'different functions that are available in C Sharp that we may want to use, and a couple other functions as we go on.', 'start': 122.352, 'duration': 6.263}, {'end': 130.056, 'text': "We're going to be doing a lot of stuff here.", 'start': 128.655, 'duration': 1.401}, {'end': 139.898, 'text': "Now I'm going to do a rundown of how to both read information in from users as well as how to output it and a little bit about variables.", 'start': 130.316, 'duration': 9.582}], 'summary': 'Fsharp is a functional language by microsoft, promoting predictability and shorter code, with benefits including immutability and multitasking capabilities.', 'duration': 76.232, 'max_score': 63.666, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U63666.jpg'}, {'end': 185.393, 'src': 'embed', 'start': 160.473, 'weight': 7, 'content': [{'end': 165.996, 'text': "And let's say that we would want to come in here and print to the screen and not use a new line.", 'start': 160.473, 'duration': 5.523}, {'end': 171.239, 'text': "What we would do is go print F, and that's the version of print to the screen without a new line.", 'start': 166.236, 'duration': 5.003}, {'end': 174.661, 'text': "And I'm going to say something like, enter your name.", 'start': 171.679, 'duration': 2.982}, {'end': 176.728, 'text': 'And put this like that.', 'start': 175.667, 'duration': 1.061}, {'end': 181.571, 'text': "And another thing we're going to want to do is come way outside of this function.", 'start': 177.288, 'duration': 4.283}, {'end': 185.393, 'text': 'And basically to get out of the function, you just go and get rid of the white space there.', 'start': 181.591, 'duration': 3.802}], 'summary': 'Demonstrating how to print to the screen without a new line and exit a function.', 'duration': 24.92, 'max_score': 160.473, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U160473.jpg'}, {'end': 255.042, 'src': 'embed', 'start': 224.179, 'weight': 6, 'content': [{'end': 229.902, 'text': "Basically, this is a hello world application, but we're going to do a little bit more with it.", 'start': 224.179, 'duration': 5.723}, {'end': 233.685, 'text': "Let's say we want to read data in from our user.", 'start': 230.203, 'duration': 3.482}, {'end': 234.826, 'text': "We're going to go let.", 'start': 233.965, 'duration': 0.861}, {'end': 242.952, 'text': "basically what let does, if I didn't say before, is it's going to bind a name to either a value or a function.", 'start': 235.906, 'duration': 7.046}, {'end': 244.293, 'text': 'so hello.', 'start': 242.952, 'duration': 1.341}, {'end': 255.042, 'text': "or in this situation, I'm going to create a variable called name and I'm going to use read line to read in input from our user and, as you can see,", 'start': 244.293, 'duration': 10.749}], 'summary': 'Creating a hello world application with user input using let and read line.', 'duration': 30.863, 'max_score': 224.179, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U224179.jpg'}], 'start': 0.558, 'title': 'F sharp and c# syntax', 'summary': 'Introduces the core syntax of f sharp, showcasing predictability, shorter code length, and focus on functions, while also covering c# functions like read line and write line, let binding variables, and statically typed parameters, with demonstrations in visual studio 2017 and a hello world application.', 'chapters': [{'end': 116.809, 'start': 0.558, 'title': 'F sharp core syntax tutorial', 'summary': 'Introduces the core syntax of the f sharp language, demonstrating its benefits such as predictability, shorter code length, focus on functions over state changes, and execution of multiple processes at once, with the mention of visual studio 2017 for demonstration.', 'duration': 116.251, 'highlights': ["Fsharp is Microsoft's functional language, providing a way to develop predictable code that is often way shorter. Fsharp is highlighted as Microsoft's functional language, emphasizing its ability to develop predictable and shorter code.", 'Functional languages apply functions to data rather than focus on state changes, like most object-oriented languages. Emphasizes the advantage of functional languages in applying functions to data rather than focusing on state changes, contrasting with object-oriented languages.', 'Variables for the most part are immutable in functional languages, meaning that once the value is assigned, it cannot be changed. Emphasizes the immutability of variables in functional languages, indicating that once a value is assigned, it cannot be changed.', 'Visual Studio 2017 is used for demonstration of the F sharp core syntax and creating a new project. Mentions the usage of Visual Studio 2017 for demonstrating the F sharp core syntax and creating a new project.']}, {'end': 352.673, 'start': 117.129, 'title': 'C# functions and variables tutorial', 'summary': 'Covers accessing functions like read line and write line in c sharp, creating and calling functions, using let to bind variables, and printing outputs without new lines, with a basic hello world application and reading user input demonstrated, ending with an explanation of statically typed parameters and executing the fsharp application.', 'duration': 235.544, 'highlights': ['The chapter covers accessing functions like read line and write line in C Sharp Demonstrates the use of read line and write line functions in C Sharp for input and output operations.', 'creating and calling functions Provides a simple example and explanation of creating and calling functions in C Sharp.', "using let to bind variables Explains the use of 'let' to bind variables to values or functions in C Sharp.", 'printing outputs without new lines Explains the use of print F to print outputs without new lines in C Sharp.', 'demonstrated, ending with an explanation of statically typed parameters and executing the Fsharp application Concludes with a demonstration of executing an Fsharp application and an explanation of statically typed parameters in C Sharp.']}], 'duration': 352.115, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U558.jpg', 'highlights': ["Fsharp is Microsoft's functional language, emphasizing its ability to develop predictable and shorter code.", 'Functional languages apply functions to data rather than focusing on state changes, contrasting with object-oriented languages.', 'Emphasizes the immutability of variables in functional languages, indicating that once a value is assigned, it cannot be changed.', 'Visual Studio 2017 is used for demonstrating the F sharp core syntax and creating a new project.', 'Demonstrates the use of read line and write line functions in C Sharp for input and output operations.', 'Provides a simple example and explanation of creating and calling functions in C Sharp.', "Explains the use of 'let' to bind variables to values or functions in C Sharp.", 'Explains the use of print F to print outputs without new lines in C Sharp.', 'Concludes with a demonstration of executing an Fsharp application and an explanation of statically typed parameters in C Sharp.']}, {'end': 1170.619, 'segs': [{'end': 382.582, 'src': 'embed', 'start': 353.072, 'weight': 0, 'content': [{'end': 355.596, 'text': "Now I'm going to do something a little bit more complicated.", 'start': 353.072, 'duration': 2.524}, {'end': 358.58, 'text': "Let's go and get rid of all of this here because it's sort of getting in the way.", 'start': 355.656, 'duration': 2.924}, {'end': 363.807, 'text': 'What I want to do now is show you an example of how we can format a floating point numbers.', 'start': 358.82, 'duration': 4.987}, {'end': 369.695, 'text': "So let's come in and we'll see some of the maximums and minimums and things like that.", 'start': 364.408, 'duration': 5.287}, {'end': 372.977, 'text': "So let's say we have Pi and we want to output that on a screen.", 'start': 369.935, 'duration': 3.042}, {'end': 377.919, 'text': "Well, let's just throw a float inside of there, and then we'll just throw Pi inside of there like that.", 'start': 373.217, 'duration': 4.702}, {'end': 382.582, 'text': 'Now the whole reason I did this is just to show you the precision of working with floats.', 'start': 378.079, 'duration': 4.503}], 'summary': 'Demonstrated formatting floating point numbers and precision with pi.', 'duration': 29.51, 'max_score': 353.072, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U353072.jpg'}, {'end': 491.023, 'src': 'embed', 'start': 461.735, 'weight': 1, 'content': [{'end': 462.615, 'text': "So that's important to know.", 'start': 461.735, 'duration': 0.88}, {'end': 468.3, 'text': "You're also going to be able to add padding to both the right and the left with printfn.", 'start': 462.796, 'duration': 5.504}, {'end': 468.98, 'text': "So let's come in.", 'start': 468.32, 'duration': 0.66}, {'end': 470.201, 'text': "Let's just get rid of that.", 'start': 469, 'duration': 1.201}, {'end': 474.544, 'text': "And we'll do something like, oh, I'm just going to show you how padding works.", 'start': 470.882, 'duration': 3.662}, {'end': 476.726, 'text': "So let's get rid of all that.", 'start': 475.045, 'duration': 1.681}, {'end': 484.238, 'text': "And let's change this into percent and negative 5s and then percent and 5s.", 'start': 477.213, 'duration': 7.025}, {'end': 491.023, 'text': 'And what this is going to do is add padding to both the right and the left of whatever we have inside of there.', 'start': 484.258, 'duration': 6.765}], 'summary': 'Printfn can add padding to both right and left, using negative and positive values.', 'duration': 29.288, 'max_score': 461.735, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U461735.jpg'}, {'end': 709.477, 'src': 'heatmap', 'start': 605.005, 'weight': 0.959, 'content': [{'end': 611.11, 'text': "You're also going to be able to come in and use what are called reference cells if you want to change a value.", 'start': 605.005, 'duration': 6.105}, {'end': 619.617, 'text': 'So you can do something like let change me and equal to and reference and 10.', 'start': 611.51, 'duration': 8.107}, {'end': 626.96, 'text': "and in that situation you'd be able to come in and go, change me and then colon equal to and 50,", 'start': 619.617, 'duration': 7.343}, {'end': 629.882, 'text': "and let's go and actually show you that that works also.", 'start': 626.96, 'duration': 2.922}, {'end': 639.866, 'text': "so let's come in there like that and we'll just call this change or something, and that's okay, and we'll change this to change me, and there it is.", 'start': 629.882, 'duration': 9.984}, {'end': 646.569, 'text': "whenever you want to get the value of that reference, though, you're going to have to come in here and put an exclamation mark like that.", 'start': 639.866, 'duration': 6.703}, {'end': 648.609, 'text': 'Just little weird things you have to do.', 'start': 647.029, 'duration': 1.58}, {'end': 652.09, 'text': "Let me tell you, you're not going to be doing this this much because, like I said,", 'start': 648.989, 'duration': 3.101}, {'end': 655.711, 'text': "with functional languages you're mainly going to want to work with immutable data.", 'start': 652.09, 'duration': 3.621}, {'end': 658.551, 'text': "But either way, I just wanted to show it to you, just so you can see what it's like.", 'start': 655.871, 'duration': 2.68}, {'end': 663.852, 'text': 'And we can come in here and run it, just to prove that, yes, in fact, I am able to change those values.', 'start': 658.811, 'duration': 5.041}, {'end': 669.453, 'text': 'Okay, so a couple examples of some crazy stuff you can do binding-wise with Fsharp.', 'start': 663.872, 'duration': 5.581}, {'end': 674.314, 'text': "And now let's jump in, and since this is a functional language, maybe we should talk about some functions.", 'start': 669.913, 'duration': 4.401}, {'end': 680.571, 'text': "Okay, so I went and changed the function we're working here to doFunks, and then I'm calling doFunks down here.", 'start': 674.767, 'duration': 5.804}, {'end': 686.675, 'text': "And if I'm going too fast, just liberally use that pause button as you're watching these videos, because I go pretty quick.", 'start': 680.911, 'duration': 5.764}, {'end': 688.276, 'text': "Okay, so let's go in here.", 'start': 686.715, 'duration': 1.561}, {'end': 690.458, 'text': 'We can create functions inside of functions, of course.', 'start': 688.416, 'duration': 2.042}, {'end': 692.8, 'text': "So let's call one getSum.", 'start': 690.698, 'duration': 2.102}, {'end': 696.462, 'text': 'And basically, functions are going to start with let, of course, like you saw.', 'start': 692.96, 'duration': 3.502}, {'end': 700.445, 'text': "Then you're going to have a name, and then you're going to have parameters.", 'start': 696.622, 'duration': 3.823}, {'end': 702.247, 'text': "So we'll go x.", 'start': 700.965, 'duration': 1.282}, {'end': 705.171, 'text': "You're going to then have optional parameter types.", 'start': 702.247, 'duration': 2.924}, {'end': 709.477, 'text': 'So we go x and a colon and int like that.', 'start': 705.632, 'duration': 3.845}], 'summary': 'In fsharp, you can use reference cells to change values and create functions inside functions.', 'duration': 104.472, 'max_score': 605.005, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U605005.jpg'}, {'end': 791.419, 'src': 'embed', 'start': 758.975, 'weight': 2, 'content': [{'end': 765.344, 'text': "Okay So to make a recursive function, which is a function that calls itself, you're going to go let rec like that.", 'start': 758.975, 'duration': 6.369}, {'end': 766.646, 'text': "And I'm going to have this guy.", 'start': 765.724, 'duration': 0.922}, {'end': 768.434, 'text': 'calculate a factorial.', 'start': 767.113, 'duration': 1.321}, {'end': 770.555, 'text': "If you don't know what that is, I'm going to show you an example.", 'start': 768.614, 'duration': 1.941}, {'end': 771.356, 'text': "I'll walk you through it.", 'start': 770.615, 'duration': 0.741}, {'end': 778.2, 'text': "And let's go and do a brief explanation of how if statements work as well as else statements.", 'start': 771.676, 'duration': 6.524}, {'end': 780.621, 'text': 'So they work just like every other language.', 'start': 778.52, 'duration': 2.101}, {'end': 791.419, 'text': "We're going to say here if x is less than 1, then we want to return a value of 1, else if x otherwise,", 'start': 780.661, 'duration': 10.758}], 'summary': 'Creating a recursive function to calculate factorial and explaining if statements.', 'duration': 32.444, 'max_score': 758.975, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U758975.jpg'}, {'end': 976.479, 'src': 'embed', 'start': 948.162, 'weight': 3, 'content': [{'end': 954.486, 'text': 'which is going to allow us to perform a calculation on every item in the list and then return a brand new list.', 'start': 948.162, 'duration': 6.324}, {'end': 964.773, 'text': "So to do that, let's go and go random list two is equal to and the map functions located in the list module.", 'start': 954.786, 'duration': 9.987}, {'end': 969.876, 'text': "So we're going to go list map and then you're going to use fun inside of here.", 'start': 965.233, 'duration': 4.643}, {'end': 973.779, 'text': 'And basically fun is going to be used to create lambda expressions.', 'start': 970.337, 'duration': 3.442}, {'end': 976.479, 'text': "So we're going to say fun x.", 'start': 973.999, 'duration': 2.48}], 'summary': 'Using map function to perform calculations on every item in the list and create a new list.', 'duration': 28.317, 'max_score': 948.162, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U948162.jpg'}], 'start': 353.072, 'title': 'Formatting and working with printf in ocaml and f#', 'summary': 'Demonstrates formatting floating point numbers and adding padding using printfn in ocaml, along with examples and dynamic padding. it also covers working with printf and printfn, using mutable variables, creating functions, demonstrating recursive functions, and using lambda expressions, with a focus on binding in f#.', 'chapters': [{'end': 531.5, 'start': 353.072, 'title': 'Formatting floating point numbers & padding', 'summary': 'Demonstrates formatting floating point numbers to control precision, and adding padding to both right and left using printfn in ocaml, along with examples and dynamic padding.', 'duration': 178.428, 'highlights': ['Formatting floating point numbers to control precision The chapter demonstrates how to format floating point numbers in OCaml to control precision, including the default precision of 6 digits, reducing precision to 4 digits, and achieving a maximum of 27 decimals of precision.', 'Adding padding to both right and left using printfn The chapter explains how to add padding to both the right and left of a string using printfn in OCaml, illustrating how to add static padding and dynamic padding with examples.']}, {'end': 1170.619, 'start': 531.52, 'title': 'Working with printf, mutable variables, functions, and lambda expressions in f#', 'summary': 'Covers examples of working with printf and printfn, using mutable variables, creating functions, demonstrating recursive functions, and using lambda expressions, with a focus on binding in f#.', 'duration': 639.099, 'highlights': ['Demonstrating the use of mutable variables and changing their values using the arrow symbol, showcasing the ability to work with mutable data in F#. Example of changing the value of a mutable variable from 175 to 170.', 'Explaining the concept of recursive functions and demonstrating the calculation of factorial using a recursive function, providing step-by-step explanation. Demonstration of calculating the factorial of 4, resulting in the value of 24.', "Utilizing lambda expressions to create a new list by performing calculations on every item in the original list, showcasing the use of the 'fun' keyword and the list map function. Doubling every item in a list using a lambda expression and the list map function."]}], 'duration': 817.547, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U353072.jpg', 'highlights': ['Demonstrates formatting floating point numbers to control precision, including reducing precision to 4 digits and achieving a maximum of 27 decimals of precision.', 'Adding padding to both right and left of a string using printfn in OCaml, illustrating static padding and dynamic padding with examples.', 'Explaining the concept of recursive functions and demonstrating the calculation of factorial using a recursive function, providing step-by-step explanation.', "Utilizing lambda expressions to create a new list by performing calculations on every item in the original list, showcasing the use of the 'fun' keyword and the list map function."]}, {'end': 1511.464, 'segs': [{'end': 1214.441, 'src': 'embed', 'start': 1187.341, 'weight': 0, 'content': [{'end': 1191.005, 'text': 'So this is just the tip of the iceberg of ridiculously cool things we can do.', 'start': 1187.341, 'duration': 3.664}, {'end': 1196.315, 'text': 'Another thing we can do, is we can come in here and execute multiple functions.', 'start': 1191.025, 'duration': 5.29}, {'end': 1208.398, 'text': "So let's say we go malt num and this is going to be a function that's going to receive one value and it's going to multiply that one value times three.", 'start': 1196.735, 'duration': 11.663}, {'end': 1211.959, 'text': 'Okay, so we created a brand new function called multiply number.', 'start': 1208.418, 'duration': 3.541}, {'end': 1214.441, 'text': "And then let's copy this and let's make another one.", 'start': 1212.239, 'duration': 2.202}], 'summary': "Demonstrating the capability to execute multiple functions and create new functions, such as 'multiply number.'", 'duration': 27.1, 'max_score': 1187.341, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U1187341.jpg'}, {'end': 1307.612, 'src': 'embed', 'start': 1274.939, 'weight': 1, 'content': [{'end': 1278.501, 'text': "So in that situation, in this situation, it's going to multiply and then add.", 'start': 1274.939, 'duration': 3.562}, {'end': 1281.243, 'text': "And in this situation, it's going to add and then multiply.", 'start': 1278.741, 'duration': 2.502}, {'end': 1284.426, 'text': "So there's all these cool operators inside of F sharp.", 'start': 1281.363, 'duration': 3.063}, {'end': 1287.748, 'text': "So let's show you an example of exactly how those are going to work.", 'start': 1284.546, 'duration': 3.202}, {'end': 1288.629, 'text': "So we'll just go malt.", 'start': 1287.908, 'duration': 0.721}, {'end': 1300.308, 'text': "and add and this is going to be an integer that we're working with here and to actually call the operation on a number for both of those operations.", 'start': 1289.602, 'duration': 10.706}, {'end': 1307.612, 'text': "so you pass a 10 inside of here and then let's copy this and then we'll have it be just slightly changed.", 'start': 1300.308, 'duration': 7.304}], 'summary': 'F# has various operators for multiplying, adding, and working with integers.', 'duration': 32.673, 'max_score': 1274.939, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U1274939.jpg'}, {'end': 1332.496, 'src': 'embed', 'start': 1311.134, 'weight': 2, 'content': [{'end': 1322.393, 'text': "keep the value the same and then this is going to be add and then multiply And we'll save that and we will run it and you can see all of the really cool things we can do with F sharp.", 'start': 1311.134, 'duration': 11.259}, {'end': 1324.794, 'text': 'Okay So neat, neat, neat, neat, neat stuff.', 'start': 1322.413, 'duration': 2.381}, {'end': 1328.955, 'text': "And of course we're going to be doing more things with functions as the tutorial continues.", 'start': 1325.074, 'duration': 3.881}, {'end': 1332.496, 'text': 'But I noticed that I was talking about modulus and all these other weird things.', 'start': 1329.175, 'duration': 3.321}], 'summary': 'Introduction to f# programming with focus on functions and future topics.', 'duration': 21.362, 'max_score': 1311.134, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U1311134.jpg'}, {'end': 1436.291, 'src': 'embed', 'start': 1404.216, 'weight': 5, 'content': [{'end': 1407.299, 'text': "So you're going to put a percent sign and an A inside of there.", 'start': 1404.216, 'duration': 3.083}, {'end': 1411.382, 'text': "And then you're going to go number and get type.", 'start': 1407.459, 'duration': 3.923}, {'end': 1414.565, 'text': 'And that is going to give you the data type.', 'start': 1411.542, 'duration': 3.023}, {'end': 1419.484, 'text': "And while we are at it, let's also cast to another type inside of here.", 'start': 1414.861, 'duration': 4.623}, {'end': 1423.166, 'text': "So let's just copy this guy right here, throw that inside of there.", 'start': 1419.504, 'duration': 3.662}, {'end': 1427.089, 'text': "And what we want to do is we're going to go a float.", 'start': 1423.427, 'duration': 3.662}, {'end': 1436.291, 'text': "like this and we're going to change this to point to float and to change to a different data type.", 'start': 1427.645, 'duration': 8.646}], 'summary': 'Demonstration on using percent sign and a for data type conversion', 'duration': 32.075, 'max_score': 1404.216, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U1404216.jpg'}, {'end': 1497.397, 'src': 'embed', 'start': 1472.5, 'weight': 3, 'content': [{'end': 1478.225, 'text': "so that's how we get the type and how we cast, and you can see exactly right there that they worked beautifully.", 'start': 1472.5, 'duration': 5.725}, {'end': 1482.164, 'text': 'Now there are a bunch of other different built in math functions.', 'start': 1478.601, 'duration': 3.563}, {'end': 1484.266, 'text': "Here's just a rundown of a whole bunch of them.", 'start': 1482.464, 'duration': 1.802}, {'end': 1487.628, 'text': 'Of course you have cosine and sine and tangent and all those guys.', 'start': 1484.286, 'duration': 3.342}, {'end': 1490.431, 'text': 'This is going to give you an absolute value.', 'start': 1487.909, 'duration': 2.522}, {'end': 1492.833, 'text': 'This is going to round for ceiling.', 'start': 1490.571, 'duration': 2.262}, {'end': 1495.895, 'text': "So it's going to round whatever the value is that you give it up.", 'start': 1492.873, 'duration': 3.022}, {'end': 1497.397, 'text': 'Floor is going to round down.', 'start': 1496.176, 'duration': 1.221}], 'summary': 'Explanation of built-in math functions including cosine, sine, tangent, absolute value, ceiling, and floor.', 'duration': 24.897, 'max_score': 1472.5, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U1472500.jpg'}], 'start': 1170.619, 'title': 'F# and python math functions', 'summary': 'Introduces f# functions and their capabilities, including executing multiple functions and showcasing basic mathematical functions. it also covers using python for math operations, exponentiation, data type casting, and utilizing built-in math functions like cosine, sine, tangent, absolute value, rounding, logarithms, and square roots.', 'chapters': [{'end': 1363.939, 'start': 1170.619, 'title': 'Introduction to f# functions', 'summary': 'Introduces f# functions and demonstrates the capability to execute multiple functions, perform operations in different orders, and showcases basic mathematical functions in f#, highlighting the cool features and capabilities of f#.', 'duration': 193.32, 'highlights': ['The chapter introduces F# functions and demonstrates the capability to execute multiple functions. Introduction to executing multiple functions', 'Demonstrates the capability to perform operations in different orders using F# functions. Illustration of performing operations in different orders', 'Showcases basic mathematical functions in F#, highlighting the cool features and capabilities of F#. Overview of basic mathematical functions in F#']}, {'end': 1511.464, 'start': 1364.199, 'title': 'Python math functions & data types', 'summary': 'Covers using python to perform math operations, including exponentiation and casting data types, as well as utilizing built-in math functions such as cosine, sine, tangent, absolute value, rounding, logarithms, and square roots.', 'duration': 147.265, 'highlights': ["The chapter covers using Python to perform math operations, including exponentiation and casting data types, as well as utilizing built-in math functions such as cosine, sine, tangent, absolute value, rounding, logarithms, and square roots. This serves as a comprehensive overview of Python's math capabilities, encompassing exponentiation, data type casting, and an array of built-in math functions.", "Demonstrates how to obtain the data type of a variable and cast it to another type in Python, showcasing the process for retrieving the data type using '%A' and casting to a different type (e.g., float, int) by specifying the data type. Provides a step-by-step demonstration of obtaining the data type of a variable using '%A' and casting it to another type (e.g., float, int) by specifying the desired data type, offering practical guidance for Python developers.", 'Provides a rundown of various built-in math functions in Python, including cosine, sine, tangent, absolute value, rounding (ceiling and floor), logarithms, and square roots, demonstrating their usage and functionality. Supplies a comprehensive overview of essential built-in math functions in Python, such as cosine, sine, tangent, absolute value, rounding, logarithms, and square roots, elucidating their purpose and practical application.']}], 'duration': 340.845, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U1170619.jpg', 'highlights': ['Introduction to executing multiple functions', 'Illustration of performing operations in different orders', 'Overview of basic mathematical functions in F#', "Comprehensive overview of Python's math capabilities", 'Encompassing exponentiation, data type casting, and an array of built-in math functions', "Step-by-step demonstration of obtaining the data type of a variable using '%A' and casting it to another type (e.g., float, int)", 'Supplies a comprehensive overview of essential built-in math functions in Python, such as cosine, sine, tangent, absolute value, rounding, logarithms, and square roots, elucidating their purpose and practical application']}, {'end': 2308.998, 'segs': [{'end': 1537.781, 'src': 'embed', 'start': 1511.484, 'weight': 0, 'content': [{'end': 1517.207, 'text': "Alright, so there is a rundown of a lot of the math that you're going to use with F sharp.", 'start': 1511.484, 'duration': 5.723}, {'end': 1521.369, 'text': 'And now what I want to do is come over and do a lot with strings.', 'start': 1517.427, 'duration': 3.942}, {'end': 1528.754, 'text': "So I'm going to call this string stuff and we'll come down here and of course we will call string stuff.", 'start': 1521.869, 'duration': 6.885}, {'end': 1532.897, 'text': "So string and stuff and you've seen some strings already.", 'start': 1528.974, 'duration': 3.923}, {'end': 1533.998, 'text': "You're getting acquainted with them.", 'start': 1532.917, 'duration': 1.081}, {'end': 1537.781, 'text': "One thing that's important to know is inside of your strings.", 'start': 1534.158, 'duration': 3.623}], 'summary': 'F sharp math overview and introduction to string manipulation.', 'duration': 26.297, 'max_score': 1511.484, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U1511484.jpg'}, {'end': 1774.051, 'src': 'heatmap', 'start': 1707.764, 'weight': 1, 'content': [{'end': 1714.808, 'text': "you're going to put a dot and then you're going to say we want to start at index zero and then we want to go up through index three.", 'start': 1707.764, 'duration': 7.044}, {'end': 1718.33, 'text': 'so there that is and there that is so neat stuff.', 'start': 1714.808, 'duration': 3.522}, {'end': 1722.895, 'text': "now let's execute that so you can see how all those different guys are going to work for you See the link.", 'start': 1718.33, 'duration': 4.565}, {'end': 1723.395, 'text': "there's 44..", 'start': 1722.895, 'duration': 0.5}, {'end': 1726.578, 'text': "You're going to see here H right there.", 'start': 1723.395, 'duration': 3.183}, {'end': 1731.182, 'text': 'We went and said we wanted to get the first index of this guy.', 'start': 1727.059, 'duration': 4.123}, {'end': 1735.345, 'text': "Well, there's the H and we grabbed the first word 0, 1, 2, 3.", 'start': 1731.302, 'duration': 4.043}, {'end': 1738.528, 'text': 'Okay And that is the range 0, 1, 2, 3.', 'start': 1735.346, 'duration': 3.182}, {'end': 1741.792, 'text': "Okay So that's a range function that's available.", 'start': 1738.529, 'duration': 3.263}, {'end': 1750.193, 'text': 'Another thing is we are going to be able to use Collect to execute a function on each character inside of a string.', 'start': 1742.108, 'duration': 8.085}, {'end': 1756.157, 'text': "So let's say we want to have every single character inside of our string be uppercase.", 'start': 1750.453, 'duration': 5.704}, {'end': 1764.923, 'text': 'We can go String and Collect and then Fun and C and Sprintf.', 'start': 1756.637, 'duration': 8.286}, {'end': 1768.646, 'text': 'And put in our character inside of there.', 'start': 1765.743, 'duration': 2.903}, {'end': 1771.108, 'text': "And let's put a comma there with a space.", 'start': 1769.006, 'duration': 2.102}, {'end': 1774.051, 'text': 'And then the individual characters.', 'start': 1771.969, 'duration': 2.082}], 'summary': 'Demonstration of string indexing, range function, and character manipulation in python. 44 characters in the string.', 'duration': 31.943, 'max_score': 1707.764, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U1707764.jpg'}, {'end': 1899.424, 'src': 'embed', 'start': 1864.498, 'weight': 3, 'content': [{'end': 1866.961, 'text': 'Okay, so tons and tons and tons of examples.', 'start': 1864.498, 'duration': 2.463}, {'end': 1868.683, 'text': "All right, let's do some more.", 'start': 1867.501, 'duration': 1.182}, {'end': 1872.667, 'text': "Let's check if any character meets another condition.", 'start': 1869.123, 'duration': 3.544}, {'end': 1881.853, 'text': "So what we're going to do is we're going to pass in a string that's going to contain digits and we're going to check if any of them,", 'start': 1873.228, 'duration': 8.625}, {'end': 1886.476, 'text': "or we're going to check if all of them, all the characters inside of the string, meet the condition.", 'start': 1881.853, 'duration': 4.623}, {'end': 1899.424, 'text': "So we're going to say printfn and we'll go number and basically we're checking to see if the string passed in is actually a number and to do so we go string for all.", 'start': 1886.976, 'duration': 12.448}], 'summary': "Checking if a string contains all digits to determine if it's a number.", 'duration': 34.926, 'max_score': 1864.498, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U1864498.jpg'}, {'end': 2169.474, 'src': 'embed', 'start': 2128.392, 'weight': 2, 'content': [{'end': 2128.953, 'text': 'And there it is.', 'start': 2128.392, 'duration': 0.561}, {'end': 2133.615, 'text': "Okay, so that's how we can create or use a while loop to make a little guessing game.", 'start': 2128.973, 'duration': 4.642}, {'end': 2139.298, 'text': "So it says enter a number, and I got one, and that's wrong, two, three, four, and seven.", 'start': 2133.775, 'duration': 5.523}, {'end': 2140.859, 'text': 'And you can see there it worked.', 'start': 2139.759, 'duration': 1.1}, {'end': 2145.422, 'text': 'Okay, so example of while loops and how we can do cool things with while loops.', 'start': 2140.879, 'duration': 4.543}, {'end': 2147.303, 'text': "And let's take a look at for loops.", 'start': 2145.762, 'duration': 1.541}, {'end': 2151.125, 'text': "And then I'm going to show you how we normally do looping inside of Fsharp.", 'start': 2147.363, 'duration': 3.762}, {'end': 2155.085, 'text': "So for a for loop, we're going to go for i is equal to 1, 2, 10.", 'start': 2151.425, 'duration': 3.66}, {'end': 2158.609, 'text': 'Okay, so it makes sense.', 'start': 2155.087, 'duration': 3.522}, {'end': 2160.23, 'text': "We're going to loop from 1 to 10.", 'start': 2158.869, 'duration': 1.361}, {'end': 2161.931, 'text': "I'm going to show you a couple examples.", 'start': 2160.23, 'duration': 1.701}, {'end': 2162.951, 'text': 'Make sure you tab in.', 'start': 2161.991, 'duration': 0.96}, {'end': 2167.673, 'text': "I'm going to go print fn, and I'm going to print out all of those values.", 'start': 2163.291, 'duration': 4.382}, {'end': 2169.474, 'text': "Okay, let's do another for loop.", 'start': 2168.234, 'duration': 1.24}], 'summary': 'The transcript covers creating and using while loops for a guessing game and examples of for loops, including looping from 1 to 10.', 'duration': 41.082, 'max_score': 2128.392, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U2128392.jpg'}], 'start': 1511.484, 'title': 'F# string operations', 'summary': 'Covers f# math operations and string manipulation techniques, including creating, accessing characters, and applying functions. it also demonstrates working with loops and iterating through strings in f#, with quantifiable examples such as string length and index positions.', 'chapters': [{'end': 1741.792, 'start': 1511.484, 'title': 'Fsharp math and string operations', 'summary': 'Covers f# math operations, including string creation, escape characters, verbatim strings, triple quoted strings, combining strings, getting string length, accessing characters by index, and getting a substring. it also demonstrates examples with quantifiable data such as string length and index positions.', 'duration': 230.308, 'highlights': ['It covers F# math operations and string manipulation, including escape characters, verbatim strings, and triple quoted strings.', 'Demonstrates combining strings and getting string length, with an example showing a string length of 44.', 'Shows accessing characters by index and getting a substring, with examples showcasing specific index positions and ranges.']}, {'end': 2308.998, 'start': 1742.108, 'title': 'Working with strings and loops in f#', 'summary': 'Covers various ways to manipulate strings such as converting characters to uppercase, checking conditions like uppercase characters and digits, and applying functions to each index and item in a string. it also demonstrates the usage of while and for loops and the f# way of iterating through values and summing a list.', 'duration': 566.89, 'highlights': ['Using Collect to convert characters to uppercase in a string The transcript demonstrates using Collect to convert all characters inside a string to uppercase.', "Checking if any characters in a string meet a condition (e.g., uppercase) The chapter illustrates using 'exists' to check if any character in a string is uppercase and obtaining a Boolean value.", "Checking if all characters in a string meet a condition (e.g., digits) The transcript showcases using 'for all' to check if all characters in a string are digits and obtaining a Boolean value.", 'Applying a function to each index in a string The transcript demonstrates applying a function to each index in a string to convert numbers up to a specified value to strings and print them.', 'Using string.iterate to apply a function to each item in a string The chapter showcases using string.iterate to apply a function to each item in a string and print the results.', 'Demonstrating a while loop for a number guessing game The transcript provides an example of using a while loop for a number guessing game, where the loop continues until the guessed number matches the magic number.', 'Demonstrating for loops and iterating over a range in F# The chapter demonstrates using for loops to iterate over a range of values and showcases different iterations such as iterating downwards and iterating over a range in F#.', 'Illustrating the F# way of iterating through values and summing a list The transcript provides an example of using the F# way to iterate through values and summing a list, showcasing a more efficient approach compared to traditional loops.']}], 'duration': 797.514, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U1511484.jpg', 'highlights': ['Covers F# math operations and string manipulation, including escape characters, verbatim strings, and triple quoted strings.', 'Using Collect to convert characters to uppercase in a string The transcript demonstrates using Collect to convert all characters inside a string to uppercase.', 'Illustrating the F# way of iterating through values and summing a list The transcript provides an example of using the F# way to iterate through values and summing a list, showcasing a more efficient approach compared to traditional loops.', "Checking if all characters in a string meet a condition (e.g., digits) The transcript showcases using 'for all' to check if all characters in a string are digits and obtaining a Boolean value.", 'Demonstrating a while loop for a number guessing game The transcript provides an example of using a while loop for a number guessing game, where the loop continues until the guessed number matches the magic number.']}, {'end': 3305.598, 'segs': [{'end': 2336.134, 'src': 'embed', 'start': 2309.358, 'weight': 1, 'content': [{'end': 2314.4, 'text': 'Okay, so neat, neat, neat, neat stuff we can do with looping inside of Fsharp.', 'start': 2309.358, 'duration': 5.042}, {'end': 2318.722, 'text': 'And now I want to dive in here and get a little bit more into how conditionals work.', 'start': 2314.58, 'duration': 4.142}, {'end': 2321.944, 'text': "So I'm going to call this conditional stuff.", 'start': 2319.162, 'duration': 2.782}, {'end': 2326.267, 'text': "Let's just abbreviate that and conditional stuff.", 'start': 2322.364, 'duration': 3.903}, {'end': 2327.148, 'text': 'All right.', 'start': 2326.628, 'duration': 0.52}, {'end': 2331.311, 'text': "So let's go and take a closer look at if else and elif.", 'start': 2327.388, 'duration': 3.923}, {'end': 2336.134, 'text': "So we're going to define an age and it's going to be equal to eight.", 'start': 2331.791, 'duration': 4.343}], 'summary': 'Using fsharp, exploring looping and conditionals with a focus on if else and elif, with an example of defining an age as eight.', 'duration': 26.776, 'max_score': 2309.358, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U2309358.jpg'}, {'end': 2465.924, 'src': 'embed', 'start': 2436.971, 'weight': 0, 'content': [{'end': 2438.291, 'text': "Let's do another example.", 'start': 2436.971, 'duration': 1.32}, {'end': 2447.853, 'text': 'Why not? So I just want to show you some more things we can do conditional-wise by demonstrating how the OR logical operator works.', 'start': 2438.511, 'duration': 9.342}, {'end': 2453.054, 'text': "Let's say we want to define who gets a grant, a college grant.", 'start': 2448.293, 'duration': 4.761}, {'end': 2458.902, 'text': "So we're going to say that the person applying for the grant has a GPA of 3.9.", 'start': 2453.479, 'duration': 5.423}, {'end': 2460.542, 'text': "And it's also based off of income.", 'start': 2458.902, 'duration': 1.64}, {'end': 2465.924, 'text': "So we'll say income for said student is going to be equal to $15,000.", 'start': 2460.662, 'duration': 5.262}], 'summary': 'Demonstrating the use of or logical operator in conditional statements for college grant eligibility based on gpa (3.9) and income ($15,000).', 'duration': 28.953, 'max_score': 2436.971, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U2436971.jpg'}, {'end': 2563.046, 'src': 'embed', 'start': 2518.625, 'weight': 10, 'content': [{'end': 2521.786, 'text': 'And otherwise, the other logical operator available to you.', 'start': 2518.625, 'duration': 3.161}, {'end': 2526.552, 'text': 'is going to be the not symbol and how that works is.', 'start': 2522.609, 'duration': 3.943}, {'end': 2528.153, 'text': "let's just go and give you an example.", 'start': 2526.552, 'duration': 1.601}, {'end': 2535.297, 'text': "we'll go not true and boolean, close that off, and then you go not and true.", 'start': 2528.153, 'duration': 7.144}, {'end': 2538.419, 'text': 'so not is going to turn trues into falses and falses into trues.', 'start': 2535.297, 'duration': 3.122}, {'end': 2539.339, 'text': "it's very powerful.", 'start': 2538.419, 'duration': 0.92}, {'end': 2541.521, 'text': "let's run that and you will see.", 'start': 2539.339, 'duration': 2.182}, {'end': 2542.181, 'text': 'college grant.', 'start': 2541.521, 'duration': 0.66}, {'end': 2544.963, 'text': 'yes, it comes back as true and not true.', 'start': 2542.181, 'duration': 2.782}, {'end': 2547.464, 'text': 'well, it not turns trues into falses, and you can see it.', 'start': 2544.963, 'duration': 2.501}, {'end': 2548.465, 'text': 'did that all right.', 'start': 2547.464, 'duration': 1.001}, {'end': 2551.387, 'text': 'so conditional operators and how they work.', 'start': 2548.465, 'duration': 2.922}, {'end': 2552.737, 'text': "Hey, let's do another one.", 'start': 2551.776, 'duration': 0.961}, {'end': 2556.921, 'text': "Another thing that's kind of considered to be a conditional operator is match.", 'start': 2552.897, 'duration': 4.024}, {'end': 2557.581, 'text': 'All right.', 'start': 2557.241, 'duration': 0.34}, {'end': 2563.046, 'text': 'And you can use match and guard statements to do basically the same thing you just did up here.', 'start': 2557.661, 'duration': 5.385}], 'summary': 'Logical operators like not turn trues into falses and falses into trues.', 'duration': 44.421, 'max_score': 2518.625, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U2518625.jpg'}, {'end': 2673.614, 'src': 'heatmap', 'start': 2564.527, 'weight': 0.759, 'content': [{'end': 2570.913, 'text': "So let's go let grade to and string equal to.", 'start': 2564.527, 'duration': 6.386}, {'end': 2575.597, 'text': "And then we're going to say match age with.", 'start': 2570.933, 'duration': 4.664}, {'end': 2577.955, 'text': "And then we'll put in our different conditions.", 'start': 2575.953, 'duration': 2.002}, {'end': 2581.298, 'text': "So we'll go pipe, or we'll put that symbol in there.", 'start': 2578.235, 'duration': 3.063}, {'end': 2587.002, 'text': "And we'll say age when age is less than five.", 'start': 2581.538, 'duration': 5.464}, {'end': 2590.585, 'text': 'Well, in that situation, we want to return preschool.', 'start': 2587.263, 'duration': 3.322}, {'end': 2592.487, 'text': "All right, so there's that.", 'start': 2590.986, 'duration': 1.501}, {'end': 2599.433, 'text': 'In a situation in which we have a value of five, in that situation, we want to return kindergarten.', 'start': 2592.847, 'duration': 6.586}, {'end': 2609.153, 'text': "do all kinds of neat things with match and we're also going to be able to come in and go age when, and we can stack these up just like we did before.", 'start': 2599.989, 'duration': 9.164}, {'end': 2615.675, 'text': 'age is greater than five and age is less than or equal to 18.', 'start': 2609.153, 'duration': 6.522}, {'end': 2616.576, 'text': 'stack those up.', 'start': 2615.675, 'duration': 0.901}, {'end': 2624.599, 'text': 'in that situation, we want to do more and what we want to do is go, whoops, age minus five,', 'start': 2616.576, 'duration': 8.023}, {'end': 2631.741, 'text': "and then we want to convert that into a string so we can output it on on the screen and we'll go to string to do that.", 'start': 2624.599, 'duration': 7.142}, {'end': 2635.862, 'text': "okay, and then we'll go in and by default.", 'start': 2631.741, 'duration': 4.121}, {'end': 2638.663, 'text': "we'll put an underscore that represents by default,", 'start': 2635.862, 'duration': 2.801}, {'end': 2645.084, 'text': "and in that situation this is going to return a string that just says call it all right and let's go and run it.", 'start': 2638.663, 'duration': 6.421}, {'end': 2657.827, 'text': "so print fn, and we will change this to grade two, because that's what it is, and throw in that percent sign, and this is going to be a string,", 'start': 2645.084, 'duration': 12.743}, {'end': 2661.77, 'text': "of course, And we'll change this to grade two.", 'start': 2657.827, 'duration': 3.943}, {'end': 2665.711, 'text': "Whoops, what did I do? Oops, OK, I've saved that.", 'start': 2662.69, 'duration': 3.021}, {'end': 2667.712, 'text': "And let's run it and see what happens.", 'start': 2666.211, 'duration': 1.501}, {'end': 2669.672, 'text': 'And you can see it still comes back.', 'start': 2668.312, 'duration': 1.36}, {'end': 2673.614, 'text': 'Grade two comes back with a value of three, just like the other one did.', 'start': 2669.732, 'duration': 3.882}], 'summary': 'Using match and conditions to categorize and process age data.', 'duration': 109.087, 'max_score': 2564.527, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U2564527.jpg'}, {'end': 2950.424, 'src': 'embed', 'start': 2920.966, 'weight': 2, 'content': [{'end': 2929.154, 'text': "so we'll go a, and this is the modulus is equal to 0 and then yield a.", 'start': 2920.966, 'duration': 8.188}, {'end': 2931.195, 'text': 'So if that condition is met, then yield it.', 'start': 2929.154, 'duration': 2.041}, {'end': 2936.178, 'text': 'And another thing we can do is we can use something called a yield bang.', 'start': 2932.056, 'duration': 4.122}, {'end': 2943.441, 'text': 'And what it does is it creates multiple lists for each item and then merges them into a final list.', 'start': 2936.478, 'duration': 6.963}, {'end': 2946.082, 'text': "So I'm going to show you an example.", 'start': 2943.721, 'duration': 2.361}, {'end': 2947.583, 'text': "It's kind of crazy stuff.", 'start': 2946.102, 'duration': 1.481}, {'end': 2950.424, 'text': "So we'll go list eight is equal to four a.", 'start': 2947.703, 'duration': 2.721}], 'summary': 'Demonstrating use of yield, yield bang in python for list manipulation.', 'duration': 29.458, 'max_score': 2920.966, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U2920966.jpg'}, {'end': 3111.241, 'src': 'embed', 'start': 3043.656, 'weight': 3, 'content': [{'end': 3047.257, 'text': 'So you can see this is for the 1, this is for the 2, and this is for the 3.', 'start': 3043.656, 'duration': 3.601}, {'end': 3049.577, 'text': 'All right, so cool, cool stuff.', 'start': 3047.257, 'duration': 2.32}, {'end': 3050.477, 'text': "Let's do some more.", 'start': 3049.737, 'duration': 0.74}, {'end': 3054.638, 'text': "Functional languages love lists, so of course there's a lot of things you can do with them.", 'start': 3050.697, 'duration': 3.941}, {'end': 3058.717, 'text': "Let's say we wanted to get the length of a list.", 'start': 3054.895, 'duration': 3.822}, {'end': 3061.759, 'text': "Let's just come in here and go length.", 'start': 3059.177, 'duration': 2.582}, {'end': 3066.741, 'text': "And of course that's an integer and let's get list eight length.", 'start': 3062.039, 'duration': 4.702}, {'end': 3070.063, 'text': "We can just type in length and that's going to get it for us.", 'start': 3067.222, 'duration': 2.841}, {'end': 3073.505, 'text': 'We can also check if a list is empty or not.', 'start': 3070.503, 'duration': 3.002}, {'end': 3076.207, 'text': "So we'll go in and we'll change this.", 'start': 3073.825, 'duration': 2.382}, {'end': 3078.388, 'text': "Whoops We'll change this to empty.", 'start': 3076.427, 'duration': 1.961}, {'end': 3083.17, 'text': "And of course that's going to be a Boolean value and we'll do this on list eight as well.", 'start': 3078.828, 'duration': 4.342}, {'end': 3084.251, 'text': 'So list eight.', 'start': 3083.591, 'duration': 0.66}, {'end': 3088.271, 'text': "And you go isEmpty, and it's gonna give you an answer for that.", 'start': 3084.67, 'duration': 3.601}, {'end': 3092.713, 'text': 'And we can also get an item at a specific index.', 'start': 3088.291, 'duration': 4.422}, {'end': 3102.537, 'text': "So let's say we wanted to get something like what is at index two, and we're gonna use list four for this, which is a whole bunch of characters.", 'start': 3093.093, 'duration': 9.444}, {'end': 3111.241, 'text': "So we'll go like this, and we'll go list four and item, and to get index two, you just put index two inside of there.", 'start': 3102.897, 'duration': 8.344}], 'summary': 'Functional languages love lists, with operations like length, isempty, and getting items at specific index.', 'duration': 67.585, 'max_score': 3043.656, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3043656.jpg'}, {'end': 3162.396, 'src': 'embed', 'start': 3134.005, 'weight': 4, 'content': [{'end': 3137.506, 'text': "So we'll go list four and follow that up with head.", 'start': 3134.005, 'duration': 3.501}, {'end': 3138.926, 'text': 'And now we got that.', 'start': 3137.526, 'duration': 1.4}, {'end': 3146.967, 'text': 'We can also do the tail, which is everything except for the first item.', 'start': 3139.482, 'duration': 7.485}, {'end': 3150.169, 'text': "So we'll go use the A in that situation there.", 'start': 3147.127, 'duration': 3.042}, {'end': 3152.21, 'text': "And we'll go list four.", 'start': 3150.369, 'duration': 1.841}, {'end': 3155.352, 'text': 'And of course, we put tail inside of there.', 'start': 3152.87, 'duration': 2.482}, {'end': 3157.053, 'text': 'And that gives us a tail.', 'start': 3155.452, 'duration': 1.601}, {'end': 3159.294, 'text': "We're also going to be able to filter out.", 'start': 3157.353, 'duration': 1.941}, {'end': 3162.396, 'text': "Let's say, for example, we want to only do evens.", 'start': 3159.574, 'duration': 2.822}], 'summary': 'Demonstrating list manipulation and filtering with examples.', 'duration': 28.391, 'max_score': 3134.005, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3134005.jpg'}, {'end': 3246.189, 'src': 'embed', 'start': 3192.154, 'weight': 6, 'content': [{'end': 3196.915, 'text': "let's go and create another list and this will be list 10 is equal to,", 'start': 3192.154, 'duration': 4.761}, {'end': 3207.158, 'text': "and we're going to go list 9 and we're going to go list and we'll use map and then define the function we want to perform on each one of those items.", 'start': 3196.915, 'duration': 10.243}, {'end': 3215.983, 'text': "So like this, and that's going to be X times X, multiply those values times themselves and what else can we do?", 'start': 3207.578, 'duration': 8.405}, {'end': 3219.425, 'text': 'Well, final thing we can do is we can sort a list.', 'start': 3216.303, 'duration': 3.122}, {'end': 3221.933, 'text': "So let's go and sort it.", 'start': 3220.071, 'duration': 1.862}, {'end': 3225.356, 'text': "So we'll call this sorted.", 'start': 3222.273, 'duration': 3.083}, {'end': 3229.26, 'text': "And we'll just get the internal representation of that.", 'start': 3226.197, 'duration': 3.063}, {'end': 3234.125, 'text': 'And we will go to list and sort.', 'start': 3229.901, 'duration': 4.224}, {'end': 3235.947, 'text': "And let's just do one we generated here.", 'start': 3234.405, 'duration': 1.542}, {'end': 3237.288, 'text': "We'll do everything backwards.", 'start': 3236.007, 'duration': 1.281}, {'end': 3238.67, 'text': 'So four and three.', 'start': 3237.328, 'duration': 1.342}, {'end': 3240.852, 'text': "And we'll see exactly how that prints.", 'start': 3239.21, 'duration': 1.642}, {'end': 3245.047, 'text': "and as the final thing, here there's so many things to do.", 'start': 3241.864, 'duration': 3.183}, {'end': 3246.189, 'text': 'all this is supposed to be list.', 'start': 3245.047, 'duration': 1.142}], 'summary': 'Creating list 10, performing x times x, sorting the list, and printing the result.', 'duration': 54.035, 'max_score': 3192.154, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3192154.jpg'}, {'end': 3286.59, 'src': 'embed', 'start': 3258.561, 'weight': 5, 'content': [{'end': 3276.626, 'text': "and we can go list and fold and then we can go and call this function sum and you're going to get an element passed inside of it and then you're gonna go sum plus elements and we will throw zero inside of there.", 'start': 3258.561, 'duration': 18.065}, {'end': 3279.947, 'text': "that's gonna represent the sum value right there.", 'start': 3276.626, 'duration': 3.321}, {'end': 3284.529, 'text': 'the sum obviously starts off as zero and And then we will have our list inside of here.', 'start': 3279.947, 'duration': 4.582}, {'end': 3286.59, 'text': 'So 1, 2, and 3.', 'start': 3284.589, 'duration': 2.001}], 'summary': "A function 'sum' adds elements in a list, starting from 0. list contains 1, 2, and 3.", 'duration': 28.029, 'max_score': 3258.561, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3258561.jpg'}], 'start': 2309.358, 'title': 'Fsharp programming concepts', 'summary': 'Covers looping, conditionals, logical operators, match, lists, and functional list operations in fsharp, demonstrating usage and functionality, including determining outcomes based on age, assigning grade levels, college grant eligibility based on gpa and income, obtaining list length, checking emptiness, retrieving items at specific indexes, and performing operations like filtering, mapping, sorting, and summing.', 'chapters': [{'end': 2517.985, 'start': 2309.358, 'title': 'Fsharp looping and conditionals', 'summary': 'Explores looping and conditionals in fsharp, demonstrating the usage of if-else statements and logical operators to determine outcomes, such as assigning grade levels based on age and determining college grant eligibility based on gpa and income.', 'duration': 208.627, 'highlights': ["The chapter explores the usage of if-else statements in Fsharp to assign grade levels based on age, with examples for ages less than 5, equal to 5, and greater than 5, ultimately outputting 'go to grade 3' for an age of 8. Examples for ages less than 5, equal to 5, and greater than 5.", 'Demonstration of the OR logical operator to determine college grant eligibility based on GPA and income, where a GPA greater than or equal to 3.8 and income less than or equal to $12,000 qualifies the student for a grant. Qualification conditions based on GPA and income.']}, {'end': 3043.396, 'start': 2518.625, 'title': 'Logical operators, match and lists', 'summary': "Covers logical operators like 'not', conditional operators like 'match', and lists in a programming language, demonstrating their use and functionality.", 'duration': 524.771, 'highlights': ["The chapter explains the 'not' logical operator, demonstrating its ability to turn true into false and false into true, as well as its powerful functionality. demonstrating its ability to turn true into false and false into true", "It demonstrates the usage of conditional operators like 'match' to set conditions and return specific values based on those conditions, showcasing its functionality with different scenarios. showcasing its functionality with different scenarios", 'The chapter also explains the creation and manipulation of lists, including the usage of list literals, iteration, the cons operator, ranges, init, yield, and yield bang, with detailed examples and explanations. including the usage of list literals, iteration, the cons operator, ranges, init, yield, and yield bang']}, {'end': 3305.598, 'start': 3043.656, 'title': 'Functional list operations', 'summary': 'Discusses various operations on lists in functional languages, including obtaining list length, checking for emptiness, retrieving items at specific indexes, and performing operations like filtering, mapping, sorting, and summing.', 'duration': 261.942, 'highlights': ["Obtaining the length of a list The chapter demonstrates obtaining the length of a list, as an example, using the 'length' function on a list, resulting in an integer value.", "Checking if a list is empty The chapter explains checking for emptiness of a list using the 'isEmpty' function, resulting in a Boolean value, exemplified on a specific list.", 'Retrieving an item at a specific index The chapter illustrates the process of retrieving an item at a specific index within a list, exemplified by accessing an item at index two in a list.', 'Performing filtering on a list The chapter demonstrates filtering a list based on a condition, exemplified by creating a new list by filtering even elements from an existing list.', "Mapping and performing operations on list elements The chapter explains performing operations on list elements using 'map', exemplified by creating a new list with elements multiplied by themselves.", "Sorting a list The chapter demonstrates sorting a list using the 'sort' function, exemplified by sorting a list in descending order.", "Summing the elements of a list The chapter illustrates summing the elements of a list using the 'fold' function, exemplified by obtaining the sum of elements in a specific list."]}], 'duration': 996.24, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U2309358.jpg', 'highlights': ['Demonstration of the OR logical operator to determine college grant eligibility based on GPA and income, where a GPA greater than or equal to 3.8 and income less than or equal to $12,000 qualifies the student for a grant. Qualification conditions based on GPA and income.', "The chapter explores the usage of if-else statements in Fsharp to assign grade levels based on age, with examples for ages less than 5, equal to 5, and greater than 5, ultimately outputting 'go to grade 3' for an age of 8. Examples for ages less than 5, equal to 5, and greater than 5.", 'The chapter explains the creation and manipulation of lists, including the usage of list literals, iteration, the cons operator, ranges, init, yield, and yield bang, with detailed examples and explanations.', "Obtaining the length of a list The chapter demonstrates obtaining the length of a list, as an example, using the 'length' function on a list, resulting in an integer value.", 'Performing filtering on a list The chapter demonstrates filtering a list based on a condition, exemplified by creating a new list by filtering even elements from an existing list.', "Summing the elements of a list The chapter illustrates summing the elements of a list using the 'fold' function, exemplified by obtaining the sum of elements in a specific list.", "Sorting a list The chapter demonstrates sorting a list using the 'sort' function, exemplified by sorting a list in descending order.", 'Retrieving an item at a specific index The chapter illustrates the process of retrieving an item at a specific index within a list, exemplified by accessing an item at index two in a list.', "Mapping and performing operations on list elements The chapter explains performing operations on list elements using 'map', exemplified by creating a new list with elements multiplied by themselves.", "Checking if a list is empty The chapter explains checking for emptiness of a list using the 'isEmpty' function, resulting in a Boolean value, exemplified on a specific list.", "The chapter explains the 'not' logical operator, demonstrating its ability to turn true into false and false into true, as well as its powerful functionality. demonstrating its ability to turn true into false and false into true", "It demonstrates the usage of conditional operators like 'match' to set conditions and return specific values based on those conditions, showcasing its functionality with different scenarios. showcasing its functionality with different scenarios"]}, {'end': 3685.702, 'segs': [{'end': 3352.137, 'src': 'embed', 'start': 3306.198, 'weight': 0, 'content': [{'end': 3306.939, 'text': 'And here we go.', 'start': 3306.198, 'duration': 0.741}, {'end': 3308.06, 'text': 'And there you can see.', 'start': 3307.319, 'duration': 0.741}, {'end': 3308.941, 'text': 'There is the head.', 'start': 3308.2, 'duration': 0.741}, {'end': 3310.002, 'text': 'There is the tail.', 'start': 3309.021, 'duration': 0.981}, {'end': 3311.603, 'text': 'This is whenever we got the index.', 'start': 3310.042, 'duration': 1.561}, {'end': 3313.845, 'text': 'This is whenever we checked if it was empty or not.', 'start': 3311.683, 'duration': 2.162}, {'end': 3316.948, 'text': 'Here we start off with 5, 4, 3 and it sorted them.', 'start': 3314.106, 'duration': 2.842}, {'end': 3318.91, 'text': 'And here it went and summed those values.', 'start': 3317.328, 'duration': 1.582}, {'end': 3322.304, 'text': 'All right, so a whole ton of things to do with lists.', 'start': 3319.423, 'duration': 2.881}, {'end': 3324.185, 'text': 'You should go in there and experiment with them.', 'start': 3322.344, 'duration': 1.841}, {'end': 3326.066, 'text': 'And now I want to talk about enums.', 'start': 3324.365, 'duration': 1.701}, {'end': 3332.768, 'text': "Now, basically, enums, let's change this to enum stuff and this to enum stuff.", 'start': 3326.546, 'duration': 6.222}, {'end': 3345.174, 'text': 'Enums are going to allow us to use sort of flowery specific information and assign names to our our data to make it make a little bit more sense.', 'start': 3333.069, 'duration': 12.105}, {'end': 3346.814, 'text': "so we're going to do this outside of the function.", 'start': 3345.174, 'duration': 1.64}, {'end': 3352.137, 'text': "we're going to go type and emotion equal to, and then we define all of them.", 'start': 3346.814, 'duration': 5.323}], 'summary': 'Introduction to lists, sorting, summing, and enums in programming.', 'duration': 45.939, 'max_score': 3306.198, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3306198.jpg'}, {'end': 3477.457, 'src': 'embed', 'start': 3427.747, 'weight': 2, 'content': [{'end': 3428.788, 'text': 'why is it not angry?', 'start': 3427.747, 'duration': 1.041}, {'end': 3434.232, 'text': "full, all right, and there's an example of just the different things that you could do, Alright.", 'start': 3428.788, 'duration': 5.444}, {'end': 3436.593, 'text': 'so now what I want to do is talk about options.', 'start': 3434.232, 'duration': 2.361}, {'end': 3443.835, 'text': 'Call this option stuff and change this down here to option stuff and then back up here.', 'start': 3437.033, 'duration': 6.802}, {'end': 3449.157, 'text': 'Now basically an option is used when a function may not return a value.', 'start': 3444.256, 'duration': 4.901}, {'end': 3450.638, 'text': "So let's give an example here.", 'start': 3449.437, 'duration': 1.201}, {'end': 3456.94, 'text': "Let's do a division in which we want to block a situation in which they could pass in a zero.", 'start': 3450.978, 'duration': 5.962}, {'end': 3459.101, 'text': 'So a division by zero error.', 'start': 3457.3, 'duration': 1.801}, {'end': 3463.242, 'text': "How we do that is let's go call this guy divide.", 'start': 3459.661, 'duration': 3.581}, {'end': 3466.769, 'text': "And let's say it gets X and Y as a value.", 'start': 3463.846, 'duration': 2.923}, {'end': 3468.69, 'text': 'And then we want to use match.', 'start': 3467.109, 'duration': 1.581}, {'end': 3471.352, 'text': "And we're going to say with.", 'start': 3469.17, 'duration': 2.182}, {'end': 3472.954, 'text': "And we're going to have our different values.", 'start': 3471.532, 'duration': 1.422}, {'end': 3477.457, 'text': 'So if they pass in a zero, what we want to do is return none.', 'start': 3473.014, 'duration': 4.443}], 'summary': 'Introduction to handling options in a function, including an example of blocking division by zero.', 'duration': 49.71, 'max_score': 3427.747, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3427747.jpg'}, {'end': 3481.581, 'src': 'heatmap', 'start': 3427.747, 'weight': 1, 'content': [{'end': 3428.788, 'text': 'why is it not angry?', 'start': 3427.747, 'duration': 1.041}, {'end': 3434.232, 'text': "full, all right, and there's an example of just the different things that you could do, Alright.", 'start': 3428.788, 'duration': 5.444}, {'end': 3436.593, 'text': 'so now what I want to do is talk about options.', 'start': 3434.232, 'duration': 2.361}, {'end': 3443.835, 'text': 'Call this option stuff and change this down here to option stuff and then back up here.', 'start': 3437.033, 'duration': 6.802}, {'end': 3449.157, 'text': 'Now basically an option is used when a function may not return a value.', 'start': 3444.256, 'duration': 4.901}, {'end': 3450.638, 'text': "So let's give an example here.", 'start': 3449.437, 'duration': 1.201}, {'end': 3456.94, 'text': "Let's do a division in which we want to block a situation in which they could pass in a zero.", 'start': 3450.978, 'duration': 5.962}, {'end': 3459.101, 'text': 'So a division by zero error.', 'start': 3457.3, 'duration': 1.801}, {'end': 3463.242, 'text': "How we do that is let's go call this guy divide.", 'start': 3459.661, 'duration': 3.581}, {'end': 3466.769, 'text': "And let's say it gets X and Y as a value.", 'start': 3463.846, 'duration': 2.923}, {'end': 3468.69, 'text': 'And then we want to use match.', 'start': 3467.109, 'duration': 1.581}, {'end': 3471.352, 'text': "And we're going to say with.", 'start': 3469.17, 'duration': 2.182}, {'end': 3472.954, 'text': "And we're going to have our different values.", 'start': 3471.532, 'duration': 1.422}, {'end': 3477.457, 'text': 'So if they pass in a zero, what we want to do is return none.', 'start': 3473.014, 'duration': 4.443}, {'end': 3481.581, 'text': 'Otherwise, by default, everything else is going to be fine.', 'start': 3478.178, 'duration': 3.403}], 'summary': 'Discussion on using options in a function to handle potential zero division error.', 'duration': 53.834, 'max_score': 3427.747, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3427747.jpg'}, {'end': 3593.691, 'src': 'embed', 'start': 3566.631, 'weight': 4, 'content': [{'end': 3571.737, 'text': "And if we run it, you're going to see can't divide by zero goes in there.", 'start': 3566.631, 'duration': 5.106}, {'end': 3575, 'text': 'And the reason why is we passed in a zero inside of there.', 'start': 3571.937, 'duration': 3.063}, {'end': 3579.124, 'text': 'So you can see exactly how all of those different guys work.', 'start': 3575.26, 'duration': 3.864}, {'end': 3580.545, 'text': "And that's an example of options.", 'start': 3579.184, 'duration': 1.361}, {'end': 3582.047, 'text': "And now we're going to talk about tuples.", 'start': 3580.585, 'duration': 1.462}, {'end': 3588.867, 'text': 'Okay, so basically a tuple is a comma separated list of values of any type.', 'start': 3582.702, 'duration': 6.165}, {'end': 3590.708, 'text': "So let's go and let's create one.", 'start': 3589.107, 'duration': 1.601}, {'end': 3593.691, 'text': "So we go, let's average, we're going to create a function here.", 'start': 3590.789, 'duration': 2.902}], 'summary': 'Discussion on handling zero division and introduction to tuples.', 'duration': 27.06, 'max_score': 3566.631, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3566631.jpg'}], 'start': 3306.198, 'title': 'Lists, enums, and tuples', 'summary': 'Covers operations on lists, including sorting and summation, the use of enums to assign names to data, options when a function may not return a value, handling division by zero error using the match function, and the concept of tuples with examples of storing and retrieving multiple values.', 'chapters': [{'end': 3450.638, 'start': 3306.198, 'title': 'Lists, enums, and options', 'summary': 'Covers operations on lists, including sorting and summation, as well as the use of enums to assign names to data and options when a function may not return a value.', 'duration': 144.44, 'highlights': ['The chapter covers operations on lists, including sorting and summation. The speaker demonstrates sorting a list of numbers and then summing the values, showing the practical application of list operations.', 'The use of enums to assign names to data. The speaker explains the use of enums to assign specific names to data, exemplifying with emotions and their corresponding values.', 'The concept of options when a function may not return a value. The concept of options is introduced as a mechanism for handling functions that may not return a value, providing an illustrative example.']}, {'end': 3685.702, 'start': 3450.978, 'title': 'Handling division by zero and understanding tuples', 'summary': 'Demonstrates handling division by zero error by using the match function and also explains the concept of tuples with examples of storing and retrieving multiple values from a tuple.', 'duration': 234.724, 'highlights': ['The chapter demonstrates handling division by zero error by using the match function and also explains the concept of tuples with examples of storing and retrieving multiple values from a tuple.', "The function 'divide' is created to handle division by zero error by utilizing the match function to return 'none' when the divisor is zero, preventing division by zero error.", "The concept of tuples is explained as a comma-separated list of values of any type and a function 'average' is created to demonstrate the use of tuples to calculate the average of the values passed to it.", 'Examples of storing and retrieving multiple values from a tuple are provided, showcasing the flexibility of tuples in storing different data types and the ability to selectively retrieve specific values from a tuple.']}], 'duration': 379.504, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3306198.jpg', 'highlights': ['The chapter covers operations on lists, including sorting and summation.', 'The use of enums to assign names to data.', 'The concept of options when a function may not return a value.', 'The chapter demonstrates handling division by zero error by using the match function.', 'The concept of tuples is explained as a comma-separated list of values of any type.']}, {'end': 4102.845, 'segs': [{'end': 3729.094, 'src': 'embed', 'start': 3685.962, 'weight': 0, 'content': [{'end': 3688.223, 'text': "And then we're going to print out some information.", 'start': 3685.962, 'duration': 2.261}, {'end': 3690.344, 'text': "And what we're going to print out is name.", 'start': 3688.503, 'duration': 1.841}, {'end': 3692.685, 'text': "And that's a string, obviously.", 'start': 3690.984, 'duration': 1.701}, {'end': 3696.367, 'text': 'And to get that specific thing, we just go name.', 'start': 3693.186, 'duration': 3.181}, {'end': 3697.548, 'text': 'All right.', 'start': 3696.387, 'duration': 1.161}, {'end': 3698.428, 'text': 'Got that set.', 'start': 3697.608, 'duration': 0.82}, {'end': 3699.248, 'text': "Let's run it.", 'start': 3698.488, 'duration': 0.76}, {'end': 3701.95, 'text': 'And you can see it was able to calculate the average.', 'start': 3699.669, 'duration': 2.281}, {'end': 3704.411, 'text': 'And it was also able to pull my name out of the tuple.', 'start': 3702.09, 'duration': 2.321}, {'end': 3708.378, 'text': 'Okay, so some brief, brief, brief, brief, brief stuff on tuples.', 'start': 3704.755, 'duration': 3.623}, {'end': 3709.599, 'text': 'Now I want to talk about records.', 'start': 3708.618, 'duration': 0.981}, {'end': 3716.644, 'text': "Okay, so basically a record's just going to be a list of key value pairs for creating custom types.", 'start': 3710.119, 'duration': 6.525}, {'end': 3723.029, 'text': "We're going to create one outside of our function called customer, and it's going to have some data inside of it.", 'start': 3716.964, 'duration': 6.065}, {'end': 3725.771, 'text': 'And whoops, make sure we put the white space inside of there.', 'start': 3723.65, 'duration': 2.121}, {'end': 3729.094, 'text': "So I'm going to say the name's going to be the key.", 'start': 3725.791, 'duration': 3.303}], 'summary': 'Introduction to printing information, tuples, and records in python.', 'duration': 43.132, 'max_score': 3685.962, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3685962.jpg'}, {'end': 3829.001, 'src': 'embed', 'start': 3802.33, 'weight': 4, 'content': [{'end': 3810.933, 'text': 'just wanted to just briefly touch on records and now I want to get into a pretty cool example of how we can use sequences.', 'start': 3802.33, 'duration': 8.603}, {'end': 3822.898, 'text': "Okay, now sequences are going to allow us to create what are called infinite data structures that aren't going to be defined or populated until they are needed.", 'start': 3811.514, 'duration': 11.384}, {'end': 3829.001, 'text': "So let's come in here and let's say let's just generate a sequence of 100 values.", 'start': 3823.138, 'duration': 5.863}], 'summary': 'Sequences can create infinite data structures, like a sequence of 100 values.', 'duration': 26.671, 'max_score': 3802.33, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3802330.jpg'}, {'end': 4111.35, 'src': 'embed', 'start': 4082.28, 'weight': 2, 'content': [{'end': 4083.22, 'text': 'Throw that there.', 'start': 4082.28, 'duration': 0.94}, {'end': 4085.12, 'text': "And then we'll go sequence to list.", 'start': 4083.5, 'duration': 1.62}, {'end': 4087.381, 'text': "And we'll change this to prime sequence.", 'start': 4085.2, 'duration': 2.181}, {'end': 4088.821, 'text': 'Prime sequence.', 'start': 4087.801, 'duration': 1.02}, {'end': 4090.942, 'text': 'List iterate.', 'start': 4089.241, 'duration': 1.701}, {'end': 4092.722, 'text': "Let's change this to prime.", 'start': 4091.262, 'duration': 1.46}, {'end': 4095.243, 'text': 'And then this is all cool.', 'start': 4093.082, 'duration': 2.161}, {'end': 4097.103, 'text': 'We can leave that exactly the way it is.', 'start': 4095.363, 'duration': 1.74}, {'end': 4099.823, 'text': 'And here we can actually have it generate all those prime values.', 'start': 4097.203, 'duration': 2.62}, {'end': 4102.304, 'text': 'And you can see it printed out all the prime values from 1 to 500.', 'start': 4099.863, 'duration': 2.441}, {'end': 4102.845, 'text': 'All right.', 'start': 4102.304, 'duration': 0.541}, {'end': 4110.069, 'text': "Neat Okay, so there's a whole bunch of examples of sequences and how you can set them up and how they work.", 'start': 4102.865, 'duration': 7.204}, {'end': 4111.35, 'text': 'And now I want to talk about maps.', 'start': 4110.249, 'duration': 1.101}], 'summary': 'Demonstrated sequence manipulation and generation of prime values from 1 to 500, followed by transitioning to examples of sequences and maps.', 'duration': 29.07, 'max_score': 4082.28, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U4082280.jpg'}], 'start': 3685.962, 'title': 'Tuples, records, and sequences in f#', 'summary': 'Covers working with tuples to extract specific information, creating custom records with key-value pairs, and using sequences in f# to create infinite data structures. it also demonstrates generating sequences of even numbers, descending sequences, and prime numbers up to 500 with printed results.', 'chapters': [{'end': 3802.33, 'start': 3685.962, 'title': 'Working with tuples and records', 'summary': 'Covers working with tuples to extract specific information and creating custom records with key-value pairs, demonstrating how to define and access custom records with specific data in tuples.', 'duration': 116.368, 'highlights': ['Creating custom records with key-value pairs for defining specific data in tuples, such as defining a customer record with name and balance as key-value pairs.', "Demonstrating how to define and access custom records with specific data in tuples, like defining a record for Bob with name as 'Bob Smith' and balance as $101.50.", 'Working with tuples to extract specific information, showcasing the ability to calculate the average and retrieve specific values, such as extracting the name from the tuple and accessing the balance.']}, {'end': 4102.845, 'start': 3802.33, 'title': 'Sequences in f# for infinite data', 'summary': 'Discusses how to use sequences in f# to create infinite data structures and demonstrates generating sequences of even numbers, descending sequences, and prime numbers up to 500 and printing the results.', 'duration': 300.515, 'highlights': ['Demonstrating generating sequences of even numbers, descending sequences, and prime numbers up to 500. The chapter illustrates how to generate sequences of even numbers, descending sequences, and prime numbers up to 500 using F#, showcasing the versatility of sequences in creating infinite data structures.', 'Printing the results of the generated prime numbers. The section explains how to print the results of the generated prime numbers, providing a practical demonstration of the functionality of the prime number sequence in F#.', 'Explaining the concept of sequences and their deferred generation. It emphasizes the concept of sequences in F# and their deferred generation until required, offering insights into the efficiency and flexibility of working with sequences.']}], 'duration': 416.883, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U3685962.jpg', 'highlights': ['Creating custom records with key-value pairs for defining specific data in tuples, such as defining a customer record with name and balance as key-value pairs.', 'Working with tuples to extract specific information, showcasing the ability to calculate the average and retrieve specific values, such as extracting the name from the tuple and accessing the balance.', 'Demonstrating generating sequences of even numbers, descending sequences, and prime numbers up to 500 using F#, showcasing the versatility of sequences in creating infinite data structures.', 'Printing the results of the generated prime numbers, providing a practical demonstration of the functionality of the prime number sequence in F#.', 'Explaining the concept of sequences and their deferred generation, offering insights into the efficiency and flexibility of working with sequences.']}, {'end': 5039.979, 'segs': [{'end': 4174.363, 'src': 'embed', 'start': 4143.872, 'weight': 0, 'content': [{'end': 4145.834, 'text': "We're going to say Bob Smith owes us $100.50.", 'start': 4143.872, 'duration': 1.962}, {'end': 4149.956, 'text': 'And then you follow that up with a period.', 'start': 4145.834, 'duration': 4.122}, {'end': 4151.256, 'text': "Let's add another person.", 'start': 4150.196, 'duration': 1.06}, {'end': 4154.466, 'text': "So we'll say we want Sally Marks.", 'start': 4151.724, 'duration': 2.742}, {'end': 4156.51, 'text': "There's Sally Marks.", 'start': 4155.448, 'duration': 1.062}, {'end': 4158.832, 'text': 'And she owes us $50.25.', 'start': 4156.99, 'duration': 1.842}, {'end': 4160.795, 'text': "I'm really obsessing about this.", 'start': 4158.832, 'duration': 1.963}, {'end': 4161.756, 'text': 'And there you go.', 'start': 4161.135, 'duration': 0.621}, {'end': 4164.118, 'text': 'So you just created yourself a map.', 'start': 4162.157, 'duration': 1.961}, {'end': 4170.68, 'text': "Now let's go in here and let's say we want to find out Whoops, don't want that.", 'start': 4164.339, 'duration': 6.341}, {'end': 4174.363, 'text': "And I'll say number of customers.", 'start': 4171.081, 'duration': 3.282}], 'summary': 'Bob owes $100.50, sally owes $50.25. created a map and mentioned number of customers.', 'duration': 30.491, 'max_score': 4143.872, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U4143872.jpg'}, {'end': 4328.692, 'src': 'embed', 'start': 4297.404, 'weight': 5, 'content': [{'end': 4300.525, 'text': "whoops, don't do that, let's go, put that back where it goes.", 'start': 4297.404, 'duration': 3.121}, {'end': 4301.305, 'text': 'all right.', 'start': 4301.045, 'duration': 0.26}, {'end': 4303.086, 'text': "let's do another thing here.", 'start': 4301.305, 'duration': 1.781}, {'end': 4305.887, 'text': "let's say we want to get a value of a key.", 'start': 4303.086, 'duration': 2.801}, {'end': 4321.354, 'text': "so go like this and put that over there and we'll say Bob's balance, but this but, and we'll say customers and Bob Smith.", 'start': 4305.887, 'duration': 15.467}, {'end': 4323.43, 'text': 'so Put the key inside of there.', 'start': 4321.354, 'duration': 2.076}, {'end': 4324.731, 'text': 'And there that is.', 'start': 4323.45, 'duration': 1.281}, {'end': 4327.712, 'text': 'And then finally we can remove items.', 'start': 4325.071, 'duration': 2.641}, {'end': 4328.692, 'text': "So we'll go let.", 'start': 4327.932, 'duration': 0.76}], 'summary': 'Demonstration of manipulating key-value pairs in a system.', 'duration': 31.288, 'max_score': 4297.404, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U4297404.jpg'}, {'end': 4403.672, 'src': 'embed', 'start': 4376.952, 'weight': 1, 'content': [{'end': 4381.755, 'text': 'Basically, a generic is going to allow you to use any data type in a function.', 'start': 4376.952, 'duration': 4.803}, {'end': 4383.956, 'text': "So let's go and define two functions.", 'start': 4381.975, 'duration': 1.981}, {'end': 4386.478, 'text': "I'm going to have one be add stuff.", 'start': 4384.236, 'duration': 2.242}, {'end': 4392.161, 'text': "And how you define you don't know what's going to be coming in here is you go single quote like that.", 'start': 4386.978, 'duration': 5.183}, {'end': 4401.329, 'text': "and t, and then x and y is equal to, and then what this guy's going to do is it's going to print out this addition.", 'start': 4393.18, 'duration': 8.149}, {'end': 4403.672, 'text': "so i'm just going to keep it simple.", 'start': 4401.329, 'duration': 2.343}], 'summary': "Generics allow using any data type in a function, demonstrated through defining an 'add stuff' function.", 'duration': 26.72, 'max_score': 4376.952, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U4376952.jpg'}, {'end': 4525.183, 'src': 'embed', 'start': 4500.39, 'weight': 2, 'content': [{'end': 4506.313, 'text': "and we're going to say that we expect it is possible to have a divide by zero exception.", 'start': 4500.39, 'duration': 5.923}, {'end': 4509.735, 'text': 'so divide by zero or zero expression exception.', 'start': 4506.313, 'duration': 3.422}, {'end': 4520.359, 'text': "and in that situation in which we do, we're going to go like this And print a message that says can't divide by zero.", 'start': 4509.735, 'duration': 10.624}, {'end': 4522.801, 'text': "And that's going to keep the whole program from crashing.", 'start': 4520.379, 'duration': 2.422}, {'end': 4525.183, 'text': "Instead it's going to print out can't divide by zero.", 'start': 4522.861, 'duration': 2.322}], 'summary': 'Expecting to handle divide by zero exception to prevent program crash.', 'duration': 24.793, 'max_score': 4500.39, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U4500390.jpg'}, {'end': 4703.086, 'src': 'embed', 'start': 4678.042, 'weight': 3, 'content': [{'end': 4688.908, 'text': "and it's going to be of type rectangle like we just defined here, so rectangle there that is, and whenever this guy's called,", 'start': 4678.042, 'duration': 10.866}, {'end': 4694.339, 'text': "it's going to take the shape And it's going to get the length and multiply it times the width.", 'start': 4688.908, 'duration': 5.431}, {'end': 4695.76, 'text': 'So there that is.', 'start': 4694.659, 'duration': 1.101}, {'end': 4698.202, 'text': "And there's how we work with our custom data type.", 'start': 4695.86, 'duration': 2.342}, {'end': 4703.086, 'text': "So let's go create a rectangle is equal to new rectangle.", 'start': 4698.402, 'duration': 4.684}], 'summary': 'Creating a new rectangle of custom data type and defining its properties and behavior.', 'duration': 25.044, 'max_score': 4678.042, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U4678042.jpg'}, {'end': 4793.139, 'src': 'embed', 'start': 4757.488, 'weight': 4, 'content': [{'end': 4758.95, 'text': "Let's come up here and define a class.", 'start': 4757.488, 'duration': 1.462}, {'end': 4768.22, 'text': 'Now a class is just going to model a real world object by defining the attributes called fields and the capabilities called methods of those real world objects.', 'start': 4758.99, 'duration': 9.23}, {'end': 4770.142, 'text': "So let's say, let's just do a simple one.", 'start': 4768.541, 'duration': 1.601}, {'end': 4774.768, 'text': "Let's call this animal and we have to define that it is going to be a class.", 'start': 4770.162, 'duration': 4.606}, {'end': 4782.292, 'text': "and then we're going to define the attributes or fields, and so we're going to have this, which is going to be a string,", 'start': 4775.148, 'duration': 7.144}, {'end': 4793.139, 'text': "and there's also going to be a height and that's going to be a float, and another value we'll have is a weight, which is also going to be a floats.", 'start': 4782.292, 'duration': 10.847}], 'summary': 'Defining a class to model an animal with string, float attributes', 'duration': 35.651, 'max_score': 4757.488, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U4757488.jpg'}], 'start': 4102.865, 'title': 'Working with maps, generics, and exception handling in f#', 'summary': 'Covers creating and manipulating maps, including adding key-value pairs, retrieving values, checking for key existence, and removing items. it also explains how generics allow flexibility in defining functions for any data type and demonstrates exception handling to catch errors, with examples of division by zero and custom exception raising. additionally, it covers creating custom data types using structs, modeling real-world objects using classes and inheritance, and concludes with an example of modeling real-world objects using classes and inheritance in f#.', 'chapters': [{'end': 4376.732, 'start': 4102.865, 'title': 'Working with maps and generics', 'summary': 'Covers the process of creating and manipulating maps, including adding key-value pairs, retrieving values, checking for key existence, and removing items. additionally, it briefly touches on generics.', 'duration': 273.867, 'highlights': ['Creating a map called customers and adding key-value pairs like Bob Smith owes $100.50 and Sally Marks owes $50.25. Two key-value pairs added to the map.', "Demonstrating the process of finding the number of customers in the map and retrieving the balance for a specific customer (Bob Smith). Retrieving the number of customers and Bob Smith's balance.", "Showing how to check if a key exists in the map and obtaining the value of a key (Bob Smith's balance). Demonstrating key existence check and value retrieval.", 'Removing an item from the map (Sally Marks) and verifying the updated count of customers. Successfully removing an item from the map and confirming the updated count.', 'Briefly touching on the topic of generics. Overview of generics.']}, {'end': 4589.493, 'start': 4376.952, 'title': 'Generics and exception handling', 'summary': 'Explains how generics allow flexibility in defining functions for any data type and demonstrates exception handling to catch errors, with examples of division by zero and custom exception raising.', 'duration': 212.541, 'highlights': ["Generics allow defining functions for any data type, providing flexibility and reusability. The chapter demonstrates how a generic function 'add stuff' is defined to work with floats, allowing the addition of 5.5 and 2.4, resulting in 7.9.", "Exception handling is used to catch errors, such as division by zero, preventing the program from crashing. The transcript illustrates exception handling with a 'divide example' to handle potential division by zero error, printing 'can't divide by zero' message when encountering the error.", 'Custom exception raising is demonstrated using an if statement to raise an exception if the denominator is zero. The speaker demonstrates custom exception raising by using an if statement to check if the denominator is zero, and if so, raising an exception with a specific message.']}, {'end': 5039.979, 'start': 4589.873, 'title': 'Exception handling and custom data types in f#', 'summary': 'Covers exception handling, creating custom data types using structs, and modeling real-world objects using classes and inheritance in f#, demonstrating the use of exception handling and creating custom data types before concluding with an example of modeling real-world objects using classes and inheritance.', 'duration': 450.106, 'highlights': ['The chapter covers exception handling, including raising and catching exceptions as well as the need for diligent coverage.', "Creating custom data types using structs, demonstrating the definition of a 'rectangle' struct with length and width as fields, and the use of constructors and functions to work with the custom data type.", "Modeling real-world objects using classes and inheritance, illustrating the definition of an 'animal' class with fields and methods, inheritance in a 'dog' class, and demonstrating the usage of fields and methods in the subclasses."]}], 'duration': 937.114, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/c7eNDJN758U/pics/c7eNDJN758U4102865.jpg', 'highlights': ['Creating a map called customers and adding key-value pairs like Bob Smith owes $100.50 and Sally Marks owes $50.25. Two key-value pairs added to the map.', "Generics allow defining functions for any data type, providing flexibility and reusability. The chapter demonstrates how a generic function 'add stuff' is defined to work with floats, allowing the addition of 5.5 and 2.4, resulting in 7.9.", "Exception handling is used to catch errors, such as division by zero, preventing the program from crashing. The transcript illustrates exception handling with a 'divide example' to handle potential division by zero error, printing 'can't divide by zero' message when encountering the error.", "Creating custom data types using structs, demonstrating the definition of a 'rectangle' struct with length and width as fields, and the use of constructors and functions to work with the custom data type.", "Modeling real-world objects using classes and inheritance, illustrating the definition of an 'animal' class with fields and methods, inheritance in a 'dog' class, and demonstrating the usage of fields and methods in the subclasses.", "Showing how to check if a key exists in the map and obtaining the value of a key (Bob Smith's balance). Demonstrating key existence check and value retrieval."]}], 'highlights': ['Fsharp emphasizes predictable and shorter code', 'Functional languages apply functions to data', 'Immutability of variables in functional languages', 'Visual Studio 2017 used for demonstrating F sharp core syntax', 'Demonstrates formatting floating point numbers', 'Explaining recursive functions and factorial calculation', 'Utilizing lambda expressions to create a new list', 'Introduction to executing multiple functions', "Comprehensive overview of Python's math capabilities", 'Covers F# math operations and string manipulation', 'Demonstration of the OR logical operator', 'Exploration of if-else statements in Fsharp', 'Creation and manipulation of lists', 'Operations on lists, including sorting and summation', 'The use of enums to assign names to data', 'Demonstrating handling division by zero error', 'Creating custom records with key-value pairs', 'Working with tuples to extract specific information', 'Demonstrating generating sequences of even numbers', 'Creating a map and adding key-value pairs', 'Generics allow defining functions for any data type', 'Exception handling is used to catch errors', 'Creating custom data types using structs', 'Modeling real-world objects using classes and inheritance', 'Showing how to check if a key exists in the map']}