En aquest tema, aprendrem els conceptes fonamentals de la sintaxi i l'estructura de F#. Aquestes bases són essencials per a qualsevol programador que vulgui dominar aquest llenguatge funcional.
Continguts
- Comentaris
- Declaració de Variables
- Tipus de Dades Bàsics
- Expressions i Operadors
- Condicionals
- Bucles
- Funcions
- Comentaris
Els comentaris són línies de codi que no s'executen i s'utilitzen per explicar el codi. En F#, hi ha dos tipus de comentaris:
- Comentaris de línia única: Comencen amb
//. - Comentaris de múltiples línies: Comencen amb
(*i acaben amb*).
- Declaració de Variables
En F#, les variables es declaren amb la paraula clau let. Les variables són immutables per defecte, és a dir, no poden canviar el seu valor després de ser assignades.
Per declarar una variable mutable, utilitzem la paraula clau mutable i l'operador <- per assignar un nou valor.
- Tipus de Dades Bàsics
F# suporta diversos tipus de dades bàsics, com ara:
- Enter (int): Nombres enters.
- Coma flotant (float): Nombres amb decimals.
- Booleà (bool):
trueofalse. - Caràcter (char): Un sol caràcter.
- Cadena (string): Una seqüència de caràcters.
let numeroEnter = 42 let numeroDecimal = 3.14 let esCert = true let lletra = 'A' let text = "Hola, món!"
- Expressions i Operadors
F# suporta els operadors aritmètics i lògics habituals:
- Aritmètics:
+,-,*,/,% - Lògics:
&&,||,not
let suma = 5 + 3 let resta = 10 - 4 let multiplicacio = 7 * 6 let divisio = 20 / 4 let modul = 15 % 4 let iLogica = true && false let oLogica = true || false let noLogica = not true
- Condicionals
Les estructures condicionals en F# es fan amb if, elif i else.
let edat = 18
if edat >= 18 then
printfn "Ets major d'edat."
elif edat >= 13 then
printfn "Ets adolescent."
else
printfn "Ets un nen."
- Bucles
F# suporta bucles for i while.
Bucle for
Bucle while
let mutable contador = 0
while contador < 5 do
printfn "Contador: %d" contador
contador <- contador + 1
- Funcions
Les funcions es defineixen amb la paraula clau let seguit del nom de la funció, els paràmetres i el cos de la funció.
Funcions Recursives
Les funcions recursives es defineixen amb la paraula clau rec.
let rec factorial n =
if n = 0 then 1
else n * factorial (n - 1)
let resultatFactorial = factorial 5
printfn "El factorial de 5 és: %d" resultatFactorialExercicis Pràctics
Exercici 1: Declaració de Variables
Declara una variable immutable nom amb el valor "F#", i una variable mutable any amb el valor 2023. Canvia el valor de any a 2024.
Solució
Exercici 2: Condicionals
Escriu un programa que imprimeixi "Positiu" si un nombre és major que zero, "Negatiu" si és menor que zero, i "Zero" si és igual a zero.
Solució
let nombre = -5
if nombre > 0 then
printfn "Positiu"
elif nombre < 0 then
printfn "Negatiu"
else
printfn "Zero"Exercici 3: Funció Recursiva
Escriu una funció recursiva que calculi la suma dels primers n nombres naturals.
Solució
let rec sumaNaturals n =
if n = 0 then 0
else n + sumaNaturals (n - 1)
let resultatSuma = sumaNaturals 10
printfn "La suma dels primers 10 nombres naturals és: %d" resultatSumaConclusió
En aquesta secció, hem après els conceptes bàsics de la sintaxi i l'estructura de F#. Hem cobert des de comentaris i declaració de variables fins a funcions i estructures de control. Amb aquests fonaments, estàs preparat per avançar cap a conceptes més complexos en F#.
Curs de Programació en F#
Mòdul 1: Introducció a F#
Mòdul 2: Conceptes Bàsics
- Tipus de Dades i Variables
- Funcions i Immutabilitat
- Coincidència de Patrons
- Col·leccions: Llistes, Matrius i Seqüències
Mòdul 3: Programació Funcional
Mòdul 4: Estructures de Dades Avançades
Mòdul 5: Programació Orientada a Objectes en F#
- Classes i Objectes
- Herència i Interfícies
- Barreja de Programació Funcional i Orientada a Objectes
- Mòduls i Espais de Noms
Mòdul 6: Programació Asíncrona i Paral·lela
- Fluxos de Treball Asíncrons
- Biblioteca de Tasques Paral·leles
- MailboxProcessor i Agents
- Patrons de Concurrència
Mòdul 7: Accés i Manipulació de Dades
Mòdul 8: Proves i Depuració
- Proves Unitàries amb NUnit
- Proves Basades en Propietats amb FsCheck
- Tècniques de Depuració
- Perfilat de Rendiment
