Funkciók, mint az első osztályú (F #)
A meghatározó jellemzője a funkcionális programozási nyelvek, hogy javítsa a funkciókat az állam az első osztályban. A funkció segítségével végezze el a fenti lépéseket, mint az értékek más beépített típusú, hasonló mennyiségű erőfeszítést.
Az alábbiakban képviselő kérdéseket állapotának felméréséhez az első osztályban.
Csatolhatok az azonosítót az érték? Ha igen, akkor a nevét?
Lehetséges, hogy tárolja az értéket egy adatstruktúra, mint például egy listát?
Lehetséges, hogy adja át az érték érvként függvényhívás?
Tudok vissza értéket, mint az értéke a függvényhívás?
Az utolsó két kérdés az értékelés meghatározza az úgynevezett magasabb rendű működés, vagy magasabb rendű funkciókat. Magasabb rendű funkciókat veszi funkcionál érvek és visszaút funkcionál értéke a függvényhívás. Ezek a műveletek alapján a funkcionális programozás függvényében összehasonlításával és összekapcsolja funkciókat.
Ha a függvény az érték az első osztályú képesnek kell lennie arra, hogy nevezze el ugyanúgy, mint egész, húr, és más a beépített típusok. Az irodalomban a funkcionális programozás nevezik kötelező azonosítót az értéket. F # használ let kifejezést kötődni nevek értékek: legyen
Az érték az első osztályú tárolható adatok szerkezetét. Az alábbi példák a kód mutatja a tárolási értékeket listák és sorok.
Annak biztosítása érdekében, hogy a funkció tárolt név tuple valóban végrehajtja számítási funkciókat, a következő példa üzemeltetők FST és snd extrahálására használt az első és a második elem a tuple funAndArgTuple. Az első elem a tuple hívják squareIt. második - num. Id NUM az előző példában kötve van egy egész szám, 10, amely egy érvényes érv squareIt funkciót. A második expressziós tuple elem először alkalmazzák a második: squareIt num.