Ֆունկցիաները, ինչպիսիք են sort-ը, max-ը կամ min-ը, կարող են ընդունել այնպիսի արգումենտներ, ինչպիսիք են key=-ն, որոնք ֆունկցիաներ են և կարող են փոփոխել դրանց վարքը: Սրա շնորհիվ ներկառուցված ֆունկցիաները՝ sort-ը և max-ը, դառնում են ավելի հզոր և ընդհանուր: Դրանք կարող են ավելի լայն կիրառություն ունենալ, քան եթե համեմատեին միայն արժեքները՝ առանց key= արգումենտի:
Մենք կարող ենք նաև ստեղծել մեր սեփական higher-order ֆունկցիաները:
Այստեղ մենք փոխանցում ենք տարբեր ֆունկցիաներ որպես f ավելի բարձր կարգի modify ֆունկցիային: modify ֆունկցիան մուտքում ստացած ցուցակից ստեղծում է նոր ցուցակ և վերադարձնում է արդյունքը: Ի դեպ, ֆունկցիային կարող ենք նույնիսկ str-ի նման ֆունկցիա փոխանցել: Այսպիսով, մուտքագրման ցանկի յուրաքանչյուր տարրի վրա կկիրառվի str() ֆունկցիա՝ str(2), str(0), str(1):
Առաջադրանք
Գրեք sum ֆունկցիայի ընդհանուր տարբերակը, որը կոչվում է generic_sum, որը որպես առաջին արգումենտ կընդունի հավաքածու (դա կարող է լինել ցուցակ, set կամ tuple-ների ցուցակ) և ֆունկցիա՝ որպես երկրորդ արգումենտ, որը ստանալով մի էլեմենտ` վերադարձնում է դրան համապատասխան թիվ (տե՛ս օրինակը)։