Funkcionální programování v praxi

Koncepty programovacích paradigmat

Eleanor Thomas

Senior Data Analytics Engineer

Funkcionální programování v praxi

  • Tři příklady čistých funkcí
  • Klíčový rozdíl mezi čistou funkcí a obecnou funkcí v Pythonu: žádné vedlejší efekty
  • Čisté funkce mohou volat jiné čisté funkce a zůstat čisté

Tabule

Koncepty programovacích paradigmat

Příklad 1 – Psaní čisté funkce

def square_list(input_list):
    new_list = []

for item in input_list:
new_item = item ** 2
new_list.append(new_item)
return new_list
  • Nejprve vytvořte nový, prázdný seznam
  • Projděte každou položku vstupního seznamu
    • Umocněte ji
    • Přidejte ji do nového seznamu
  • Vraťte nový seznam
Koncepty programovacích paradigmat

Příklad 2 – Oprava „nečisté" funkce

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
  • Závisí na proměnných mimo tělo funkce
  • Není to čistá funkce
Koncepty programovacích paradigmat

Příklad 2 – Oprava „nečisté" funkce

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
  • Proměnné sample_mean a scale_factor se staly vstupními parametry funkce
  • Funkce je nyní "čistá"
Koncepty programovacích paradigmat

Příklad 3 – Kombinování čistých funkcí

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
Koncepty programovacích paradigmat

Pojďme si procvičit!

Koncepty programovacích paradigmat

Preparing Video For Download...