Funktionell programmering i praktiken

Programmeringsparadigm – grundläggande koncept

Eleanor Thomas

Senior Data Analytics Engineer

Funktionell programmering i praktiken

  • Tre exempel på rena funktioner
  • Viktigaste skillnaden mellan en ren funktion och en vanlig Python-funktion: inga sidoeffekter
  • Rena funktioner kan anropa andra rena funktioner och förbli rena

Skrivtavla

Programmeringsparadigm – grundläggande koncept

Exempel 1 – Skriva en ren funktion

def square_list(input_list):
    new_list = []

for item in input_list:
new_item = item ** 2
new_list.append(new_item)
return new_list
  • Skapa först en ny, tom lista
  • Gå igenom varje element i indatalistan
    • Kvadrera det
    • Lägg till det i den nya listan
  • Returnera den nya listan
Programmeringsparadigm – grundläggande koncept

Exempel 2 – Korrigera en "oren" funktion

sample_mean = 10
scale_factor = 2

def scale_list(input_list):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • Beror på variabler utanför funktionskroppen
  • Inte en ren funktion
Programmeringsparadigm – grundläggande koncept

Exempel 2 – "Oren" funktion korrigerad

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • Variablerna sample_mean och scale_factor har blivit indataparametrar för funktionen
  • Funktionen är nu "ren"
Programmeringsparadigm – grundläggande koncept

Exempel 3 – Kombinera rena funktioner

def scale_value(value, sample_mean, scale_factor):
    scaled_value = (value - sample_mean) / scale_factor
    return scaled_value

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = scale_value(item, sample_mean, scale_factor)
        new_list.append(new_item)
    return new_list
Programmeringsparadigm – grundläggande koncept

Nu kör vi en övning!

Programmeringsparadigm – grundläggande koncept

Preparing Video For Download...