Помощь Joomla



Программирование на Javascript

Функциональное программирование в JavaScript  Июнь 18, 2017 – 12:50
Изучаем программирование на

Эта статья о функциональных концепциях JavaScript. Некоторые из них встроенны в языки программирования, другие дополнительно установляются, но все они хорошо распространены в чисто функциональных языках, как Haskell. Первое, на что я хотел бы обратить внимание, это на то, что я подразумеваю под термином чисто функциональный язык. Такие языки «безопасны», они не вызывают побочных эффектов, то есть определение выражения ничего не изменит во внутреннем состоянии и не приведет к другому результату одного и того же выражения после повторного вызова. Это кажется очень странным и бесполезным таким серьёзным парням, как я, но на самом деле в этом есть достаточно много преимуществ:

  1. Согласованность. Здесь не будет дедлоков или race conditions оттого, что нам не нужна блокировка – данные неизменные. Это уже многообещающе.
  2. Модульное тестирование. Мы можем писать юнит-тесты и не волноваться о состоянии просто потому, что здесь его нет. Нам нужно беспокоиться только об аргументе функций, которые мы тестируем.
  3. Устранение дефектов. Простой трассировки стека полностью достаточно.
  4. Прочная теоретическая база. Функциональные языки базируются на лямбда-исчислении – формальной системе. Этот теоретический фундамент очень просто доказывает правильность написания программ (например, с использованием индукции).

Надеюсь, этих доводов вам достаточно, чтобы перейти к следующим разделам. Сейчас я опишу функциональные элементы в JavaScript и также предоставлю имплементацию аспектов, которые не встроенные изначально, но их реализация не будет затратной для нас.

Анонимные функции

Кажется, функциональное программирование становится все более популярным. Дуже в Java 8 скоро появятся анонимные функции, в C# они есть уже очень давно. Анонимная функция – это функция, которая определяется без идентификатора. В JavaScript эта концепция уже настроена. Если вы использовали JavaScript не только для наипростейших задач, я уверен, что вы тоже знаете о нем. Когда вы используете jQuery, вот что вы точно печатаете сначала:

  1. $(document).ready(function {
  2. //do some stuff
  3. });

Функция, переданная в $(document).ready и есть анонимной функцией. Этот концепт очень выгодный в некоторых случаях, когда мы хотим действовать за принципом DRY (Don't repeat yourself; if you're repeating yourself, you're doing it wrong).

Source: smartme.university

Похожие публикации:

  1. Программирование на С с Нуля
  2. Программирование Уроки
  3. Программирование на Sql
  4. Программирование Javascript

http://www.strekoza-tv.ru/

http://www.sklad-stroika.ru/

http://www.xtkolet.ru/

http://neumaticosdelvalle.com.ar/

http://www.nutrinormwellness.com/

http://misaelcardosoarquitetura.com.br/

http://www.zhenskaya-obuv.ru/

http://www.bezgemorroya.info/

http://www.libertarianguide.info/

http://www.joshuasophrin.com/

http://www.skdar.ru/

http://www.zbrass.eu/

http://scarletsails.net.ru/

http://www.promo-plates.info/

http://www.poiskvbelgorode.ru/

http://www.playbass.info/

http://www.forma-obratnoj-svjazi-joomla.ru/

http://www.tatrypt.eu/

http://www.naglfar.ru/

http://www.maddogsexpeditions.info/

http://www.culturalshowcase.info/

http://www.freehost96.ru/

http://www.aikidoofgreensboro.net/

http://www.dreammedicine.in/

http://www.furniturewood.ba/

http://www.miomasincirugia.com/

http://www.mobilidadept.com/

http://www.paylasimgida.com/

http://www.opalowy-sklad.pl/

http://www.mopro.at/

http://www.my247webhosting.com/

http://www.orator.biz/

http://www.munkagepmonitor.hu/

http://www.mp46katowice.pl/

http://www.mcedinstvo.ru/

http://www.naturalhigh.ro/

http://www.ozkayalarpaslanmaz.com/

http://www.moitruongminhhuy.com/

http://www.mutdaithanh.vn/

http://www.motosport.fr/

http://www.noormedicare.com/

http://www.thesmokingribs.com/

http://www.nationalagro.org/

http://www.homee.vn/

http://www.noithatdangcap.vn/

http://www.fureszaru.net/

http://maulin.com.tw/

http://www.olejnikjurajda.cz/

http://www.rednet24.pl/

http://www.rednetdom.pl/

http://www.nomia.md/

http://www.maycongcuthanhloc.com/

http://www.rednetconsulting.pl/

http://www.meritum-dom.pl/

http://www.medishopsk.sk/

http://www.medica-brno.com/

http://www.apprt.ru/

http://www.namingbranding.ru/

http://mehrallies.co.tz/

http://www.dom-abc.ru/

http://www.rgrt.ru/

http://www.bhagwanbhajan.com/

http://www.eurostroy-kazan.ru/

http://www.ulightdj.tv/

http://ehongshop.com.tw/

http://sinyetech.com.tw/

http://nhatranghouse.com.vn/

http://www.moviedj.tv/

http://www.koreadj.tv/

http://slin.com.tw/

http://www.awextaipei.com/

http://www.obotz.ca/

http://www.cohoip.com/

http://www.wawakening.org/

http://e-hong.com.tw/

http://uvtech.com.tw/

http://www.autotextsms.com/

http://ktorganic.com.vn/

http://www.gndpsbti.com/

http://bmhc.edu.bd/

http://amirmiahhsc.edu.bd/

http://forincorp.com.hk/

http://www.autorange.ru/

http://www.auto-azimut.ru/

http://www.autocentr-khimki.ru/

http://www.msn-com.de/

http://www.noithathoangquan.com/

http://www.mascort.pl/

http://www.mediawinwin.vn/

http://www.mineralspa.vn/

http://motospeed.com.vn/

http://www.pescons.vn/

http://sekolahgkps.or.id/

http://www.parkids.pt/

http://www.miraicare.vn/

http://www.nagyhazi.hu/

http://radioouvinte.com.br/

http://www.spiritsence.com/

http://www.tkseal.com/

http://www.jssfn.com/

http://www.mamaten.jp/

http://parkwaypiscinas.com.br/

http://www.dienmayvinhthuan.vn/

http://www.hnt-engineering.com/

http://www.namsontrongdoi.com/

http://www.vangiaphatdeco.com/

http://petrolchemical.com.vn/

http://www.shm-bk.com/

http://www.smougroup.ae/

http://www.muchos.pl/

http://www.ouremaquinas.pt/

http://podios.com.ar/

http://nanoilocal.go.th/

http://www.g-concier.com/

http://www.naturalcurefor.com/

http://www.spbnarcolog.ru/

http://www.limepuzzle.com/

http://www.workstyle365.com/

http://www.devoncommunication.sk/

http://www.skolafotografie.sk/

http://www.skadas.com/

http://obrabiarki.biz.pl/

http://www.nebensatz.com/

http://www.passerotti.pl/

http://man3tulungagung.sch.id/

http://www.mojanajkniha.sk/

http://www.nhatminhland.net/

http://niccs.co.jp/

http://www.farmersgardencafe-omelette.com/

http://www.wonderfullife.jp/

http://www.hopes-co.com/

http://www.mygongmo.com/

http://www.muoithanhphat.com/

http://www.ketquaxsmn.com/

http://www.dsprinting.id/

http://www.qinronmedia.com/

http://www.thehousemediagroup.com/

http://tnpcompany.com.vn/

http://www.mdx.vn/

http://www.manganhoa.com/

http://www.hollyparkstables.com/

http://www.my-flower.jp/

http://www.bkservis.sk/

http://www.metallo-snab.ru/

http://www.akbars-dynamo.ru/

http://www.promsnab-kazan.ru/

http://www.nawaplastic.com/

http://www.mamystore.com/

http://www.pensionod.com/

http://mtlrosario.com.ar/

http://www.pensiimaramures.ro/

http://www.michaelakokesova.cz/

http://www.mc2.lv/

http://www.mikrovlny.cz/

http://www.transfer.sk/

http://www.royallinks.in/

http://www.olive-pizzeria.com/

http://www.maxemocapital.com/

http://www.roycehelmet.com/

http://www.notredameschoolvasai.com/

http://www.opibg.it/

http://www.monday-portage-salarial.fr/

http://www.neareo.com/

http://oasiskaitak.com.hk/

http://www.alesklep.com/

http://www.noa-world.jp/

http://www.rotaseydisehir.com/

http://www.rusztowania-belchatow.pl/

http://www.e-salamander.pl/

http://mikona.com.pl/

http://www.prec-metal.pl/

http://www.viswabrahmanaeducationaltrust.com/

http://www.holyangelscollege.in/

http://www.kbcgarden.com/

http://www.jsminfotech.com/

http://www.northshorefinefoods.com/

http://www.setkaplastic.ru/

http://www.photog.ru/

http://www.geo-mir.ru/