ఫంక్షనల్ ప్రోగ్రామింగ్ అంటే ఏమిటి? ఉదాహరణతో ట్యుటోరియల్

ఫంక్షనల్ ప్రోగ్రామింగ్ అంటే ఏమిటి?

ఫంక్షనల్ ప్రోగ్రామింగ్ (FP అని కూడా పిలుస్తారు) అనేది స్వచ్ఛమైన ఫంక్షన్‌లను సృష్టించడం ద్వారా సాఫ్ట్‌వేర్ నిర్మాణం గురించి ఆలోచించే మార్గం. ఇది ఆబ్జెక్ట్ ఓరియంటెడ్ ప్రోగ్రామింగ్‌లో గమనించిన షేర్డ్ స్టేట్, మ్యూటబుల్ డేటా అనే భావనలను నివారిస్తుంది.

ఫంక్షనల్ లాంగ్వేజ్‌లు స్టేట్‌మెంట్‌లను అమలు చేయడం కంటే వ్యక్తీకరణలు మరియు డిక్లరేషన్‌లపై ఒత్తిడిని కలిగిస్తాయి. అందువల్ల, స్థానిక లేదా గ్లోబల్ స్టేట్ మీద ఆధారపడి ఉండే ఇతర ప్రక్రియల వలె కాకుండా, FP లో విలువ అవుట్పుట్ ఫంక్షన్‌కు పంపిన ఆర్గ్యుమెంట్‌లపై మాత్రమే ఆధారపడి ఉంటుంది.

ఈ ట్యుటోరియల్‌లో, మీరు నేర్చుకుంటారు-

ఫంక్షనల్ ప్రోగ్రామింగ్ యొక్క లక్షణాలు

  • ఫంక్షనల్ ప్రోగ్రామింగ్ పద్ధతి ఫలితాలపై దృష్టి పెడుతుంది, ప్రక్రియపై కాదు
  • లెక్కించాల్సిన వాటిపై దృష్టి పెట్టారు
  • డేటా మార్పులేనిది
  • ఫంక్షనల్ ప్రోగ్రామింగ్ సమస్యను 'ఫంక్షన్లుగా విడదీస్తుంది
  • ఇది గణిత ఫంక్షన్ల భావనపై నిర్మించబడింది, ఇది గణనను నిర్వహించడానికి షరతులతో కూడిన వ్యక్తీకరణలు మరియు పునరావృతాలను ఉపయోగిస్తుంది
  • ఇది లూప్ స్టేట్‌మెంట్‌లు మరియు If-Else వంటి షరతులతో కూడిన స్టేట్‌మెంట్‌ల వంటి పునరావృతానికి మద్దతు ఇవ్వదు

ఫంక్షనల్ ప్రోగ్రామింగ్ చరిత్ర

  • ఫంక్షనల్ ప్రోగ్రామింగ్ కోసం పునాది లాంబ్డా కాలిక్యులస్. ఇది ఫంక్షనల్ అప్లికేషన్, డెఫినిషన్ మరియు రికరేషన్ కోసం 1930 లలో అభివృద్ధి చేయబడింది
  • LISP మొదటి ఫంక్షనల్ ప్రోగ్రామింగ్ లాంగ్వేజ్. మెక్‌కార్తీ దీనిని 1960 లో రూపొందించారు
  • 70 ల చివరలో ఎడిన్బర్గ్ విశ్వవిద్యాలయంలో పరిశోధకులు ML (మెటా లాంగ్వేజ్) ని నిర్వచించారు
  • 80 ల ప్రారంభంలో హోప్ లాంగ్వేజ్ పునరావృతం మరియు ఈక్వేషనల్ రీజనింగ్ కోసం బీజగణిత డేటా రకాలను జోడిస్తుంది
  • 2004 సంవత్సరంలో ఇన్నోవేషన్ ఆఫ్ ఫంక్షనల్ లాంగ్వేజ్ 'స్కాలా.'

ఫంక్షనల్ ప్రోగ్రామింగ్ లాంగ్వేజెస్

ఏదైనా FP భాష యొక్క లక్ష్యం గణిత విధులను అనుకరించడం. అయితే, ఫంక్షనల్ ప్రోగ్రామింగ్‌లో ప్రాథమిక గణన ప్రక్రియ భిన్నంగా ఉంటుంది.

ఇక్కడ, కొన్ని ప్రముఖ ఫంక్షనల్ ప్రోగ్రామింగ్ భాషలు:

  • హాస్కెల్
  • SML
  • మూసివేత
  • నిచ్చెన
  • ఎర్లాంగ్
  • శుభ్రంగా
  • F#
  • ML / OCaml లిస్ప్ / పథకం
  • XSLT
  • SQL
  • గణితశాస్త్రం

ప్రాథమిక ఫంక్షనల్ ప్రోగ్రామింగ్ టెర్మినాలజీ మరియు కాన్సెప్ట్‌లు

మార్పులేని డేటా

మార్పులేని డేటా అంటే ఇప్పటికే ఉన్న వాటిని సవరించడానికి బదులుగా మీరు సులభంగా డేటా నిర్మాణాలను సృష్టించగలరు.

రిఫరెన్షియల్ పారదర్శకత

ఫంక్షనల్ ప్రోగ్రామ్‌లు మొదటిసారి లాగానే కార్యకలాపాలు నిర్వహించాలి. కాబట్టి, ప్రోగ్రామ్ అమలు సమయంలో ఏమి జరిగి ఉండవచ్చు లేదా జరగకపోవచ్చు మరియు దాని దుష్ప్రభావాలు మీకు తెలుస్తాయి. FP పదంలో దీనిని రిఫరెన్షియల్ పారదర్శకత అంటారు.

మాడ్యులారిటీ

మాడ్యులర్ డిజైన్ ఉత్పాదకతను పెంచుతుంది. చిన్న మాడ్యూల్స్ త్వరగా కోడ్ చేయబడతాయి మరియు తిరిగి ఉపయోగించడానికి ఎక్కువ అవకాశం ఉంటుంది, ఇది ఖచ్చితంగా ప్రోగ్రామ్‌ల వేగవంతమైన అభివృద్ధికి దారితీస్తుంది. ఇది కాకుండా, మాడ్యూల్‌లను విడిగా పరీక్షించవచ్చు, ఇది యూనిట్ టెస్టింగ్ మరియు డీబగ్గింగ్‌పై గడిపే సమయాన్ని తగ్గించడంలో మీకు సహాయపడుతుంది.

నిర్వహణ

మెయింటెనబిలిటీ అనేది ఒక సాధారణ పదం, అంటే FP ప్రోగ్రామింగ్ నిర్వహించడం సులభం కనుక ఇచ్చిన ఫంక్షన్ వెలుపల ఏదైనా అనుకోకుండా మార్చడం గురించి మీరు ఆందోళన చెందాల్సిన అవసరం లేదు.

ఫస్ట్-క్లాస్ ఫంక్షన్

'ఫస్ట్-క్లాస్ ఫంక్షన్' అనేది ఒక నిర్వచనం, ప్రోగ్రామింగ్ లాంగ్వేజ్ ఎంటిటీలకు వాటి ఉపయోగంపై ఎలాంటి పరిమితి లేదు. అందువల్ల, ఫస్ట్-క్లాస్ ఫంక్షన్‌లు ప్రోగ్రామ్‌లో ఎక్కడైనా కనిపిస్తాయి.

మూసివేత

మూసివేత అనేది పేరెంట్ ఫంక్షన్ అమలు చేసిన తర్వాత కూడా పేరెంట్ ఫంక్షన్ యొక్క వేరియబుల్స్ యాక్సెస్ చేయగల అంతర్గత ఫంక్షన్.

అధిక ఆర్డర్ విధులు

హయ్యర్-ఆర్డర్ ఫంక్షన్‌లు ఇతర ఫంక్షన్‌లను ఆర్గ్యుమెంట్‌లుగా తీసుకుంటాయి లేదా వాటిని రిజల్ట్‌లుగా చూపుతాయి.

హయ్యర్-ఆర్డర్ ఫంక్షన్లు పాక్షిక అప్లికేషన్లు లేదా కూరింగ్‌ను అనుమతిస్తాయి. ఈ టెక్నిక్ దాని వాదనలకు ఒక సమయంలో ఒక ఫంక్షన్‌ను వర్తింపజేస్తుంది, ఎందుకంటే ప్రతి అప్లికేషన్ ఒక కొత్త ఫంక్షన్‌ను తిరిగి ఇస్తుంది, ఇది తదుపరి వాదనను అంగీకరిస్తుంది.

స్వచ్ఛమైన ఫంక్షన్

'ప్యూర్ ఫంక్షన్' అనేది ఒక ఫంక్షన్, దీని ఇన్‌పుట్‌లు ఇన్‌పుట్‌లుగా ప్రకటించబడతాయి మరియు వాటిలో ఏవీ దాచబడకూడదు. అవుట్‌పుట్‌లు కూడా అవుట్‌పుట్‌లుగా ప్రకటించబడ్డాయి.

స్వచ్ఛమైన విధులు వాటి పారామితులపై పనిచేస్తాయి. ఏదైనా తిరిగి ఇవ్వకపోతే అది సమర్థవంతంగా ఉండదు. ఇంకా, ఇది ఇచ్చిన పారామితుల కోసం అదే అవుట్‌పుట్‌ను అందిస్తుంది

ఉదాహరణ:

 Function Pure(a,b) { return a+b; } 

అపరిశుభ్రమైన విధులు

అపరిశుభ్రమైన విధులు ఖచ్చితంగా స్వచ్ఛమైన సరసన ఉంటాయి. వారు దాచిన ఇన్‌పుట్‌లు లేదా అవుట్‌పుట్ కలిగి ఉన్నారు; దీనిని అపవిత్ర అని అంటారు. అపరిశుభ్రమైన విధులు డిపెండెన్సీలను కలిగి ఉన్నందున వాటిని ఒంటరిగా ఉపయోగించలేరు లేదా పరీక్షించలేరు.

ఉదాహరణ

 int z; function notPure(){ z = z+10; }

ఫంక్షన్ కూర్పు

ఫంక్షన్ కూర్పు అనేది క్రొత్తదాన్ని చేయడానికి 2 లేదా అంతకంటే ఎక్కువ ఫంక్షన్‌లను కలపడం.

భాగస్వామ్య రాష్ట్రాలు

OOP ప్రోగ్రామింగ్‌లో షేర్డ్ స్టేట్స్ అనేది ఒక ప్రాముఖ్యత భావన. సాధారణంగా, ఇది వస్తువులకు లక్షణాలను జోడిస్తుంది. ఉదాహరణకు, హార్డ్‌డిస్క్ ఒక ఆబ్జెక్ట్ అయితే, స్టోరేజ్ కెపాసిటీ మరియు డిస్క్ సైజును ప్రాపర్టీలుగా జోడించవచ్చు.

దుష్ప్రభావాలు

సైడ్ ఎఫెక్ట్స్ అనేవి ఫంక్షన్ వెలుపల జరిగే ఏవైనా రాష్ట్ర మార్పులు. ఏదైనా FP ప్రోగ్రామింగ్ లాంగ్వేజ్ యొక్క అతిపెద్ద లక్ష్యం సైడ్ ఎఫెక్ట్‌లను తగ్గించడం, వాటిని మిగిలిన సాఫ్ట్‌వేర్ కోడ్‌ల నుండి వేరు చేయడం. FP ప్రోగ్రామింగ్‌లో మీ మిగిలిన ప్రోగ్రామింగ్ లాజిక్ నుండి సైడ్ ఎఫెక్ట్‌లను తీసివేయడం చాలా అవసరం.

ఫంక్షనల్ ప్రోగ్రామింగ్ యొక్క ప్రయోజనాలు

  • కోడ్‌లోని గందరగోళ సమస్యలు మరియు లోపాలను నివారించడానికి మిమ్మల్ని అనుమతిస్తుంది
  • యూనిట్ టెస్టింగ్ మరియు డీబగ్ FP కోడ్‌ను పరీక్షించడం మరియు అమలు చేయడం సులభం.
  • సమాంతర ప్రాసెసింగ్ మరియు ఏకకాలంలో
  • హాట్ కోడ్ విస్తరణ మరియు తప్పు సహనం
  • తక్కువ కోడ్‌తో మెరుగైన మాడ్యులారిటీని అందిస్తుంది
  • డెవలపర్ యొక్క ఉత్పాదకత పెరిగింది
  • నెస్టెడ్ ఫంక్షన్లకు మద్దతు ఇస్తుంది
  • సోమరితనం మ్యాప్ & జాబితాలు మొదలైన ఫంక్షనల్ నిర్మాణాలు.
  • లంబ్డా కాలిక్యులస్ యొక్క సమర్థవంతమైన వినియోగాన్ని అనుమతిస్తుంది

ఫంక్షనల్ ప్రోగ్రామింగ్ యొక్క పరిమితులు

  • ఫంక్షనల్ ప్రోగ్రామింగ్ నమూనా సులభం కాదు, కాబట్టి ప్రారంభకులకు అర్థం చేసుకోవడం కష్టం
  • కోడింగ్ సమయంలో అనేక వస్తువులు అభివృద్ధి చెందుతాయి కాబట్టి నిర్వహించడం కష్టం
  • చాలా ఎగతాళి మరియు విస్తృతమైన పర్యావరణ సెటప్ అవసరం
  • తిరిగి ఉపయోగించడం చాలా క్లిష్టమైనది మరియు నిరంతరం రీఫ్యాక్టరింగ్ అవసరం
  • వస్తువులు సమస్యను సరిగ్గా సూచించకపోవచ్చు

ఫంక్షనల్ ప్రోగ్రామింగ్ వర్సెస్ ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్

ఫంక్షనల్ ప్రోగ్రామింగ్

తెరవండి

FP మార్పులేని డేటాను ఉపయోగిస్తుంది.

OOP మార్చగల డేటాను ఉపయోగిస్తుంది.

డిక్లరేటివ్ ప్రోగ్రామింగ్ ఆధారిత నమూనాను అనుసరిస్తుంది.

అత్యవసర ప్రోగ్రామింగ్ మోడల్‌ను అనుసరిస్తుంది.

ఇది దేనిపై దృష్టి పెడుతుంది: 'మీరు ఏమి చేస్తున్నారు. కార్యక్రమంలో. '

ఇది 'మీ ప్రోగ్రామింగ్ ఎలా చేస్తున్నారు' అనే దానిపై దృష్టి పెడుతుంది.

సమాంతర ప్రోగ్రామింగ్‌కు మద్దతు ఇస్తుంది.

సమాంతర ప్రోగ్రామింగ్‌కు మద్దతు లేదు.

దీని ఫంక్షన్లకు ఎలాంటి సైడ్ ఎఫెక్ట్స్ లేవు.

పద్ధతి అనేక దుష్ప్రభావాలను కలిగిస్తుంది.

పునరావృతంతో ఫంక్షన్ కాల్‌లు & ఫంక్షన్ కాల్‌లను ఉపయోగించి ఫ్లో నియంత్రణ నిర్వహిస్తారు.

ప్రవాహ నియంత్రణ ప్రక్రియ ఉచ్చులు మరియు షరతులతో కూడిన స్టేట్‌మెంట్‌లను ఉపయోగించి నిర్వహించబడుతుంది.

ప్రకటనల అమలు క్రమం చాలా ముఖ్యం కాదు.

ప్రకటనల అమలు క్రమం ముఖ్యం.

'డేటాపై సంగ్రహణ' మరియు 'ప్రవర్తనపై సంగ్రహణ' రెండింటికి మద్దతు ఇస్తుంది.

'డేటాపై సంగ్రహణ'కు మాత్రమే మద్దతు ఇస్తుంది.

ముగింపు

  • ఫంక్షనల్ ప్రోగ్రామింగ్ లేదా FP అనేది కొన్ని ప్రాథమిక నిర్వచించే సూత్రాల ఆధారంగా సాఫ్ట్‌వేర్ నిర్మాణం గురించి ఆలోచించే మార్గం
  • ఫంక్షనల్ ప్రోగ్రామింగ్ కాన్సెప్ట్‌లు ఫలితాలపై దృష్టి పెడతాయి, ప్రక్రియపై కాదు
  • ఏదైనా FP భాష యొక్క లక్ష్యం గణిత విధులను అనుకరించడం
  • కొన్ని ప్రముఖ ఫంక్షనల్ ప్రోగ్రామింగ్ భాషలు: 1) హాస్కెల్ 2) SM 3) క్లోజర్ 4) స్కాలా 5) ఎర్లాంగ్ 6) క్లీన్
  • 'ప్యూర్ ఫంక్షన్' అనేది ఒక ఫంక్షన్, దీని ఇన్‌పుట్‌లు ఇన్‌పుట్‌లుగా ప్రకటించబడతాయి మరియు వాటిలో ఏవీ దాచబడకూడదు. అవుట్‌పుట్‌లు కూడా అవుట్‌పుట్‌లుగా ప్రకటించబడ్డాయి.
  • మార్పులేని డేటా అంటే ఇప్పటికే ఉన్న వాటిని సవరించడానికి బదులుగా మీరు సులభంగా డేటా నిర్మాణాలను సృష్టించగలరు
  • కోడ్‌లోని గందరగోళ సమస్యలు మరియు లోపాలను నివారించడానికి మిమ్మల్ని అనుమతిస్తుంది
  • ఫంక్షనల్ కోడ్ సులభం కాదు, కాబట్టి ప్రారంభకులకు అర్థం చేసుకోవడం కష్టం
  • FP మార్చలేని డేటాను ఉపయోగిస్తుంది, OOP మార్చగల డేటాను ఉపయోగిస్తుంది