<prompt> Tengeneza mfano unaoelezea dhana ya programu inayofanya kazi.  <response>: Upangaji wa utendaji kazi ni dhana ya upangaji ambayo inahusisha matumizi ya kazi za hisabati kupanga na kuendesha data. Kanuni muhimu ya upangaji wa kazi ni uundaji wa programu zinazofanya kazi tu, na kwa hivyo zinaweza kutabirika. Hii inafanikiwa kwa kubuni msimbo unaoepuka kubadilisha hali au kutumia data inayoweza kubadilika. Huu hapa ni mfano unaosaidia kuonyesha utendakazi wa programu katika vitendo: Tuseme tuna orodha ya nambari ambazo tunataka kujumlisha. Tunaweza kuandika chaguo la kukokotoa ambalo huchukua orodha kama hoja yake na kurudisha jumla ya nambari. Kazi hii haibadilishi orodha ya awali, na tabia yake inatabirika kabisa, kulingana na pembejeo yake - hii ni sifa ya programu ya kazi. def sum_listnambari: Orodhaint - int: jumla 0 kwa nambari katika nambari: jumla nambari ya kurejesha jumla ya chapishojumla_orodha1,2,3,4,5 15 printsum_list5,6,7 18 Katika upangaji utendakazi, mara nyingi sisi hutumia vitendakazi vya mpangilio wa juu - vitendakazi ambavyo huchukua utendakazi mwingine kama hoja - ili kufanya msimbo wetu uwe wa kawaida zaidi na utumike tena. Kwa mfano, tunaweza kutumia kitendakazi cha punguza kilichojengewa ndani ili kufikia matokeo sawa: kutoka kwa uingizaji wa functools hupunguza def sum_listnambari: Listint - int: return reducelambda a, b: a b, nambari chapajumla_orodha1,2,3,4,5 15 chapajumla_orodha5,6,7 18 Katika mfano huu, tunapitisha lambda chaguo la kukokotoa ili kupunguza, ambayo hutumika kwa mkusanyiko wa vipengele vya orodha. Kwa mara nyingine tena, kazi inaweza kutabirika, kwani haibadilishi hali ya data ya pembejeo. Huu ni mfano mmoja tu rahisi, lakini programu ya kazi inaweza kutumika kwa matatizo mbalimbali. Kwa kuvunja programu katika vitendaji vidogo, vinavyojitosheleza, tunaweza kuunda msimbo ambao ni rahisi kuelewa, kujaribu na kutumia tena. 