(toiminnot)

hwechtla-tl: Kompositio

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


Varsinainen ohjelmointityö on käytännössä sitä, että monimutkaiset kokonaisuudet rakennetaan yksinkertaisista palasista. Jokainen ohjelma (tai funktio) käyttää tyypillisesti apunaan yhtä tai useampaa aliohjelmaa (tai alifunktiota), joiden avulla se määrittelee oman toimintansa.

Esimerkiksi tämä ohjelma tekee sanasta palindromin (palindromiksi("kirja") tuottaa tulokseksi "ajrikkirja"):

def palindromiksi(sana): return sana[::-1] + sana

palindromiksi-funktio käyttää apunaan kahta muuta funktiota: merkkijonon väärin päin kääntämistä, joka tehdään [::]-aliohjelmalla (jota kutsutaan "slice"-rakenteeksi), sekä merkkijonojen peräkkäin yhdistämistä, joka tehdään +-aliohjelmalla.

Esimerkkimme näyttää yhden tapauksen yleisemmästä periaatteesta, miten pienistä palasista muodostetaan suurempia kokonaisuuksia: yhden aliohjelman tuloste annetaan toiselle, niin että se on toisen aliohjelman syöte. palindromiksi-funktiossa [::]-aliohjelman tulos (eli väärin päin käännetty sana) annetaan syötteeksi +-aliohjelmalle, joka yhdistää sen alkuperäiseen sanaan.

Tätä menetelmää, jossa yhden funktion tuloste annetaan toiselle syötteeksi, sanotaan funktioiden kompositioksi. Se vastaa sitä, että kaksi konetta yhdistetään peräkkäin tuotantolinjaksi siten, että edeltävän koneen tulokset menevät seuraavalle käsiteltäviksi. Esimerkiksi palindromiksi-funktio on "isompi kone", joka rakentuu pienemmistä seuraavasti:

        palindromiksi
    +---------------------------------+
    |   /-----------------\           |
    |  /           väärin  \    +     |
sana| /            päin     \+-----+  |
----->     [::-1]  käännetty \>    |  |yhdistelty sana
    | \   +------+ sana      |    --->-------->
    |  \--->    -------------->    |  |
    |     +------+           +-----+  |
    +---------------------------------+


(Takaisin ohjelmoinnin käsitteet -sivulle.)


kommentoi (viimeksi muutettu 18.09.2008 12:04)