Сәлем, Хабр! Назарларыңызға Стивен Вольфрамның жазбасының аудармасын ұсынамын
Вольфрам тілінің жүйелілігінің алғы шарттары
Бүгін біз бағдарламалау тілімен бірге үлкен жетістіктердің табалдырығында тұрмыз
Вольфрам функционалдық репозиторийі - бұл Wolfram тілінің тек бағдарламалау тілі ретінде ғана емес, сонымен қатар
Мысалы, Wolfram функциясының репозиторийінде бұрыннан бар
Сол сияқты артық
Бетке өту үшін жоғарыдағы нысанды көшіріңіз (BLOB функциясы), оны енгізу жолына қойыңыз, содан кейін функцияны іске қосыңыз - ол қазірдің өзінде Вольфрам тіліне енгізілген және әдепкі бойынша келесіден бастап қолдау көрсетіледі.
Бұл жерде айта кету керек, бұл өңдеу кезінде
қолдауымен деп үміттенемін
Репозиторийдің функциялары Вольфрам тілінде жазылған шағын немесе үлкен код бөліктерін қамтуы мүмкін. Мысалы, бұл қоңыраулар болуы мүмкін
Wolfram мүмкіндіктер репозиторийінің қабықшасы мен бағдарламалау құрылымы әрбір адам ортақ іске олар үшін ең қарапайым және ыңғайлы жолмен үлес қоса алатындай етіп жасалған - шын мәнінде, жай ғана.
Бұл тәсілде көптеген келіссөздер мен егжей-тегжейлер бар, бірақ біздің мақсатымыз Wolfram мүмкіндіктері репозиторийін пайдаланушы тәжірибесі үшін оңтайландыру және жаңа пайдаланушы мүмкіндіктері тілдің дамуына маңызды үлес қосуын қамтамасыз ету. Біз өсіп келе жатқанда, біз репозиторийге енгізілген функцияларды өңдеу және тексерудің жаңа әдістерін ойлап табуға тура келетініне күмәнданбаймын, сонымен қатар көптеген функцияларды ұйымдастыру және пайдаланушыларға қажет нәрселерді табу үшін ғана емес. Әйтсе де, таңдаған жолымыздың игі бастама екені көңіл қуантады. Мен жеке
Шығындарды азайту кезінде тиімділікті арттыру
Интернетке дейін де Вольфрам тілінің кодын ортақ пайдалану жолдары болған (біздің бірінші ірі орталықтандырылған жобамыз
30 жылдан астам уақыт бойы біздің компания Вольфрам тілі құрылымының тұтастығын сақтау үшін аянбай жұмыс істеді және бұл Вольфрам тілі тек бағдарламалау тілі ғана емес, сонымен қатар
Әрбір функцияның орындалу құрылымында әртүрлі есептеу процестері орын алады. Бұл жерде функцияның анық және біркелкі көрінісі және пайдаланушы үшін көрнекі оқу мүмкіндігі болуы қажет екенін атап өткен жөн. Осы тұрғыда Вольфрам тілінің кіріктірілген функциялары функцияларды қалай дұрыс бағдарламалау керектігінің 6000-нан астам дәйекті мысалдарымен ұсынылған (бұл біздің
Іс жүзінде жақсы жұмыс істейтін репозиторий жасау - қызықты мета-бағдарламалау тапсырмасы. Мысалы, бағдарламадағы шектеулердің асып кетуі алгоритмнің қажетті унификациясы мен әмбебаптығын алуға мүмкіндік бермейді. Функционалдық шектеулердің жеткіліксіз саны сияқты, сіз алгоритмді орындаудың жеткілікті дұрыс дәйектілігін жүзеге асыра алмайсыз. Біздің компания енгізген осы тәсілдердің ымыраға келуінің бірнеше алдыңғы мысалдары айтарлықтай тұрақты жұмыс істеді - бұл:
Жоғарыда келтірілген мысалдардың барлығында іргелі қасиет бар - жобада жиналған объектілер мен функциялар процестерді құрылымдау мен бөлудің өте жоғары дәрежесіне ие. Әрине, демонстрация немесе нейрондық желі немесе басқа нәрсенің құрылымының егжей-тегжейлері әртүрлі болуы мүмкін, бірақ кез келген ағымдағы репозиторийдің негізгі құрылымы әрқашан өзгеріссіз қалады. Сонымен, Wolfram тіліне кеңейтімдерді қосатын осындай репозиторий жасау туралы сіздің пікіріңіз, құрметті қолданушы? Вольфрам тілі өте икемді етіп жасалған, сондықтан оны кез келген жолмен кеңейтуге және өзгертуге болады. Бұл жағдай Вольфрам тілінде әртүрлі ауқымды бағдарламалық жобаларды жылдам жасау мүмкіндігі үшін өте маңызды. Осы жерде айта кететін жайт, тілдің икемділігі артқан сайын мұндай тілде жүзеге асырылатын жобалардың құны да өсетіні сөзсіз. Бұл пайдаланушы мұндай тілді неғұрлым көп пайдаланса, соғұрлым ол арнайы функцияларды алатындығына байланысты, бірақ бұл тәсілдің бағдарламалық модульдердің бірізділігін қамтамасыз ету мүмкін еместігі тұрғысынан жағымсыз жақтары да болуы мүмкін екенін ұмытпаған жөн.
Дәстүрлі бағдарламалау тілдеріндегі кітапханалармен ортақ мәселе бар - егер сіз бір кітапхананы пайдалансаңыз, мысалы, код дұрыс жұмыс істейді, бірақ бірнеше кітапхананы қолдануға тырыссаңыз, олардың бір-бірімен дұрыс әрекеттесетініне кепілдік жоқ. . Сондай-ақ, дәстүрлі бағдарламалау тілдерінде - толыққанды есептеу тілінен айырмашылығы - олардың негізгі құрылымдарынан басқа кез келген функциялар немесе деректер түрлері үшін дәйекті кірістірілген өкілдіктердің болуына кепілдік берудің ешқандай жолы жоқ. Бірақ, шын мәнінде, мәселе бір қарағанда көрінгеннен де үлкен: егер функционалдылықтың кең ауқымды вертикалын құрастыратын болса, онда біз Вольфрам тіліне енгізетін орталықтандырылған жобалық бағдарламалаудың үлкен шығындарынсыз мүмкін емес. жүйелілікке қол жеткізу. Сондықтан барлық бағдарламалық модульдердің әрқашан бірге дұрыс жұмыс істеуі маңызды.
Сонымен, Wolfram мүмкіндіктері репозиторийінің идеясы когерентті модульдер ретінде әзірлеуге оңай жеке мүмкіндіктер арқылы салыстырмалы түрде шағын код бөліктерінде тілге кеңейтімдерді қосу арқылы жоғарыда сипатталған мәселені болдырмау болып табылады. Айтуынша, жеке функцияларды пайдалану арқылы ыңғайлы ету мүмкін емес бағдарламалау мүмкіндіктері бар (және біздің компания ауқымды бағдарламалық пакеттерді енгізуге көмектесу үшін жақын арада оңтайландырылған бағдарламалау алгоритмін шығаруды жоспарлап отыр). Дегенмен, Вольфрам тіліне енгізілген функциялардың негізінде жеке функцияларға негізделген көптеген бағдарламалау мүмкіндіктері бар. Бұл жерде идея мынада: салыстырмалы түрде аз бағдарламалау күш-жігерімен дизайнның жеткілікті үйлесімділігін қамтамасыз ететін бірқатар жаңа және өте пайдалы функцияларды жасауға болады, олар бір-бірімен жақсы үйлестіріледі, сонымен қатар, сонымен қатар, олар болашақта тілде оңай әрі кең қолданысқа ие болады.
Бұл тәсіл, әрине, ымыраға келу. Егер үлкенірек пакет іске асырылса, өте күшті және пайдалы болатын функционалдылықтың жаңа әлемін елестетуге болады. Егер барлық басқалармен үйлесетін жаңа функционалдылықты алу қажет болса, бірақ сіз жобаны әзірлеуге көп күш жұмсағыңыз келмесе, бұл, өкінішке орай, жобаңыздың ауқымын қысқартуға әкелуі мүмкін. Wolfram мүмкіндіктері репозиторийінің идеясы жобаның анықтайтын бөлігіне функционалдылықты қамтамасыз ету болып табылады; бұл тәсіл бағдарламалау жобасында жақсы үйлесімділікті сақтауды жеңілдете отырып, қуатты функционалдылықты қосады.
Функция репозиторийіне теңшелетін функцияларды қосуға көмектесіңіз
Біздің команда пайдаланушыларға Wolfram репозиторийінің мүмкіндіктеріне үлес қосуды жеңілдету үшін көп жұмыс жасады. Жұмыс үстелінде (қазірдің өзінде
Орындауыңыз қажет екі негізгі қадам бар: біріншіден, функцияңыздың кодын жазыңыз, екіншіден, функцияңыз қалай жұмыс істейтінін көрсететін құжаттаманы жазыңыз.
Не істеу керектігінің мысалын көру үшін жоғарғы жағындағы «Үлгіні ашу» түймесін басыңыз:
Негізінде, сіз Вольфрам тіліндегі кірістірілген функцияға ұқсас нәрсені жасауға тырысып жатырсыз. Кірістірілген функциядан әлдеқайда нақты нәрсені жасай алатынын қоспағанда. Сонымен бірге оның толықтығы мен сенімділігіне қатысты күту әлдеқайда төмен болады.
Функцияңызға Вольфрам тілінің функцияларды атау нұсқауларына сәйкес атау беруіңіз керек. Бұған қоса, тілдің кірістірілген функцияларына ұқсас функцияңыз үшін құжаттаманы әзірлеу қажет болады. Бұл туралы кейінірек толығырақ айтамын. Әзірге анықтамалық жазу кітапшасы файлының жоғарғы жағындағы түймелер қатарында түйме бар екенін байқаңыз
Барлығы дұрыс толтырылғанына және дайын екеніңізге сенімді болсаңыз, «Тексеру» түймесін басыңыз. Сіз әлі барлық мәліметтерді түсінбегеніңіз қалыпты жағдай. Осылайша, «Тексеру» функциясы автоматты түрде іске қосылады және көптеген мәнерлер мен дәйектілік тексерулерін жасайды. Көбінесе ол сізге түзетулерді растауды және қабылдауды бірден ұсынады (Мысалы: «Бұл жол қос нүктемен аяқталуы керек» және ол қос нүктені енгізуді ұсынады). Кейде ол сізден бір нәрсе қосуды немесе өзгертуді сұрайды. Біз «Тексеру» түймесінің автоматты функционалдығына үнемі жаңа мүмкіндіктерді қосатын боламыз, бірақ негізінен оның мақсаты мүмкіндіктер репозиторийіне жіберген барлық нәрсенің мүмкіндігінше көп мәнер нұсқауларына сәйкес келуін қамтамасыз ету.
Сонымен, «Тексеруді» іске қосқаннан кейін «Алдын ала қарауды» пайдалануға болады. «Алдын ала қарау» функция үшін анықтаған құжаттама бетін алдын ала қарауды жасайды. Сондай-ақ, компьютерде жасалған файл үшін немесе бұлттық қоймада орналасқан файл үшін алдын ала қарауды жасауға болады. Егер қандай да бір себептермен алдын ала қарауда көргендеріңіз сізді қанағаттандырмаса, жай ғана артқа оралып, қажетті түзетулерді енгізіңіз, содан кейін «Алдын ала қарау» түймесін қайтадан басыңыз.
Енді сіз өзіңіздің функцияңызды репозиторийге енгізуге дайынсыз. Қолдану түймесі төрт опцияны береді:
Бұл қадамдағы маңызды нәрсе - сіз өз функцияңызды Wolfram функциясының репозиторийіне жібере аласыз, осылайша ол кез келген адамға қолжетімді болады. Сонымен қатар, сіз өзіңіздің функцияңызды шектеулі пайдаланушылар саны үшін де орналастыра аласыз. Мысалы, компьютерде жергілікті түрде орналастырылған функцияны жасауға болады, осылайша ол белгілі бір компьютерді пайдаланған кезде қолжетімді болады. Немесе сіз оны өз парақшаңызға жариялай аласыз
Сонымен, сіз өз функцияңызды Wolfram функциясының білім қорына нақты жібергіңіз келеді делік. Ол үшін репозиторийге «Жіберу» түймесін басыңыз. Сонда қазір не болып жатыр? Сіздің өтінішіңізді біздің арнайы кураторлар тобы қарау және бекіту үшін дереу кезекке қояды.
Қолданбаңыз мақұлдау процесінде (әдетте бірнеше күнді алады) өтіп жатқанда, сіз оның күйіне және болашақта пайдалану үшін ұсыныстарға қатысты хабарлама аласыз. Бірақ сіздің мүмкіндік мақұлданғаннан кейін ол дереу Wolfram мүмкіндіктер репозиторийінде жарияланады және кез келген адам пайдалана алады. (Және бұл бетте пайда болады
Қоймада не болуы керек?
Айта кету керек, біздің компания толықтық, сенімділік және жалпы сапа бойынша өте жоғары стандарттарға ие және соңғы 6000+ жыл ішінде біз Вольфрам тіліне енгізген 30+ функцияның барлығы жоғарыда аталған талаптарға сәйкес келеді. Вольфрам функционалдық репозиторийінің мақсаты - мүмкіндігінше жеңілірек функцияларды (яғни, өнімділігі жоғары функцияларды) қосу үшін Вольфрам тілінде бұрыннан бар барлық құрылым мен функцияларды пайдалану.
Әрине, Вольфрам функцияларының репозиторийіндегі функциялар Вольфрам тілінің жобалау принциптеріне сәйкес болуы керек - олар басқа функциялармен және функцияның қалай дұрыс жұмыс істеуі керектігі туралы пайдаланушылардың күтулерімен толық әрекеттесе алады. Дегенмен, функциялардың бірдей толықтығы немесе сенімділігі болуы міндетті емес.
Вольфрам тілінің кіріктірілген функцияларында біз бағдарламалау функцияларын мүмкіндігінше жалпылау үшін көп жұмыс жасаймыз. Айта кету керек, Wolfram функциясының репозиторийінде өте нақты, бірақ пайдалы жағдайды өңдейтін функцияның болуының ешбір қатесі жоқ. Мысалы, функция
Кірістірілген функцияларға қатысты тағы бір мәселе, біздің компания барлық атипикалық жағдайларды өңдеуге, қате енгізуді дұрыс өңдеуге және т.б. Функциялар репозиторийінде мәселені шешудің негізгі жағдайларын өңдейтін және қалғандарының барлығын елемейтін арнайы функцияның болуы әбден қалыпты жағдай.
Көрінетін мәселе, көбірек орындайтын және оны жақсырақ орындайтын функциялардың болғаны жақсы, бірақ функция репозиторийіне арналған оңтайландыру - Вольфрам тілінің кіріктірілген функцияларына қарағанда - тереңірек емес, көбірек функциялармен біріктірілген көбірек функцияларға ие болуы керек. әрбір нақты функцияны іске асыру процестері.
Енді репозиторийдегі функцияларды тестілеудің мысалын қарастырайық. Мұндай функциялар үшін жүйелілік күтулері, әрине, кірістірілген тіл функцияларына қарағанда әлдеқайда төмен. Бұл, әсіресе, функциялар API сияқты сыртқы ресурстарға тәуелді болған жағдайда, тексеру алгоритмдерінде автоматты түрде орындалатын дәйекті сынақтарды үнемі жүргізу маңызды. nb файлында анықтамаларды анық көрсетуге болады (Қосымша ақпарат бөлімінде) және енгізу және шығару жолдарымен немесе түрдегі толық таңба нысандарымен анықталғандай көп сынақтарды көрсетуге болады.
Нәтижесінде функция репозиторийінде іске асырудың бірқатар күрделілігі болады. Кейбіреулер кодтың бір жолы ғана болады, басқалары мыңдаған немесе он мыңдаған жолдарды қамтуы мүмкін, мүмкін көптеген көмекші функцияларды пайдаланады. Анықтау үшін өте аз кодты қажет ететін функцияны қашан қосу керек? Негізінде, егер функция үшін болса
Функциялар репозиторийінің негізгі мақсаты (аты айтып тұрғандай) тілге жаңа мүмкіндіктерді енгізу. Жаңа деректерді қосқыңыз келсе немесе
Іс жүзінде екі жол бар. Функция репозиторийіндегі жаңа функцияларда қолданылатын жаңа нысан түрін енгізгіңіз келуі мүмкін. Және бұл жағдайда сіз әрқашан оның символдық көрінісін жазып, оны функция репозиторийіне функцияларды енгізу немесе шығару кезінде пайдалануға болады.
Бірақ егер сіз объектіні ұсынып, содан кейін Вольфрам тіліндегі бар функциялар арқылы онымен жұмыс істегіңіз келетінін анықтағыңыз келсе ше? Вольфрам тілінде бұл үшін әрқашан жеңіл механизм болды
Сонымен, функция репозиторийіндегі функция кодында не болуы мүмкін?
Вольфрам мүмкіндіктері репозиторийінің барлық коды Вольфрамда жазылуы керек пе? Әрине, сыртқы API ішіндегі код Wolfram тілінде жазылмауы керек, ол тіпті тіл кодын жасамайды. Іс жүзінде кез келген дерлік сыртқы тілде немесе кітапханада функцияны тапсаңыз, оны Wolfram функциясының репозиторийінде пайдалануға мүмкіндік беретін қаптама жасауға болады. (Әдетте бұл үшін кірістірілген функцияларды пайдалану керек
Сонда мұны істеудің мәні неде? Негізінде, бұл Wolfram Language интеграцияланған жүйесін және оның бағдарламалық қамтамасыз ету мүмкіндіктерінің тұтас жиынтығын пайдалануға мүмкіндік береді. Негізгі іске асыруды сыртқы кітапханадан немесе тілден алсаңыз, пайдаланушыларға бұрыннан іске асырылған кез келген функцияны оңай пайдалануға мүмкіндік беретін ыңғайлы жоғарғы деңгейлі функцияны жасау үшін Вольфрам тілінің бай символдық құрылымын пайдалана аласыз. Кем дегенде, бұл жүктеу кітапханаларының барлық құрылымдық блоктары және т.б. бар идеалды әлемде мүмкін болуы керек, бұл жағдайда олар Вольфрам тілімен автоматты түрде өңделеді. (Тәжірибеде проблемалар болуы мүмкін екенін атап өткен жөн
Айтпақшы, әдеттегі сыртқы кітапханаларды бірінші рет қараған кезде, олар көбінесе бірнеше функцияларды қамту үшін тым күрделі болып көрінеді, бірақ көп жағдайда күрделіліктің көп бөлігі кітапханаға қажетті инфрақұрылымды және барлық функцияларды жасаудан туындайды. оны қолдаңыз. Дегенмен, Wolfram тілін пайдаланған кезде, инфрақұрылым әдетте пакеттерге салынған, сондықтан осы қолдау функцияларының барлығын егжей-тегжейлі көрсетудің қажеті жоқ, тек кітапханадағы «ең жоғарғы» қолданбаға тән функциялар үшін функцияларды жасаңыз. .
Білім қорының «экожүйесі».
Егер сіз үнемі қолданатын функцияларды жазған болсаңыз, оларды Wolfram функциясының репозиторийіне жіберіңіз! Бұдан басқа бірдеңе шықпаса (тілді дамыту), сонда да жеке пайдалану үшін функцияларды пайдалану сізге әлдеқайда ыңғайлы болады. Дегенмен, егер сіз функцияларды үнемі пайдалансаңыз, басқа пайдаланушылар да оларды пайдалы деп санау қисынды.
Әрине, сіз өз функцияларыңызды бөлісе алмайтын немесе қаламайтын жағдайға тап болуыңыз мүмкін немесе жеке ақпараттық ресурстарға қол жеткізген жағдайда. Тіпті мұндай жағдайларда сіз өзіңіздің бұлттық тіркелгіңізде функцияларды жай ғана қолдана аласыз,
Wolfram функцияларының репозиторийіне жіберетін функциялар мінсіз болуы міндетті емес; олар тек пайдалы болуы керек. Бұл Unix классикалық құжаттамасындағы «Қателер» бөліміне ұқсайды – «Анықтамалар бөлімінде» функцияңыз туралы бұрыннан білетін шектеулерді, мәселелерді және т.б. сипаттауға болатын «Авторлық ескертпелер» бөлімі бар. Оған қоса, мүмкіндікті репозиторийге жіберген кезде арнайы кураторлар тобы оқитын жіберу жазбаларын қосуға болады.
Мүмкіндік жарияланғаннан кейін оның бетінде әрқашан төменгі жағында екі сілтеме болады: "
Кейде сіз Wolfram функциясының репозиторийіндегі функцияларды, мысалы, кірістірілген функцияларды, олардың кодын қарамай ғана пайдаланғыңыз келеді. Дегенмен, ішін көргіңіз келсе, әрқашан жоғарғы жағында Блокнот түймесі бар. Оны басыңыз және мүмкіндік репозиторийіне жіберілген түпнұсқа анықтамалық жазу кітапшасының жеке көшірмесін аласыз. Кейде сіз оны өз қажеттіліктеріңізге мысал ретінде пайдалана аласыз. Сонымен қатар, сіз осы функцияның өзіңіздің модификациясын жасай аласыз. Компьютеріңіздегі репозиторийден немесе aphid бұлтты сақтау тіркелгісінде тапқан осы функцияларды жариялағыңыз келуі мүмкін, мүмкін оларды бастапқы функцияның жақсартылған, кеңейтілген нұсқасы ретінде функциялар туралы білім қорына жібергіңіз келуі мүмкін.
Болашақта біз мүмкіндіктер репозиторийлері үшін Git стиліндегі форкингті қолдауды жоспарлап отырмыз, бірақ әзірге біз оны қарапайым ұстауға тырысамыз және бізде әрқашан тілге енгізілген әрбір мүмкіндіктің бір ғана қабылданған нұсқасы болады. Көбінесе (әзірлеушілер өздері әзірлеген мүмкіндіктерді сақтаудан бас тартпаса және пайдаланушының жіберулеріне жауап бермесе), мүмкіндіктің түпнұсқа авторы оған жаңартуларды бақылауға алады және жаңа нұсқаларды жібереді, содан кейін олар қаралады және егер олар тексеру процесінен өтсе. , тілінде жарияланған.
Әзірленген функцияларды «нұсқалау» қалай жұмыс істейтіні туралы мәселені қарастырайық. Дәл қазір функция репозиторийінен функцияны пайдаланған кезде оның анықтамасы компьютерде (немесе бұлтты пайдалансаңыз, бұлттық тіркелгіде) тұрақты сақталады. Мүмкіндіктің жаңа нұсқасы қол жетімді болса, оны келесі рет пайдаланған кезде сізге бұл туралы хабарлайтын хабарлама келеді. Ал егер функцияны жаңа нұсқаға жаңартқыңыз келсе, оны пәрмен арқылы орындауға болады
Wolfram Функциялар Репозиторийі туралы әдемі нәрселердің бірі - кез келген Wolfram Language бағдарламасы кез келген жерде оның функцияларын пайдалана алады. Егер бағдарлама блокнотта пайда болса, репозитарий функцияларын оңай оқылатын "функцияның екілік нысаны" функциялары ретінде пішімдеу жиі ыңғайлы (мүмкін сәйкес нұсқалар жиынтығымен).
Функция репозиторийіндегі кез келген функцияға мәтінді пайдаланып әрқашан қол жеткізе аласыз
Бұл қалай жұмыс істейді?
Вольфрам репозиторийіндегі функциялардың ішінде дәл солай қолдануға болады
Қарастырыңыз
Ішінде функцияны пайдаланып кейбір ақпаратты көруге болады
Ресурс функциясын орнату қалай жұмыс істейді? Ең қарапайымы – таза жергілікті жағдай. Мұнда функцияны қабылдайтын (бұл жағдайда тек таза функция) және оны берілген бағдарлама сеансы үшін ресурс функциясы ретінде анықтайтын мысал келтірілген:
Анықтаманы жасағаннан кейін ресурс функциясын пайдалануға болады:
Бұл функция блогында қара белгіше бар екенін ескеріңіз . Бұл BLOB функциясы ағымдағы сеанс үшін анықталған жадтағы ресурс функциясына қатысты екенін білдіреді. Компьютерде немесе бұлт тіркелгісінде тұрақты сақталатын ресурс мүмкіндігінде сұр белгіше бар . Wolfram мүмкіндіктері репозиторийінде ресми ресурс мүмкіндігінің қызғылт сары белгішесі бар .
Анықтама жазу кітапшасындағы Кеңейту мәзірін пайдаланғанда не болады? Біріншіден, ол блокноттағы барлық анықтамаларды алады және олардан символдық жасайды
Функцияны компьютердегі репозиторийден жергілікті орналастыру пәрмен арқылы орындалады
Функциялар репозиторийі үшін Жіберу түймесін бассаңыз, оның астында не болады
Әдепкі бойынша, жіберулер Wolfram идентификаторыңызбен байланыстырылған атпен жасалады. Бірақ егер сіз әзірлеу тобының немесе ұйымның атынан өтінім жіберіп жатсаңыз, жасай аласыз
Функцияларыңыздың кез келгенін функционалдық білім қорына жібергеннен кейін ол тексеру үшін кезекке қойылады. Жауап ретінде түсініктемелер алсаңыз, олар әдетте қосымша «түсініктеме ұяшықтары» қосылған мәтіндік файл түрінде болады. Сіз әрқашан кіру арқылы өтінішіңіздің күйін тексере аласыз
Жұмыстағы кейбір нәзіктіктер
Бір қарағанда, сіз жай ғана анықтамалық жазу кітапшасын алып, оны функционалдық репозиторийге сөзбе-сөз қоюға болатын сияқты көрінуі мүмкін, дегенмен, шын мәнінде көптеген нәзіктіктер бар - және оларды өңдеу өте күрделі мета-бағдарламалауды, символдық өңдеуді талап етеді. функциясын анықтайтын код ретінде және Блокноттың өзі анықталады. Мұның көпшілігі іште, сахна артында орын алады, бірақ егер сіз мүмкіндіктер туралы білім базасына үлес қосқыңыз келсе, оның түсінуге тұрарлық кейбір салдары болуы мүмкін.
Бірінші шұғыл нәзіктік: Анықтау жазу кітапшасын толтырған кезде, сияқты атауды пайдаланып, барлық жерде функцияңызға сілтеме жасай аласыз. MyFunction, ол Вольфрам тіліндегі функцияның әдеттегі атауы сияқты көрінеді, бірақ функция репозиторийінің құжаттамасы үшін бұл ауыстырылады
Екінші нәзіктік: Анықтау жазу кітапшасынан ресурс функциясын жасағанда, функция анықтамасына қатысатын барлық тәуелділіктер түсіріліп, анық түрде қосылуы керек. Дегенмен, анықтамалардың модульдік болып қалуын қамтамасыз ету үшін бәрін бірегей етіп қою керек
Әдетте бұл аттар кеңістігін конфигурациялау үшін пайдаланылатын кодтың ізін ешқашан көрмейсіз. Бірақ қандай да бір себептермен функцияның ішінде орындалмаған символды шақырсаңыз, онда бұл таңба функцияның ішкі контекстінде екенін көресіз. Дегенмен, анықтамалық блокнотты өңдеу кезінде, кем дегенде, функцияның өзіне сәйкес таңба болады
Функция репозиторийі жаңа функцияларды анықтауға арналған. Және бұл функциялардың опциялары болуы мүмкін. Көбінесе бұл параметрлер (мысалы,
Функциялардың көпшілігі шақырылған сайын орындауы тиіс нәрсені жай ғана орындайды, бірақ кейбір функциялар белгілі бір сеанста іске қосылмас бұрын инициализациялануы керек – және бұл мәселені шешу үшін Анықтама бөлімінде «Инициализация» бөлімі бар.
Репозиторийдің функциялары репозиторийде бұрыннан бар басқа функцияларды пайдалана алады; бір-біріне сілтеме жасайтын екі (немесе одан да көп) функцияларды қамтитын функция репозиторийіне анықтамаларды орнату үшін оларды бағдарлама сеансында орналастыру керек, осылайша сіз олардағы сияқты сілтеме
Даму перспективалары. Репозиторий шынымен үлкен болған кезде не болуы керек?
Бүгін біз Wolfram мүмкіндіктері репозиторийін енді ғана іске қосып жатырмыз, бірақ уақыт өте келе оның көлемі мен функционалдығы күрт ұлғаюы мүмкін деп күтеміз және ол даму барысында өскен сайын біз күткен әртүрлі мәселелер туындауы мүмкін.
Бірінші мәселе функция атауларына және олардың бірегейлігіне қатысты. Функциялар репозиторийі Вольфрам тіліндегі кірістірілген функциялар сияқты кез келген берілген функцияға оның атын көрсету арқылы сілтеме жасай алатындай етіп жасалған. Бірақ бұл сөзсіз функция атаулары репозиторийде ғаламдық бірегей болуы керек дегенді білдіреді, осылайша, мысалы, бір ғана болуы мүмкін.
Бұл бастапқыда үлкен мәселе болып көрінуі мүмкін, бірақ бұл негізінен интернет домендері немесе әлеуметтік медиа тұтқалары сияқты нәрселермен бірдей мәселе екенін түсінген жөн. Және бұл жүйеде жай ғана тіркеуші болуы керек - бұл біздің компания Wolfram функциясының білім базасы үшін атқаратын рөлдердің бірі. (Репозиторийдің жеке нұсқалары үшін олардың тіркеушілері әкімшілер болуы мүмкін.) Әрине, Интернет доменін ешнәрсесіз тіркеуге болады, бірақ функция репозиторийінде функция атауын нақты анықтамасы болған жағдайда ғана тіркеуге болады. функциясы.
Вольфрам функциясының білім қорын басқарудағы біздің рөліміздің бір бөлігі функция үшін таңдалған атау функцияның анықтамасын ескере отырып логикалық болуын және оның Вольфрам тілінің атау конвенцияларына сәйкес келуін қамтамасыз ету болып табылады. Бізде Вольфрам тілінде кіріктірілген функцияларды атауда 30 жылдан астам тәжірибеміз бар және біздің кураторлар тобы бұл тәжірибені функциялар репозиторийіне де жеткізеді. Әрине, әрқашан ерекше жағдайлар болады. Мысалы, қандай да бір функцияның қысқа атауы болғаны дұрыс болып көрінуі мүмкін, бірақ ұзағырақ, нақтырақ атаумен «қорғау» жақсырақ, өйткені болашақта осыған ұқсас функция атауын жасағысы келетін біреуді кездестіру ықтималдығы аз. .
(Функцияларды ажырату үшін жай ғана кейбір мүше тегін қосу жоспарланған нәтижеге ие болмайтынын ескеру қажет. Өйткені әрқашан тег тағайындауды талап етпесеңіз, кез келген берілген функция үшін әдепкі тегті анықтауыңыз керек, сонымен қатар автор тегтерін бөлуіңіз керек. , бұл тағы да жаһандық үйлестіруді қажет етеді.)
Вольфрам функцияларының білім базасы ұлғайған сайын, туындауы мүмкін мәселелердің бірі функциялардың ашылуы болып табылады, олар үшін жүйе
Вольфрам тіліндегі кірістірілген функциялар үшін қамтамасыз ететін анықтау қабаты бар
Wolfram функциясының репозиторийі тұрақты функция репозиторийі ретінде конфигурацияланған, ондағы кез келген функция әрқашан жұмыс істейді. Әрине, мүмкіндіктердің жаңа нұсқалары қол жетімді болуы мүмкін және кейбір мүмкіндіктер уақыт өте келе ескіреді деп күтеміз. Функциялар бағдарламаларда пайдаланылса жұмыс істейді, бірақ олардың құжаттама беттері жаңа, жетілдірілген функцияларға сілтеме жасайды.
Wolfram мүмкіндіктері репозиторийі жаңа мүмкіндіктерді жылдам ашуға және Вольфрам тілін пайдаланудың жаңа жолдарын үйренуге көмектесу үшін жасалған. Функциялар репозиторийінде зерттелгендердің кейбірі ақыр соңында негізгі Вольфрам тілінің кіріктірілген бөліктеріне айналуы мүмкін деген оптимистік сенім бар. Соңғы онжылдықта бізде осындай жиын болды
Мұндағы ең маңызды нәрсе - функция репозиторийіндегі функция дәл қазір әрбір пайдаланушы үшін қол жетімді нәрсе. Ана тілінің мүмкіндігі әлдеқайда жақсырақ және тиімдірек болуы мүмкін, бірақ мүмкіндіктер репозиторийі пайдаланушыларға барлық жаңа мүмкіндіктерге бірден қол жеткізуге мүмкіндік береді. Және, ең бастысы, бұл тұжырымдама әркімге қалаған кез келген жаңа мүмкіндіктерді қосуға мүмкіндік береді.
Бұрынғы Вольфрам тілінің тарихында бұл идея бұрынғыдай жақсы жұмыс істемейтін еді, бірақ бұл кезеңде тілге көп күш жұмсалғаны сонша, тілдің дизайн принциптерін терең түсінгендіктен, ол қазір өте маңызды болып көрінеді. пайдаланушылардың үлкен қауымдастығы оларды пайдаланушылардың кең ауқымына пайдалы ету үшін дизайн сәйкестігін сақтайтын мүмкіндіктерді қосуы мүмкін.
Wolfram Language пайдаланушылар қауымдастығында керемет талант рухы(?) бар. (Әрине, бұл қауымдастық әртүрлі салалардағы көптеген жетекші ғылыми-зерттеу және тәжірибелік-конструкторлық жұмыстарды қамтиды.) Вольфрам мүмкіндіктері репозиторийі осы талант рухын ашу және тарату үшін тиімді платформа береді деп үміттенемін. Тек бірге ғана біз Вольфрам тілінің есептеу парадигмасын қолдануға болатын аумақты айтарлықтай кеңейтетін нәрсені жасай аламыз.
30 жылдан астам уақыт ішінде біз Вольфрам тілімен ұзақ жолдан өттік. Енді бірге, одан да әрі қарай жүрейік. Мен бүкіл әлем бойынша Вольфрам тілінің барлық құрметті пайдаланушыларын функционалдық репозиторийді платформа ретінде, сондай-ақ әзірлеушілерге арналған тегін Wolfram қозғалтқышы сияқты жаңа бағдарламалық жасақтама жобасын пайдалануға шақырамын.
Ақпарат көзі: www.habr.com