JavaScriptin Kuratoiminen

yksi niistä periaatteista, joita jokainen ohjelmoija pyrkii noudattamaan, on kuiva (älä toista itseäsi), Kuratoimisen avulla näemme, miten tämä toiminnoillamme onnistuu, on varsin yksinkertainen ja hyödyllinen.

tämän sisällön julkaisin ensimmäisen kerran uutiskirjeessäni, viikko sen jälkeen, kun julki tullut uutiskirje julkaistiin blogissani, jos haluat olla ensimmäinen, joka lukee tilaa

Banner posts

tapa, jolla normaalisti kirjoitamme funktioitamme on:

//ES2015const divisible = (num, mod) => num % mod;//ES5var divisible = function(num, mod) { return num % mod;}

tämän funktion toteuttamiseksi meidän on läpäistävä kaksi argumenttia, mutta jos haluamme funktion, joka ainoastaan tarkistaa, onko luku Tasainen, meidän olisi kirjoitettava uusi funktio. Tässä vaiheessa on hyödyllistä olla currified funktio.

ennen kuin ymmärrämme, miten kurrifioitu funktio toimii, meidän on tiedettävä joitakin käsitteitä.

funktiot ovat ensiluokkaisia kansalaisia, tämä tarkoittaa, että funktiot ovat objekteja, voit siirtää ne argumentteina, tallentaa muuttujiin, ja palauttaa muiden funktioiden sisällä korkean tason funktioita Javascriptissä

sulkeminen on silloin, kun funktio pystyy muistamaan ja käyttämään sanastollista soveltamisalaa, vaikka funktio suoritettaisiin sanastollisen soveltamisalan ulkopuolella. Ymmärtäminen sulkuja JavaScript

jos funktio vastaanottaa enemmän kuin yhden parametrin, se voidaan kirjoittaa uudelleen, funktio, joka ottaa parametrin ja palauttaa funktion, on puolestaan vastaanottaa parametrin ja palauttaa tuloksen. I calculate lambda in JavaScript

¿mitä on Kuratoiminen?

Curry pystyy kutsumaan funktiota, jossa on vähemmän parametreja kuin odottaa, se palauttaa funktion, joka odottaa jäljellä olevia parametreja ja palauttaa tuloksen.

näin voitiin kirjoittaa funktio uudelleen alkuun kuten

//ES2015const divisible = mod => num => num % mod;//ES5var divisible = function (mod) { return function (num) { return num % mod; }}

tämän funktion kutsumiseen meillä on kaksi vaihtoehtoa

  • siirtää argumentit ajamalla funktiot
divisible(10)(2)
  • kulkee argumentti ja saada funktio, joka muistaa tämän argumentin
const divisibleEn3 = divisible(3);divisibleEn3(10)

kuten kirjoitamme funktio currificada ei ole monimutkainen, mutta voisimme tehdä sen hieman luonnollisempi kuin escribimoscualquier funktio.

tähän voidaan käyttää lodashia tai Ramdaa, joilla on currymenetelmä, jonka avulla voidaan kurrifioida mikä tahansa funktio tällä tavalla.

import { __, curry, map } from 'ramda';const composeNombre = curry( (primer, apellido) => `${primer} ${apellido}`);const familiaJaimes = composeNombre(__, 'Jaimes')const nombres = console.log(map(familiaJaimes, nombres))

Katsotaanpa hyödyllisempi esimerkki otettu enimmäkseen riittävä opas funktionaalista ohjelmointia

import { curry } from 'ramda';// Estas funciones las puedes conseguir dentro de Ramda o Lodashvar match = curry(function(what, str) { return str.match(what);});var replace = curry(function(what, replacement, str) { return str.replace(what, replacement);});var filter = curry(function(f, ary) { return ary.filter(f);});var map = curry(function(f, ary) { return ary.map(f);});var hasSpaces = match(/\s+/g);hasSpaces("hello world");// hasSpaces("spaceless");// nullfilter(hasSpaces, );// var findSpaces = filter(hasSpaces);// function(xs) { return xs.filter(function(x) { return x.match(/\s+/g) }) }findSpaces();// 

Currentingin edut

  • voimme luoda uusia funktioita yksinkertaisesti siirtämällä perusfunktioitamme joidenkin parametrien avulla.
  • voimme muuttaa minkä tahansa funktion, joka toimii yhdellä elementillä, sellaiseksi, joka toimii luettelon kanssa käärimällä sen karttaan.
  • voit kirjoittaa pieniä koodinpätkiä, joita on helpompi käyttää uudelleen.
  • niistä on helppo järkeillä.
  • kurrifioitujen funktioiden kirjoittaminen mahdollistaa funktioiden säveltämisen.



+