Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

హలో, హబ్ర్! నేను మీ దృష్టికి స్టీఫెన్ వోల్ఫ్రామ్ పోస్ట్ యొక్క అనువాదాన్ని అందిస్తున్నాను "ది వోల్‌ఫ్రామ్ ఫంక్షన్ రిపోజిటరీ: వోల్‌ఫ్రామ్ లాంగ్వేజ్‌ని విస్తరించడానికి ఓపెన్ ప్లాట్‌ఫారమ్‌ను ప్రారంభించడం".

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

వోల్ఫ్రామ్ భాష యొక్క స్థిరత్వం కోసం ముందస్తు అవసరాలు

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

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

ఉదాహరణకు, Wolfram ఫంక్షన్ రిపోజిటరీ ఇప్పటికే కలిగి ఉంది 532 కొత్త ఫీచర్లు 26 నేపథ్య వర్గాలుగా నిర్మించబడింది:

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

అదేవిధంగా కంటే ఎక్కువ 6000 ప్రామాణిక విధులు, Wolfram భాషలో నిర్మించబడింది, రిపోజిటరీ నుండి ప్రతి ఫంక్షన్ వాటి యొక్క వివరణాత్మక వివరణ మరియు పని యొక్క ఉదాహరణలతో కూడిన డాక్యుమెంటేషన్ పేజీని కలిగి ఉంటుంది:

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

పేజీకి వెళ్లడానికి, పై ఆబ్జెక్ట్ (ఫంక్షన్ BLOB)ని కాపీ చేసి, ఇన్‌పుట్ లైన్‌లో అతికించి, ఆపై ఫంక్షన్‌ను రన్ చేయండి - ఇది ఇప్పటికే వోల్‌ఫ్రామ్ భాషలో నిర్మించబడింది మరియు డిఫాల్ట్‌గా ప్రారంభించి మద్దతు ఇస్తుంది వెర్షన్ 12.0:

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

ప్రాసెస్ చేస్తున్నప్పుడు ఇక్కడ గమనించాలి లోగోQRC కోడ్ ఉదాహరణకు, మీరు “ఇమేజ్ ప్రాసెసింగ్ లైబ్రరీ”ని సెటప్ చేయనవసరం లేదు - మేము ఇప్పటికే వోల్‌ఫ్రామ్ లాంగ్వేజ్‌లో స్థిరమైన మరియు జాగ్రత్తగా అల్గారిథమిక్ విధానాన్ని అమలు చేసాము కాబట్టి బొమ్మ లేదా చిత్రం సరి చేయడం, ఇది వివిధ గ్రాఫికల్ లాంగ్వేజ్ ఫంక్షన్ల ద్వారా వెంటనే ప్రాసెస్ చేయబడుతుంది:

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

నేను మద్దతుతో ఆశిస్తున్నాను అద్భుతమైన మరియు ప్రతిభావంతులైన సంఘం, ఇది గత కొన్ని దశాబ్దాలుగా పెరుగుతూ మరియు విస్తరిస్తోంది (వోల్ఫ్రామ్ భాష ఆధారంగా). వోల్‌ఫ్రామ్ ఫంక్షన్ రిపోజిటరీ భాషలో అందుబాటులో ఉన్న ఫంక్షన్‌ల పరిధిని (బహుశా ముఖ్యమైనది, సైన్స్ మరియు టెక్నాలజీలోని వివిధ రంగాలలో ప్రత్యేకం) గణనీయంగా విస్తరించడానికి భవిష్యత్తులోకి అనుమతిస్తుంది. అందువలన, భాష యొక్క కంటెంట్ (దాని అంతర్నిర్మిత విధులు) మరియు రెండింటినీ ఉపయోగించడం సాధ్యమవుతుంది అభివృద్ధి సూత్రాలు, ఇది భాష ఆధారంగా అమలు చేయబడుతుంది. (వోల్‌ఫ్రామ్ భాష ఇప్పటికే అంతకంటే ఎక్కువ కలిగి ఉందని ఇక్కడ గమనించాలి 30 సంవత్సరాల అభివృద్ధి మరియు స్థిరమైన వృద్ధి చరిత్ర).
రిపోజిటరీ నుండి విధులు వోల్ఫ్రామ్ లాంగ్వేజ్‌లో వ్రాయబడిన చిన్న లేదా పెద్ద కోడ్ ముక్కలను కలిగి ఉండవచ్చు. ఉదాహరణకు, ఇవి కాల్స్ కావచ్చు బాహ్య APIలు మరియు సేవలు లేదా ఇతర భాషలలో బాహ్య లైబ్రరీలు. ఈ విధానం యొక్క ప్రత్యేక లక్షణం ఏమిటంటే, మీరు వినియోగదారు-స్థాయి కార్యాచరణకు డ్రిల్ చేసినప్పుడు, సంభావ్య అసమానతలు ఉండవు ఎందుకంటే ఈ విధానం వోల్‌ఫ్రామ్ భాష యొక్క స్థిరమైన నిర్మాణంపై నిర్మించబడింది - మరియు ప్రతి ఫంక్షన్ స్వయంచాలకంగా సరిగ్గా పని చేస్తుంది. ఉద్దేశించబడింది.
వోల్ఫ్రామ్ ఫీచర్ రిపోజిటరీ యొక్క షెల్ మరియు ప్రోగ్రామింగ్ నిర్మాణం రూపొందించబడింది, తద్వారా ప్రతి ఒక్కరూ వారికి అత్యంత సులభమైన మరియు అనుకూలమైన మార్గంలో సాధారణ కారణానికి సహకరించగలరు - వాస్తవానికి, కేవలం నోట్‌ప్యాడ్ టెక్స్ట్ ఫైల్‌ను పూరించడం ద్వారా (nb పొడిగింపుతో) WL. అంతర్నిర్మిత ఆటోమేటిక్ ఫంక్షన్‌లు రిపోజిటరీకి జోడించిన కొత్త ఫంక్షన్‌లను భాషలో వాటి ఏకీకరణను నిర్ధారించడానికి తనిఖీ చేయడానికి మిమ్మల్ని అనుమతిస్తాయి. మా కంపెనీ కొత్త ఫంక్షన్‌ల యొక్క గొప్ప సంక్లిష్టతపై కాకుండా, భాషలో వారి ఫంక్షన్‌లను ఏకీకృతం చేయగల విస్తృత శ్రేణి వినియోగదారులపై బెట్టింగ్ చేస్తోంది - మరియు సమీక్ష ప్రక్రియ ఉన్నప్పటికీ, మేము అలాంటిదేమీ కోరము. శ్రమతో కూడిన డిజైన్ విశ్లేషణ లేదా కొత్త యూజర్ ఫీచర్‌ల యొక్క సంపూర్ణత మరియు విశ్వసనీయత కోసం కఠినమైన ప్రమాణాలు, మేము ఉపయోగించే ప్రధాన భాషలో రూపొందించబడిన లక్షణాల యొక్క మరింత కఠినమైన పరీక్షలకు విరుద్ధంగా.

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

ఖర్చులను తగ్గించడంతోపాటు సామర్థ్యాన్ని పెంచడం

ఇంటర్నెట్‌కు ముందే, వోల్‌ఫ్రామ్ లాంగ్వేజ్ కోడ్‌ను పంచుకోవడానికి మార్గాలు ఉన్నాయి (మా మొదటి ప్రధాన కేంద్రీకృత ప్రాజెక్ట్ గణిత మూలం, CD-ROM మొదలైన వాటి ఆధారంగా 1991లో మ్యాథమెటికా కోసం సృష్టించబడింది). వాస్తవానికి, Wolfram ఫంక్షన్ రిపోజిటరీ ఆధారంగా అమలు కోసం ప్రతిపాదించబడిన విధానం పైన పేర్కొన్న పనులను అమలు చేయడానికి మరింత శక్తివంతమైన మరియు నమ్మదగిన సాధనం.

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

ప్రతి ఫంక్షన్ యొక్క అమలు నిర్మాణంలో వివిధ గణన ప్రక్రియలు జరుగుతాయి. ఫంక్షన్ స్పష్టమైన మరియు ఏకరీతి రూపాన్ని కలిగి ఉండటం మరియు వినియోగదారు కోసం దృశ్యమాన రీడబిలిటీని కలిగి ఉండటం అవసరమని ఇక్కడ గమనించాలి. ఈ సందర్భంలో, వోల్ఫ్రామ్ లాంగ్వేజ్ యొక్క అంతర్నిర్మిత ఫంక్షన్‌లు ఫంక్షన్‌లను ఎలా సరిగ్గా ప్రోగ్రామ్ చేయాలనే దాని గురించి 6000 కంటే ఎక్కువ సీక్వెన్షియల్ ఉదాహరణలు అందించబడ్డాయి (ఇవి మా ప్రత్యక్ష ప్రోగ్రామింగ్ వీడియోలువీటిలో ఉన్నాయి ప్రామాణిక ప్రోగ్రామ్‌లను సృష్టించే ప్రక్రియ వందల గంటలు) ఈ విధానం అంతిమంగా వోల్‌ఫ్రామ్ ఫీచర్ రిపోజిటరీని బాగా పని చేయగలిగింది, వోల్‌ఫ్రామ్ లాంగ్వేజ్ యొక్క నిర్మాణాత్మక స్వభావం, దాని పెద్ద సంఖ్యలో అదనపు మరియు విభిన్న లైబ్రరీలు ఇప్పటికే భాషలో నిర్మించబడ్డాయి. ఉదాహరణకు, మీరు ఇమేజ్‌లను ప్రాసెస్ చేసే ఫంక్షన్‌ని కలిగి ఉంటే లేదా చిన్న శ్రేణులులేదా పరమాణు నిర్మాణాలుమరియు భౌగోళిక డేటా లేదా మరికొన్ని - వారి స్థిరమైన సింబాలిక్ ప్రాతినిధ్యం ఇప్పటికే భాషలో ఉంది మరియు దీనికి ధన్యవాదాలు, మీ ఫంక్షన్ వెంటనే భాషలోని ఇతర ఫంక్షన్‌లకు అనుకూలంగా మారుతుంది.

వాస్తవానికి బాగా పనిచేసే రిపోజిటరీని సృష్టించడం అనేది ఒక ఆసక్తికరమైన మెటా-ప్రోగ్రామింగ్ పని. ఉదాహరణకు, ప్రోగ్రామ్‌లోని అధిక పరిమితులు అల్గోరిథం యొక్క అవసరమైన ఏకీకరణ మరియు సార్వత్రికతను పొందడాన్ని అనుమతించవు. తగినంత సంఖ్యలో ఫంక్షనల్ పరిమితులు లేనట్లే, మీరు అల్గారిథమ్ ఎగ్జిక్యూషన్ యొక్క తగినంత సరైన క్రమాన్ని అమలు చేయలేరు. మా కంపెనీ ద్వారా అమలు చేయబడిన ఈ విధానాల యొక్క రాజీని అమలు చేయడానికి అనేక మునుపటి ఉదాహరణలు చాలా స్థిరంగా పనిచేశాయి - ఇవి: ప్రాజెక్ట్ టంగ్స్టన్ ప్రదర్శనలు, 2007లో ప్రారంభించబడింది మరియు ఇప్పుడు ఆన్‌లైన్‌లో 12000 కంటే ఎక్కువ యూజర్-ఇంటరాక్టివ్ డెమోలతో ఆన్‌లైన్‌లో నడుస్తుంది. IN వోల్ఫ్రామ్ డేటాబేస్ వోల్ఫ్రామ్ లాంగ్వేజ్‌లో 600 కంటే ఎక్కువ రెడీమేడ్ డేటాబేస్‌లను ఉపయోగించవచ్చు మరియు వోల్ఫ్రామ్ న్యూరల్ నెట్‌వర్క్ నిల్వ దాదాపు ప్రతి వారం కొత్త న్యూరల్ నెట్‌వర్క్‌లతో భర్తీ చేయబడుతుంది (ఇప్పటికే వాటిలో 118 ఉన్నాయి) మరియు అవి వెంటనే ఫంక్షన్ ద్వారా కనెక్ట్ చేయబడతాయి నెట్ మోడల్ వోల్ఫ్రామ్ భాషలో.

పైన పేర్కొన్న అన్ని ఉదాహరణలు ప్రాథమిక లక్షణాన్ని కలిగి ఉన్నాయి - ప్రాజెక్ట్‌లో సేకరించిన వస్తువులు మరియు విధులు ప్రక్రియల నిర్మాణం మరియు పంపిణీ యొక్క అధిక స్థాయిని కలిగి ఉంటాయి. వాస్తవానికి, డెమో లేదా న్యూరల్ నెట్‌వర్క్ లేదా మరేదైనా నిర్మాణం యొక్క వివరాలు చాలా మారవచ్చు, అయితే ఏదైనా ప్రస్తుత రిపోజిటరీకి సంబంధించిన ప్రాథమిక నిర్మాణం ఎల్లప్పుడూ ఒకే విధంగా ఉంటుంది. కాబట్టి ప్రియమైన వినియోగదారు, Wolfram భాషకు పొడిగింపులను జోడించే అటువంటి రిపోజిటరీని సృష్టించడం గురించి మీ అభిప్రాయం ఏమిటి? వోల్ఫ్రామ్ లాంగ్వేజ్ చాలా సరళంగా ఉండేలా రూపొందించబడింది, కాబట్టి దీనిని ఏ విధంగానైనా పొడిగించవచ్చు మరియు సవరించవచ్చు. వోల్ఫ్రామ్ లాంగ్వేజ్‌లో వివిధ భారీ-స్థాయి సాఫ్ట్‌వేర్ ప్రాజెక్ట్‌లను త్వరగా సృష్టించగల సామర్థ్యం కోసం ఈ పరిస్థితి చాలా ముఖ్యమైనది. భాష యొక్క సౌలభ్యం పెరిగేకొద్దీ, అటువంటి భాషలో అమలు చేయబడిన ప్రాజెక్టుల వ్యయం అనివార్యంగా పెరుగుతుందని ఇక్కడ గమనించాలి. వినియోగదారు అటువంటి భాషను ఎంత ఎక్కువగా ఉపయోగిస్తారో, అంత అంకితమైన కార్యాచరణను అతను అందుకుంటాడు, అయితే ప్రోగ్రామ్ మాడ్యూల్స్ యొక్క స్థిరమైన స్థిరత్వాన్ని నిర్ధారించడంలో అసమర్థత పరంగా ఈ విధానం ప్రతికూల వైపులా ఉండవచ్చని మనం మర్చిపోకూడదు.

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

కాబట్టి వోల్‌ఫ్రామ్ ఫీచర్ రిపోజిటరీ వెనుక ఉన్న ఆలోచన ఏమిటంటే, పొందికైన మాడ్యూల్స్‌గా అభివృద్ధి చేయడానికి సులభమైన వ్యక్తిగత లక్షణాల ద్వారా సాపేక్షంగా చిన్న కోడ్ ముక్కలలో భాషకు పొడిగింపులను జోడించడం ద్వారా పైన వివరించిన సమస్యను నివారించడం. ఇలా చెప్పుకుంటూ పోతే, వ్యక్తిగత ఫంక్షన్‌లను ఉపయోగించి సౌకర్యవంతంగా చేయలేని ప్రోగ్రామింగ్ ఫీచర్‌లు ఉన్నాయి (మరియు మా కంపెనీ పెద్ద ఎత్తున సాఫ్ట్‌వేర్ ప్యాకేజీలను అమలు చేయడంలో సహాయపడటానికి సమీప భవిష్యత్తులో ఆప్టిమైజ్ చేసిన ప్రోగ్రామింగ్ అల్గారిథమ్‌ను విడుదల చేయాలని యోచిస్తోంది). అయినప్పటికీ, వోల్ఫ్రామ్ లాంగ్వేజ్‌లో ఇప్పటికే నిర్మించిన ఫంక్షన్‌ల ఆధారంగా, వ్యక్తిగత ఫంక్షన్‌ల ఆధారంగా అమలు చేయబడిన అనేక ప్రోగ్రామింగ్ అవకాశాలు ఉన్నాయి. ఇక్కడ ఆలోచన ఏమిటంటే, సాపేక్షంగా తక్కువ ప్రోగ్రామింగ్ ప్రయత్నంతో డిజైన్‌కు తగినంత పొందికను అందించే అనేక కొత్త మరియు చాలా ఉపయోగకరమైన ఫంక్షన్‌లను సృష్టించడం సాధ్యమవుతుంది, అవి ఒకదానితో ఒకటి బాగా సమన్వయం చేయబడతాయి మరియు దీనికి అదనంగా, అవి భవిష్యత్తులో భాషలో సులభంగా మరియు విస్తృతంగా ఉపయోగించగలుగుతారు.

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

ఫంక్షన్ రిపోజిటరీకి అనుకూల ఫంక్షన్‌లను జోడించడంలో సహాయం చేయండి

Wolfram రిపోజిటరీ ఫీచర్‌లకు వినియోగదారులు సహకరించడాన్ని సులభతరం చేయడానికి మా బృందం కృషి చేసింది. డెస్క్‌టాప్‌లో (ఇప్పటికే వెర్షన్ 12.0), మీరు ప్రధాన మెనూ ట్యాబ్‌ల ద్వారా క్రమంగా వెళ్లవచ్చు: ఫైల్ > కొత్తది > రిపోజిటరీ ఐటెమ్ > ఫంక్షన్ రిపోజిటరీ ఐటెమ్ మరియు మీరు పొందుతారు "నిర్వచనం నోట్బుక్" (ప్రోగ్రామాటిక్‌గా వర్క్‌బెంచ్ లోపల. మీరు అనలాగ్ ఫంక్షన్‌ను కూడా ఉపయోగించవచ్చు - నోట్‌బుక్ సృష్టించండి["ఫంక్షన్ రిసోర్స్"]):

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

మీరు చేయవలసిన రెండు ప్రధాన దశలు ఉన్నాయి: మొదట, వాస్తవానికి మీ ఫంక్షన్ కోసం కోడ్‌ను వ్రాయండి మరియు రెండవది, మీ ఫంక్షన్ ఎలా పని చేయాలో వివరించే డాక్యుమెంటేషన్‌ను వ్రాయండి.
మీరు ఏమి చేయాలో ఉదాహరణను చూడటానికి ఎగువన ఉన్న "ఓపెన్ శాంపిల్" బటన్‌ను క్లిక్ చేయండి:

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

ముఖ్యంగా, మీరు వోల్‌ఫ్రామ్ లాంగ్వేజ్‌లో అంతర్నిర్మిత ఫంక్షన్‌కు సమానమైనదాన్ని సృష్టించడానికి ప్రయత్నిస్తున్నారు. ఇది అంతర్నిర్మిత ఫంక్షన్ కంటే చాలా నిర్దిష్టంగా ఏదైనా చేయగలదు తప్ప. అదే సమయంలో, దాని పరిపూర్ణత మరియు విశ్వసనీయతకు సంబంధించిన అంచనాలు చాలా తక్కువగా ఉంటాయి.
మీరు మీ ఫంక్షన్‌కి వోల్‌ఫ్రామ్ లాంగ్వేజ్ ఫంక్షన్ నేమింగ్ మార్గదర్శకాలను అనుసరించే పేరును ఇవ్వాలి. అదనంగా, మీరు భాష యొక్క అంతర్నిర్మిత ఫంక్షన్‌ల మాదిరిగానే మీ ఫంక్షన్ కోసం డాక్యుమెంటేషన్‌ను అభివృద్ధి చేయాలి. నేను దీని గురించి మరింత వివరంగా తరువాత మాట్లాడుతాను. ప్రస్తుతానికి, డెఫినిషన్ నోట్‌బుక్ ఫైల్ ఎగువన ఉన్న బటన్‌ల వరుసలో ఒక బటన్ ఉందని గమనించండి "శైలి మార్గదర్శకాలు", ఏమి చేయాలో వివరిస్తుంది మరియు మీ ఫంక్షన్ డాక్యుమెంటేషన్‌ను ఫార్మాట్ చేయడానికి సాధనాలను అందించే టూల్స్ బటన్.
ప్రతిదీ సరిగ్గా పూరించబడిందని మరియు మీరు సిద్ధంగా ఉన్నారని మీరు నిర్ధారించుకున్నప్పుడు, "చెక్" బటన్‌ను క్లిక్ చేయండి. మీరు ఇంకా అన్ని వివరాలను గుర్తించకపోవడం పూర్తిగా సాధారణం. కాబట్టి "చెక్" ఫంక్షన్ స్వయంచాలకంగా రన్ అవుతుంది మరియు చాలా శైలి మరియు స్థిరత్వ తనిఖీలను చేస్తుంది. తరచుగా, దిద్దుబాట్లను ధృవీకరించమని మరియు ఆమోదించమని ఇది మిమ్మల్ని వెంటనే అడుగుతుంది (ఉదాహరణకు: "ఈ పంక్తి తప్పనిసరిగా పెద్దప్రేగుతో ముగుస్తుంది," మరియు ఇది కోలన్‌లోకి ప్రవేశించమని మిమ్మల్ని అడుగుతుంది). కొన్నిసార్లు ఆమె మిమ్మల్ని మీరే ఏదైనా జోడించమని లేదా మార్చమని అడుగుతుంది. చెక్ బటన్ యొక్క ఆటోమేటిక్ ఫంక్షనాలిటీకి మేము నిరంతరం కొత్త ఫీచర్లను జోడిస్తూనే ఉంటాము, కానీ ప్రాథమికంగా దీని ఉద్దేశ్యం మీరు ఫీచర్ రిపోజిటరీకి సమర్పించే ప్రతిదీ ఇప్పటికే సాధ్యమైనంత ఎక్కువ స్టైల్ మార్గదర్శకాలను అనుసరించేలా చూసుకోవడం.

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

కాబట్టి, "చెక్"ని అమలు చేసిన తర్వాత, మీరు "ప్రివ్యూ"ని ఉపయోగించవచ్చు. "ప్రివ్యూ" మీ ఫంక్షన్ కోసం మీరు నిర్వచించిన డాక్యుమెంటేషన్ పేజీ యొక్క ప్రివ్యూని సృష్టిస్తుంది. మీరు మీ కంప్యూటర్‌లో సృష్టించబడిన ఫైల్ లేదా క్లౌడ్ నిల్వలో ఉన్న ఫైల్ కోసం ప్రివ్యూని కూడా సృష్టించవచ్చు. కొన్ని కారణాల వల్ల మీరు ప్రివ్యూలో చూసే దానితో మీరు సంతృప్తి చెందకపోతే, వెనుకకు వెళ్లి అవసరమైన దిద్దుబాట్లు చేసి, ఆపై ప్రివ్యూ బటన్‌ను మళ్లీ క్లిక్ చేయండి.
ఇప్పుడు మీరు మీ ఫంక్షన్‌ను రిపోజిటరీలోకి నెట్టడానికి సిద్ధంగా ఉన్నారు. డిప్లాయ్ బటన్ మీకు నాలుగు ఎంపికలను అందిస్తుంది:

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

ఈ దశలో ముఖ్యమైన విషయం ఏమిటంటే, మీరు మీ ఫంక్షన్‌ను వోల్‌ఫ్రామ్ ఫంక్షన్ రిపోజిటరీకి సమర్పించవచ్చు, తద్వారా ఇది ఎవరికైనా అందుబాటులో ఉంటుంది. అదే సమయంలో, మీరు మీ ఫంక్షన్‌ను పరిమిత సంఖ్యలో వినియోగదారుల కోసం కూడా ఉంచవచ్చు. ఉదాహరణకు, మీరు మీ కంప్యూటర్‌లో స్థానికంగా హోస్ట్ చేయబడిన ఫంక్షన్‌ను సృష్టించవచ్చు, తద్వారా మీరు నిర్దిష్ట కంప్యూటర్‌ని ఉపయోగించినప్పుడు అందుబాటులో ఉంటుంది. లేదా మీరు దానిని మీలో పోస్ట్ చేయవచ్చు క్లౌడ్ ఖాతా, మీరు క్లౌడ్‌కి కనెక్ట్ చేసినప్పుడు ఇది మీకు అందుబాటులో ఉంటుంది. మీరు మీ క్లౌడ్ ఖాతా ద్వారా లక్షణాన్ని పబ్లిక్‌గా హోస్ట్ చేయవచ్చు (వియోగించవచ్చు). ఇది సెంట్రల్ వోల్‌ఫ్రామ్ ఫీచర్ రిపోజిటరీలో ఉండదు, కానీ మీరు ఎవరికైనా మీ ఖాతా నుండి మీ ఫీచర్‌ను పొందడానికి అనుమతించే URLని ఇవ్వగలరు. (భవిష్యత్తులో, మేము మా కంపెనీ అంతటా సెంట్రల్ రిపోజిటరీలకు కూడా మద్దతు ఇస్తాము.)

కాబట్టి మీరు నిజంగా మీ ఫంక్షన్‌ను వోల్‌ఫ్రామ్ ఫంక్షన్ నాలెడ్జ్ బేస్‌కు సమర్పించాలనుకుంటున్నారని అనుకుందాం. దీన్ని చేయడానికి, మీరు రిపోజిటరీకి "సమర్పించు" బటన్‌ను క్లిక్ చేయండి. కాబట్టి ఈ సమయంలో ఏమి జరుగుతోంది? మా ప్రత్యేక క్యూరేటర్‌ల బృందం సమీక్ష మరియు ఆమోదం కోసం మీ అప్లికేషన్ వెంటనే క్యూలో ఉంచబడింది.

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

నిల్వలో ఏమి ఉండాలి?

మా కంపెనీ సంపూర్ణత, విశ్వసనీయత మరియు మొత్తం నాణ్యత కోసం చాలా ఉన్నత ప్రమాణాలను కలిగి ఉందని మరియు గత 6000+ సంవత్సరాలలో మేము ఇప్పటికే వోల్‌ఫ్రామ్ భాషలో రూపొందించిన 30+ ఫంక్షన్‌లలో, అన్నీ పై అవసరాలకు అనుగుణంగా ఉన్నాయని గమనించాలి. వోల్‌ఫ్రామ్ ఫంక్షన్ రిపోజిటరీ యొక్క లక్ష్యం వీలైనన్ని ఎక్కువ తేలికైన ఫంక్షన్‌లను (అంటే అధిక పనితీరు విధులు) జోడించడానికి వోల్‌ఫ్రామ్ భాషలో ఇప్పటికే ఉన్న అన్ని నిర్మాణం మరియు కార్యాచరణలను ఉపయోగించడం.

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

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

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

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

ఇప్పుడు రిపోజిటరీలో ఫంక్షన్లను పరీక్షించే ఉదాహరణను చూద్దాం. అంతర్నిర్మిత భాషా ఫంక్షన్‌ల కంటే ఇటువంటి ఫంక్షన్‌ల కోసం స్థిరత్వ అంచనాలు సహజంగా చాలా తక్కువగా ఉంటాయి. ఫంక్షన్లు APIల వంటి బాహ్య వనరులపై ఆధారపడిన సందర్భాల్లో ఇది ప్రత్యేకంగా వర్తిస్తుంది, స్థిరమైన పరీక్షలను నిరంతరం నిర్వహించడం చాలా ముఖ్యం, ఇది స్వయంచాలకంగా ధృవీకరణ అల్గారిథమ్‌లలో జరుగుతుంది. nb ఫైల్‌లో, మీరు స్పష్టంగా నిర్వచనాలను పేర్కొనవచ్చు (అదనపు సమాచార విభాగంలో) మరియు ఇన్‌పుట్ మరియు అవుట్‌పుట్ స్ట్రింగ్‌లు లేదా టైప్ యొక్క పూర్తి క్యారెక్టర్ ఆబ్జెక్ట్‌ల ద్వారా నిర్వచించినన్ని పరీక్షలను పేర్కొనవచ్చు. ధృవీకరణ పరీక్ష, మీకు సరిపోయేంత వరకు. అదనంగా, సిస్టమ్ మీరు అందించే డాక్యుమెంటేషన్ ఉదాహరణలను ధృవీకరణ ప్రక్రియగా మార్చడానికి నిరంతరం ప్రయత్నిస్తుంది (మరియు కొన్నిసార్లు ఇది చాలా వనరు-ఇంటెన్సివ్ కావచ్చు, ఉదాహరణకు, యాదృచ్ఛిక సంఖ్యలు లేదా రోజు సమయంపై ఆధారపడి ఉండే ఫంక్షన్ కోసం).

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

ఫంక్షన్ రిపోజిటరీ యొక్క ముఖ్య ఉద్దేశ్యం (దాని పేరు సూచించినట్లు) భాషలో కొత్త లక్షణాలను పరిచయం చేయడం. మీరు కొత్త డేటాను జోడించాలనుకుంటే లేదా కొత్త ఎంటిటీలు, వా డు వోల్ఫ్రామ్ డేటా రిపోజిటరీ. కానీ మీరు మీ లెక్కల కోసం కొత్త రకాల వస్తువులను పరిచయం చేయాలనుకుంటే?

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

కానీ మీరు ఒక వస్తువును సూచించి, ఆపై వోల్ఫ్రామ్ లాంగ్వేజ్‌లో ఇప్పటికే ఉన్న ఫంక్షన్‌ల ద్వారా దానితో పని చేయాలనుకుంటున్నారని నిర్వచించాలనుకుంటే? వోల్ఫ్రామ్ లాంగ్వేజ్ దీని కోసం ఎల్లప్పుడూ తేలికపాటి యంత్రాంగాన్ని కలిగి ఉంది, దీనిని పిలుస్తారు అధిక విలువలు. కొన్ని పరిమితులతో (ముఖ్యంగా ఫంక్షన్ల కోసం వారి వాదనలను అంచనా వేయలేరు), ఒక ఫంక్షన్ రిపోజిటరీ మిమ్మల్ని కేవలం ఒక ఫంక్షన్‌ను సూచించడానికి మరియు దాని కోసం విలువలను నిర్వచించడానికి అనుమతిస్తుంది. (Wolfram లాంగ్వేజ్ అంతటా పూర్తిగా ఏకీకృతం చేయబడిన కొత్త ప్రధాన డిజైన్‌ను రూపొందించేటప్పుడు స్థిరత్వం యొక్క నిరీక్షణను పెంచడం అనేది సాధారణంగా ప్రాజెక్ట్ యొక్క వ్యయాన్ని పెంచడం ద్వారా సాధించలేని చాలా ముఖ్యమైన ప్రక్రియ మరియు ప్రాజెక్ట్‌లలో భాగంగా మా కంపెనీ చేసే పని. భాష యొక్క దీర్ఘకాలిక అభివృద్ధికి, ఈ పని రిపోజిటరీ అభివృద్ధిలో భాగంగా సెట్ చేయబడిన లక్ష్యం కాదు).

కాబట్టి, ఫంక్షన్ రిపోజిటరీలోని ఫంక్షన్ కోడ్‌లో ఏమి ఉండవచ్చు? ప్రతిదీ వోల్ఫ్రామ్ భాషలో నిర్మించబడింది, అయితే (కనీసం అది ప్రాతినిధ్యం వహించకపోతే బెదిరింపులు కోసం భద్రతా మరియు ప్రోగ్రామ్ యొక్క పనితీరు, కంప్యూటింగ్ వాతావరణం వలె) అలాగే ఫంక్షన్ రిపోజిటరీ నుండి ఏదైనా ఫంక్షన్. అయితే, ఇతర ఫంక్షనాలిటీలు ఉన్నాయి: ఫంక్షన్ రిపోజిటరీలోని ఒక ఫంక్షన్ APIకి కాల్ చేయగలదు, లేదా ఇన్ వోల్ఫ్రామ్ క్లౌడ్, లేదా మరొక మూలం నుండి. వాస్తవానికి, దీనితో సంబంధం ఉన్న కొన్ని ప్రమాదాలు ఉన్నాయి. API మారదని హామీలు లేవు మరియు ఫంక్షన్ స్టోర్‌లోని ఫంక్షన్ పనిచేయడం ఆగిపోతుంది. ఇలాంటి సమస్యలను గుర్తించడంలో సహాయపడటానికి, డాక్యుమెంటేషన్ పేజీలో (అవసరాల విభాగంలో) కేవలం అంతర్నిర్మిత Wolfram లాంగ్వేజ్ ఫంక్షనాలిటీపై ఆధారపడే ఏదైనా ఫీచర్ కోసం ఒక గమనిక ఉంటుంది. (వాస్తవ డేటా విషయానికి వస్తే, ఈ కార్యాచరణతో కూడా సమస్యలు ఉండవచ్చు - ఎందుకంటే వాస్తవ ప్రపంచ డేటా నిరంతరం మారుతూ ఉంటుంది మరియు కొన్నిసార్లు దాని నిర్వచనాలు మరియు నిర్మాణం కూడా మారుతుంది.)

Wolfram ఫీచర్ రిపోజిటరీకి సంబంధించిన అన్ని కోడ్‌లు Wolframలో వ్రాయబడాలా? ఖచ్చితంగా, బాహ్య API లోపల కోడ్ వోల్ఫ్రామ్ భాషలో వ్రాయబడకూడదు, అది భాషా కోడ్‌ను కూడా తయారు చేయదు. వాస్తవానికి, మీరు దాదాపు ఏదైనా బాహ్య భాష లేదా లైబ్రరీలో ఫంక్షన్‌ను కనుగొంటే, మీరు Wolfram ఫంక్షన్ రిపోజిటరీలో దాన్ని ఉపయోగించడానికి మిమ్మల్ని అనుమతించే ఒక రేపర్‌ని సృష్టించవచ్చు. (సాధారణంగా మీరు దీని కోసం అంతర్నిర్మిత ఫంక్షన్‌లను ఉపయోగించాలి బాహ్య మూల్యాంకనం లేదా బాహ్య ఫంక్షన్ వోల్ఫ్రామ్ లాంగ్వేజ్ కోడ్‌లో.)

కాబట్టి ఇలా చేయడం వల్ల ప్రయోజనం ఏమిటి? ముఖ్యంగా, ఇది మొత్తం ఇంటిగ్రేటెడ్ వోల్‌ఫ్రామ్ లాంగ్వేజ్ సిస్టమ్‌ను మరియు దాని మొత్తం ఏకీకృత సాఫ్ట్‌వేర్ సామర్థ్యాలను ఉపయోగించడానికి మిమ్మల్ని అనుమతిస్తుంది. మీరు బాహ్య లైబ్రరీ లేదా భాష నుండి బేస్ ఇంప్లిమెంటేషన్‌ను పొందినట్లయితే, మీరు వోల్‌ఫ్రామ్ లాంగ్వేజ్ యొక్క రిచ్ సింబాలిక్ స్ట్రక్చర్‌ను ఉపయోగించి అనుకూలమైన టాప్-లెవల్ ఫంక్షన్‌ని సృష్టించవచ్చు, ఇది ఇప్పటికే అమలు చేయబడిన ఏదైనా కార్యాచరణను సులభంగా ఉపయోగించడానికి వినియోగదారులను అనుమతిస్తుంది. కనీసం, లోడింగ్ లైబ్రరీలు మొదలైన వాటికి సంబంధించిన అన్ని బిల్డింగ్ బ్లాక్‌లు ఉన్న ఆదర్శవంతమైన ప్రపంచంలో ఇది సాధ్యమవుతుంది, ఈ సందర్భంలో అవి వోల్ఫ్రామ్ లాంగ్వేజ్ ద్వారా స్వయంచాలకంగా నిర్వహించబడతాయి. (ఆచరణలో సమస్యలు ఉండవచ్చని గమనించాలి బాహ్య భాషలను ఏర్పాటు చేయడం నిర్దిష్ట కంప్యూటర్ సిస్టమ్ మరియు క్లౌడ్ నిల్వ అదనపు భద్రతా సమస్యలను కలిగిస్తుంది).

మార్గం ద్వారా, మీరు మొదట సాధారణ బాహ్య లైబ్రరీలను చూసినప్పుడు, అవి కేవలం కొన్ని ఫంక్షన్‌లలో కవర్ చేయడానికి చాలా క్లిష్టంగా కనిపిస్తాయి, అయితే చాలా సందర్భాలలో, చాలా సంక్లిష్టత లైబ్రరీకి మరియు అన్ని ఫంక్షన్‌లకు అవసరమైన మౌలిక సదుపాయాలను సృష్టించడం ద్వారా వస్తుంది. దానికి మద్దతు ఇవ్వండి . అయినప్పటికీ, Wolfram లాంగ్వేజ్‌ని ఉపయోగిస్తున్నప్పుడు, మౌలిక సదుపాయాలు సాధారణంగా ఇప్పటికే ప్యాకేజీలలో నిర్మించబడ్డాయి, కాబట్టి ఈ సపోర్ట్ ఫంక్షన్‌లన్నింటినీ వివరంగా బహిర్గతం చేయాల్సిన అవసరం లేదు, కానీ లైబ్రరీలోని "అత్యున్నత" అప్లికేషన్-నిర్దిష్ట ఫంక్షన్‌ల కోసం మాత్రమే ఫంక్షన్‌లను సృష్టించండి. .

నాలెడ్జ్ బేస్ యొక్క "ఎకోసిస్టమ్"

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

సహజంగానే, మీరు మీ విధులను భాగస్వామ్యం చేయలేని - లేదా కోరుకోని - లేదా ప్రైవేట్ సమాచార వనరులకు ప్రాప్యత పొందే సందర్భంలో మిమ్మల్ని మీరు కనుగొనవచ్చు. అటువంటి సందర్భాలలో కూడా, మీరు మీ స్వంత క్లౌడ్ ఖాతాలో ఫంక్షన్‌లను అమలు చేయవచ్చు, హక్కులను పేర్కొనడం వాటిని యాక్సెస్. (మీ సంస్థ కలిగి ఉంటే Wolfram Enterprise ప్రైవేట్ క్లౌడ్, ఆ తర్వాత ఇది త్వరలో మీ స్వంత ప్రైవేట్ ఫీచర్ రిపోజిటరీని హోస్ట్ చేయగలదు, ఇది మీ సంస్థ నుండి నిర్వహించబడుతుంది మరియు మూడవ పక్షం వినియోగదారులచే వీక్షణలను బలవంతంగా వీక్షించాలా వద్దా అని సెట్ చేయవచ్చు.)

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

ఫీచర్ ప్రచురించబడిన తర్వాత, దాని పేజీ ఎల్లప్పుడూ దిగువన రెండు లింక్‌లను కలిగి ఉంటుంది: "ఈ ఫీచర్ గురించి సందేశం పంపండి"మరియు"వోల్ఫ్రామ్ సంఘంలో చర్చించండి" మీరు గమనికను జోడించినట్లయితే (ఉదా, బగ్‌ల గురించి చెప్పండి), మీరు మీ సందేశం మరియు సంప్రదింపు సమాచారాన్ని ఫీచర్ రచయితతో భాగస్వామ్యం చేయాలనుకుంటున్నారని తెలిపే పెట్టెను ఎంచుకోవచ్చు.

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

భవిష్యత్తులో, మేము ఫీచర్ రిపోజిటరీల కోసం Git-శైలి ఫోర్కింగ్‌కు మద్దతు ఇవ్వాలని ప్లాన్ చేస్తున్నాము, కానీ ప్రస్తుతానికి మేము దానిని సరళంగా ఉంచడానికి ప్రయత్నిస్తున్నాము మరియు మేము ఎల్లప్పుడూ భాషలో రూపొందించబడిన ప్రతి ఫీచర్ యొక్క ఒక ఆమోదించబడిన సంస్కరణను మాత్రమే కలిగి ఉన్నాము. చాలా తరచుగా (డెవలపర్‌లు తాము అభివృద్ధి చేసిన ఫీచర్‌లను నిర్వహించడం మానేసి, వినియోగదారు సమర్పణలకు ప్రతిస్పందించకపోతే), ఫీచర్ యొక్క అసలు రచయిత దానికి సంబంధించిన నవీకరణలను నియంత్రించి, కొత్త వెర్షన్‌లను సమర్పిస్తారు, అవి సమీక్షించబడతాయి మరియు వారు సమీక్ష ప్రక్రియలో పాస్ అయితే , భాషలో ప్రచురించబడింది.

అభివృద్ధి చెందిన ఫంక్షన్ల "వెర్షనింగ్" ఎలా పనిచేస్తుందనే ప్రశ్నను పరిశీలిద్దాం. ప్రస్తుతం, మీరు ఫంక్షన్ రిపోజిటరీ నుండి ఫంక్షన్‌ని ఉపయోగించినప్పుడు, దాని నిర్వచనం మీ కంప్యూటర్‌లో (లేదా మీరు క్లౌడ్‌ని ఉపయోగిస్తుంటే మీ క్లౌడ్ ఖాతాలో) శాశ్వతంగా నిల్వ చేయబడుతుంది. ఫీచర్ యొక్క కొత్త వెర్షన్ అందుబాటులో ఉన్నట్లయితే, మీరు దాన్ని తదుపరిసారి ఉపయోగించినప్పుడు మీకు దీని గురించి తెలియజేసే సందేశం వస్తుంది. మరియు మీరు ఫంక్షన్‌ను క్రొత్త సంస్కరణకు నవీకరించాలనుకుంటే, మీరు ఆదేశాన్ని ఉపయోగించి దీన్ని చేయవచ్చు రిసోర్స్ అప్‌డేట్. ("ఫంక్షన్ బొట్టు" వాస్తవానికి మరింత సంస్కరణ సమాచారాన్ని నిల్వ చేస్తుంది మరియు భవిష్యత్తులో దీన్ని మా వినియోగదారులకు మరింత అందుబాటులోకి తీసుకురావాలని మేము ప్లాన్ చేస్తున్నాము.)

Wolfram ఫంక్షన్ రిపోజిటరీ గురించిన ఒక అందమైన విషయం ఏమిటంటే, ఏదైనా Wolfram లాంగ్వేజ్ ప్రోగ్రామ్, ఎక్కడైనా దాని నుండి ఫంక్షన్‌లను ఉపయోగించవచ్చు. ఒక ప్రోగ్రామ్ నోట్‌ప్యాడ్‌లో కనిపిస్తే, రిపోజిటరీ ఫంక్షన్‌లను సులభంగా చదవగలిగే "ఫంక్షన్ బైనరీ ఆబ్జెక్ట్" ఫంక్షన్‌లుగా ఫార్మాట్ చేయడం చాలా సౌకర్యవంతంగా ఉంటుంది (బహుశా తగిన వెర్షన్ సెట్‌తో).

మీరు ఎప్పుడైనా టెక్స్ట్ ఉపయోగించి ఫంక్షన్ రిపోజిటరీలో ఏదైనా ఫంక్షన్‌ని యాక్సెస్ చేయవచ్చు రిసోర్స్ ఫంక్షన్[...]. మరియు మీరు Wolfram ఇంజిన్ కోసం నేరుగా కోడ్ లేదా స్క్రిప్ట్‌లను వ్రాస్తే ఇది చాలా సౌకర్యవంతంగా ఉంటుంది, ఉదాహరణకు, IDE లేదా టెక్స్ట్ కోడ్ ఎడిటర్‌ని ఉపయోగించడం (ఫంక్షన్ రిపోజిటరీ పూర్తిగా అనుకూలంగా ఉందని ప్రత్యేకంగా గమనించాలి డెవలపర్‌ల కోసం ఉచిత వోల్‌ఫ్రామ్ ఇంజిన్).

అది ఎలా పనిచేస్తుంది?

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

పరిగణించండి రిసోర్స్ ఫంక్షన్:

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

లోపల మీరు ఫంక్షన్‌ని ఉపయోగించి కొంత సమాచారాన్ని చూడవచ్చు సమాచారం:

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

రిసోర్స్ ఫంక్షన్‌ను సెటప్ చేయడం ఎలా పని చేస్తుంది? సరళమైనది పూర్తిగా స్థానిక కేసు. ఫంక్షన్‌ను తీసుకునే ఉదాహరణ ఇక్కడ ఉంది (ఈ సందర్భంలో కేవలం ప్యూర్ ఫంక్షన్) మరియు ఇచ్చిన ప్రోగ్రామ్ సెషన్‌కు రిసోర్స్ ఫంక్షన్‌గా నిర్వచిస్తుంది:

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

మీరు నిర్వచనాన్ని రూపొందించిన తర్వాత, మీరు రిసోర్స్ ఫంక్షన్‌ను ఉపయోగించవచ్చు:

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

ఈ ఫంక్షన్ బొట్టులో నలుపు రంగు చిహ్నం ఉందని గమనించండి Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్. BLOB ఫంక్షన్ ప్రస్తుత సెషన్ కోసం నిర్వచించబడిన ఇన్-మెమరీ రిసోర్స్ ఫంక్షన్‌ని సూచిస్తుంది. మీ కంప్యూటర్ లేదా క్లౌడ్ ఖాతాలో శాశ్వతంగా నిల్వ చేయబడిన రిసోర్స్ ఫీచర్ బూడిద రంగు చిహ్నాన్ని కలిగి ఉంటుంది Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్. మరియు Wolfram ఫీచర్ రిపోజిటరీలో అధికారిక వనరు ఫీచర్ కోసం నారింజ రంగు చిహ్నం ఉంది Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్.

మీరు డెఫినిషన్ నోట్‌బుక్‌లో విస్తరించు మెనుని ఉపయోగించినప్పుడు ఏమి జరుగుతుంది? మొదట, ఇది నోట్‌ప్యాడ్‌లోని అన్ని నిర్వచనాలను తీసుకుంటుంది మరియు వాటి నుండి సింబాలిక్‌ను సృష్టిస్తుంది రిసోర్స్ ఆబ్జెక్ట్) (మరియు మీరు టెక్స్ట్-ఆధారిత IDE లేదా ప్రోగ్రామ్‌ని ఉపయోగిస్తుంటే, మీరు స్పష్టంగా కూడా సృష్టించవచ్చు రిసోర్స్ ఆబ్జెక్ట్)

మీ కంప్యూటర్‌లోని రిపోజిటరీ నుండి ఫంక్షన్ యొక్క స్థానిక విస్తరణ ఆదేశాన్ని ఉపయోగించి నిర్వహించబడుతుంది స్థానిక కాష్ రిసోర్స్ ఆబ్జెక్ట్‌ని ఇలా సేవ్ చేయడానికి లోకల్ ఆబ్జెక్ట్ మీ ఫైల్ సిస్టమ్‌లో. క్లౌడ్ ఖాతాకు విస్తరణ ఆదేశాన్ని ఉపయోగించి చేయబడుతుంది CloudDeploy వనరుల వస్తువు కోసం మరియు పబ్లిక్ క్లౌడ్ విస్తరణ CloudPublish. అన్ని సందర్భాలలో రిసోర్స్ రిజిస్టర్ రిసోర్స్ ఫంక్షన్ పేరును నమోదు చేయడానికి కూడా ఉపయోగించబడుతుంది, కాబట్టి రిసోర్స్ ఫంక్షన్["పేరు"] పని చేస్తుంది.

మీరు ఫంక్షన్ రిపోజిటరీ కోసం సమర్పించు బటన్‌ను క్లిక్ చేస్తే, దాని కింద ఏమి జరుగుతుంది వనరులను సమర్పించండి రిసోర్స్ ఆబ్జెక్ట్‌పై పిలిచారు. (మరియు మీరు టెక్స్ట్ ఇన్‌పుట్ ఇంటర్‌ఫేస్‌ని ఉపయోగిస్తుంటే, మీరు కూడా కాల్ చేయవచ్చు వనరులను సమర్పించండి నేరుగా.)

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

మీరు మీ ఫంక్షన్లలో దేనినైనా ఫంక్షన్ నాలెడ్జ్ బేస్‌కు సమర్పించిన తర్వాత, అది సమీక్ష కోసం క్యూలో ఉంచబడుతుంది. మీరు ప్రతిస్పందనగా వ్యాఖ్యలను స్వీకరిస్తే, అవి సాధారణంగా అదనపు “వ్యాఖ్య సెల్‌లు” జోడించబడిన టెక్స్ట్ ఫైల్ రూపంలో ఉంటాయి. మీరు సందర్శించడం ద్వారా మీ అప్లికేషన్ యొక్క స్థితిని ఎల్లప్పుడూ తనిఖీ చేయవచ్చు వనరుల వ్యవస్థ సభ్యుల పోర్టల్. కానీ మీ ఫీచర్ ఆమోదించబడిన తర్వాత, మీకు తెలియజేయబడుతుంది (ఇమెయిల్ ద్వారా) మరియు మీ ఫీచర్ Wolfram ఫీచర్ రిపోజిటరీకి పోస్ట్ చేయబడుతుంది.

పనిలో కొన్ని సూక్ష్మబేధాలు

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

మొదటి తక్షణ సూక్ష్మభేదం: మీరు డెఫినిషన్ నోట్‌బుక్‌ని పూరించినప్పుడు, మీరు మీ ఫంక్షన్‌ని ప్రతిచోటా ఇలాంటి పేరును ఉపయోగించి సూచించవచ్చు MyFunction, ఇది వోల్ఫ్రామ్ లాంగ్వేజ్‌లోని ఫంక్షన్‌కి సాధారణ పేరు వలె కనిపిస్తుంది, కానీ ఫంక్షన్ రిపోజిటరీ డాక్యుమెంటేషన్ కోసం ఇది భర్తీ చేయబడింది రిసోర్స్ ఫంక్షన్["మైఫంక్షన్"] ఫంక్షన్‌తో పని చేస్తున్నప్పుడు వినియోగదారులు వాస్తవంగా ఉపయోగించేది.

రెండవ సూక్ష్మత: మీరు డెఫినిషన్ నోట్‌బుక్ నుండి రిసోర్స్ ఫంక్షన్‌ను సృష్టించినప్పుడు, ఫంక్షన్ డెఫినిషన్‌లో ఉన్న అన్ని డిపెండెన్సీలు తప్పనిసరిగా సంగ్రహించబడాలి మరియు స్పష్టంగా చేర్చబడతాయి. అయితే, నిర్వచనాలు మాడ్యులర్‌గా ఉండేలా చూసుకోవడానికి, మీరు అన్నింటినీ ప్రత్యేకంగా ఉంచాలి నేమ్‌స్పేస్. (వాస్తవానికి, అన్నింటినీ చేసే విధులు, ఫంక్షన్ రిపోజిటరీలో ఉన్నాయి.)

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

ఫంక్షన్ రిపోజిటరీ కొత్త ఫంక్షన్లను నిర్వచించడం కోసం. మరియు ఈ ఫంక్షన్లకు ఎంపికలు ఉండవచ్చు. తరచుగా ఈ పారామితులు (ఉదాహరణకు, విధానం లేదా చిత్ర పరిమాణం) అంతర్నిర్మిత ఫంక్షన్‌ల కోసం, అలాగే అంతర్నిర్మిత చిహ్నాలు ఇప్పటికే ఉన్న వాటి కోసం ఉపయోగించవచ్చు. కానీ కొన్నిసార్లు కొత్త ఫీచర్‌కు కొత్త ఎంపికలు అవసరం కావచ్చు. మాడ్యులారిటీని కొనసాగించడానికి, ఈ పారామితులు ప్రత్యేకమైన అంతర్గత సందర్భంలో నిర్వచించబడిన చిహ్నాలుగా ఉండాలి (లేదా మొత్తం రిసోర్స్ ఫంక్షన్‌ల వంటివి, అవి వాటికవే). సరళత కోసం, స్ట్రింగ్ డెఫినిషన్లలో కొత్త ఎంపికలను నిర్వచించడానికి ఫంక్షన్ రిపోజిటరీ మిమ్మల్ని అనుమతిస్తుంది. మరియు వినియోగదారు సౌలభ్యం కోసం, ఈ నిర్వచనాలు (వారు ఉపయోగించారని ఊహిస్తారు ఎంపిక విలువ и ఎంపికల నమూనా) కూడా ప్రాసెస్ చేయబడతాయి, తద్వారా ఫంక్షన్‌లను ఉపయోగిస్తున్నప్పుడు, పారామితులను స్ట్రింగ్‌లుగా మాత్రమే కాకుండా, అదే పేర్లతో ప్రపంచ చిహ్నాలుగా కూడా పేర్కొనవచ్చు.

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

రిపోజిటరీ నుండి విధులు ఇప్పటికే రిపోజిటరీలో ఉన్న ఇతర ఫంక్షన్‌లను ఉపయోగించవచ్చు; ఒకదానికొకటి సూచించే రెండు (లేదా అంతకంటే ఎక్కువ) ఫంక్షన్‌లను కలిగి ఉన్న ఫంక్షన్ రిపోజిటరీ కోసం నిర్వచనాలను సెటప్ చేయడానికి, మీరు వాటిని మీ ప్రోగ్రామ్ సెషన్‌లో తప్పనిసరిగా అమలు చేయాలి, తద్వారా మీరు చేయవచ్చు వాటిపై వంటి సూచన రిసోర్స్ ఫంక్షన్["పేరు"], అప్పుడు మీరు మీకు అవసరమైన ఈ ఫంక్షన్‌ల కలయికలను సృష్టించవచ్చు, ఉదాహరణలు (నాకు అర్థం కాలేదు) మరియు ఇంతకు ముందు పోస్ట్ చేసిన వాటి ఆధారంగా రిపోజిటరీకి కొత్త ఫంక్షన్‌ను జోడించవచ్చు. (లేదా ఇప్పటికే లేదా గతంలో - రెండు పదాలు వికృతంగా ఉన్నాయి)

అభివృద్ధి అవకాశాలు. రిపోజిటరీ నిజంగా పెద్దది అయినప్పుడు ఏమి జరగాలి?

ఈ రోజు మనం Wolfram ఫీచర్ రిపోజిటరీని ప్రారంభిస్తున్నాము, కానీ కాలక్రమేణా దాని పరిమాణం మరియు కార్యాచరణ నాటకీయంగా పెరుగుతుందని మేము భావిస్తున్నాము మరియు ఇది అభివృద్ధి చెందుతున్నప్పుడు మేము ఇప్పటికే ఊహించిన వివిధ సమస్యలు తలెత్తవచ్చు.

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

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

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

(ఫంక్షన్‌లను అస్పష్టం చేయడానికి కొంత సభ్యుల ట్యాగ్‌ని జోడించడం వల్ల ఆశించిన ప్రభావం ఉండదని ఇక్కడ గమనించాలి. ఎందుకంటే మీరు ఎల్లప్పుడూ ట్యాగ్‌ని కేటాయించాలని పట్టుబట్టే వరకు, మీరు ఏదైనా ఫంక్షన్ కోసం డిఫాల్ట్ ట్యాగ్‌ని నిర్వచించాలి మరియు రచయిత ట్యాగ్‌లను కూడా కేటాయించాలి. , మళ్ళీ ప్రపంచ సమన్వయం అవసరం.)

వోల్‌ఫ్రామ్ ఫంక్షన్‌ల నాలెడ్జ్ బేస్ పెరిగేకొద్దీ, సిస్టమ్ అందించే ఫంక్షన్‌లను కనుగొనడం అనేది తలెత్తే సమస్యల్లో ఒకటి. శోధన ఫంక్షన్ (మరియు డెఫినిషన్ ఫైల్‌లలో కీలకపదాలు మొదలైనవి ఉండవచ్చు). వోల్ఫ్రామ్ లాంగ్వేజ్‌లోని అంతర్నిర్మిత ఫంక్షన్‌ల కోసం, ఫంక్షన్‌లను "ప్రకటన" చేయడంలో సహాయపడటానికి డాక్యుమెంటేషన్‌లో అన్ని రకాల క్రాస్-రిఫరెన్స్‌లు ఉన్నాయి. ఫంక్షన్ రిపోజిటరీలోని విధులు అంతర్నిర్మిత ఫంక్షన్‌లను సూచించగలవు. కానీ ఇతర మార్గం గురించి ఏమిటి? దీన్ని చేయడానికి, అంతర్నిర్మిత ఫంక్షన్‌ల కోసం డాక్యుమెంటేషన్ పేజీలలో రిపోజిటరీ ఫంక్షన్‌లను బహిర్గతం చేయడానికి మేము విభిన్న డిజైన్‌లతో ప్రయోగాలు చేయబోతున్నాము.

వోల్ఫ్రామ్ లాంగ్వేజ్‌లో అంతర్నిర్మిత ఫంక్షన్‌ల కోసం డిటెక్షన్ లేయర్ అని పిలవబడేది అందించబడుతుంది "సహాయ పేజీల" నెట్‌వర్క్, ఇది నిర్దిష్ట ప్రాంతాలకు సంబంధించిన లక్షణాల యొక్క వ్యవస్థీకృత జాబితాలను అందిస్తుంది. మ్యాన్ పేజీలను సరిగ్గా బ్యాలెన్స్ చేయడం ఎల్లప్పుడూ కష్టం, మరియు వోల్ఫ్రామ్ భాష పెరుగుతున్న కొద్దీ, మ్యాన్ పేజీలు తరచుగా పూర్తిగా పునర్వ్యవస్థీకరించబడాలి. రిపోజిటరీ నుండి ఫంక్షన్‌లను విస్తృత వర్గాలుగా ఉంచడం మరియు ఆ వర్గాలను స్థిరంగా విచ్ఛిన్నం చేయడం కూడా చాలా సులభం, కానీ సరిగ్గా వ్యవస్థీకృత భాషా సూచన పేజీలను కలిగి ఉండటం చాలా విలువైనది. మొత్తం ఫంక్షన్ నాలెడ్జ్ బేస్ కోసం వాటిని ఎలా ఉత్తమంగా సృష్టించాలో ఇంకా స్పష్టంగా తెలియలేదు. ఉదాహరణకి, CreateResourceObjectGallery ఫీచర్ రిపోజిటరీలో, ఎవరైనా రిపోజిటరీ నుండి వారి "పిక్స్" ఉన్న వెబ్ పేజీని పోస్ట్ చేయవచ్చు:

Wolfram ఫంక్షన్ రిపోజిటరీ: Wolfram భాష పొడిగింపుల కోసం ఓపెన్ యాక్సెస్ ప్లాట్‌ఫారమ్

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

Wolfram ఫీచర్ రిపోజిటరీ కొత్త ఫీచర్‌లను త్వరగా కనుగొనడంలో మరియు Wolfram భాషను ఉపయోగించడానికి కొత్త మార్గాలను నేర్చుకోవడంలో మీకు సహాయపడటానికి రూపొందించబడింది. ఫీచర్ రిపోజిటరీలో అన్వేషించబడిన వాటిలో కొన్ని చివరికి కోర్ వోల్‌ఫ్రామ్ లాంగ్వేజ్‌లో అంతర్నిర్మిత భాగాలుగా మారడం అర్థవంతంగా ఉంటుందని మేము చాలా ఆశాజనకంగా ఉన్నాము. గత దశాబ్దంలో మేము ఇదే విధమైన సెట్‌ను కలిగి ఉన్నాము వోల్‌ఫ్రామ్‌లో మొదట ప్రవేశపెట్టిన లక్షణాలు | ఆల్ఫా. మరియు ఈ అనుభవం నుండి నేర్చుకున్న పాఠాలలో ఒకటి ఏమిటంటే, వోల్‌ఫ్రామ్ భాషలో నిర్మించిన ప్రతిదానిలో మేము దృష్టి సారించే నాణ్యత మరియు స్థిరత్వం యొక్క ప్రమాణాలను సాధించడానికి చాలా పని అవసరం, ఇది ఆలోచనను అమలు చేయడానికి ప్రారంభ ప్రయత్నం కంటే చాలా కష్టం. అయినప్పటికీ, ఫంక్షన్ నాలెడ్జ్ బేస్‌లోని ఒక ఫంక్షన్ భవిష్యత్ ఫంక్షన్‌కు భావనకు చాలా ఉపయోగకరమైన రుజువుగా ఉపయోగపడుతుంది, అది చివరికి వోల్‌ఫ్రామ్ భాషలో నిర్మించబడవచ్చు.

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

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

వోల్ఫ్రామ్ భాషా వినియోగదారు సంఘంలో అద్భుతమైన ప్రతిభ (?) ఉంది. (వాస్తవానికి, ఈ సంఘం వివిధ రంగాలలో అనేక ప్రముఖ R&D నిపుణులను కలిగి ఉంది.) Wolfram ఫీచర్ రిపోజిటరీ ఈ ప్రతిభను అన్‌లాక్ చేయడానికి మరియు వ్యాప్తి చేయడానికి సమర్థవంతమైన వేదికను అందిస్తుందని నేను ఆశిస్తున్నాను. వోల్‌ఫ్రామ్ లాంగ్వేజ్ కంప్యూటింగ్ నమూనాను వర్తింపజేయగల ప్రాంతాన్ని గణనీయంగా విస్తరించే దాన్ని మాత్రమే మనం కలిసి సృష్టించగలము.

30 సంవత్సరాలకు పైగా, మేము వోల్ఫ్రామ్ భాషతో చాలా దూరం వచ్చాము. ఇప్పుడు కలిసి, మరింత ముందుకు వెళ్దాం. ప్రపంచవ్యాప్తంగా ఉన్న వోల్‌ఫ్రామ్ భాష యొక్క గౌరవనీయ వినియోగదారులందరినీ దీని కోసం ఫంక్షనల్ రిపోజిటరీని ప్లాట్‌ఫారమ్‌గా ఉపయోగించమని నేను గట్టిగా ప్రోత్సహిస్తున్నాను, అలాగే డెవలపర్‌ల కోసం ఉచిత వోల్‌ఫ్రామ్ ఇంజిన్ వంటి కొత్త సాఫ్ట్‌వేర్ ప్రాజెక్ట్.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి