Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Салом, Хабр! Ман ба таваҷҷӯҳи шумо тарҷумаи навиштаи Стивен Волфрамро пешкаш мекунам "Анбори Функсияи Волфрам: Оғози платформаи кушода барои васеъ кардани забони Волфрам".

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Шартҳои мутобиқати забони Волфрам

Имрӯз мо якҷоя бо забони барномасозӣ дар остонаи дастовардҳои бузург қарор дорем Забони Волфрам. Ҳамагӣ се ҳафта пеш мо оғоз кардем озод муҳаррики Wolfram барои таҳиягаронто ба корбарони мо дар ҳамгироӣ кардани забони Wolfram ба лоиҳаҳои нармафзори бузурги худ. Имрӯз мо оғоз мекунем Анбори функсияи Wolfram, бо мақсади фароҳам овардани як платформаи ҳамоҳангшуда барои функсияҳое, ки барои васеъ кардани забони Волфрам сохта шудаанд ва мо инчунин як анбори функсияҳоро барои ҳар касе, ки метавонад дар таҳияи маҳсулоти нармафзори мо саҳм гузорад, кушоем.

Анбори Функсияҳои Волфрам чизест, ки бо табиати беназири забони Волфрам на танҳо ҳамчун забони барномасозӣ, балки ҳамчун забони барномасозӣ имконпазир аст. забони ҳисоббарории мукаммал. Дар забонҳои анъанавии барномасозӣ, илова кардани функсияҳои нави назаррас одатан эҷоди тамоми китобхонаҳои иловагиро дар бар мегирад, ки ҳангоми якҷоя истифода бурдан мумкин аст ё кор накунанд. Бо вуҷуди ин, дар забони Wolfram ин кадар дар худи забон аллакай сохта шудааст, ки имкон дорад, ки функсияи онро тавассути илова кардани функсияҳои нав, ки фавран ба сохтори якпорчагии тамоми забон ворид карда мешаванд, ба таври назаррас васеъ кард.

Масалан, анбори функсияи Wolfram аллакай дорои 532 хусусиятҳои нав ба 26 категорияи мавзӯӣ сохторбандӣ шудааст:

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Ба ҳамин монанд бештар аз 6000 функсияҳои стандартӣ, ки ба забони Волфрам сохта шудааст, ҳар як функсия аз анбор дорои саҳифаи ҳуҷҷатгузорӣ бо тавсифи муфассали онҳо ва намунаҳои кор мебошад:

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Барои ворид шудан ба саҳифа, объекти дар боло зикршударо нусхабардорӣ кунед (функсияи BLOB), онро ба хати вуруд часбонед ва он гоҳ функсияро иҷро кунед - он аллакай дар забони Волфрам сохта шудааст ва аз рӯи нобаёнӣ аз он дастгирӣ карда мешавад. нусхаи 12.0:

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Дар ин чо бояд кайд кард, ки хангоми коркард LogoQRCcode Масалан, ба шумо лозим нест, ки "китобхонаи коркарди тасвирҳо" таъсис диҳед - зеро мо аллакай як роҳи алгоритмии пайваста ва бодиққатро дар забони Wolfram татбиқ кардаем. коркарди тасвир, ки онро фавран бо функсияҳои гуногуни забони графикӣ коркард кардан мумкин аст:

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Умедворам, ки бо дастгирии ҷомеаи аҷиб ва боистеъдод, ки дар тӯли чанд даҳсолаи охир афзоиш ва густариш меёбад (дар асоси забони Волфрам). Анбори функсияҳои Wolfram имкон медиҳад, ки дар ояндаи наздик доираи функсияҳои (эҳтимолан эҳтимолан муҳим, махсусгардонидашуда дар соҳаҳои гуногуни илм ва технология) дар забон хеле васеъ карда шаванд. Ҳамин тариқ, имкон пайдо мешавад, ки ҳам мундариҷаи забон (функсияҳои дохилии он) ва ҳам принципхои тараккиёт, ки дар асоси забон амалй мегарданд. (Дар ин ҷо бояд қайд кард, ки забони Волфрам аллакай зиёда аз Таърихи 30-солаи тараккиёт ва афзоиши устувор).
Функсияҳои репозиторӣ метавонанд қисмҳои хурд ё калони кодро дар бар гиранд, ки бо забони Волфрам навишта шудаанд. Масалан, инҳо метавонанд зангҳо бошанд API ва хидматҳои беруна ё китобхонаҳои беруна бо забонҳои дигар. Хусусияти беназири ин равиш дар он аст, ки вақте ки шумо ба функсионалии сатҳи корбар ворид мешавед, номутобиқатии эҳтимолӣ вуҷуд нахоҳад дошт, зеро равиш дар болои сохтори пайвастаи забони Вольфрам сохта шудааст - ва ҳар як функсия ба таври худкор дуруст кор мекунад - маҳз ҳамон тавре ки ният дорад, вай бояд.
Сохтори ниҳонӣ ва барномасозии анбори Функсияи Wolfram тавре тарҳрезӣ шудааст, ки ҳама метавонанд дар кори умумӣ бо роҳи соддатарин ва қулай барои онҳо саҳм гузоранд - дар асл, танҳо бо пур кардани файли матнии блокнот (бо тамдиди nb) WL. Функсияҳои автоматии дарунсохт ба шумо имкон медиҳанд, ки функсияҳои нави ба анбор иловашударо тафтиш кунед, то интегратсияи онҳоро ба забон таъмин кунед. Ширкати мо ба доираи васеи корбароне, ки метавонанд функсияҳои худро ба забон муттаҳид кунанд, шартгузорӣ мекунад, на ба мураккабии зиёди функсияҳои нав - ва гарчанде ки раванди бознигарӣ вуҷуд дорад, мо ба ҳеҷ чиз пофишорӣ намекунем. таҳлили бодиққат тарҳрезӣ ё стандартҳои қатъӣ барои пуррагӣ ва эътимоднокии хусусиятҳои нави корбар, бар хилофи санҷиши ҷиддитаре, ки дар забони аслӣ, ки мо истифода мебарем.

Дар ин равиш тафсилот ва тафсилоти зиёде мавҷуданд, аммо ҳадафи мо оптимизатсия кардани анбори хусусиятҳои Wolfram ҳам барои таҷрибаи корбар ва таъмини он аст, ки хусусиятҳои нави корбар дар рушди забон саҳмгузор бошанд. Вақте ки мо ба воя мерасем, ман шубҳа надорам, ки мо бояд усулҳои нави коркард ва тасдиқи функсияҳоеро, ки дар анбор сохта шудаанд, ихтироъ кунем, на ҳадди аққал барои ташкили шумораи зиёди функсияҳо ва дарёфти он чизҳое, ки ба корбарон лозиманд. Бо вуҷуди ин, рӯҳбаландкунанда аст, ки роҳи интихобкардаи мо оғози хуб аст. Ман шахсан якчанд хусусият илова кард ба базаи аслӣ. Бисёре аз онҳо ба коде асос ёфтаанд, ки ман шахсан муддати тӯлонӣ таҳия кардаам. Ва ба ман танҳо чанд дақиқа лозим шуд, то онҳоро ба анбор тела диҳам. Ҳоло, ки онҳо дар анбор ҳастанд, ман дар ниҳоят метавонам - фавран ва дар вақти дилхоҳ - ин функсияҳоро дар ҳолати зарурӣ бидуни ташвиш дар бораи ҷустуҷӯи файлҳо, зеркашии бастаҳо ва ғайра истифода барам.

Баланд бардоштани самаранокӣ ҳангоми кам кардани хароҷот

Ҳатто пеш аз пайдо шудани Интернет, роҳҳои мубодилаи коди забони Wolfram вуҷуд доштанд (аввалин лоиҳаи мутамаркази мо буд MathSource, барои Mathematica соли 1991 дар асоси CD-ROM ва ғайра сохта шудааст). Албатта, равиши пешниҳодшуда барои татбиқ дар асоси репозиторий функсияи Wolfram воситаи пурқувваттар ва боэътимод барои иҷрои вазифаҳои дар боло зикршуда мебошад.

Дар тӯли зиёда аз 30 сол, ширкати мо барои нигоҳ доштани якпорчагии сохтори забони Wolfram боғайратона кор мекард ва ин барои таъмини он муҳим аст, ки забони Волфрам на танҳо ба забони барномасозӣ, балки ба забони барномасозӣ табдил ёбад. забони мукаммали ҳисоббарор. Ва ҳамин тавр, моҳияти бархӯрд ба татбиқи анбори функсияҳои Волфрам аз истифодаи равиши ягона барои барномасозӣ ва таҳияи функсияҳои нав иборат аст, ки пайдарпай илова карда мешаванд ва ба чаҳорчӯбаи забон мувофиқат мекунанд, то он тавонад рушд ва таҳаввул кунад.

Дар сохтори амалисозии ҳар як функсия равандҳои гуногуни ҳисоббарорӣ ба амал меоянд. Дар ин ҷо бояд қайд кард, ки функсия барои корбар намуди равшан ва якхела ва хониши визуалӣ дошта бошад. Дар ин замина, функсияҳои дарунсохташудаи забони Волфрам бо зиёда аз 6000 мисолҳои пайдарпай оид ба тарзи дурусти барномарезии функсияҳо оварда шудаанд (инҳо видеоҳои барномасозии зиндаки дар бар мегиранд садҳо соат раванди эҷоди барномаҳои стандартӣ). Он чизе, ки ин равиш дар ниҳояти кор анбори хусусиятҳои Wolframро қодир мекунад, ки хуб кор кунад, табиати сохтории забони Вулфрам бо шумораи зиёди китобхонаҳои иловагӣ ва гуногунҷанбаи он мебошад, ки аллакай дар ин забон сохта шудаанд. Масалан, агар шумо функсияе дошта бошед, ки тасвирҳоро коркард мекунад ё массивҳои камёфтё сохторҳои молекулавӣ, инчунин маълумоти ҷуғрофӣ ё баъзеи дигар - намояндагии пайгиронаи рамзӣ дар забон аллакай вуҷуд дорад ва ба шарофати ин функсияи шумо фавран бо дигар вазифаҳои забон мувофиқ мешавад.

Эҷоди як анборе, ки воқеан хуб кор мекунад, як вазифаи ҷолиби мета-барномасозӣ аст. Масалан, зиёд будани маҳдудиятҳо дар барнома имкон намедиҳад, ки ягонагии зарурӣ ва универсалии алгоритм ба даст оварда шавад. Тавре ки шумораи нокифояи маҳдудиятҳои функсионалӣ, шумо наметавонед пайдарпайии дурусти иҷрои алгоритмро амалӣ кунед. Якчанд мисолҳои қаблии татбиқи созиши ин равишҳо, ки ширкати мо амалӣ кардааст, хеле устувор кор карданд - инҳоянд: Лоиҳаи намоишҳои вольфрам, соли 2007 ба кор даромад ва ҳоло бо зиёда аз 12000 XNUMX намоишҳои интерактивии корбар онлайн кор мекунад. ДАР Пойгоҳи базаи Wolfram зиёда аз 600 пойгоҳи додаҳои омода мавҷуд аст, ки онҳоро бо забони Волфрам истифода бурдан мумкин аст ва Анбори шабакаи нейронии Wolfram қариб ҳар ҳафта бо шабакаҳои нави нейронӣ пур карда мешавад (ҳоло 118-тои онҳо вуҷуд доранд) ва онҳо фавран тавассути функсия пайваст карда мешаванд. NetModel дар забони Волфрам.

Ҳамаи мисолҳои дар боло овардашуда хусусияти бунёдӣ доранд - объектҳо ва функсияҳои дар лоиҳа ҷамъовардашуда дараҷаи хеле баланди сохтор ва тақсимоти равандҳо доранд. Албатта, тафсилоти сохтори намоишӣ ё шабакаи нейрон ё чизи дигар метавонад хеле фарқ кунад, аммо сохтори бунёдии ҳама гуна анбори ҷорӣ ҳамеша як хел боқӣ мемонад. Пас назари шумо, корбари мӯҳтарам, дар бораи эҷоди чунин як анборе, ки ба забони Волфрам васеъшавӣ илова мекунад, чӣ гуна аст? Забони Wolfram барои хеле чандир тарҳрезӣ шудааст, аз ин рӯ онро метавон бо ҳар роҳ васеъ ва тағир дод. Ин ҳолат барои қобилияти зуд эҷод кардани лоиҳаҳои гуногуни нармафзори калонҳаҷм дар забони Wolfram хеле муҳим аст. Дар ин ҷо бояд қайд кард, ки баробари зиёд шудани чандирии забон, арзиши лоиҳаҳое, ки бо чунин забон амалӣ мешаванд, ҳатман боло меравад. Ин аз он сабаб аст, ки корбар ҳар қадар аз чунин забон истифода кунад, ҳамон қадар функсияҳои бахшидашуда ба даст меорад, аммо набояд фаромӯш кард, ки ин равиш дар робита ба таъмини пайвастагии пайвастаи модулҳои барномавӣ паҳлӯҳои манфӣ низ дошта метавонад.

Мушкилоти умумӣ бо китобхонаҳо дар забонҳои барномасозии анъанавӣ вуҷуд дорад - агар шумо як китобхонаро истифода баред, масалан, код дуруст кор мекунад, аммо агар шумо кӯшиш кунед, ки китобхонаҳои сершуморро истифода баред, ҳеҷ кафолате нест, ки онҳо бо ҳамдигар дуруст кор мекунанд . Инчунин, дар забонҳои анъанавии барномасозӣ - бар хилофи забони мукаммали ҳисоббарорӣ - ҳеҷ роҳе барои кафолат додани мавҷудияти намояндагиҳои пайвастаи дарунсохт барои ҳама гуна функсияҳо ё намуди додаҳо, ғайр аз сохторҳои асосии онҳо вуҷуд надорад. Аммо, дар асл, мушкилот ҳатто бузургтар аз он аст, ки дар назари аввал ба назар мерасад: агар касе амудии васеъмиқёси функсионалӣ бунёд кунад, пас бидуни хароҷоти бузурги барномасозии мутамаркази лоиҳа, ки мо ба забони Волфрам мегузорем, имконнопазир аст. ба муттасил ноил гарданд. Бинобар ин муҳим аст, ки ҳамаи модулҳои нармафзор ҳамеша якҷоя дуруст кор кунанд.

Ҳамин тавр, идеяи паси анбори хусусиятҳои Wolfram ин пешгирӣ кардани мушкилоти дар боло зикршуда тавассути илова кардани васеъшавӣ ба забон дар қисмҳои нисбатан хурди код тавассути хусусиятҳои инфиродӣ, ки ҳамчун модулҳои мувофиқ таҳия кардан осонтар аст. Гуфта мешавад, хусусиятҳои барномасозӣ мавҷуданд, ки онҳоро бо истифода аз функсияҳои инфиродӣ қулай кардан мумкин нест (ва ширкати мо ният дорад дар ояндаи наздик як алгоритми барномасозии оптимизатсияро нашр кунад, то дар татбиқи бастаҳои бузурги нармафзор кӯмак расонад). Аммо, дар асоси функсияҳое, ки аллакай дар забони Волфрам сохта шудаанд, имкониятҳои зиёди барномасозӣ мавҷуданд, ки дар асоси функсияҳои инфиродӣ амалӣ карда мешаванд. Идеяи ин ҷо дар он аст, ки бо кӯшиши нисбатан ками барномасозӣ метавон як қатор функсияҳои нав ва хеле муфидро эҷод кард, ки мутобиқати кофии тарҳро таъмин кунанд, онҳо бо ҳамдигар хуб ҳамоҳанг карда мешаванд ва илова бар ин, онҳо дар оянда ба осонй ва васеъ истифода бурда мешавад.

Ин равиш, албатта, созиш аст. Агар бастаи калонтар амалӣ карда мешуд, метавон тасаввур кард, ки ҷаҳони нави функсияҳо хеле пурқувват ва муфид хоҳад буд. Агар зарурати ба даст овардани функсияҳои наве вуҷуд дошта бошад, ки ба ҳама чизи дигар мувофиқат кунад, аммо шумо намехоҳед, ки барои таҳияи лоиҳа саъю кӯшиши зиёд сарф кунед, ин, мутаассифона, метавонад боиси коҳиши доираи лоиҳаи шумо гардад. Идеяи паси анбори хусусиятҳои Wolfram таъмин кардани функсия ба як қисми муайянкунандаи лоиҳа мебошад; ин равиш функсияи пурқувватро илова мекунад ва ҳамзамон нигоҳ доштани мувофиқати хубро дар лоиҳаи барномасозӣ осонтар мекунад.

Барои илова кардани функсияҳои фармоишӣ ба анбори функсияҳо кӯмак кунед

Дастаи мо барои осон кардани саҳмгузорӣ ба корбарон ба хусусиятҳои анбори Wolfram хеле заҳмат кашидааст. Дар мизи корӣ (аллакай дар нусхаи 12.0), Шумо метавонед ба таври пайдарпай аз ҷадвалҳои менюи асосӣ гузаред: Файл > Нав > RepositoryItem > Функсияи репозиторий элемент ва шумо "Дафтарчаи таъриф" (ба таври барномавӣ дар дохили мизи корӣ. Шумо инчунин метавонед функсияи аналогиро истифода баред - Эҷоди дафтар["Манбаи Function"]):

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Ду қадами асосие, ки шумо бояд иҷро кунед, вуҷуд дорад: якум, воқеан рамзи функсияи худро нависед ва дуюм, ҳуҷҷатҳоеро нависед, ки чӣ тавр функсияи шумо бояд кор кунад.
Тугмаи "Кушодани Намуна" -ро дар боло пахш кунед, то намунаи он чизеро, ки ба шумо лозим аст, бинед:

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Аслан, шумо кӯшиш карда истодаед, ки чизе монанд ба функсияи дарунсохт дар забони Wolfram эҷод кунед. Ба истиснои он, ки он метавонад чизи мушаххастарро аз функсияи дарунсохт иҷро кунад. Дар айни замон, интизориҳо дар бораи пуррагӣ ва эътимоднокии он хеле пасттар хоҳанд буд.
Шумо бояд ба вазифаи худ номе диҳед, ки ба дастури номгузории функсияи забони Wolfram мувофиқат кунад. Илова бар ин, ба шумо лозим меояд, ки ҳуҷҷатҳоеро барои функсияи худ, ки ба функсияҳои дарунсохташудаи забон монанданд, таҳия кунед. Ман дар ин бора баъдтар муфассалтар гап мезанам. Дар айни замон, танҳо аҳамият диҳед, ки дар қатори тугмаҳо дар болои файли дафтарчаи таърифӣ тугма мавҷуд аст "Дастурҳои услубӣ", ки чӣ кор карданро мефаҳмонад ва тугмаи Асбобҳо, ки асбобҳоро барои формат кардани ҳуҷҷатҳои функсияи шумо таъмин мекунад.
Вақте ки шумо боварӣ доред, ки ҳама чиз дуруст пур карда шудааст ва шумо омодаед, тугмаи "Тафтиш" -ро клик кунед. Ин комилан муқаррарист, ки шумо то ҳол тамоми ҷузъиётро нафаҳмидаед. Ҳамин тавр, функсияи "Тафтиш" ба таври худкор кор мекунад ва бисёр санҷишҳои услуб ва мувофиқатро анҷом медиҳад. Аксар вақт он аз шумо фавран хоҳиш мекунад, ки ислоҳҳоро тасдиқ кунед ва қабул кунед (Масалан: “Ин сатр бояд бо ду нуқта тамом шавад” ва он шуморо водор мекунад, ки ду нуқта ворид кунед). Баъзан вай аз шумо хоҳиш мекунад, ки худатон чизе илова кунед ё тағир диҳед. Мо пайваста хусусиятҳои навро ба функсияи автоматии тугмаи Санҷиш илова хоҳем кард, аммо аслан ҳадафи он кафолат додани он аст, ки ҳама чизеро, ки шумо ба анбори хусусиятҳо пешниҳод мекунед, аллакай ба қадри имкон дастурҳои услубӣ риоя мекунанд.

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Пас, пас аз иҷро кардани "Тафтиш" шумо метавонед "Пешнамоиш" -ро истифода баред. "Пешнамоиш" пешнамоиши саҳифаи ҳуҷҷатҳоеро, ки шумо барои вазифаи худ муайян кардаед, эҷод мекунад. Шумо инчунин метавонед пешнамоиши файлеро, ки дар компютери шумо сохта шудааст ё файле, ки дар анбори абр ҷойгир аст, эҷод кунед. Агар бо ягон сабабе, ки шумо аз он чизе, ки дар пешнамоиш мебинед, қаноатманд набошед, танҳо баргардед ва ислоҳи заруриро ворид кунед ва дубора тугмаи Пешнамоишро пахш кунед.
Акнун шумо омодаед, ки функсияи худро ба анбор тела диҳед. Тугмаи Ҷойгиркунӣ ба шумо чаҳор имкон медиҳад:

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Чизи муҳим дар ин қадам ин аст, ки шумо метавонед функсияи худро ба анбори функсияи Wolfram пешниҳод кунед, то он барои ҳама дастрас бошад. Ҳамзамон, шумо инчунин метавонед вазифаи худро барои шумораи маҳдуди корбарон ҷойгир кунед. Масалан, шумо метавонед функсияеро эҷод кунед, ки дар компютери шумо ҷойгир карда шудааст, то он вақте ки шумо ин компютерро истифода мебаред, он дастрас бошад. Ё шумо метавонед онро дар саҳифаи худ ҷойгир кунед ҳисоби абрӣ, то он вақте ки шумо ба абр пайвастед, он барои шумо дастрас бошад. Шумо инчунин метавонед ин хусусиятро тавассути ҳисоби абрии худ ба таври оммавӣ мизбонӣ кунед (ҷойгир кунед). Он дар анбори хусусиятҳои марказии Wolfram нахоҳад буд, аммо шумо метавонед ба касе URL диҳед, ки ба онҳо имкон медиҳад, ки хусусияти шуморо аз ҳисоби шумо дастрас кунанд. (Дар оянда, мо инчунин захираҳои марказиро дар тамоми ширкати худ дастгирӣ хоҳем кард.)

Пас, биёед бигӯем, ки шумо воқеан мехоҳед функсияи худро ба пойгоҳи дониши функсионалии Wolfram пешниҳод кунед. Барои ин, шумо тугмаи "Ирсол" -ро ба анбор пахш мекунед. Пас, дар айни замон чӣ рӯй дода истодааст? Аризаи шумо фавран барои баррасӣ ва тасдиқ аз ҷониби гурӯҳи кураторони бахшидашудаи мо дар навбат гузошта мешавад.

Вақте ки дархости шумо тавассути раванди тасдиқ пеш меравад (ки одатан якчанд рӯзро мегирад), шумо дар бораи ҳолати он ва эҳтимолан пешниҳодҳо барои истифодаи оянда хабар мегиред. Аммо вақте ки хусусияти шумо тасдиқ карда мешавад, он фавран дар анбори Функсияҳои Wolfram нашр карда мешавад ва барои ҳама дастрас хоҳад буд. (Ва ин дар дайджести ахбор дар бораи хусусиятҳои нав ва ғ.)

Дар анбор чӣ бояд бошад?

Бояд қайд кард, ки ширкати мо дорои стандартҳои хеле баланд оид ба мукаммалӣ, эътимоднокӣ ва сифати умумӣ мебошад ва аз 6000+ функсияҳое, ки мо аллакай дар тӯли 30+ соли охир дар забони Волфрам сохтаем, ҳама ба талаботи дар боло зикршуда ҷавобгӯ мебошанд. Ҳадафи анбори Функсияҳои Wolfram ин истифода бурдани тамоми сохтор ва функсияҳое мебошад, ки аллакай дар забони Волфрам мавҷуд аст, то ҳарчи бештар функсияҳои сабуктар (яъне функсияҳои иҷрои баландтар) илова карда шаванд.

Албатта, функсияҳо дар анбори функсионалии Wolfram бояд ба принсипҳои тарҳрезии забони Wolfram мувофиқ бошанд - то онҳо тавонанд бо дигар функсияҳо ва интизориҳои корбарон дар бораи он, ки ин функсия дуруст кор кунад, пурра ҳамкорӣ кунад. Бо вуҷуди ин, функсияҳо набояд пуррагӣ ё эътимоднокии якхела бошанд.

Дар функсияҳои дарунсохташудаи забони Волфрам, мо кӯшиш мекунем, ки вазифаҳои барномасозиро то ҳадди имкон умумӣ созем. Гуфта мешавад, вақте ки дар анбори функсионалии Wolfram мавҷудияти функсияе, ки дар он танҳо як парвандаи хеле мушаххас, вале муфидро идора мекунад, ҳеҷ бадӣ нест. Масалан, функсия SendMailFromNotebook метавонад файлҳоро дар як формати мушаххас қабул кунад ва бо як роҳи мушаххас почта эҷод кунад. Диаграммаи бисёркунҷа диаграммаҳоро танҳо бо рангҳои муайян ва тамғагузорӣ ва ғайра месозад.

Нуктаи дигаре, ки ба функсияҳои дарунсохт алоқаманд аст, ин аст, ки ширкати мо тамоми кӯшишҳоро ба харҷ медиҳад, то ҳама ҳолатҳои ғайриоддӣ, дуруст коркарди вуруди нодуруст ва ғайра. Дар анбори функсионалӣ мавҷудияти як функсияи махсусе комилан муқаррарӣ аст, ки ҳолатҳои асосии ҳалли масъаларо ҳал мекунад ва ҳамаи дигаронро сарфи назар мекунад.

Нуқтаи возеҳ дар он аст, ки беҳтар аст, ки функсияҳое дошта бошанд, ки бештар кор мекунанд ва онро беҳтар иҷро мекунанд, аммо оптимизатсия барои анбори функсионалӣ - бар хилофи функсияҳои дарунсохтаи забони Волфрам - бояд функсияҳои бештаре дошта бошанд, ки бо функсияҳои бештар ҷамъоварӣ карда шаванд. равандҳои татбиқи ҳар як функсияи мушаххас.

Акнун биёед мисоли санҷиши функсияҳоро дар репозиторий дида бароем. Табиист, ки интизориҳои мувофиқат барои чунин функсияҳо нисбат ба функсияҳои дарунсохташудаи забон хеле пасттаранд. Ин махсусан дар ҳолатҳое дуруст аст, ки функсияҳо аз захираҳои беруна, аз қабили APIҳо вобастаанд, муҳим аст, ки пайваста санҷишҳои пайгирона гузаронанд, ки он ба таври худкор дар доираи алгоритмҳои санҷиш рӯй медиҳад. Дар файли nb, шумо метавонед ба таври возеҳ таърифҳоро муайян кунед (дар қисмати Маълумоти иловагӣ) ва шумораи зиёди санҷишҳоро, ки бо сатрҳои воридотӣ ва баромад ё объектҳои аломатҳои пурраи намуд муайян карда шудаанд, муайян кунед. Санҷиши тасдиқ, ба қадре ки шумо мувофиқ мебинед. Илова бар ин, система пайваста кӯшиш мекунад, ки намунаҳои ҳуҷҷатҳои пешниҳодкардаи шумо ба раванди санҷиш табдил ёбад (ва баъзан ин метавонад хеле серталаб бошад, масалан, барои функсияе, ки натиҷааш аз рақамҳои тасодуфӣ ё вақти рӯз вобаста аст).

Дар натиҷа, анбори функсионалӣ як қатор душвориҳои амалӣ хоҳад дошт. Баъзеҳо танҳо як сатри ягонаи код хоҳанд буд, дигарон метавонанд ҳазорҳо ё даҳҳо ҳазор сатрро дар бар гиранд, эҳтимол аз бисёр функсияҳои ёрирасон истифода мебаранд. Кай барои илова кардани функсияе лозим аст, ки барои муайян кардани рамзи хеле кам лозим аст? Асосан, агар барои функсия вуҷуд дошта бошад номи мнемоникии хуб, ки корбарон ба осонӣ мефаҳманд, агар онҳо онро дар як порчаи код диданд, он гоҳ онро аллакай илова кардан мумкин аст. Дар акси ҳол, эҳтимол беҳтар аст, ки ҳар дафъае, ки шумо онро истифода бурдан лозим аст, кодро ба барномаи худ дубора замима кунед.

Мақсади асосии анбори функсионалӣ (чунон ки аз номаш бармеояд) ворид кардани хусусиятҳои нав ба забон мебошад. Агар шумо хоҳед, ки маълумоти нав илова кунед ё субъектхои нав, истифода баред Анбори додаҳои Wolfram. Аммо агар шумо хоҳед, ки намудҳои нави объектҳоро барои ҳисобҳои худ ҷорӣ кунед?

Дар асл ду роҳ вуҷуд дорад. Шумо метавонед як навъи объекти наверо ҷорӣ кунед, ки дар функсияҳои нав дар анбори функсия истифода мешавад. Ва дар ин ҳолат, шумо ҳамеша метавонед танҳо тасвири рамзии онро нависед ва онро ҳангоми ворид ё баровардани функсияҳо дар анбори функсия истифода баред.

Аммо агар шумо хоҳед, ки объектро муаррифӣ кунед ва сипас тавассути функсияҳои мавҷуда дар забони Волфрам муайян кунед, ки шумо мехоҳед бо он кор кунед? Забони Wolfram ҳамеша як механизми сабук барои ин дошт, ки ном дорад UpValues. Бо баъзе маҳдудиятҳо (махсусан барои функсияҳое, ки ба далелхои онхо бахо дода наметавонанд), анбори функсия ба шумо имкон медиҳад, ки танҳо функсияро муаррифӣ кунед ва арзишҳоро барои он муайян кунед. (Барои баланд бардоштани интизории мувофиқат ҳангоми эҷоди як тарҳи нави асосӣ, ки дар тамоми забони Wolfram пурра муттаҳид карда шудааст, умуман як тартиби хеле муҳимест, ки онро танҳо бо зиёд кардани арзиши лоиҳа ба даст овардан мумкин нест ва он чизест, ки ширкати мо ҳамчун як қисми лоиҳаҳо иҷро мекунад. барои иикишофи дарозмуддати забои ин вазифа максаде нест, ки дар доираи инкишофи репозиторий) гузошта шудааст.

Пас, дар коди функсия дар анбори функсионалӣ чӣ буда метавонад? Ҳама чиз дар забони Волфрам сохта шудааст, албатта (ҳадди ақал агар он намояндагӣ накунад таҳдидҳо барои амният ва иҷрои худи барнома, ҳамчун муҳити ҳисоббарорӣ), инчунин ҳама гуна функсия аз анбори функсияҳо. Бо вуҷуди ин, имкониятҳои дигари фаъолият вуҷуд доранд: функсия дар анбори функсия метавонад API-ро даъват кунад ё дар Волфрам Cloud, ё аз дигар манбаъ. Албатта, бо ин баъзе хатарҳо вуҷуд доранд. Аз сабаби он, ки ҳеҷ гуна кафолате вуҷуд надорад, ки API тағир намеёбад ва функсия дар мағозаи функсия кор намекунад. Барои кӯмак расонидан дар муайян кардани чунин мушкилот, дар саҳифаи ҳуҷҷатгузорӣ (дар бахши Талабот) барои ҳама гуна хусусият, ки на танҳо ба функсияҳои дарунсохташудаи забони Вольфрам такя мекунад, қайд мавҷуд аст. (Албатта, вақте ки сухан дар бораи маълумоти воқеӣ меравад, ҳатто бо ин функсия мушкилот вуҷуд дорад - зеро маълумоти ҷаҳонии воқеӣ доимо тағйир меёбад ва баъзан ҳатто таърифҳо ва сохтори он тағир меёбанд.)

Оё тамоми коди анбори хусусиятҳои Wolfram бояд дар Wolfram навишта шавад? Албатта, код дар дохили API-и беруна набояд бо забони Волфрам навишта шавад, ки он ҳатто рамзи забонро эҷод намекунад. Дарвоқеъ, агар шумо қариб дар ҳама забон ё китобхонаи беруна функсия пайдо кунед, шумо метавонед як парпеч эҷод кунед, ки ба шумо имкон медиҳад, ки онро дар анбори функсияҳои Wolfram истифода баред. (Одатан, шумо бояд барои ин функсияҳои дарунсохтро истифода баред Баҳодиҳии беруна ё Функсияи беруна дар рамзи забони Волфрам.)

Пас, ин кор чӣ маъно дорад? Аслан, ин ба шумо имкон медиҳад, ки тамоми системаи ҳамгирошудаи Wolfram Language ва тамоми маҷмӯи ягонаи имкониятҳои нармафзори онро истифода баред. Агар шумо татбиқи асосиро аз китобхона ё забони беруна ба даст оред, пас шумо метавонед сохтори ғании рамзии забони Wolfram-ро барои эҷоди як вазифаи мувофиқи сатҳи боло истифода баред, ки ба корбарон имкон медиҳад, ки ҳама гуна функсияҳои аллакай амалӣшударо ба осонӣ истифода баранд. Ҳадди ақал, ин бояд дар ҷаҳони идеалие имконпазир бошад, ки дар он ҳамаи блокҳои сохтмонии китобхонаҳои боркунӣ ва ғайра мавҷуданд ва дар ин ҳолат онҳо ба таври худкор аз ҷониби забони Волфрам коркард карда мешаванд. (Бояд қайд кард, ки дар амал метавонад мушкилот бо танзими забонҳои беруна системаи мушаххаси компютерӣ ва нигоҳдории абр метавонад мушкилоти иловагии амниятро ба бор орад).

Дар омади гап, вақте ки шумо бори аввал ба китобхонаҳои маъмулии беруна менигаред, онҳо аксар вақт хеле мураккаб ба назар мерасанд, ки танҳо дар чанд функсия фаро гирифта мешаванд, аммо дар бисёр мавридҳо, бештари мураккабӣ аз эҷоди инфрасохтори зарурӣ барои китобхона ва тамоми функсияҳо ба вуҷуд меояд. дастгирй кунад. Бо вуҷуди ин, ҳангоми истифодаи забони Wolfram, инфрасохтор одатан аллакай дар бастаҳо сохта шудааст ва аз ин рӯ зарурати ба таври муфассал нишон додани ҳамаи ин функсияҳои дастгирӣ вуҷуд надорад, балки танҳо функсияҳоро барои функсияҳои "болотарин" -и барномаҳо дар китобхона эҷод кунед. .

«Экосистема»-и базаи дониш

Агар шумо функсияҳоеро, ки мунтазам истифода мебаред, навишта бошед, онҳоро ба анбори Функсияҳои Wolfram пешниҳод кунед! Агар ягон чизи дигар аз ин (рушди забон) наояд, ҳатто дар он сурат истифодаи функсияҳо барои истифодаи шахсӣ барои шумо хеле қулайтар хоҳад буд. Бо вуҷуди ин, мантиқист, ки агар шумо ин функсияҳоро мунтазам истифода баред, шояд корбарони дигар низ онҳоро муфид пайдо кунанд.

Табиист, ки шумо метавонед дар вазъияте дучор шавед, ки шумо наметавонед - ё намехоҳед - вазифаҳои худро мубодила кунед ё дар сурати дастрасӣ ба захираҳои иттилоотии хусусӣ. Ҳатто дар чунин ҳолатҳо, шумо метавонед танҳо функсияҳоро дар ҳисоби абрии худ ҷойгир кунед, муайян кардани ҳуқуқҳо дастрасӣ ба онҳо. (Агар ташкилоти шумо дошта бошад Абри хусусии Wolfram Enterprise, он гоҳ он ба зудӣ метавонад анбори хусусии хусусии худро ҷойгир кунад, ки он метавонад аз дохили ташкилоти шумо идора карда шавад ва муқаррар кунад, ки оё манзараҳоро барои дидани корбарони тарафи сеюм маҷбур созед ё не.)

Функсияҳое, ки шумо ба анбори функсияҳои Wolfram пешниҳод мекунед, набояд комил бошанд; онҳо бояд танҳо фоидаовар бошанд. Ин каме ба қисмати "Хатоҳо" дар ҳуҷҷатҳои классикии Unix монанд аст - дар "Қисмати таърифҳо" бахши "Эзоҳҳои муаллиф" мавҷуд аст, ки дар он шумо метавонед маҳдудиятҳо, мушкилот ва ғайраро тавсиф кунед, ки шумо аллакай дар бораи вазифаи худ медонед. Илова бар ин, вақте ки шумо хусусияти худро ба анбор пешниҳод мекунед, шумо метавонед қайдҳои пешниҳодиро илова кунед, ки аз ҷониби як гурӯҳи махсуси кураторҳо хонда мешаванд.

Пас аз интишори хусусият, саҳифаи он ҳамеша дар поён ду пайванд дорад: "Дар бораи ин хусусият паём фиристед"Ва"Дар ҷомеаи Волфрам муҳокима кунед" Агар шумо ёддошт замима кунед (масалан, ба ман дар бораи хатогиҳо нақл кунед), шумо метавонед қуттиеро қайд кунед, ки мехоҳед паём ва маълумоти тамоси худро бо муаллифи хусусият мубодила кунед.

Баъзан шумо танҳо мехоҳед, ки функсияҳоро аз анбори функсионалии Wolfram, ба монанди функсияҳои дарунсохт, бидуни нигоҳ ба коди онҳо истифода баред. Аммо, агар шумо хоҳед, ки ба дохили он назар андозед, ҳамеша тугмаи Notepad дар боло мавҷуд аст. Онро клик кунед ва шумо нусхаи шахсии дафтари таърифи аслии худро, ки ба анбори хусусиятҳо пешниҳод шудааст, хоҳед гирифт. Баъзан шумо метавонед онро ҳамчун намуна барои ниёзҳои худ истифода баред. Ҳамзамон, шумо инчунин метавонед тағйироти шахсии ин функсияро таҳия кунед. Шумо метавонед ин вазифаҳоеро, ки аз анбори компютери худ ё дар ҳисоби нигаҳдории абрии aphid пайдо кардаед, ҷойгир кунед, эҳтимол шумо мехоҳед онҳоро ба пойгоҳи дониши функсионалӣ, шояд ҳамчун версияи мукаммал ва васеъшудаи функсияи аслӣ пешниҳод кунед.

Дар оянда, мо нақша дорем, ки форинги услуби Git-ро барои анбори хусусиятҳо дастгирӣ кунем, аммо ҳоло мо кӯшиш мекунем, ки онро оддӣ нигоҳ дорем ва мо ҳамеша танҳо як версияи қабулшудаи ҳар як хусусиятро дар забон дорем. Бештари вақт (агар таҳиягарон аз нигоҳ доштани хусусиятҳои таҳиякардаи худ даст накашанд ва ба пешниҳодҳои корбарон посух надиҳанд), муаллифи аслии хусусият навсозиҳои онро назорат мекунад ва версияҳои навро пешниҳод мекунад, ки баъдан баррасӣ карда мешаванд ва агар онҳо аз раванди барраси гузаранд. , ба забони руей нашр шудааст.

Биёед саволеро дида бароем, ки чӣ тавр "версияи" функсияҳои таҳияшуда кор мекунад. Дар айни замон, вақте ки шумо функсияро аз анбори функсия истифода мебаред, таърифи он ба таври доимӣ дар компютери шумо нигоҳ дошта мешавад (ё дар ҳисоби абрии шумо, агар шумо абрро истифода баред). Агар версияи нави хусусият дастрас бошад, дафъаи оянда шумо онро истифода мебаред, шумо паёме мегиред, ки шуморо аз ин огоҳ мекунад. Ва агар шумо хоҳед, ки функсияро ба версияи нав навсозӣ кунед, шумо метавонед онро бо истифода аз фармон иҷро кунед Навсозии захираҳо. ("Функсия blob" воқеан маълумоти бештари версияро нигоҳ медорад ва мо ният дорем, ки онро дар оянда барои корбарони худ дастрастар гардонем.)

Яке аз чизҳои зебои Repository Function Wolfram дар он аст, ки ҳама гуна барномаи Wolfram Language, дар ҳама ҷо метавонад аз он функсияҳоро истифода барад. Агар барнома дар блокнот пайдо шавад, аксар вақт формат кардани функсияҳои репозиторий ҳамчун функсияҳои ба осонӣ хондашаванда "объекти дуии функсия" (шояд бо маҷмӯи версияи мувофиқ) қулай аст.

Шумо ҳамеша метавонед бо истифода аз матн ба ҳама гуна функсия дар анбори функсия дастрасӣ пайдо кунед Функсияи захира[...]. Ва ин хеле қулай аст, агар шумо код ё скриптҳоро мустақиман барои Wolfram Engine нависед, масалан, бо бо истифода аз муҳаррири IDE ё рамзи матн (Хусусан бояд қайд кард, ки репозиторий функсия бо Муҳаррики ройгони Wolfram барои таҳиягарон).

Чӣ тавр он кор мекунад?

Дар дохили функсияҳои анбори Wolfram, ин имконпазир аст, ки маҳз ҳамин тавр истифода шавад системаҳои захиравӣ асосҳо, чунон ки дар хамаи дигар анборхои мавчудаи мо (мағозаи маълумот, Анбори холиси нейронӣ, маҷмӯи лоиҳаҳои намоишӣ ва ғайра), ба монанди дигар захираҳои системаи Wolfram, Функсияи захиравӣ дар ниҳоят ба функсия асос ёфтааст ResourceObject.

Тасаввур кунед Функсияи захиравӣ:

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Дар дохили он шумо метавонед баъзе маълумотро бо истифода аз функсия дидан кунед Маълумот:

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Таъсиси функсияи захиравӣ чӣ гуна кор мекунад? Соддатарин парвандаи сирф маҳаллӣ аст. Ин аст мисоле, ки функсияро мегирад (дар ин ҳолат танҳо як функсияи холис) ва онро ҳамчун функсияи захиравӣ барои сессияи барнома муайян мекунад:

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Пас аз он ки шумо таърифро сохтед, шумо метавонед функсияи захираҳоро истифода баред:

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Дар хотир доред, ки дар ин blob функсия нишонаи сиёҳ мавҷуд аст Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам. Ин маънои онро дорад, ки функсияи BLOB ба функсияи захираҳои дохили хотира, ки барои сессияи ҷорӣ муайян шудааст, дахл дорад. Хусусияти захиравӣ, ки дар компютер ё ҳисоби абрии шумо ба таври доимӣ нигоҳ дошта мешавад, дорои аломати хокистарӣ мебошад Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам. Ва тасвири норанҷӣ барои хусусияти манбаи расмӣ дар анбори Функсияи Wolfram мавҷуд аст Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам.

Пас, вақте ки шумо менюи Васеъ дар дафтари таърифро истифода мебаред, чӣ мешавад? Аввалан, он тамоми таърифҳоро дар блокнот мегирад ва аз онҳо рамзӣ месозад ResourceObject). (Ва агар шумо IDE ё барномаи матниро истифода баред, шумо инчунин метавонед ба таври возеҳ эҷод кунед ResourceObject)

Ҷойгиркунии маҳаллии функсия аз анбори компютери шумо бо истифода аз фармон иҷро карда мешавад LocalCache барои объекти захиравӣ ҳамчун захира кардани он LocalObject дар системаи файлии шумо. Ҷойгиркунӣ ба ҳисоби абрӣ бо истифода аз фармон анҷом дода мешавад CloudDeploy барои объекти захиравӣ, ва густариши абри ҷамъиятӣ аст CloudPublish. Дар хамаи мавридхо Реестри захираҳо инчунин барои сабти номи функсияи захира истифода мешавад, то Функсияи захира["ном"] кор хохад кард.

Агар шумо тугмаи Ирсолро барои анбори функсия пахш кунед, дар зери он чӣ мешавад ResourceSubmit ба объекти ресурс даъват карда мешавад. (Ва агар шумо интерфейси вуруди матнро истифода баред, шумо инчунин метавонед занг занед ResourceSubmit бевосита.)

Бо нобаёнӣ, пешниҳодҳо бо номи марбут ба ID Wolfram шумо анҷом дода мешаванд. Аммо агар шумо аз номи гурӯҳ ё созмони таҳиякунанда ариза пешниҳод кунед, шумо метавонед ID ношири алоҳида таъин кунед ва ба ҷои он ҳамчун ном барои муошират бо назари худ истифода баред.

Пас аз он ки шумо ягон функсияи худро ба пойгоҳи дониши функсионалӣ пешниҳод кардед, он барои баррасӣ дар навбат гузошта мешавад. Агар шумо дар ҷавоб шарҳҳо қабул кунед, онҳо одатан дар шакли файли матнӣ бо иловаи "ячейкаҳои шарҳ" илова карда мешаванд. Шумо ҳамеша метавонед ҳолати дархости худро тавассути боздид тафтиш кунед портали аъзои системаи захиравӣ. Аммо вақте ки хусусияти шумо тасдиқ карда мешавад, шумо (тавассути почтаи электронӣ) огоҳ карда мешавед ва хусусияти шумо дар анбори хусусиятҳои Wolfram ҷойгир карда мешавад.

Баъзе нозукиҳо дар кор

Дар назари аввал чунин ба назар мерасад, ки шумо метавонед як дафтари таърифиро гирифта, онро айнан ба як анбори функсионалӣ гузоред, аммо дар асл нозукиҳои зиёде мавҷуданд - ва коркарди онҳо иҷрои баъзе мета-барномасозии хеле мураккаб, коркарди коркарди рамзро талаб мекунад. ҳамчун рамзе, ки функсияро муайян мекунад ва худи Блокнот муайян карда мешавад. Аксарияти ин дар дохили он, паси парда рӯй медиҳад, аммо он метавонад баъзе оқибатҳое дошта бошад, ки агар шумо ба пойгоҳи дониши хусусиятҳо саҳм гузоштанӣ бошед, фаҳмиш лозим аст.

Нозукии аввалини фаврӣ: Вақте ки шумо Дафтарчаи таърифро пур мекунед, шумо метавонед танҳо бо истифода аз чунин ном ба вазифаи худ дар ҳама ҷо муроҷиат кунед. MyFunction, ки ба номи муқаррарии функсия дар забони Вулфрам монанд аст, аммо барои ҳуҷҷатҳои репозитории функсия ин иваз карда мешавад Функсияи захира["Функсияи ман"] он чизест, ки корбарон ҳангоми кор бо функсия воқеан истифода хоҳанд кард.

Нозукии дуюм: вақте ки шумо аз Дафтарчаи Таърифи функсияи захиравӣ эҷод мекунед, ҳамаи вобастагиҳое, ки дар таърифи функсия иштирок мекунанд, бояд сабт ва ба таври возеҳ дохил карда шаванд. Аммо, барои кафолат додани он, ки таърифҳо модулӣ боқӣ монанд, шумо бояд ҳама чизро дар як беназир ҷойгир кунед фазои ном. (Албатта, функсияҳое, ки ҳама чизро иҷро мекунанд, дар анбори функсия мебошанд.)

Одатан шумо ҳеҷ гоҳ осори кодеро, ки барои танзими ин фазои ном истифода мешавад, намебинед. Аммо агар шумо бо ягон сабаб дар дохили функсияи худ рамзи кам иҷрошуда занг занед, пас шумо хоҳед дид, ки ин рамз дар контексти дохилии функсия ҷойгир аст. Аммо, ҳангоми коркарди Definition Notepad, ҳадди аққал аломати ба худи функсия мувофиқ аст танзимшаванда барои намоиши беҳтарин ҳамчун BLOB функсионалии на хусусияти хом дар заминаи дохилӣ.

Анбори функсия барои муайян кардани функсияҳои нав аст. Ва ин функсияҳо метавонанд имконоти дошта бошанд. Аксар вақт ин параметрҳо (масалан, метод ё Андозаи тасвир) метавонад барои функсияҳои дарунсохт ва инчунин барои онҳое, ки аллакай аломатҳои дарунсохт мавҷуданд, истифода шаванд. Аммо баъзан хусусияти нав метавонад имконоти навро талаб кунад. Барои нигоҳ доштани модулият, ин параметрҳо бояд рамзҳое бошанд, ки дар контексти ягонаи дохилӣ муайян карда шудаанд (ё чизе монанди тамоми функсияҳои захиравӣ, яъне худи онҳо). Барои соддагӣ, анбори функсия ба шумо имкон медиҳад, ки имконоти навро дар таърифҳои сатр муайян кунед. Ва барои роҳати корбар, ин таърифҳо (бо назардошти он ки онҳо истифода кардаанд OptionValue и Options Pattern) низ тавре коркард карда мешаванд, ки ҳангоми истифодаи функсияҳо параметрҳоро на танҳо ҳамчун сатр, балки ҳамчун аломатҳои глобалӣ бо як ном нишон додан мумкин аст.

Аксари функсияҳо ҳар дафъае, ки онҳоро даъват мекунанд, танҳо кореро иҷро мекунанд, аммо баъзе функсияҳо бояд пеш аз он ки онҳо дар сеанси мушаххас кор кунанд, бояд оғоз карда шаванд - ва барои ҳалли ин мушкилот, дар қисмати Таъриф бахши "Оғозсозӣ" мавҷуд аст.

Функсияҳои анбор метавонанд дигар вазифаҳоеро истифода баранд, ки аллакай дар анбори функсионалӣ мавҷуданд; барои муқаррар кардани таърифҳо барои анбори функсия, ки ду (ё зиёда) функсияҳоеро, ки ба ҳамдигар истинод мекунанд, шумо бояд онҳоро дар сессияи барномаи худ ҷойгир кунед, то ки шумо тавонед. истинод ба монанди онҳо Функсияи захира["ном"], пас шумо метавонед омезиши ин функсияҳои ба шумо лозимиро эҷод кунед, мисолҳо (ман нафаҳмидам) ва ба анбор дар асоси онҳое, ки қаблан интишор шудаанд, функсияи нав илова кунед. (ё аллакай ё қаблан - ҳарду калимаҳо бесарусомонанд)

Пешомадхои тараккиёт. Вақте ки анбор воқеан калон мешавад, чӣ бояд кард?

Имрӯз мо танҳо Анбори Хусусияти Wolfram-ро ба кор меандозем, аммо бо мурури замон мо интизорем, ки ҳаҷм ва функсияи он метавонад ба таври назаррас афзоиш ёбад ва бо афзоиши он мушкилоти гуногуне ба миён меоянд, ки мо аллакай интизор будем, метавонанд ба миён оянд.

Мушкилоти аввал ба номҳои функсия ва нотакрории онҳо дахл дорад. Анбори функсия тавре тарҳрезӣ шудааст, ки ба монанди функсияҳои дарунсохт дар забони Волфрам, шумо метавонед ба ягон функсияи додашуда танҳо бо нишон додани номи он муроҷиат кунед. Аммо ин ногузир маънои онро дорад, ки номҳои функсионалӣ бояд дар саросари репозиторий дар саросари ҷаҳон беназир бошанд, то масалан, танҳо як бошад. Функсияи захира["Функсияи дӯстдоштаи ман"].

Ин метавонад дар аввал як мушкили бузург ба назар расад, аммо бояд дарк кард, ки он аслан ҳамон мушкилотест, ки ба монанди доменҳои интернетӣ ё идораҳои васоити ахбори иҷтимоӣ. Ва ҳақиқат ин аст, ки система танҳо бояд бақайдгиранда дошта бошад - ва ин яке аз нақшҳое мебошад, ки ширкати мо барои пойгоҳи дониши функсионалии Wolfram иҷро мекунад. (Барои версияҳои хусусии анбор, бақайдгирандагони онҳо метавонанд маъмур бошанд.) Албатта, домени интернетиро бидуни доштани чизе дар он сабт кардан мумкин аст, аммо дар анбори функсионалӣ номи функсияро танҳо дар сурати мавҷуд будани таърифи воқеии функсия.

Қисми нақши мо дар идоракунии пойгоҳи дониши функсионалии Wolfram аз он иборат аст, ки номи интихобшуда барои функсия бо назардошти таърифи функсия мантиқӣ бошад ва он ба конвенсияҳои номгузории забони Волфрам мувофиқат кунад. Мо зиёда аз 30 сол таҷрибаи номгузории функсияҳои дарунсохт дар забони Вулфрам дорем ва гурӯҳи кураторони мо ин таҷрибаро ба анбори функсионалӣ низ меоранд. Албатта, ҳамеша истисноҳо вуҷуд доранд. Масалан, барои баъзе вазифаҳо доштани номи кӯтоҳ беҳтар ба назар мерасад, аммо беҳтар аст, ки бо номи дарозтар ва мушаххастар "ҳимоя кунед", зеро эҳтимоли кам дучор шудан ба касе, ки мехоҳад дар оянда номи як функсияро созад. .

(Дар ин ҷо бояд қайд кард, ки танҳо илова кардани баъзе тегҳои аъзо барои номуайян кардани функсияҳо таъсири пешбинишударо намедиҳад. Зеро агар шумо ҳамеша ба таъин кардани тег исрор накунед, ба шумо лозим меояд, ки теги пешфарзро барои ягон функсияи додашуда муайян кунед ва инчунин тегҳои муаллифро ҷудо кунед. , ки боз ҳам ҳамоҳангсозии глобалиро талаб мекунад.)

Бо афзоиши базаи дониши функсияҳои Волфрам, яке аз мушкилоте, ки эҳтимол ба миён меояд, кашфи функсияҳо мебошад, ки система барои онҳо Функсияи ҷустуҷӯ (ва файлҳои таърифӣ метавонанд калимаҳои калидӣ ва ғайраро дар бар гиранд). Барои функсияҳои дарунсохт дар забони Wolfram, дар ҳуҷҷатҳо ҳама гуна истинодҳои байниҳамдигарӣ мавҷуданд, ки барои "таблиғ" кардани функсияҳо кӯмак мекунанд. Функсияҳо дар анбори функсияҳо метавонанд ба функсияҳои дарунсохт муроҷиат кунанд. Аммо дар бораи роҳи дигар чӣ гуфтан мумкин аст? Барои ин, мо бо тарҳҳои гуногун озмоиш мекунем, то функсияҳои анборро дар саҳифаҳои ҳуҷҷатҳо барои функсияҳои дарунсохт фош кунем.

Барои функсияҳои дарунсохт дар забони Волфрам қабати ба истилоҳ муайянкунанда мавҷуд аст, ки аз ҷониби шабакаи "саҳифаҳои кӯмак", ки рӯйхати муташаккили хусусиятҳои марбут ба соҳаҳои мушаххасро пешниҳод мекунанд. Мувозинати дурусти саҳифаҳои одам ҳамеша душвор аст ва бо афзоиши забони Волфрам, саҳифаҳои одам аксар вақт бояд пурра аз нав ташкил карда шаванд. Ҷойгир кардани функсияҳо аз анбор ба категорияҳои васеъ ва ҳатто ба таври пайваста тақсим кардани он категорияҳо хеле осон аст, аммо доштани саҳифаҳои истинодҳои забонӣ дуруст ташкилшуда хеле арзишмандтар аст. Ҳанӯз маълум нест, ки чӣ гуна беҳтар сохтани онҳо барои тамоми пойгоҳи дониши функсионалӣ. Барои намуна, Галереяро эҷод кунед дар анбори хусусиятҳо, ҳар кас метавонад саҳифаи веберо фиристад, ки дорои "интихобҳо" -и онҳо аз анбор аст:

Анбори Функсияи Wolfram: Платформаи дастрасии кушода барои васеъшавии забони Волфрам

Анбори функсияи Wolfram ҳамчун анбори функсияҳои доимӣ танзим карда шудааст, ки дар он ҳама гуна функсия дар он ҳамеша кор хоҳад кард. Албатта, версияҳои нави хусусиятҳо метавонанд дастрас шаванд ва мо интизорем, ки баъзе хусусиятҳо албатта бо мурури замон кӯҳна мешаванд. Функсияҳо, агар онҳо дар барномаҳо истифода шаванд, кор хоҳанд кард, аммо саҳифаҳои ҳуҷҷатгузории онҳо ба вазифаҳои нав ва пешрафтатар пайванд хоҳанд кард.

Анбори хусусиятҳои Wolfram барои кӯмак расонидан ба шумо дар кашф кардани хусусиятҳои нав ва омӯхтани роҳҳои нави истифодаи забони Волфрам пешбинӣ шудааст. Мо хеле хушбин ҳастем, ки баъзе чизҳое, ки дар анбори хусусиятҳо омӯхта шудаанд, оқибат ба қисмҳои дохилии забони Волфрам табдил меёбанд. Дар давоми даҳсолаи охир мо як маҷмӯи монанд доштем Хусусиятҳое, ки дар ибтидо дар Wolfram | Алфа. Ва яке аз дарсҳои аз ин таҷриба гирифташуда ин аст, ки ноил шудан ба стандартҳои сифат ва пайдарпайӣ, ки мо дар ҳама чизест, ки дар забони Волфрам сохта шудааст, тамаркуз мекунем, кори зиёдеро талаб мекунад, ки аксар вақт аз кӯшишҳои ибтидоӣ барои татбиқи идея душвортар аст. Бо вуҷуди ин, функсия дар пойгоҳи дониши функсионалӣ метавонад ҳамчун далели хеле муфиди консепсия барои функсияи оянда хидмат кунад, ки дар ниҳоят метавонад ба забони Волфрам сохта шавад.

Муҳимтар аз ҳама ин аст, ки функсия дар анбори функсионалӣ чизест, ки барои ҳар як корбар ҳоло дастрас аст. Мумкин аст, ки хусусияти забони модарӣ метавонад хеле беҳтар ва самараноктар бошад, аммо анбори хусусиятҳо ба корбарон имкон медиҳад, ки фавран ба ҳама хусусиятҳои нав дастрасӣ дошта бошанд. Ва муҳимтар аз ҳама, ин консепсия ба ҳама имкон медиҳад, ки ҳар гуна хусусиятҳои наверо, ки мехоҳанд, илова кунанд.

Қаблан дар таърихи забони вольфрам ин ақида мисли пештара кор намекард, аммо дар ин марҳила ба забон он қадар заҳмат ва фаҳмиши амиқи принсипҳои тарҳрезии забон вуҷуд дорад, ки ҳоло хеле ба назар мерасад. имкон дорад, ки як ҷомеаи бузурги корбарон хусусиятҳоеро илова кунанд, ки мутобиқати тарроҳиро нигоҳ доранд, то онҳоро барои доираи васеи корбарон муфид гардонанд.

Дар ҷомеаи корбарони забони Wolfram рӯҳияи бениҳоят истеъдод (?) вуҷуд дорад. (Албатта, ин ҷомеа бисёр одамони пешқадами R&D-ро дар соҳаҳои гуногун дар бар мегирад.) Ман умедворам, ки Анбори Функсияи Wolfram барои кушодан ва паҳн кардани ин рӯҳияи истеъдод як платформаи муассир фароҳам меорад. Танҳо якҷоя мо метавонем чизе эҷод кунем, ки майдони онро ба таври назаррас васеъ кардани парадигмаи ҳисоббарории забони Волфрам истифода барад.

Дар тӯли зиёда аз 30 сол, мо бо забони Волфрам роҳи дарозеро тай кардем. Акнун якҷоя, биёед боз ҳам бештар пеш равем. Ман ҳама корбарони мӯҳтарами забони Волфрамро дар саросари ҷаҳон ташвиқ мекунам, ки анбори функсионалӣ ҳамчун платформа барои ин ва инчунин лоиҳаи нави нармафзор, ба монанди Engine Free Wolfram for Developers истифода баранд.

Манбаъ: will.com

Илова Эзоҳ