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):
true
ofalse
. - 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" resultatFactorial
Exercicis 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" resultatSuma
Conclusió
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