F# Cheatsheet

1079




Sample program

open System
let name = Console.ReadLine()
Console.Write("Hello 0.\n", name)         
  • open : used to import namespaces

  • let : used to declare a variable.

  • Console.ReadLine() : to read input data from console

  • Console.Write() : prints output data to the console

  • // : single line comment

  • (* Multi

    Line

    comments *)

F# does not have any specific entry point, F# compiler executes all the statements from top to bottom.

Data Types

Integer Data types

Data typeDescriptionSizeRange
sbyte8-bit signed integer1 byte-128 to 127
byte8-bit unsigned integer1 byte0 to 255
int1616-bit signed integer2 bytes-32768 to 32767
unit1616-bit unsigned integer2 bytes0 to 65,535
int/int3232-bit signed integer4 bytes-2,147,483,648 to 2,147,483,647
uint3232-bit unsigned integer4 bytes0 to 4,294,967,295
int6464-bit signed integer8 bytes-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
uint6464-bit unsigned integer8 bytes0 to 18,446,744,073,709,551,615
bigintarbitrary precision integerAt least 4 bytesIntegers

Float Data types

Data typeDescriptionSizeRange
float3232-bit signed floating point number4 bytes±1.5e-45 to ±3.4e38
float64-bit signed floating point number8 bytes±5.0e-324 to ±1.7e308
decimal128-bit signed floating point number16 bytes±1.0e-28 to ±7.9e28

Text and Boolean Data types

Data typeDescriptionSizeRange
charsingle character2 bytesU+0000 to U+ffff
stringText20 + (2 * length of the string) bytes0 to up to 2 billion characters
boolStores either true or false1 byteTrue or false

Variables

let variable_name:data-type = value

Mutable variable declaration

let mutable variable_name:data-type = value

Operators

Operator typeDescription
Arithmetic Operator+ , - , * , / , %, **
comparision Operator< , > , <= , >=, <> , ==
Bitwise Operator&&& , ^^^ , |||, ~~~, <<<, >>>
Boolean Operator&& , ||, not

List

List is an ordered, immutable set of elements of the same type.

Lists can be defined in mutiple ways:

let list1 = [1; 2; 3; 4; 5 ]

//or

let list2 = 1::2::3::4::5::[];;

// or

let list3 = [1:5] 

Tuples

Tuples are collection of data of the same or different types.

let directions =( "east", "west", "north", "south" ) // tuple of string type
let info = ( "foo", 123, true) // tuple of mixed types

Maps

Map is a collection of key-value pairs.

Map.empty. (* Creating an empty Map *)
      Add("India", "Hindi").
      Add("US", "English").
      Add("France", "French").
      Add("Japan", "Japanese");

Conditional Statements

1. If

if conditional-expression then
   // code

2. If-Else

if conditional-expression then
   // code
else 
   // code

3. Nested If-Else

if conditional-expression then
  // code
elif conditional-expression then
   // code
elif conditional-expression then
   // code
...
else
   // code

Loops

1. For

For..to

Iteration occurs in ascending order.

for var = start-expression to end-expression do
  // code  

For...down-to

Iteration occurs in descending order.

for var = start-expression downto end-expression do
  // code  

For..in

for pattern in enumerable-collection-expr do
   // code

Example

let listItems = [1,2,3,4,5]
for x in listItems do
   printfn "%d" x

2. While

while condition-expr do   
 // code 

Function

How to define a function

let [inline] function-name parameter-list [ : return-type ]
   = function-body

How to call a function

let Var = function-name parameter-list