 Hi, I'm David Stevens, a Program Manager on the .NET team. In this video, I'm going to show you how to get started with Visual F-Sharp, an open-source cross-platform, functional-first .NET programming language. First, I'll give you an overview of Visual F-Sharp. What is it and why is it useful? Then I'll show you how to get set up with F-Sharp in Visual Studio, and I'll walk you through writing your first F-Sharp program. Finally, I'll point you towards some resources that can help you learn more about F-Sharp. Okay, so what makes the F-Sharp language special? First, it helps you write simple, correct, maintainable code by emphasizing a functional programming style. In a functional style, you model your program as functions that operate on immutable data. This is different from imperative and object-oriented languages in which you model your program as a sequence of statements that change mutable objects. While F-Sharp emphasizes a functional style, it also offers imperative and object-oriented features to help you solve problems that are less natural to model functionally. Its support for object orientation also allows F-Sharp to run on the .NET common language runtime and use .NET libraries. This makes it really easy to use F-Sharp on teams that also use C-Sharp or Visual Basic. Using the tools you're already familiar with as a .NET programmer, you can write F-Sharp libraries that can be consumed from C-Sharp and vice versa. Finally, Visual F-Sharp is open-source and cross-platform. The compiler and tools are developed on GitHub by a global community of developers in addition to contributions from Microsoft. Today, you can run F-Sharp on the .NET CLR on Windows or on OS X or Linux with Mono. We're busy building support for F-Sharp on the new .NET Core CLR that runs on Windows, OS X, Linux, and many Unix distributions. There are even community-built tools that compile F-Sharp to run in the browser or on GPUs. All right, let's see how to get started writing F-Sharp code. I'll show you in Visual Studio 2015, but you could just as easily follow along in other versions of Visual Studio or on a variety of editors on OS X or Linux. First, we'll see if we have the Visual F-Sharp tools installed. To do this, we'll go to File, New Project, choose the F-Sharp node here. And if you see this list of templates, you're good to go. If not, choose the install link you'll see here in the New Project dialog. For this example, we'll choose this tutorial template at the bottom, click OK. So this file is a comprehensive introduction to all the different features of the F-Sharp language. So if you have a little bit more time, go through it and it's a great way to learn about all the different features F-Sharp has to offer. But today, we'll just write a simple hello world. So in this blank space here, all right, let, hello, name, equals, and I'll explain what I'm doing here in just a second. All right, let's walk through this keyword by keyword here. So in F-Sharp, there's a single keyword to declare new values and functions, let. So this line here means I'm declaring a new function, hello, that takes a single argument, name. And in the body, I'm calling the printf function with two arguments. The string here and name. Even from this small example, we can see a couple really interesting things about F-Sharp. The first is that it has significant white space, so this indention here of the body is important. Second, and maybe more interesting is that even though we didn't write down any types in this function, F-Sharp is statically typed. And it does this with a feature called type inference. So just by seeing how, for example, this argument here name is used in the body, it can infer that name is a string and can infer that our function takes a string and returns unit, which is kind of like void because this function just prints to the console. Now, how do we run this function? It's not in the body of our main function of this program, so we can't just build and run like we normally would. But luckily, Visual Studio lets us do one better with a feature called F-Sharp interactive. So to use it, we'll just select the function here, right click, and choose execute and interactive. And the F-Sharp interactive window over here, we'll see the type of hello, which we just declared over here. And let us know we can call it. Now there's an even faster way to use F-Sharp interactive. So you just select whatever code you want to run in the interactive window and press Alt-Enter, and it does the same thing. Now to run our code, we'll just type hello, world, two semicolons. And those semicolons let the F-Sharp interactive prompt know we're done with one input. So we press enter, and there you go, hello world. And we could even use different arguments. So we could say hello, F-Sharp, enter, and there you go. That's just a tiny sample of F-Sharp. To really get up to speed, check out some of these resources. F-Sharp.org is the site for the open source F-Sharp language. There you'll find links to a bunch of great tutorials, instructions for using F-Sharp outside of Visual Studio, and more. The video and introduction to Microsoft F-Sharp is one of the best places to start learning about the language. You can find it by searching Channel 9. For more detailed information, the Visual F-Sharp guided tour page on MSDN is a great resource, and it links to the official Visual F-Sharp documentation on MSDN. Finally, follow our team on Twitter at Visual F-Sharp to stay up to date with news and get plugged into the F-Sharp community. Thanks for watching, and happy F-Sharp programming.