Halló, Habr! Ég kynni þér þýðingu á færslu Stephen Wolfram
Forsendur fyrir samræmi í Wolfram tungumálinu
Í dag stöndum við á þröskuldi frábærra afreka ásamt forritunarmálinu
Wolfram Function Repository er eitthvað sem er gert mögulegt vegna einstaks eðlis Wolfram tungumálsins, ekki aðeins sem forritunarmáls, heldur einnig sem
Til dæmis inniheldur Wolfram virka geymslan nú þegar
Sömuleiðis meira en
Til að komast á síðuna, afritaðu hlutinn hér að ofan (fallið BLOB), límdu hann inn í innsláttarlínuna og keyrðu síðan fallið - það er nú þegar innbyggt í Wolfram tungumálið og sjálfgefið stutt frá
Hér skal tekið fram að við afgreiðslu
Ég vona að með stuðningnum
Aðgerðir úr geymslunni geta innihaldið litla eða stóra kóða sem eru skrifaðir á Wolfram tungumálinu. Þetta gætu til dæmis verið símtöl
Skel og forritunaruppbygging Wolfram Feature Repository er hönnuð þannig að allir geti lagt sitt af mörkum til sameiginlegs máls á sem einfaldasta og þægilegasta hátt fyrir þá - í raun bara
Það eru margar málamiðlanir og smáatriði í þessari nálgun, en markmið okkar er að fínstilla Wolfram eiginleikageymsluna bæði fyrir notendaupplifunina og til að tryggja að nýir notendaeiginleikar leggi marktækan þátt í þróun tungumálsins. Þegar við stækkum efast ég ekki um að við verðum að finna upp nýjar aðferðir til að vinna úr og staðfesta aðgerðir sem eru innbyggðar í geymsluna, ekki síst til að skipuleggja fjölda aðgerða og finna þær sem notendur þurfa. Hins vegar er uppörvandi að leiðin sem við höfum valið er góð byrjun. Ég persónulega
Auka skilvirkni en draga úr kostnaði
Jafnvel fyrir internetið voru leiðir til að deila Wolfram Language kóða (fyrsta stóra miðstýrða verkefnið okkar var
Fyrirtækið okkar hefur í meira en 30 ár unnið ötullega að því að viðhalda heilleika Wolfram tungumálaskipulagsins og þetta er mikilvægt til að tryggja að Wolfram tungumálið verði ekki bara forritunarmál, heldur einnig
Ýmis reikniferli eiga sér stað í innleiðingarskipulagi hverrar falls. Hér skal tekið fram að nauðsynlegt er að aðgerðin hafi skýrt og einsleitt útlit og sjónrænan læsileika fyrir notandann. Í þessu samhengi eru innbyggðu aðgerðir Wolfram tungumálsins kynntar með meira en 6000 raðdæmum um hvernig á að forrita aðgerðir rétt (þetta eru okkar
Að búa til geymslu sem raunverulega virkar vel er áhugavert meta-forritunarverkefni. Til dæmis mun umfram takmarkanir í forritinu ekki leyfa að fá nauðsynlega sameiningu og alhliða reiknirit. Rétt eins og með ófullnægjandi fjölda virknitakmarkana muntu ekki geta innleitt nægilega rétta röð af framkvæmd reikniritsins. Nokkur fyrri dæmi um að innleiða málamiðlun þessara aðferða, innleidd af fyrirtækinu okkar, virkuðu nokkuð stöðugt - þetta eru:
Öll ofangreind dæmi hafa grundvallareiginleika - hlutir og aðgerðir sem safnað er í verkefninu hafa mjög mikla uppbyggingu og dreifingu ferla. Auðvitað geta smáatriðin í uppbyggingu þess sem er kynning eða tauganet eða eitthvað annað verið mjög mismunandi, en grundvallaruppbyggingin fyrir hvaða núverandi geymslu er alltaf sú sama. Svo hver er skoðun þín, kæri notandi, um að búa til slíka geymslu sem bætir viðbyggingum við Wolfram tungumálið? Wolfram tungumálið er hannað til að vera einstaklega sveigjanlegt, svo það er hægt að stækka það og breyta á hvaða hátt sem er. Þessar aðstæður eru afar mikilvægar fyrir getu til að búa fljótt til ýmis stór hugbúnaðarverkefni á Wolfram tungumálinu. Hér skal tekið fram að eftir því sem sveigjanleiki tungumálsins eykst mun óhjákvæmilega aukast kostnaður við framkvæmdir sem framkvæmdar eru á slíku tungumáli. Þetta stafar af þeirri staðreynd að því meira sem notandinn notar slíkt tungumál, þeim mun meiri virkni fær hann, en við ættum ekki að gleyma því að þessi nálgun getur líka haft neikvæðar hliðar hvað varðar vanhæfni til að tryggja stöðugt samræmi í forritareiningum.
Það er algengt vandamál með bókasöfn í hefðbundnum forritunarmálum - ef þú notar til dæmis eitt bókasafn mun kóðinn virka rétt, en ef þú reynir að nota mörg bókasöfn er engin trygging fyrir því að þau muni hafa rétt samskipti hvert við annað . Einnig, í hefðbundnum forritunarmálum - ólíkt fullgildu tölvumáli - er engin leið til að tryggja tilvist samræmdra innbyggðra framsetninga fyrir hvaða aðgerðir eða gagnategundir aðrar en grunnbyggingu þeirra. En í raun er vandamálið enn stærra en það virðist við fyrstu sýn: ef verið er að byggja upp stóran lóðréttan virkni, þá er ómögulegt að taka miðlæga verkefnaforritun sem við setjum inn í Wolfram tungumálið. ná samræmi. Það er því mikilvægt að allar hugbúnaðareiningar vinni alltaf rétt saman.
Þannig að hugmyndin á bak við Wolfram eiginleikageymsluna er að forðast vandamálið sem lýst er hér að ofan með því einfaldlega að bæta við viðbótum við tungumálið í tiltölulega litlum kóða í gegnum einstaka eiginleika sem auðveldara er að þróa sem samhangandi einingar. Sem sagt, það eru forritunareiginleikar sem ekki er hægt að gera þægilega með því að nota einstakar aðgerðir (og fyrirtækið okkar ætlar að gefa út fínstillt forritunaralgrím í náinni framtíð til að hjálpa til við að innleiða stóra hugbúnaðarpakka). Hins vegar, byggt á aðgerðunum sem þegar eru innbyggðar í Wolfram tungumálið, eru margir forritunarmöguleikar sem eru útfærðir út frá einstökum aðgerðum. Hugmyndin hér er sú að með tiltölulega lítilli forritunarátaki sé hægt að búa til fjölda nýrra og mjög gagnlegra aðgerða sem veita hönnuninni nægjanlegt samræmi, þær verða vel samræmdar hver við annan, auk þess sem þær mun vera hægt að nota auðveldlega og víða í tungumálinu í framtíðinni.
Þessi nálgun er auðvitað málamiðlun. Ef stærri pakki væri innleiddur væri hægt að ímynda sér alveg nýjan heim af virkni sem væri afar öflugur og gagnlegur. Ef það er þörf á að fá nýja virkni sem passar við allt annað, en þú ert ekki tilbúin að eyða miklu átaki í að þróa verkefnið, getur það því miður leitt til minnkunar á umfangi verkefnisins. Hugmyndin á bak við Wolfram eiginleikageymsluna er að veita skilgreindum hluta verkefnis virkni; þessi nálgun mun bæta við öflugri virkni á meðan auðveldara er að viðhalda góðu samræmi í forritunarverkefni.
Hjálpaðu til við að bæta sérsniðnum aðgerðum við aðgerðageymsluna
Teymið okkar hefur unnið hörðum höndum að því að auðvelda notendum að leggja sitt af mörkum til Wolfram geymsluaðgerðanna. Á skjáborðinu (þegar í
Það eru tvö meginskref sem þú þarft að framkvæma: Í fyrsta lagi, skrifaðu í raun niður kóðann fyrir aðgerðina þína og í öðru lagi, skrifaðu niður skjöl sem sýna hvernig aðgerðin þín ætti að virka.
Smelltu á „Opna Sample“ hnappinn efst til að sjá dæmi um það sem þú þarft að gera:
Í meginatriðum ertu að reyna að búa til eitthvað svipað og innbyggða aðgerð í Wolfram tungumálinu. Nema að það getur gert eitthvað miklu sértækara en innbyggð aðgerð. Á sama tíma verða væntingar um heilleika hennar og áreiðanleika mun minni.
Þú þarft að gefa fallinu þínu nafn sem fylgir leiðbeiningum Wolfram Languages um nafngiftir. Að auki þarftu að þróa skjöl fyrir aðgerðina þína, svipað og innbyggðar aðgerðir tungumálsins. Ég mun ræða þetta nánar síðar. Í bili, taktu bara eftir því að í röðinni af hnöppum efst á skilgreiningar minnisbókarskránni er hnappur
Þegar þú ert viss um að allt sé rétt útfyllt og þú ert tilbúinn skaltu smella á „Athugaðu“ hnappinn. Það er alveg eðlilegt að þú sért ekki búinn að átta þig á öllum smáatriðum ennþá. Þannig að „Athugaðu“ aðgerðin mun sjálfkrafa keyra og gera mikið af stíl- og samræmisskoðun. Oft mun það strax biðja þig um að staðfesta og samþykkja leiðréttingarnar (Til dæmis: "Þessi lína verður að enda með tvípunkti," og það mun biðja þig um að slá inn tvípunkt). Stundum mun hún biðja þig um að bæta við eða breyta einhverju sjálfur. Við munum stöðugt bæta nýjum eiginleikum við sjálfvirka virkni Athugunarhnappsins, en í grundvallaratriðum er tilgangur hans að tryggja að allt sem þú sendir inn í eiginleikageymsluna fylgi nú þegar eins mörgum stílleiðbeiningum og mögulegt er.
Svo, eftir að hafa keyrt „Check“, geturðu notað „Preview“. „Preview“ býr til sýnishorn af skjalasíðunni sem þú skilgreindir fyrir aðgerðina þína. Þú getur líka búið til forskoðun fyrir skrá sem er búin til á tölvunni þinni eða fyrir skrá sem er í skýjageymslu. Ef þú af einhverjum ástæðum ert ekki ánægður með það sem þú sérð í forskoðuninni, farðu einfaldlega til baka og gerðu nauðsynlegar leiðréttingar og smelltu svo á Forskoðunarhnappinn aftur.
Nú ertu tilbúinn til að ýta aðgerðinni þinni inn í geymsluna. Dreifingarhnappurinn gefur þér fjóra valkosti:
Það mikilvæga í þessu skrefi er að þú getur sent aðgerðina þína í Wolfram aðgerðageymsluna þannig að hún sé aðgengileg öllum. Á sama tíma geturðu einnig sett aðgerðina þína fyrir takmarkaðan fjölda notenda. Til dæmis geturðu búið til aðgerð sem er hýst á staðnum á tölvunni þinni þannig að hún sé tiltæk þegar þú notar þessa tilteknu tölvu. Eða þú getur sent það í þinn
Svo segjum að þú viljir raunverulega senda aðgerðina þína til þekkingargrunns Wolfram aðgerða. Til að gera þetta smellirðu á „Senda“ hnappinn í geymsluna. Svo hvað er þá að gerast í augnablikinu? Umsóknin þín er strax í biðröð til skoðunar og samþykkis af sérstöku teymi sýningarstjóra okkar.
Þegar umsóknin þín gengur í gegnum samþykkisferlið (sem tekur venjulega nokkra daga), færðu samskipti um stöðu hennar og hugsanlega tillögur um framtíðarnotkun. En þegar eiginleikinn þinn hefur verið samþykktur verður hann birtur strax í Wolfram Feature Repository og verður tiltækur fyrir alla til notkunar. (Og þetta mun birtast í
Hvað á að vera í geymslunni?
Það skal tekið fram að fyrirtækið okkar hefur mjög háar kröfur um heilleika, áreiðanleika og heildargæði og af þeim 6000+ aðgerðum sem við höfum þegar byggt inn í Wolfram tungumálið á undanförnum 30+ árum uppfylla allar ofangreindar kröfur. Markmið Wolfram Function Repository er að nota alla þá uppbyggingu og virkni sem þegar er til í Wolfram Tungumálinu til að bæta við eins mörgum léttari aðgerðum (þ.e. meiri afköstum) og mögulegt er.
Auðvitað verða aðgerðir í Wolfram aðgerðageymslunni að vera í samræmi við hönnunarreglur Wolfram tungumálsins - þannig að þær geti að fullu haft samskipti við aðrar aðgerðir og væntingar notenda um hvernig aðgerðin ætti að virka rétt. Hins vegar þurfa aðgerðir ekki að vera jafn fullkomnar eða áreiðanlegar.
Í innbyggðum aðgerðum Wolfram tungumálsins er unnið hörðum höndum að því að gera forritunaraðgerðir eins almennar og mögulegt er. Sem sagt, þegar í Wolfram aðgerðageymslunni er ekkert athugavert við að hafa aðgerð í henni sem einfaldlega sinnir einhverju mjög sérstöku en gagnlegu tilviki. Til dæmis fallið
Annar punktur sem tengist innbyggðu aðgerðunum er að fyrirtækið okkar leggur sig fram um að sinna öllum óhefðbundnum málum, rétt meðhöndla rangt inntak og svo framvegis. Í aðgerðageymslu er fullkomlega eðlilegt að það sé sérstakt aðgerð sem sér um helstu tilfelli við að leysa vandamál og hunsar öll önnur.
Augljósi punkturinn er sá að það er betra að hafa aðgerðir sem gera meira og gera það betur, en hagræðing fyrir aðgerðageymslu - öfugt við innbyggðar aðgerðir Wolfram tungumálsins - ætti að hafa fleiri aðgerðir með fleiri aðgerðum frekar en að kafa ofan í innleiðingarferli hverrar tiltekins aðgerðar.
Nú skulum við skoða dæmi um prófunaraðgerðir í geymslu. Samræmisvæntingar fyrir slíkar aðgerðir eru eðlilega mun minni en fyrir innbyggða tungumálaaðgerðir. Þetta á sérstaklega við í þeim tilvikum þar sem aðgerðir eru háðar utanaðkomandi auðlindum eins og API, það er mikilvægt að framkvæma stöðugt samræmd próf, sem gerist sjálfkrafa innan sannprófunar reikniritanna. Í nb skránni geturðu skýrt tilgreint skilgreiningar (í hlutanum Viðbótarupplýsingar) og tilgreint eins mörg próf og skilgreint er með annaðhvort inn- og úttaksstrengjum eða hlutum með fullum staf af gerðinni
Fyrir vikið mun aðgerðageymslan hafa fjölda flókinna útfærslu. Sumar verða bara ein lína af kóða, önnur geta falið í sér þúsundir eða tugþúsundir lína, líklega með mörgum hjálparaðgerðum. Hvenær er það þess virði að bæta við aðgerð sem þarf mjög lítinn kóða til að skilgreina? Í grundvallaratriðum, ef fyrir aðgerð er það
Megintilgangur aðgerðageymslu (eins og nafnið gefur til kynna) er að kynna nýja eiginleika í tungumálinu. Ef þú vilt bæta við nýjum gögnum eða
Það eru í raun tvær leiðir. Þú gætir viljað kynna nýja hlutategund sem verður notuð í nýjum aðgerðum í aðgerðageymslunni. Og í þessu tilviki geturðu alltaf skrifað niður táknræna framsetningu þess og notað það þegar þú setur inn eða gefur út aðgerðir í aðgerðageymslu.
En hvað ef þú vilt tákna hlut og skilgreina síðan, í gegnum núverandi aðgerðir í Wolfram tungumálinu, að þú viljir vinna með hann? Wolfram Tungumálið hefur alltaf haft léttan vélbúnað fyrir þetta, sem kallast
Svo, hvað gæti verið í aðgerðakóðanum í aðgerðageymslu?
Ætti allur kóða fyrir Wolfram eiginleikageymsluna að vera skrifaður í Wolfram? Vissulega ætti kóðinn inni í ytri API ekki að vera skrifaður á Wolfram tungumálinu, sem gerir ekki einu sinni tungumálakóðann. Reyndar, ef þú finnur aðgerð á næstum hvaða ytri tungumáli eða bókasafni sem er, geturðu búið til umbúðir sem gerir þér kleift að nota hana í Wolfram aðgerðageymslunni. (Venjulega ættir þú að nota innbyggðu aðgerðir fyrir þetta
Svo hver er tilgangurinn með því að gera þetta? Í meginatriðum gerir þetta þér kleift að nota allt samþætta Wolfram Language kerfið og allt sameinað sett af hugbúnaðargetu þess. Ef þú færð grunnútfærsluna frá utanaðkomandi bókasafni eða tungumáli geturðu notað hina ríku táknrænu uppbyggingu Wolfram tungumálsins til að búa til þægilega aðgerð á efstu stigi sem gerir notendum kleift að nota auðveldlega hvaða virkni sem þegar hefur verið útfærð. Að minnsta kosti ætti þetta að vera framkvæmanlegt í hugsjónaheimi þar sem allar byggingareiningar hleðslubókasafna o.s.frv. eru til, í því tilviki myndu þeir meðhöndla sjálfkrafa af Wolfram tungumálinu. (Það skal tekið fram að í reynd geta verið vandamál með
Við the vegur, þegar þú horfir fyrst á dæmigerð ytri bókasöfn virðast þau oft of flókin til að hægt sé að fjalla um þau í örfáum aðgerðum, en í mörgum tilfellum stafar mikið af flókninni frá því að búa til innviði sem þarf fyrir bókasafnið og allar aðgerðir til að styðja það. Hins vegar, þegar Wolfram tungumálið er notað, eru innviðirnir venjulega þegar innbyggðir í pakkana, og því er engin þörf á að afhjúpa allar þessar stuðningsaðgerðir í smáatriðum, heldur aðeins búa til aðgerðir fyrir „efstu“ forritssértæku aðgerðirnar í bókasafninu .
„Vitkerfi“ þekkingargrunnsins
Ef þú hefur skrifað aðgerðir sem þú notar reglulega skaltu senda þær til Wolfram Function Repository! Ef eitthvað meira kemur ekki út úr þessu (tungumálaþróun) þá mun jafnvel þá vera miklu þægilegra fyrir þig að nota aðgerðirnar til einkanota. Hins vegar er rökrétt að gera ráð fyrir því að ef þú notar aðgerðirnar reglulega, gætu aðrir notendur líka fundið þær gagnlegar.
Auðvitað gætirðu lent í aðstæðum þar sem þú getur ekki - eða vilt ekki - deila aðgerðum þínum eða ef þú færð aðgang að einkaupplýsingaauðlindum. Jafnvel í slíkum tilfellum geturðu einfaldlega sett aðgerðirnar á þinn eigin skýjareikning,
Aðgerðirnar sem þú sendir inn í Wolfram aðgerðageymsluna þurfa ekki að vera fullkomnar; þær verða bara að vera gagnlegar. Þetta er svolítið eins og "Villa" hluti í klassískum Unix skjölum - í "Definitions Section" er "Author's Notes" hluti þar sem þú getur lýst takmörkunum, vandamálum osfrv. sem þú veist nú þegar um virkni þína. Að auki, þegar þú sendir eiginleikann þinn í geymsluna, geturðu bætt við skilaskýringum sem verða lesnar af sérstöku teymi sýningarstjóra.
Þegar eiginleiki hefur verið birtur hefur síða hans alltaf tvo tengla neðst: "
Stundum viltu bara nota aðgerðir úr Wolfram aðgerðageymslunni, eins og innbyggðar aðgerðir, án þess að skoða kóðann þeirra. Hins vegar, ef þú vilt kíkja inn, þá er alltaf Notepad hnappur efst. Smelltu á það og þú munt fá þitt eigið eintak af upprunalegu skilgreiningar minnisbókinni sem var send í eiginleikageymsluna. Stundum geturðu bara notað það sem dæmi fyrir þarfir þínar. Á sama tíma geturðu einnig þróað þína eigin breytingu á þessari aðgerð. Þú gætir viljað birta þessar aðgerðir sem þú fannst úr geymslunni á tölvunni þinni eða á aphid cloud storage reikningnum þínum, kannski viltu senda þær til þekkingargrunns aðgerða, kannski sem endurbætt, stækkað útgáfa af upprunalegu aðgerðinni.
Í framtíðinni ætlum við að styðja Git-stíl gaffla fyrir eiginleikageymslur, en í bili reynum við að hafa það einfalt og við höfum alltaf aðeins eina samþykkta útgáfu af hverjum eiginleika innbyggða í tungumálið. Oftar en ekki (nema verktaki gefist upp á að viðhalda eiginleikum sem þeir þróuðu og bregðast við sendingum notenda) tekur upphaflegur höfundur eiginleikans stjórn á uppfærslum á honum og sendir inn nýjar útgáfur sem síðan eru skoðaðar og ef þær standast endurskoðunarferlið. , gefið út á tungumálinu.
Við skulum íhuga spurninguna um hvernig „útgáfu“ á þróuðum aðgerðum virkar. Núna, þegar þú notar aðgerð úr aðgerðageymslunni, verður skilgreining hennar varanlega geymd á tölvunni þinni (eða á skýjareikningnum þínum ef þú ert að nota skýið). Ef ný útgáfa af eiginleikum er tiltæk, næst þegar þú notar hana, færðu skilaboð sem tilkynna þér um þetta. Og ef þú vilt uppfæra aðgerðina í nýja útgáfu geturðu gert það með skipuninni
Eitt af því fallega við Wolfram Function Repository er að hvaða Wolfram Language forrit sem er, hvar sem er, getur notað aðgerðir úr því. Ef forrit birtist í skrifblokk er oft þægilegt að forsníða geymsluaðgerðirnar sem auðlesnar „function binary object“ föll (kannski með viðeigandi útgáfusetti).
Þú getur alltaf fengið aðgang að hvaða aðgerð sem er í aðgerðageymslunni með því að nota texta
Hvernig virkar það?
Inni í aðgerðunum í Wolfram geymslunni er þetta mögulegt með því að nota nákvæmlega það sama
Hugleiddu
Að innan geturðu séð upplýsingar með því að nota aðgerðina
Hvernig virkar uppsetning auðlindaaðgerðar? Það einfaldasta er eingöngu staðbundið tilfelli. Hér er dæmi sem tekur aðgerð (í þessu tilfelli bara hreina aðgerð) og skilgreinir hana sem auðlindafall fyrir tiltekna dagskrárlotu:
Þegar þú hefur gert skilgreininguna geturðu notað auðlindaaðgerðina:
Athugaðu að það er svart tákn í þessari aðgerðablabba . Þetta þýðir að BLOB aðgerðin vísar til auðlindaaðgerðarinnar í minni sem er skilgreind fyrir núverandi lotu. Auðlindareiginleiki sem er varanlega geymdur á tölvunni þinni eða skýjareikningi er með gráu tákni . Og það er appelsínugult tákn fyrir opinberan auðlindareiginleika í Wolfram Feature Repository .
Svo hvað gerist þegar þú notar Expand valmyndina í Definition Notebook? Í fyrsta lagi tekur það allar skilgreiningar í skrifblokkinni og út frá þeim býr til táknrænt
Staðbundin uppsetning á aðgerð úr geymslu á tölvunni þinni er framkvæmd með skipuninni
Ef þú smellir á Senda hnappinn fyrir aðgerðageymslu, hvað gerist undir henni
Sjálfgefið er að innsendingar eru gerðar undir nafninu sem tengist Wolfram auðkenninu þínu. En ef þú ert að senda inn umsókn fyrir hönd þróunarteymis eða -stofnunar geturðu það
Eftir að þú hefur sent einhverja af aðgerðum þínum til þekkingargrunns aðgerða verður hún í biðröð til skoðunar. Ef þú færð athugasemdir sem svar, þá verða þær venjulega í formi textaskráar með viðbótar „kommentafrumum“ bætt við. Þú getur alltaf athugað stöðu umsóknar þinnar með því að heimsækja
Nokkrar fíngerðir í vinnunni
Við fyrstu sýn kann það að virðast eins og þú getir bara tekið skilgreiningarglósubók og sett hana orðrétt inn í aðgerðageymslu, en það er í raun ansi mikið af fíngerðum sem koma við sögu - og meðhöndlun þeirra krefst þess að gera nokkuð flókna meta-forritun, meðhöndla táknræna vinnslu sem kóðinn sem skilgreinir aðgerðina og Notepad sjálft er skilgreint. Flest af þessu gerist innanhúss, á bak við tjöldin, en það getur haft einhver áhrif sem vert er að skilja ef þú ætlar að leggja þitt af mörkum til þekkingargrunns eiginleika.
Fyrsta tafarlausa fíngerðin: Þegar þú fyllir út skilgreiningarglósuna geturðu einfaldlega vísað í aðgerðina þína alls staðar með því að nota nafn eins og MyFunction, sem lítur út eins og venjulegt heiti fyrir fall í Wolfram Tungumálinu, en fyrir aðgerðageymsluskjöl er þessu skipt út
Önnur fíngerðin: þegar þú býrð til auðlindafall úr skilgreiningarglósubókinni, verður að fanga allar ósjálfstæðir sem taka þátt í skilgreiningunni á aðgerðinni og taka sérstaklega með. Hins vegar, til að tryggja að skilgreiningarnar haldist mát, þarftu að setja allt í einstakt
Venjulega muntu aldrei sjá nein ummerki um kóðann sem notaður er til að stilla þetta nafnrými. En ef þú kallar af einhverjum ástæðum undir-útfært tákn inni í fallinu þínu, þá muntu sjá að þetta tákn er í innra samhengi fallsins. Hins vegar, þegar unnið er úr skilgreiningarskrifblokkinni, er að minnsta kosti táknið sem samsvarar aðgerðinni sjálfu
Aðgerðargeymslan er til að skilgreina nýjar aðgerðir. Og þessar aðgerðir gætu haft möguleika. Oft eru þessar breytur (td.
Flestar aðgerðir gera einfaldlega það sem þeir eiga að gera í hvert skipti sem þeir eru kallaðir til, en sumar aðgerðir þarf að frumstilla áður en þeir geta keyrt í tiltekinni lotu - og til að leysa þetta vandamál er "Initialization" hluti í skilgreiningarhlutanum.
Aðgerðir úr geymslu geta notað aðrar aðgerðir sem eru þegar í geymslunni; til að setja upp skilgreiningar fyrir aðgerðageymslu sem innihalda tvær (eða fleiri) aðgerðir sem vísa hvert til annars, verður þú að dreifa þeim í forritalotunni þinni þannig að þú getir tilvísun eins og á þeim
Þróunarhorfur. Hvað ætti að gerast þegar geymslan verður mjög stór?
Í dag erum við bara að setja af stað Wolfram Feature Repository, en með tímanum gerum við ráð fyrir að stærð þess og virkni geti aukist verulega og eftir því sem hún vex í þróun verða ýmis vandamál sem við gerum ráð fyrir að gætu komið upp.
Fyrsta vandamálið snýr að fallheitum og sérstöðu þeirra. Aðgerðargeymslan er hönnuð á þann hátt að, eins og innbyggðu aðgerðirnar í Wolfram tungumálinu, geturðu vísað til hvaða aðgerð sem er einfaldlega með því að tilgreina nafn hennar. En þetta þýðir óhjákvæmilega að fallheiti verða að vera einstök á heimsvísu í geymslunni, þannig að til dæmis getur aðeins verið eitt
Þetta kann að virðast vera stórt vandamál í fyrstu, en það er þess virði að átta sig á því að þetta er í grundvallaratriðum sama vandamál og fyrir hluti eins og netlén eða samfélagsmiðla. Og staðreyndin er sú að kerfið þarf einfaldlega að hafa skrásetjara - og þetta er eitt af þeim hlutverkum sem fyrirtækið okkar mun sinna fyrir Wolfram virkni þekkingargrunninn. (Fyrir einkaútgáfur gagnageymslu geta skráningaraðilar þeirra verið stjórnendur.) Auðvitað er hægt að skrá netlén án þess að hafa neitt á því, en í aðgerðageymslu er aðeins hægt að skrá aðgerðaheiti ef raunveruleg skilgreining er á fallið.
Hluti af hlutverki okkar í stjórnun Wolfram falla þekkingargrunns er að tryggja að nafnið sem valið er fyrir fall sé rökrétt miðað við skilgreiningu fallsins og að það fylgi nafnavenjum Wolfram Language. Við höfum yfir 30 ára reynslu af því að nefna innbyggðar aðgerðir á Wolfram-tungumálinu og teymi sýningarstjóra okkar mun einnig koma með þá reynslu í aðgerðageymsluna. Auðvitað eru alltaf undantekningar. Til dæmis gæti virst æskilegt að hafa stutt heiti fyrir einhverja aðgerð, en það er betra að "verja" með lengra, nákvæmara nafni vegna þess að þú ert ólíklegri til að rekast á einhvern sem vill búa til svipað fallheiti í framtíðinni .
(Hér skal tekið fram að einfaldlega að bæta einhverju meðlimamerki við til að gera aðgerðir ótvíræða mun ekki hafa tilætluð áhrif. Vegna þess að nema þú krefst þess að úthluta alltaf merki, þarftu að skilgreina sjálfgefið merki fyrir hvaða fall sem er, og einnig úthluta höfundarmerkjum , sem aftur myndi krefjast alþjóðlegrar samhæfingar.)
Eftir því sem þekkingargrunnur Wolfram aðgerða stækkar, er eitt af vandamálunum sem munu líklega koma upp að hægt er að finna föll, sem kerfið veitir
Fyrir innbyggðar aðgerðir í Wolfram Tungumálinu er svokallað uppgötvunarlag frá
Wolfram aðgerðageymslan er stillt sem viðvarandi aðgerðageymsla, þar sem hvaða aðgerð sem er í henni mun alltaf virka. Auðvitað geta nýjar útgáfur af eiginleikum orðið fáanlegar og við gerum ráð fyrir að sumir eiginleikar muni að sjálfsögðu úreltast með tímanum. Aðgerðirnar virka ef þær eru notaðar í forritum, en skjalasíður þeirra munu tengja við nýjar, fullkomnari aðgerðir.
Wolfram Feature Repository er hannað til að hjálpa þér að uppgötva nýja eiginleika fljótt og læra nýjar leiðir til að nota Wolfram tungumálið. Við erum mjög bjartsýn á að sumt af því sem hefur verið kannað í eiginleikageymslunni muni á endanum vera skynsamlegt að verða innbyggður hluti af kjarna Wolfram tungumálsins. Á síðasta áratug höfum við verið með svipað sett
Það mikilvægasta hér er að aðgerð í aðgerðageymslu er eitthvað sem er í boði fyrir alla notendur til að nota núna. Það er mögulegt að eiginleiki á móðurmáli gæti verið mun betri og skilvirkari, en eiginleikageymsla myndi leyfa notendum að hafa aðgang að öllum nýju eiginleikum strax. Og síðast en ekki síst, þetta hugtak gerir öllum kleift að bæta við nýjum eiginleikum sem þeir vilja.
Fyrr í sögu Wolfram-málsins hefði þessi hugmynd ekki virkað eins vel og hún hefur gert, en á þessu stigi er svo mikið lagt upp úr tungumálinu og svo djúpur skilningur á meginreglum málhönnunar að það virðist nú vera nokkuð mögulegt fyrir stórt samfélag notenda að bæta við eiginleikum sem munu viðhalda samræmi í hönnun til að gera þá gagnlega fyrir fjölda notenda.
Það er ótrúlegur andi hæfileika(?) í Wolfram Language notendasamfélaginu. (Auðvitað inniheldur þetta samfélag marga leiðandi R&D fólk á ýmsum sviðum.) Ég vona að Wolfram Feature Repository muni veita áhrifaríkan vettvang til að opna og dreifa þessum anda hæfileika. Aðeins í sameiningu getum við búið til eitthvað sem mun víkka verulega út svæðið sem hægt er að beita Wolfram tungumálatölvuhugmyndinni.
Á meira en 30 árum höfum við náð langt með Wolfram tungumálið. Nú skulum við ganga enn lengra saman. Ég hvet eindregið alla virta notendur Wolfram tungumálsins um allan heim til að nota hagnýtu geymsluna sem vettvang fyrir þetta, sem og nýja hugbúnaðarverkefnið eins og Free Wolfram Engine for Developers.
Heimild: www.habr.com