Korkeamman kertaluvun funktiot ja currying
Välitä ja palauta funktioita sekä käytä niitä osittain
Korkeamman kertaluvun funktiot ja currying on ilmainen Dart Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Dart Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Dart Academy-kurssilla on yhteensä 4 oppituntia.
Funktiot ovat arvoja
Dartissa funktio on vain arvo, jonka voitte tallentaa muuttujaan. Tämä yksi ajatus avaa oven kaikkiin funktionaalisen ohjelmoinnin malleihin. 🎯
int square(int x) => x * x;
var op = square;
print(op(4)); // 16Mitä korkeamman asteen funktio tarkoittaa
Korkeamman asteen funktio ottaa funktion argumenttina tai palauttaa funktion. Olette käyttäneet niitä jo listojen metodien kanssa.
Funktion välittäminen argumenttina
Kun välitätte toiminnan argumenttina, kutsuja päättää, mitä tapahtuu. Tässä apply suorittaa saamansa funktion.
int apply(int v, int Function(int) f) => f(v);
print(apply(5, (x) => x + 1)); // 6Funktion tyypin syntaksi
Tyyppi int Function(int) tarkoittaa funktiota, joka ottaa int-arvon ja palauttaa int-arvon. Tyypit tekevät tarkoituksenne täysin selväksi.
void run(String Function(String) format) {
print(format('hi'));
}Funktion palauttaminen
Korkeamman asteen funktio voi myös palauttaa funktion. Palautettu funktio muistaa sen ympärillä olleet arvot luontihetkellä.
Function makeAdder(int n) {
return (int x) => x + n;
}Palautetun funktion käyttäminen
Kutsukaa luontifunktiota kerran rakentaaksenne erikoistuneen funktion ja käyttäkää sitä sitten uudelleen. Jokainen tulos on oma pieni määritetty työkalunsa.
var add10 = makeAdder(10);
print(add10(5)); // 15
print(add10(1)); // 11Tutustutaan curryingiin
Currying muuttaa usean argumentin funktion yksittäisten argumenttien funktioiden ketjuksi. Annatte yhden arvon kerrallaan.
int Function(int) add(int a) => (int b) => a + b;
print(add(3)(4)); // 7Osittainen soveltaminen
Kiinnittäkää ensimmäinen argumentti nyt ja antakaa loput myöhemmin. Tätä kutsutaan osittaiseksi soveltamiseksi, ja sen avulla voitte luoda uudelleenkäytettäviä, valmiiksi määritettyjä apufunktioita.
var add3 = add(3);
print(add3(10)); // 13
print(add3(20)); // 23Miksi curryingia käytetään
Curryingin avulla voitte rakentaa yleisistä funktioista erikoistuneita ilman logiikan kirjoittamista uudelleen. Se toimii erityisen hyvin, kun koostatte pieniä käsittelyputkia.
Funktioiden parametrityypit
Voitte nimetä monimutkaisia funktiotyyppejä typedef-määrittelyllä, jolloin allekirjoitukset pysyvät luettavina koko koodissa.
typedef IntOp = int Function(int);
int apply(int v, IntOp f) => f(v);Lyhyt tear-off-muoto
Sen sijaan että käärisitte metodin lambdaksi, välittäkää sen nimi suoraan. Tämä tear-off pitää kutsut selkeinä ja siisteinä.
['1', '2', '3'].map(int.parse).forEach(print);Pikatarkistus
Tarkistetaan, miten hyvin hallitsette korkeamman asteen funktiot.
Kertaus
Funktiot ovat arvoja, joten voitte välittää niitä ja palauttaa niitä. Currying ja osittainen soveltaminen muuttavat yleiset funktiot erikoistuneiksi työkaluiksi. Hienoa työtä! 🚀
Opi Dart tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 30
- Oppitunnit
- 120
Usein kysytyt kysymykset
Onko oppitunti ”Korkeamman kertaluvun funktiot ja currying” ilmainen?
Kyllä – oppitunnin ”Korkeamman kertaluvun funktiot ja currying” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Dart Academy-kurssin, päivitä CoddyKit PROhon. Dart Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Korkeamman kertaluvun funktiot ja currying”?
Välitä ja palauta funktioita sekä käytä niitä osittain Harjoittelet Dart Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Dart Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Dart Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Korkeamman kertaluvun funktiot ja currying”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Dart Academy-oppitunnilla?
Kyllä. Jokainen Dart Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Korkeamman kertaluvun funktiot ja currying
- fold, reduce ja expand
- Laiskat iteroitavat ja generaattorit sync*:lla
- Puhtaiden funktioputkien koostaminen