హలో, హబ్ర్! నేను మీ దృష్టికి స్టీఫెన్ వోల్ఫ్రామ్ పోస్ట్ యొక్క అనువాదాన్ని అందిస్తున్నాను
వోల్ఫ్రామ్ భాష యొక్క స్థిరత్వం కోసం ముందస్తు అవసరాలు
Сегодня мы стоим на пороге великих свершений вместе с языком программирования
వోల్ఫ్రామ్ ఫంక్షన్ రిపోజిటరీ అనేది వోల్ఫ్రామ్ లాంగ్వేజ్ యొక్క ప్రత్యేక స్వభావం ద్వారా ప్రోగ్రామింగ్ లాంగ్వేజ్గా మాత్రమే కాకుండా, ఒక ప్రోగ్రామింగ్ లాంగ్వేజ్గా కూడా సాధ్యమైంది.
ఉదాహరణకు, Wolfram ఫంక్షన్ రిపోజిటరీ ఇప్పటికే కలిగి ఉంది
Аналогично более чем
Для перехода на страницу скопируйте приведенный выше объект (функциональный BLOB), вставьте его в строку ввода и затем запустите функцию – она уже встроена в язык Wolfram и поддерживается по умолчанию, начиная с
ప్రాసెస్ చేస్తున్నప్పుడు ఇక్కడ గమనించాలి
నేను మద్దతుతో ఆశిస్తున్నాను
Внутри функций из репозитория могут быть небольшие или достаточно объемные фрагменты кода, написанного на языке Wolfram Language. Например, это могут быть вызовы
వోల్ఫ్రామ్ ఫీచర్ రిపోజిటరీ యొక్క షెల్ మరియు ప్రోగ్రామింగ్ నిర్మాణం రూపొందించబడింది, తద్వారా ప్రతి ఒక్కరూ వారికి అత్యంత సులభమైన మరియు అనుకూలమైన మార్గంలో సాధారణ కారణానికి సహకరించగలరు - వాస్తవానికి, కేవలం
ఈ విధానంలో అనేక ట్రేడ్-ఆఫ్లు మరియు వివరాలు ఉన్నాయి, అయితే వినియోగదారు అనుభవం కోసం వోల్ఫ్రామ్ ఫీచర్ రిపోజిటరీని ఆప్టిమైజ్ చేయడం మరియు కొత్త యూజర్ ఫీచర్లు భాష అభివృద్ధికి అర్థవంతంగా దోహదపడేలా చేయడం మా లక్ష్యం. మేము పెరిగేకొద్దీ, రిపోజిటరీలో నిర్మించిన ఫంక్షన్లను ప్రాసెస్ చేయడానికి మరియు ధృవీకరించడానికి మేము కొత్త పద్ధతులను కనుగొనవలసి ఉంటుందని నాకు ఎటువంటి సందేహం లేదు, పెద్ద సంఖ్యలో ఫంక్షన్లను నిర్వహించడానికి మరియు వినియోగదారులకు అవసరమైన వాటిని కనుగొనడానికి. అయితే, మేము ఎంచుకున్న మార్గం మంచి ప్రారంభం కావడం ప్రోత్సాహకరం. నేను వ్యక్తిగతంగా
ఖర్చులను తగ్గించడంతోపాటు సామర్థ్యాన్ని పెంచడం
ఇంటర్నెట్కు ముందే, వోల్ఫ్రామ్ లాంగ్వేజ్ కోడ్ను పంచుకోవడానికి మార్గాలు ఉన్నాయి (మా మొదటి ప్రధాన కేంద్రీకృత ప్రాజెక్ట్
30 సంవత్సరాలుగా, మా కంపెనీ వోల్ఫ్రామ్ భాషా నిర్మాణం యొక్క సమగ్రతను కాపాడుకోవడానికి శ్రద్ధగా పనిచేసింది మరియు వోల్ఫ్రామ్ భాష కేవలం ప్రోగ్రామింగ్ భాషగా కాకుండా,
ప్రతి ఫంక్షన్ యొక్క అమలు నిర్మాణంలో వివిధ గణన ప్రక్రియలు జరుగుతాయి. ఫంక్షన్ స్పష్టమైన మరియు ఏకరీతి రూపాన్ని కలిగి ఉండటం మరియు వినియోగదారు కోసం దృశ్యమాన రీడబిలిటీని కలిగి ఉండటం అవసరమని ఇక్కడ గమనించాలి. ఈ సందర్భంలో, వోల్ఫ్రామ్ లాంగ్వేజ్ యొక్క అంతర్నిర్మిత ఫంక్షన్లు ఫంక్షన్లను ఎలా సరిగ్గా ప్రోగ్రామ్ చేయాలనే దాని గురించి 6000 కంటే ఎక్కువ సీక్వెన్షియల్ ఉదాహరణలు అందించబడ్డాయి (ఇవి మా
వాస్తవానికి బాగా పనిచేసే రిపోజిటరీని సృష్టించడం అనేది ఒక ఆసక్తికరమైన మెటా-ప్రోగ్రామింగ్ పని. ఉదాహరణకు, ప్రోగ్రామ్లోని అధిక పరిమితులు అల్గోరిథం యొక్క అవసరమైన ఏకీకరణ మరియు సార్వత్రికతను పొందడాన్ని అనుమతించవు. తగినంత సంఖ్యలో ఫంక్షనల్ పరిమితులు లేనట్లే, మీరు అల్గారిథమ్ ఎగ్జిక్యూషన్ యొక్క తగినంత సరైన క్రమాన్ని అమలు చేయలేరు. మా కంపెనీ ద్వారా అమలు చేయబడిన ఈ విధానాల యొక్క రాజీని అమలు చేయడానికి అనేక మునుపటి ఉదాహరణలు చాలా స్థిరంగా పనిచేశాయి - ఇవి:
పైన పేర్కొన్న అన్ని ఉదాహరణలు ప్రాథమిక లక్షణాన్ని కలిగి ఉన్నాయి - ప్రాజెక్ట్లో సేకరించిన వస్తువులు మరియు విధులు ప్రక్రియల నిర్మాణం మరియు పంపిణీ యొక్క అధిక స్థాయిని కలిగి ఉంటాయి. వాస్తవానికి, డెమో లేదా న్యూరల్ నెట్వర్క్ లేదా మరేదైనా నిర్మాణం యొక్క వివరాలు చాలా మారవచ్చు, అయితే ఏదైనా ప్రస్తుత రిపోజిటరీకి సంబంధించిన ప్రాథమిక నిర్మాణం ఎల్లప్పుడూ ఒకే విధంగా ఉంటుంది. కాబట్టి ప్రియమైన వినియోగదారు, Wolfram భాషకు పొడిగింపులను జోడించే అటువంటి రిపోజిటరీని సృష్టించడం గురించి మీ అభిప్రాయం ఏమిటి? వోల్ఫ్రామ్ లాంగ్వేజ్ చాలా సరళంగా ఉండేలా రూపొందించబడింది, కాబట్టి దీనిని ఏ విధంగానైనా పొడిగించవచ్చు మరియు సవరించవచ్చు. వోల్ఫ్రామ్ లాంగ్వేజ్లో వివిధ భారీ-స్థాయి సాఫ్ట్వేర్ ప్రాజెక్ట్లను త్వరగా సృష్టించగల సామర్థ్యం కోసం ఈ పరిస్థితి చాలా ముఖ్యమైనది. భాష యొక్క సౌలభ్యం పెరిగేకొద్దీ, అటువంటి భాషలో అమలు చేయబడిన ప్రాజెక్టుల వ్యయం అనివార్యంగా పెరుగుతుందని ఇక్కడ గమనించాలి. వినియోగదారు అటువంటి భాషను ఎంత ఎక్కువగా ఉపయోగిస్తారో, అంత అంకితమైన కార్యాచరణను అతను అందుకుంటాడు, అయితే ప్రోగ్రామ్ మాడ్యూల్స్ యొక్క స్థిరమైన స్థిరత్వాన్ని నిర్ధారించడంలో అసమర్థత పరంగా ఈ విధానం ప్రతికూల వైపులా ఉండవచ్చని మనం మర్చిపోకూడదు.
సాంప్రదాయ ప్రోగ్రామింగ్ భాషలలో లైబ్రరీలతో ఒక సాధారణ సమస్య ఉంది - మీరు ఒక లైబ్రరీని ఉపయోగిస్తే, ఉదాహరణకు, కోడ్ సరిగ్గా పని చేస్తుంది, కానీ మీరు బహుళ లైబ్రరీలను ఉపయోగించడానికి ప్రయత్నిస్తే, అవి ఒకదానితో ఒకటి సరిగ్గా సంకర్షణ చెందుతాయని హామీ లేదు. . అలాగే, సాంప్రదాయ ప్రోగ్రామింగ్ భాషలలో - పూర్తి స్థాయి కంప్యూటింగ్ భాష వలె కాకుండా - ఏదైనా ఫంక్షన్లు లేదా వాటి ప్రాథమిక నిర్మాణాలు కాకుండా ఇతర డేటా రకాల కోసం స్థిరమైన అంతర్నిర్మిత ప్రాతినిధ్యాల ఉనికికి హామీ ఇవ్వడానికి మార్గం లేదు. కానీ, వాస్తవానికి, సమస్య మొదటి చూపులో కనిపించే దానికంటే పెద్దది: ఒకరు పెద్ద ఎత్తున నిలువు కార్యాచరణను రూపొందిస్తున్నట్లయితే, మేము వోల్ఫ్రామ్ భాషలో ఉంచిన కేంద్రీకృత ప్రాజెక్ట్ ప్రోగ్రామింగ్ యొక్క భారీ ఖర్చులు లేకుండా, అది అసాధ్యం స్థిరత్వం సాధించండి. అందువల్ల అన్ని సాఫ్ట్వేర్ మాడ్యూల్స్ ఎల్లప్పుడూ సరిగ్గా కలిసి పనిచేయడం చాలా ముఖ్యం.
కాబట్టి వోల్ఫ్రామ్ ఫీచర్ రిపోజిటరీ వెనుక ఉన్న ఆలోచన ఏమిటంటే, పొందికైన మాడ్యూల్స్గా అభివృద్ధి చేయడానికి సులభమైన వ్యక్తిగత లక్షణాల ద్వారా సాపేక్షంగా చిన్న కోడ్ ముక్కలలో భాషకు పొడిగింపులను జోడించడం ద్వారా పైన వివరించిన సమస్యను నివారించడం. ఇలా చెప్పుకుంటూ పోతే, వ్యక్తిగత ఫంక్షన్లను ఉపయోగించి సౌకర్యవంతంగా చేయలేని ప్రోగ్రామింగ్ ఫీచర్లు ఉన్నాయి (మరియు మా కంపెనీ పెద్ద ఎత్తున సాఫ్ట్వేర్ ప్యాకేజీలను అమలు చేయడంలో సహాయపడటానికి సమీప భవిష్యత్తులో ఆప్టిమైజ్ చేసిన ప్రోగ్రామింగ్ అల్గారిథమ్ను విడుదల చేయాలని యోచిస్తోంది). అయినప్పటికీ, వోల్ఫ్రామ్ లాంగ్వేజ్లో ఇప్పటికే నిర్మించిన ఫంక్షన్ల ఆధారంగా, వ్యక్తిగత ఫంక్షన్ల ఆధారంగా అమలు చేయబడిన అనేక ప్రోగ్రామింగ్ అవకాశాలు ఉన్నాయి. ఇక్కడ ఆలోచన ఏమిటంటే, సాపేక్షంగా తక్కువ ప్రోగ్రామింగ్ ప్రయత్నంతో డిజైన్కు తగినంత పొందికను అందించే అనేక కొత్త మరియు చాలా ఉపయోగకరమైన ఫంక్షన్లను సృష్టించడం సాధ్యమవుతుంది, అవి ఒకదానితో ఒకటి బాగా సమన్వయం చేయబడతాయి మరియు దీనికి అదనంగా, అవి భవిష్యత్తులో భాషలో సులభంగా మరియు విస్తృతంగా ఉపయోగించగలుగుతారు.
Данный подход, безусловно, является компромиссом. При условии реализации более масштабного пакета можно вообразить себе совершенно новый мир функциональности, который станет чрезвычайно мощным и полезным. В случае если существует необходимость получать новые функциональные возможности, которые будут вписываться во все остальное, но при этом Вы не готовы тратить огромные усилия на разработку проекта, это, к сожалению, может привести к снижению масштаба Вашего проекта. Идея репозитория функций Wolfram заключается в том, чтобы обеспечить функциональностью определяющую часть проекта, данный подход позволит добавить мощный функционал, вместе с тем, упрощая поддержание хорошей согласованности проекта программирования.
ఫంక్షన్ రిపోజిటరీకి అనుకూల ఫంక్షన్లను జోడించడంలో సహాయం చేయండి
Wolfram రిపోజిటరీ ఫీచర్లకు వినియోగదారులు సహకరించడాన్ని సులభతరం చేయడానికి మా బృందం కృషి చేసింది. డెస్క్టాప్లో (ఇప్పటికే
Существуют два основных действия, которые Вы должны будете выполнить: во-первых, фактически записать код Вашей функции и, во-вторых, записать документацию, иллюстрирующую, как должна работать Ваша функция.
మీరు ఏమి చేయాలో ఉదాహరణను చూడటానికి ఎగువన ఉన్న "ఓపెన్ శాంపిల్" బటన్ను క్లిక్ చేయండి:
ముఖ్యంగా, మీరు వోల్ఫ్రామ్ లాంగ్వేజ్లో అంతర్నిర్మిత ఫంక్షన్కు సమానమైనదాన్ని సృష్టించడానికి ప్రయత్నిస్తున్నారు. ఇది అంతర్నిర్మిత ఫంక్షన్ కంటే చాలా నిర్దిష్టంగా ఏదైనా చేయగలదు తప్ప. అదే సమయంలో, దాని పరిపూర్ణత మరియు విశ్వసనీయతకు సంబంధించిన అంచనాలు చాలా తక్కువగా ఉంటాయి.
మీరు మీ ఫంక్షన్కి వోల్ఫ్రామ్ లాంగ్వేజ్ ఫంక్షన్ నేమింగ్ మార్గదర్శకాలను అనుసరించే పేరును ఇవ్వాలి. అదనంగా, మీరు భాష యొక్క అంతర్నిర్మిత ఫంక్షన్ల మాదిరిగానే మీ ఫంక్షన్ కోసం డాక్యుమెంటేషన్ను అభివృద్ధి చేయాలి. నేను దీని గురించి మరింత వివరంగా తరువాత మాట్లాడుతాను. ప్రస్తుతానికి, డెఫినిషన్ నోట్బుక్ ఫైల్ ఎగువన ఉన్న బటన్ల వరుసలో ఒక బటన్ ఉందని గమనించండి
Когда Вы убедитесь, что все заполнено должным образом и Вы готовы, нажмите кнопку «Check» («Проверить»). Совершенно нормальным является то, что Вы еще не разобрались во всех деталях. Поэтому функция «Check» будет автоматически выполняться и делать много проверок стиля и согласованности. Часто она сразу же предложит Вам подтвердить и принять исправления (Например: «Эта строка должна заканчиваться двоеточием», и она предложит ввести двоеточие). Иногда она попросит Вас добавить или изменить что-то самостоятельно. Мы будем постоянно добавлять новые возможности к автоматической функциональности кнопки «Check», но в основном его цель состоит в том, чтобы гарантировать — все, что вы отправляете в репозиторий функций, уже точно соответствует как можно большему количеству рекомендаций по стилю
Итак, после запуска «Check» вы можете использовать «Preview» («Предпросмотр»). «Preview» создает предварительный просмотр страницы документации, которую Вы определили для своей функции. Вы также можете создать предварительный просмотр для файла, созданного на Вашем компьютере или для файла, находящегося в облачном хранилище. Если Вас, по каким-то причинам, не устраивает то, что Вы увидите в предварительном просмотре, просто вернитесь назад и выполните необходимые исправления, а затем снова нажмите кнопку Preview.
ఇప్పుడు మీరు మీ ఫంక్షన్ను రిపోజిటరీలోకి నెట్టడానికి సిద్ధంగా ఉన్నారు. డిప్లాయ్ బటన్ మీకు నాలుగు ఎంపికలను అందిస్తుంది:
ఈ దశలో ముఖ్యమైన విషయం ఏమిటంటే, మీరు మీ ఫంక్షన్ను వోల్ఫ్రామ్ ఫంక్షన్ రిపోజిటరీకి సమర్పించవచ్చు, తద్వారా ఇది ఎవరికైనా అందుబాటులో ఉంటుంది. అదే సమయంలో, మీరు మీ ఫంక్షన్ను పరిమిత సంఖ్యలో వినియోగదారుల కోసం కూడా ఉంచవచ్చు. ఉదాహరణకు, మీరు మీ కంప్యూటర్లో స్థానికంగా హోస్ట్ చేయబడిన ఫంక్షన్ను సృష్టించవచ్చు, తద్వారా మీరు నిర్దిష్ట కంప్యూటర్ని ఉపయోగించినప్పుడు అందుబాటులో ఉంటుంది. లేదా మీరు దానిని మీలో పోస్ట్ చేయవచ్చు
కాబట్టి మీరు నిజంగా మీ ఫంక్షన్ను వోల్ఫ్రామ్ ఫంక్షన్ నాలెడ్జ్ బేస్కు సమర్పించాలనుకుంటున్నారని అనుకుందాం. దీన్ని చేయడానికి, మీరు రిపోజిటరీకి "సమర్పించు" బటన్ను క్లిక్ చేయండి. కాబట్టి ఈ సమయంలో ఏమి జరుగుతోంది? మా ప్రత్యేక క్యూరేటర్ల బృందం సమీక్ష మరియు ఆమోదం కోసం మీ అప్లికేషన్ వెంటనే క్యూలో ఉంచబడింది.
మీ అప్లికేషన్ ఆమోదం ప్రక్రియ (సాధారణంగా చాలా రోజులు పడుతుంది) ద్వారా అభివృద్ధి చెందుతున్నప్పుడు, మీరు దాని స్థితికి సంబంధించిన కమ్యూనికేషన్లను అందుకుంటారు మరియు భవిష్యత్ ఉపయోగం కోసం సూచనలను అందుకుంటారు. కానీ మీ ఫీచర్ ఆమోదించబడిన తర్వాత, అది వెంటనే Wolfram ఫీచర్ రిపోజిటరీకి ప్రచురించబడుతుంది మరియు ఎవరైనా ఉపయోగించడానికి అందుబాటులో ఉంటుంది. (మరియు ఇది కనిపిస్తుంది
నిల్వలో ఏమి ఉండాలి?
Следует отметить, что в нашей компании очень высокие стандарты полноты, надежности и общего качества, из 6000+ функций, которые мы уже встроили в язык Wolfram за последние 30 с лишним лет все соответствуют вышеперечисленным требованиям. Цель репозитория функций Wolfram заключается в том, чтобы использовать всю структуру и функциональные возможности, которые уже существуют в языке Wolfram Language, для того чтобы добавить как можно больше гораздо более легких функций (то есть функций с более высокой производительностью).
వాస్తవానికి, వోల్ఫ్రామ్ ఫంక్షన్ రిపోజిటరీలోని ఫంక్షన్లు తప్పనిసరిగా వోల్ఫ్రామ్ లాంగ్వేజ్ డిజైన్ సూత్రాలకు అనుగుణంగా ఉండాలి - తద్వారా అవి ఇతర ఫంక్షన్లు మరియు ఫంక్షన్ ఎలా సరిగ్గా పని చేయాలనే దాని గురించి వినియోగదారుల అంచనాలతో పూర్తిగా పరస్పర చర్య చేయవచ్చు. అయితే, విధులు సమానమైన పరిపూర్ణత లేదా విశ్వసనీయతను కలిగి ఉండవలసిన అవసరం లేదు.
Wolfram భాష యొక్క అంతర్నిర్మిత ఫంక్షన్లలో, ప్రోగ్రామింగ్ ఫంక్షన్లను వీలైనంత సాధారణం చేయడానికి మేము కృషి చేస్తాము. చెప్పబడుతున్నది, వోల్ఫ్రామ్ ఫంక్షన్ రిపోజిటరీలో కొన్ని నిర్దిష్టమైన కానీ ఉపయోగకరమైన కేసులను నిర్వహించే ఫంక్షన్ను కలిగి ఉండటంలో తప్పు ఏమీ లేదు. ఉదాహరణకు, ఫంక్షన్
Еще одним моментом, связанным со встроенными функциями, является то, что наша компания прилагает все усилия для обработки всех нетиповых случаев, для правильной обработки некорректного ввода и так далее. В репозитории функций совершенно нормальным является случай, когда в нем существует специальная функция, которая обрабатывает основные случаи решения задачи и игнорирует все остальные.
స్పష్టమైన విషయం ఏమిటంటే, ఎక్కువ చేసే మరియు మెరుగ్గా చేసే ఫంక్షన్లను కలిగి ఉండటం ఉత్తమం, కానీ ఫంక్షన్ రిపోజిటరీ కోసం ఆప్టిమైజేషన్ - వోల్ఫ్రామ్ భాష యొక్క అంతర్నిర్మిత ఫంక్షన్లకు విరుద్ధంగా - లోతుగా పరిశోధించకుండా మరిన్ని ఫంక్షన్లతో కూడిన మరిన్ని ఫంక్షన్లను కలిగి ఉండాలి. ప్రతి నిర్దిష్ట ఫంక్షన్ యొక్క అమలు ప్రక్రియలు.
Теперь давайте рассмотрим пример тестирования функций в репозитории. Ожидания согласованности для таких функций естественно гораздо ниже, чем для встроенных функций языка. Это тем более актуально в случаях, когда функции зависят от внешних ресурсов, таких как API, важно постоянно проводить последовательные тесты, что автоматически происходит внутри алгоритмов проверки. В файле nb вы можете явно указать определения (в разделе «Дополнительная информация») и задать столько тестов, определяемых либо строками ввода и вывода, либо полными символьными объектами типа
В итоге в репозитории функций будет целый ряд сложностей реализации. Некоторые будут просто одной строкой кода, другие могут включать тысячи или десятки тысяч строк, вероятно с использованием множества вспомогательных функций. В каких случаях стоит добавить функцию, для определения которой требуется очень мало кода? В принципе, если для функции есть
ఫంక్షన్ రిపోజిటరీ యొక్క ముఖ్య ఉద్దేశ్యం (దాని పేరు సూచించినట్లు) భాషలో కొత్త లక్షణాలను పరిచయం చేయడం. మీరు కొత్త డేటాను జోడించాలనుకుంటే లేదా
నిజానికి రెండు మార్గాలు ఉన్నాయి. మీరు ఫంక్షన్ రిపోజిటరీలో కొత్త ఫంక్షన్లలో ఉపయోగించబడే కొత్త ఆబ్జెక్ట్ రకాన్ని పరిచయం చేయాలనుకోవచ్చు. మరియు ఈ సందర్భంలో, మీరు ఎల్లప్పుడూ దాని సింబాలిక్ ప్రాతినిధ్యాన్ని వ్రాసి, ఫంక్షన్ రిపోజిటరీలో ఫంక్షన్లను ఇన్పుట్ చేసేటప్పుడు లేదా అవుట్పుట్ చేసేటప్పుడు దాన్ని ఉపయోగించవచ్చు.
Но что делать, если Вы хотите представить объект, а затем определить, через существующие функции в языке Wolfram Language, которые должны работать вместе с ним? Для этого у Wolfram Language всегда был легкий механизм, который называется
కాబట్టి, ఫంక్షన్ రిపోజిటరీలోని ఫంక్షన్ కోడ్లో ఏమి ఉండవచ్చు?
Wolfram ఫీచర్ రిపోజిటరీకి సంబంధించిన అన్ని కోడ్లు Wolframలో వ్రాయబడాలా? ఖచ్చితంగా, బాహ్య API లోపల కోడ్ వోల్ఫ్రామ్ భాషలో వ్రాయబడకూడదు, అది భాషా కోడ్ను కూడా తయారు చేయదు. వాస్తవానికి, మీరు దాదాపు ఏదైనా బాహ్య భాష లేదా లైబ్రరీలో ఫంక్షన్ను కనుగొంటే, మీరు Wolfram ఫంక్షన్ రిపోజిటరీలో దాన్ని ఉపయోగించడానికి మిమ్మల్ని అనుమతించే ఒక రేపర్ని సృష్టించవచ్చు. (సాధారణంగా మీరు దీని కోసం అంతర్నిర్మిత ఫంక్షన్లను ఉపయోగించాలి
కాబట్టి ఇలా చేయడం వల్ల ప్రయోజనం ఏమిటి? ముఖ్యంగా, ఇది మొత్తం ఇంటిగ్రేటెడ్ వోల్ఫ్రామ్ లాంగ్వేజ్ సిస్టమ్ను మరియు దాని మొత్తం ఏకీకృత సాఫ్ట్వేర్ సామర్థ్యాలను ఉపయోగించడానికి మిమ్మల్ని అనుమతిస్తుంది. మీరు బాహ్య లైబ్రరీ లేదా భాష నుండి బేస్ ఇంప్లిమెంటేషన్ను పొందినట్లయితే, మీరు వోల్ఫ్రామ్ లాంగ్వేజ్ యొక్క రిచ్ సింబాలిక్ స్ట్రక్చర్ను ఉపయోగించి అనుకూలమైన టాప్-లెవల్ ఫంక్షన్ని సృష్టించవచ్చు, ఇది ఇప్పటికే అమలు చేయబడిన ఏదైనా కార్యాచరణను సులభంగా ఉపయోగించడానికి వినియోగదారులను అనుమతిస్తుంది. కనీసం, లోడింగ్ లైబ్రరీలు మొదలైన వాటికి సంబంధించిన అన్ని బిల్డింగ్ బ్లాక్లు ఉన్న ఆదర్శవంతమైన ప్రపంచంలో ఇది సాధ్యమవుతుంది, ఈ సందర్భంలో అవి వోల్ఫ్రామ్ లాంగ్వేజ్ ద్వారా స్వయంచాలకంగా నిర్వహించబడతాయి. (ఆచరణలో సమస్యలు ఉండవచ్చని గమనించాలి
మార్గం ద్వారా, మీరు మొదట సాధారణ బాహ్య లైబ్రరీలను చూసినప్పుడు, అవి కేవలం కొన్ని ఫంక్షన్లలో కవర్ చేయడానికి చాలా క్లిష్టంగా కనిపిస్తాయి, అయితే చాలా సందర్భాలలో, చాలా సంక్లిష్టత లైబ్రరీకి మరియు అన్ని ఫంక్షన్లకు అవసరమైన మౌలిక సదుపాయాలను సృష్టించడం ద్వారా వస్తుంది. దానికి మద్దతు ఇవ్వండి . అయినప్పటికీ, Wolfram లాంగ్వేజ్ని ఉపయోగిస్తున్నప్పుడు, మౌలిక సదుపాయాలు సాధారణంగా ఇప్పటికే ప్యాకేజీలలో నిర్మించబడ్డాయి, కాబట్టి ఈ సపోర్ట్ ఫంక్షన్లన్నింటినీ వివరంగా బహిర్గతం చేయాల్సిన అవసరం లేదు, కానీ లైబ్రరీలోని "అత్యున్నత" అప్లికేషన్-నిర్దిష్ట ఫంక్షన్ల కోసం మాత్రమే ఫంక్షన్లను సృష్టించండి. .
«Экосистема» базы знаний
Если Вы написали функции, которые используете постоянно, то отправьте их в репозиторий функций Wolfram! Если из этого в итоге не получится что-то большее (развитие языка), то и тогда Вам будет гораздо удобнее использовать функции для личного пользования. Однако логично предположить, что, если Вы используете функции постоянно, возможно и другие пользователи также найдут их полезными.
Естественно, что Вы можете оказаться в ситуации, когда вы не имеете возможности — или не хотите — делиться своими функциями или в случае получения доступа к частным информационным ресурсам. Даже в таких случаях Вы можете просто развернуть функции в своей собственной учетной записи в облаке,
మీరు Wolfram ఫంక్షన్ రిపోజిటరీకి సమర్పించే విధులు ఖచ్చితంగా ఉండవలసిన అవసరం లేదు; అవి ఉపయోగకరంగా ఉండాలి. ఇది క్లాసిక్ Unix డాక్యుమెంటేషన్లోని "ఎర్రర్స్" విభాగం లాంటిది - "నిర్వచనాల విభాగం"లో "రచయిత గమనికలు" విభాగం ఉంది, ఇక్కడ మీరు మీ ఫంక్షన్ గురించి ఇప్పటికే తెలిసిన పరిమితులు, సమస్యలు మొదలైనవాటిని వివరించవచ్చు. అదనంగా, మీరు మీ లక్షణాన్ని రిపోజిటరీకి సమర్పించినప్పుడు, మీరు సమర్పణ గమనికలను జోడించవచ్చు, అవి ప్రత్యేక క్యూరేటర్ల బృందంచే చదవబడతాయి.
После публикации функции ее страница всегда имеет две ссылки внизу: «
కొన్నిసార్లు మీరు వాటి కోడ్ని చూడకుండానే అంతర్నిర్మిత ఫంక్షన్ల వంటి Wolfram ఫంక్షన్ రిపోజిటరీ నుండి ఫంక్షన్లను ఉపయోగించాలనుకుంటున్నారు. అయితే, మీరు లోపల చూడాలనుకుంటే, ఎగువన నోట్ప్యాడ్ బటన్ ఎల్లప్పుడూ ఉంటుంది. దానిపై క్లిక్ చేయండి మరియు ఫీచర్ రిపోజిటరీకి సమర్పించబడిన ఒరిజినల్ డెఫినిషన్ నోట్బుక్ యొక్క మీ స్వంత కాపీని మీరు పొందుతారు. కొన్నిసార్లు మీరు దీన్ని మీ అవసరాలకు ఉదాహరణగా ఉపయోగించవచ్చు. అదే సమయంలో, మీరు ఈ ఫంక్షన్ యొక్క మీ స్వంత సవరణను కూడా అభివృద్ధి చేయవచ్చు. మీరు మీ కంప్యూటర్లోని రిపోజిటరీ నుండి లేదా మీ అఫిడ్ క్లౌడ్ స్టోరేజ్ ఖాతాలో కనుగొన్న ఈ ఫంక్షన్లను పోస్ట్ చేయాలనుకోవచ్చు, బహుశా మీరు వాటిని ఫంక్షన్ నాలెడ్జ్ బేస్కు సమర్పించాలనుకోవచ్చు, బహుశా ఒరిజినల్ ఫంక్షన్కి మెరుగైన, విస్తరించిన వెర్షన్గా.
భవిష్యత్తులో, మేము ఫీచర్ రిపోజిటరీల కోసం Git-శైలి ఫోర్కింగ్కు మద్దతు ఇవ్వాలని ప్లాన్ చేస్తున్నాము, కానీ ప్రస్తుతానికి మేము దానిని సరళంగా ఉంచడానికి ప్రయత్నిస్తున్నాము మరియు మేము ఎల్లప్పుడూ భాషలో రూపొందించబడిన ప్రతి ఫీచర్ యొక్క ఒక ఆమోదించబడిన సంస్కరణను మాత్రమే కలిగి ఉన్నాము. చాలా తరచుగా (డెవలపర్లు తాము అభివృద్ధి చేసిన ఫీచర్లను నిర్వహించడం మానేసి, వినియోగదారు సమర్పణలకు ప్రతిస్పందించకపోతే), ఫీచర్ యొక్క అసలు రచయిత దానికి సంబంధించిన నవీకరణలను నియంత్రించి, కొత్త వెర్షన్లను సమర్పిస్తారు, అవి సమీక్షించబడతాయి మరియు వారు సమీక్ష ప్రక్రియలో పాస్ అయితే , భాషలో ప్రచురించబడింది.
Рассмотрим вопрос, как работает «версионность» разработанных функций. Прямо сейчас, когда Вы используете функцию из репозитория функций, ее определение будет постоянно храниться на вашем компьютере (или в вашей облачной учетной записи, если вы используете облако). Если появилась новая версия функции, то при следующем ее использовании вы получите сообщение, извещающее Вас об этом. И если Вы хотите обновить функцию до новой версии, Вы можете сделать это с помощью команды
Wolfram ఫంక్షన్ రిపోజిటరీ గురించిన ఒక అందమైన విషయం ఏమిటంటే, ఏదైనా Wolfram లాంగ్వేజ్ ప్రోగ్రామ్, ఎక్కడైనా దాని నుండి ఫంక్షన్లను ఉపయోగించవచ్చు. ఒక ప్రోగ్రామ్ నోట్ప్యాడ్లో కనిపిస్తే, రిపోజిటరీ ఫంక్షన్లను సులభంగా చదవగలిగే "ఫంక్షన్ బైనరీ ఆబ్జెక్ట్" ఫంక్షన్లుగా ఫార్మాట్ చేయడం చాలా సౌకర్యవంతంగా ఉంటుంది (బహుశా తగిన వెర్షన్ సెట్తో).
మీరు ఎప్పుడైనా టెక్స్ట్ ఉపయోగించి ఫంక్షన్ రిపోజిటరీలో ఏదైనా ఫంక్షన్ని యాక్సెస్ చేయవచ్చు
అది ఎలా పనిచేస్తుంది?
వోల్ఫ్రామ్ రిపోజిటరీలోని ఫంక్షన్లలో సరిగ్గా అదే ఉపయోగించి ఇది సాధ్యమవుతుంది
పరిగణించండి
Внутри Вы можете увидеть некоторую информацию, используя функция
Как работает настройка функции ресурса? Самый простой — это чисто локальный случай. Вот пример, который берет функцию (в данном случае просто чистую функцию) и определяет ее как функцию ресурса для данного сеанса работы в программе:
మీరు నిర్వచనాన్ని రూపొందించిన తర్వాత, మీరు రిసోర్స్ ఫంక్షన్ను ఉపయోగించవచ్చు:
ఈ ఫంక్షన్ బొట్టులో నలుపు రంగు చిహ్నం ఉందని గమనించండి . BLOB ఫంక్షన్ ప్రస్తుత సెషన్ కోసం నిర్వచించబడిన ఇన్-మెమరీ రిసోర్స్ ఫంక్షన్ని సూచిస్తుంది. మీ కంప్యూటర్ లేదా క్లౌడ్ ఖాతాలో శాశ్వతంగా నిల్వ చేయబడిన రిసోర్స్ ఫీచర్ బూడిద రంగు చిహ్నాన్ని కలిగి ఉంటుంది . А для официальной функции ресурса в репозитории функций Wolfram есть оранжевый значок .
మీరు డెఫినిషన్ నోట్బుక్లో విస్తరించు మెనుని ఉపయోగించినప్పుడు ఏమి జరుగుతుంది? మొదట, ఇది నోట్ప్యాడ్లోని అన్ని నిర్వచనాలను తీసుకుంటుంది మరియు వాటి నుండి సింబాలిక్ను సృష్టిస్తుంది
మీ కంప్యూటర్లోని రిపోజిటరీ నుండి ఫంక్షన్ యొక్క స్థానిక విస్తరణ ఆదేశాన్ని ఉపయోగించి నిర్వహించబడుతుంది
మీరు ఫంక్షన్ రిపోజిటరీ కోసం సమర్పించు బటన్ను క్లిక్ చేస్తే, దాని కింద ఏమి జరుగుతుంది
По умолчанию отправка выполняется под именем, связанным с вашим идентификатором Wolfram ID. Но если вы отправляете заявку от имени группы разработчиков или организации, Вы можете
మీరు మీ ఫంక్షన్లలో దేనినైనా ఫంక్షన్ నాలెడ్జ్ బేస్కు సమర్పించిన తర్వాత, అది సమీక్ష కోసం క్యూలో ఉంచబడుతుంది. మీరు ప్రతిస్పందనగా వ్యాఖ్యలను స్వీకరిస్తే, అవి సాధారణంగా అదనపు “వ్యాఖ్య సెల్లు” జోడించబడిన టెక్స్ట్ ఫైల్ రూపంలో ఉంటాయి. మీరు సందర్శించడం ద్వారా మీ అప్లికేషన్ యొక్క స్థితిని ఎల్లప్పుడూ తనిఖీ చేయవచ్చు
Некоторые тонкости в работе
మొదటి చూపులో, మీరు డెఫినిషన్ నోట్బుక్ని తీసుకొని దానిని ఒక ఫంక్షన్ రిపోజిటరీలో పదజాలంగా ఉంచవచ్చు, అయినప్పటికీ, వాస్తవానికి చాలా సూక్ష్మ నైపుణ్యాలు ఉన్నాయి - మరియు వాటిని నిర్వహించడానికి చాలా క్లిష్టమైన మెటా-ప్రోగ్రామింగ్, సింబాలిక్ ప్రాసెసింగ్ను నిర్వహించడం అవసరం. ఫంక్షన్ని నిర్వచించే కోడ్గా మరియు నోట్ప్యాడ్ కూడా నిర్వచించబడింది. వీటిలో చాలా వరకు అంతర్గతంగా, తెరవెనుక జరుగుతాయి, కానీ మీరు ఫీచర్ నాలెడ్జ్ బేస్కు సహకరించబోతున్నట్లయితే, ఇది అర్థం చేసుకోవలసిన కొన్ని చిక్కులను కలిగి ఉంటుంది.
Первая непосредственная тонкость: Когда Вы заполняете «Блокнот определений», Вы можете просто ссылаться на свою функцию везде, используя имя, подобное MyFunction, которое выглядит как обычное имя для функции в языке Wolfram Language, но для документации репозитория функций это заменяется
రెండవ సూక్ష్మత: మీరు డెఫినిషన్ నోట్బుక్ నుండి రిసోర్స్ ఫంక్షన్ను సృష్టించినప్పుడు, ఫంక్షన్ డెఫినిషన్లో ఉన్న అన్ని డిపెండెన్సీలు తప్పనిసరిగా సంగ్రహించబడాలి మరియు స్పష్టంగా చేర్చబడతాయి. అయితే, నిర్వచనాలు మాడ్యులర్గా ఉండేలా చూసుకోవడానికి, మీరు అన్నింటినీ ప్రత్యేకంగా ఉంచాలి
సాధారణంగా మీరు ఈ నేమ్స్పేస్ని కాన్ఫిగర్ చేయడానికి ఉపయోగించిన కోడ్ యొక్క ట్రేస్ను ఎప్పటికీ చూడలేరు. కానీ కొన్ని కారణాల వల్ల మీరు మీ ఫంక్షన్లో అండర్-ఎగ్జిక్యూటెడ్ సింబల్ని కాల్ చేస్తే, ఈ గుర్తు ఫంక్షన్ యొక్క అంతర్గత సందర్భంలో ఉన్నట్లు మీరు చూస్తారు. అయినప్పటికీ, డెఫినిషన్ నోట్ప్యాడ్ను ప్రాసెస్ చేస్తున్నప్పుడు, కనీసం ఫంక్షన్కు సంబంధించిన చిహ్నం అయినా ఉంటుంది
ఫంక్షన్ రిపోజిటరీ కొత్త ఫంక్షన్లను నిర్వచించడం కోసం. మరియు ఈ ఫంక్షన్లకు ఎంపికలు ఉండవచ్చు. తరచుగా ఈ పారామితులు (ఉదాహరణకు,
చాలా ఫంక్షన్లు అవి పిలిచిన ప్రతిసారీ ఏమి చేయాలో అవి చేస్తాయి, కానీ కొన్ని ఫంక్షన్లు నిర్దిష్ట సెషన్లో అమలు చేయడానికి ముందు ప్రారంభించాలి - మరియు ఈ సమస్యను పరిష్కరించడానికి, డెఫినిషన్ విభాగంలో "ప్రారంభం" విభాగం ఉంది.
రిపోజిటరీ నుండి విధులు ఇప్పటికే రిపోజిటరీలో ఉన్న ఇతర ఫంక్షన్లను ఉపయోగించవచ్చు; ఒకదానికొకటి సూచించే రెండు (లేదా అంతకంటే ఎక్కువ) ఫంక్షన్లను కలిగి ఉన్న ఫంక్షన్ రిపోజిటరీ కోసం నిర్వచనాలను సెటప్ చేయడానికి, మీరు వాటిని మీ ప్రోగ్రామ్ సెషన్లో తప్పనిసరిగా అమలు చేయాలి, తద్వారా మీరు చేయవచ్చు వాటిపై వంటి సూచన
అభివృద్ధి అవకాశాలు. రిపోజిటరీ నిజంగా పెద్దది అయినప్పుడు ఏమి జరగాలి?
ఈ రోజు మనం Wolfram ఫీచర్ రిపోజిటరీని ప్రారంభిస్తున్నాము, కానీ కాలక్రమేణా దాని పరిమాణం మరియు కార్యాచరణ నాటకీయంగా పెరుగుతుందని మేము భావిస్తున్నాము మరియు ఇది అభివృద్ధి చెందుతున్నప్పుడు మేము ఇప్పటికే ఊహించిన వివిధ సమస్యలు తలెత్తవచ్చు.
మొదటి సమస్య ఫంక్షన్ పేర్లు మరియు వాటి ప్రత్యేకతకు సంబంధించినది. ఫంక్షన్ రిపోజిటరీ వోల్ఫ్రామ్ లాంగ్వేజ్లోని అంతర్నిర్మిత ఫంక్షన్ల వలె, మీరు దాని పేరును పేర్కొనడం ద్వారా ఏదైనా ఫంక్షన్ను సూచించే విధంగా రూపొందించబడింది. కానీ దీని అర్థం రిపోజిటరీ అంతటా ఫంక్షన్ పేర్లు ప్రపంచవ్యాప్తంగా ప్రత్యేకంగా ఉండాలి కాబట్టి, ఉదాహరణకు, ఒకటి మాత్రమే ఉంటుంది
На первый взгляд это может показаться большой проблемой, но стоит понимать, что это в основном та же проблема, что и для таких вещей, как интернет-домены или маркеры социальных сетей. И дело в том, что в системе просто необходимо иметь регистратора — и это одна из ролей, которую наша компания будет выполнять для базы знаний функций Wolfram. (Для частных версий репозитория их регистраторами могут быть администраторы.) Конечно, интернет-домен может быть зарегистрирован, не имея ничего на нем, но в репозитории функций имя функции может быть зарегистрировано только при наличии фактического определения функции.
వోల్ఫ్రామ్ ఫంక్షన్ నాలెడ్జ్ బేస్ను నిర్వహించడంలో మా పాత్రలో భాగం ఏమిటంటే, ఫంక్షన్ యొక్క నిర్వచనం ప్రకారం ఫంక్షన్ కోసం ఎంచుకున్న పేరు లాజికల్గా ఉందని మరియు అది వోల్ఫ్రామ్ లాంగ్వేజ్ నేమింగ్ కన్వెన్షన్లను అనుసరిస్తుందని నిర్ధారించడం. వోల్ఫ్రామ్ లాంగ్వేజ్లో అంతర్నిర్మిత ఫంక్షన్లకు పేరు పెట్టడంలో మాకు 30 సంవత్సరాల అనుభవం ఉంది మరియు మా క్యూరేటర్ల బృందం ఆ అనుభవాన్ని ఫంక్షన్ రిపోజిటరీకి కూడా అందిస్తుంది. వాస్తవానికి, ఎల్లప్పుడూ మినహాయింపులు ఉన్నాయి. ఉదాహరణకు, ఏదైనా ఫంక్షన్కి చిన్న పేరు పెట్టడం ఉత్తమం అనిపించవచ్చు, కానీ మీరు భవిష్యత్తులో ఇలాంటి ఫంక్షన్ పేరుని సృష్టించాలనుకునే వారితో పరుగెత్తే అవకాశం తక్కువగా ఉన్నందున పొడవైన, మరింత నిర్దిష్టమైన పేరుతో "డిఫెండ్" చేయడం మంచిది. .
(Здесь следует отметить, что простое добавление какого-либо тега участника для устранения неоднозначности функций не принесет ожидаемого эффекта. Потому что, если не настаивать на том, чтобы всегда присваивался тег, нужно будет определять тег по умолчанию для любой заданной функции, а также выделять теги автора, что снова потребует глобальной координации.)
వోల్ఫ్రామ్ ఫంక్షన్ల నాలెడ్జ్ బేస్ పెరిగేకొద్దీ, సిస్టమ్ అందించే ఫంక్షన్లను కనుగొనడం అనేది తలెత్తే సమస్యల్లో ఒకటి.
Для встроенных функций в языке Wolfram Language существует так называемый уровень обнаружения, обеспечиваемый
వోల్ఫ్రామ్ ఫంక్షన్ రిపోజిటరీ నిరంతర ఫంక్షన్ రిపోజిటరీగా కాన్ఫిగర్ చేయబడింది, దీనిలో ఏదైనా ఫంక్షన్ ఎల్లప్పుడూ పని చేస్తుంది. వాస్తవానికి, ఫీచర్ల యొక్క కొత్త వెర్షన్లు అందుబాటులోకి రావచ్చు మరియు కొన్ని ఫీచర్లు కాలక్రమేణా వాడుకలో లేనివి అవుతాయని మేము ఆశిస్తున్నాము. ప్రోగ్రామ్లలో ఉపయోగించినట్లయితే ఫంక్షన్లు పని చేస్తాయి, కానీ వాటి డాక్యుమెంటేషన్ పేజీలు కొత్త, మరింత అధునాతన ఫంక్షన్లకు లింక్ చేయబడతాయి.
Wolfram ఫీచర్ రిపోజిటరీ కొత్త ఫీచర్లను త్వరగా కనుగొనడంలో మరియు Wolfram భాషను ఉపయోగించడానికి కొత్త మార్గాలను నేర్చుకోవడంలో మీకు సహాయపడటానికి రూపొందించబడింది. ఫీచర్ రిపోజిటరీలో అన్వేషించబడిన వాటిలో కొన్ని చివరికి కోర్ వోల్ఫ్రామ్ లాంగ్వేజ్లో అంతర్నిర్మిత భాగాలుగా మారడం అర్థవంతంగా ఉంటుందని మేము చాలా ఆశాజనకంగా ఉన్నాము. గత దశాబ్దంలో మేము ఇదే విధమైన సెట్ను కలిగి ఉన్నాము
Здесь самое главное то, что функция в репозитории функций — это то, что доступно каждому пользователю для использования прямо сейчас. Возможно, встроенная функция языка может быть намного лучше и производительнее, но репозиторий функций позволит пользователям сразу получить доступ ко всем новым функциям. И, что особенно важно, эта концепция позволяет каждому добавлять любые свои новые функции.
Раньше в истории языка Wolfram эта идея не заработала бы так хорошо как сейчас, но на данном этапе в язык уже заложено столько усилий, а также настолько глубокое понимание принципов проектирования языка, что теперь видится весьма возможным, чтобы большое сообщество пользователей добавляло функции, которые будут поддерживать согласованность проекта, чтобы сделать их полезными для широкого круга пользователей.
В сообществе пользователей Wolfram Language есть невероятный дух таланта(?). (Разумеется, в это сообщество входят многие ведущие специалисты в области исследований и разработок в самых разных областях.) Надеюсь, что репозиторий функций Wolfram предоставит эффективную платформу для раскрытия и распространения этого духа таланта. Только вместе мы сможем создать нечто, что значительно расширит область, к которой может быть применена вычислительная парадигма языка Wolfram.
За 30 с лишним лет мы прошли долгий путь по языку Wolfram. Теперь вместе, давайте же пойдем еще дальше. Настоятельно призываю всех уважаемых пользователей языка Wolfram во всем мире, использовать в качестве платформы для этого функциональный репозиторий, а также такой новый программный проект, как Free Wolfram Engine для разработчиков.
మూలం: www.habr.com