27 lines
		
	
	
		
			993 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			993 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						||
title: F#
 | 
						||
---
 | 
						||
 | 
						||
# F# 
 | 
						||
F# is a strongly typed language that inherit from the object oriented language (C#) but encourage a functional programmation. It runs on the .NET CLR, and can seamlessly inter-operate with C#.
 | 
						||
It is compatible with visual studio and is officialy supported by Microsoft.
 | 
						||
 | 
						||
## Immutability
 | 
						||
Variables in F# are by default immutable. That means that their values can't be changed after initialization. Mutability can be forced by the keyword "mut". One of the F# best practices is to just make a copy of the variable you want and change the values you need at the initialization of the newly created variable.
 | 
						||
 | 
						||
## Records
 | 
						||
F# can use objects, but it is encouraged to use Records instead. Records are a set of members, and can be seens as structs for people that comes from a C background.
 | 
						||
 | 
						||
For example: 
 | 
						||
 | 
						||
```fsharp
 | 
						||
type People = {
 | 
						||
  Age: int 
 | 
						||
  FirstName: string 
 | 
						||
  LastName: string  
 | 
						||
}
 | 
						||
```
 | 
						||
 | 
						||
## Additional Resources
 | 
						||
- [F# Tutorial](https://www.tutorialspoint.com/fsharp/)
 |