Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

Halló, Habr! Ég kynni þér þýðingu á færslu Stephen Wolfram „Wolfram Function Repository: Opinn vettvangur til að útvíkka Wolfram tungumálið“.

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

Forsendur fyrir samræmi í Wolfram tungumálinu

Í dag stöndum við á þröskuldi frábærra afreka ásamt forritunarmálinu Wolfram tungumál. Fyrir aðeins þremur vikum byrjuðum við ókeypis Wolfram vél fyrir forritaratil að hjálpa notendum okkar að samþætta Wolfram tungumálið í stórum hugbúnaðarverkefnum sínum. Í dag erum við að setja af stað Wolfram virka geymsla, í því skyni að bjóða upp á samræmdan vettvang fyrir aðgerðir sem búnar eru til til að útvíkka Wolfram tungumálið, og við opnum einnig geymslu aðgerða fyrir alla sem geta lagt sitt af mörkum til þróunar hugbúnaðarvörunnar okkar.

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 tölvumál í fullri stærð. Í hefðbundnum forritunarmálum felur það venjulega í sér að búa til heil viðbótarsöfn sem virka eða virka ekki þegar þau eru notuð saman þegar þau eru notuð til að bæta við mikilvægri nýrri virkni. Hins vegar á Wolfram tungumálinu svo mikið er þegar innbyggt í tungumálið sjálft, að hægt sé að auka verulega virkni þess með því einfaldlega að bæta við nýjum aðgerðum sem eru samstundis felldar inn í heildræna uppbyggingu alls tungumálsins.

Til dæmis inniheldur Wolfram virka geymslan nú þegar 532 nýir eiginleikar skipt upp í 26 þemaflokka:

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

Sömuleiðis meira en 6000 staðlaðar aðgerðir, innbyggt í Wolfram tungumálið, hver aðgerð úr geymslunni hefur skjalasíðu með nákvæmri lýsingu á þeim og dæmum um vinnu:

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

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á útgáfa 12.0:

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

Hér skal tekið fram að við afgreiðslu Logo QRCode Þú þarft til dæmis ekki að setja upp „myndvinnslusafn“ - þar sem við höfum þegar innleitt samræmdan og vandlega reiknirit í Wolfram tungumálinu myndvinnsla, sem hægt er að vinna strax með ýmsum myndrænum tungumálaaðgerðum:

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

Ég vona að með stuðningnum frábært og hæfileikaríkt samfélag, sem hefur verið að vaxa og stækka (byggt á Wolfram tungumálinu) undanfarna áratugi. Wolfram virkni geymslan mun gera það kleift að stækka verulega úrval (mögulega umtalsvert, sérhæft á ýmsum sviðum vísinda og tækni) aðgerða sem eru tiltækar á tungumálinu í fyrirsjáanlegri framtíð. Þannig verður hægt að nota bæði innihald tungumálsins (innbyggðu virkni þess) og þróunarreglur, sem eru útfærðar út frá tungumálinu. (Hér skal tekið fram að Wolfram tungumálið hefur nú þegar meira en 30 ára saga þróunar og stöðugs vaxtar).
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 ytri API og þjónustu eða ytri bókasöfn á öðrum tungumálum. Sérstakur eiginleiki þessarar nálgunar er sá að þegar þú kafar niður í virkni notendastigs verður engin hugsanleg ósamræmi vegna þess að nálgunin er byggð ofan á samræmda uppbyggingu Wolfram tungumálsins - og sérhver aðgerð mun sjálfkrafa virka rétt - nákvæmlega eins og ætlaði hún ætti.
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 með því að fylla út skrifblokkina (með nb endingu) WL. Innbyggðar sjálfvirkar aðgerðir gera þér kleift að athuga nýjar aðgerðir sem bætt er við geymsluna til að tryggja samþættingu þeirra við tungumálið. Fyrirtækið okkar veðjar á fjölbreytt úrval notenda sem geta samþætt aðgerðir sínar inn í tungumálið, frekar en á mikla flókið nýrra aðgerða - og þó að það sé endurskoðunarferli þá krefjumst við ekki neitt eins og vandað hönnunargreiningu eða ströngum stöðlum um heilleika og áreiðanleika nýrra notendaeiginleika, öfugt við strangari prófun á eiginleikum sem eru innbyggðir í grunntungumálið sem við notum.

Þ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 bætt við nokkrum eiginleikum í upprunalega gagnagrunninn. Margar þeirra eru byggðar á kóða sem ég hef persónulega þróað í nokkuð langan tíma. Og það tók mig aðeins nokkrar mínútur að ýta þeim í geymsluna. Nú þegar þeir eru komnir í geymsluna get ég loksins - strax og hvenær sem er - notað þessar aðgerðir eftir þörfum, án þess að þurfa að hafa áhyggjur af því að leita að skrám, hlaða niður pakka osfrv.

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 MathSource, búin til fyrir Mathematica árið 1991 byggt á geisladiski o.s.frv.). Auðvitað er nálgunin sem lögð er til fyrir innleiðingu sem byggir á Wolfram aðgerðageymslunni öflugra og áreiðanlegra tæki til að útfæra ofangreind verkefni.

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 fullkomið tölvumál. Og þannig er kjarninn í nálguninni við að innleiða Wolfram aðgerðageymsluna að nota sameinaða nálgun til að forrita og þróa nýjar aðgerðir sem bætast við í röð og passa inn í ramma tungumálsins svo að það geti þróast og þróast saman.

Ý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 lifandi forritunarmyndböndsem fela í sér hundruð klukkustunda ferli við að búa til staðlað forrit). Það sem þessi nálgun á endanum gerir Wolfram eiginleikageymsluna fær um að skila vel er uppbygging eðli Wolfram tungumálsins, með miklum fjölda viðbótar og fjölbreyttra bókasöfna sem þegar eru innbyggð í tungumálið. Til dæmis, ef þú ert með aðgerð sem vinnur myndir, eða dreifðar fylkingarEða sameindabyggingarOg landfræðileg gögn eða einhver önnur - samkvæm táknræn framsetning þeirra er þegar til á tungumálinu og þökk sé þessu verður aðgerðin þín strax samhæfð öðrum aðgerðum á tungumálinu.

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: Project Tungsten Demonstrations, hleypt af stokkunum árið 2007 og keyrir nú á netinu á netinu með yfir 12000 gagnvirkum kynningum. IN Wolfram gagnagrunnur það eru meira en 600 tilbúnir gagnagrunnar sem hægt er að nota í Wolfram tungumálinu, og Wolfram tauganet geymsla er endurnýjað með nýjum taugakerfum næstum í hverri viku (þau eru nú þegar 118) og þau tengjast strax í gegnum aðgerðina NetModel á Wolfram tungumálinu.

Ö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 í útgáfa 12.0), Þú getur einfaldlega farið í gegnum aðalvalmyndarflipana í röð: File > New > RepositoryItem > Function Repository Item og þú munt fá "Skilgreining Notebook" (forritalega inni á vinnubekknum. Þú getur líka notað hliðrænu aðgerðina - Búa til minnisbók["FunctionResource"]):

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

Þ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:

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

Í 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 "Stílleiðbeiningar", sem útskýrir hvað á að gera, og Verkfærahnappur, sem veitir verkfæri til að forsníða skjöl aðgerðarinnar þinnar.
Þ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.

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

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:

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

Þ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 skýjareikningur, svo að það sé í boði fyrir þig þegar þú ert tengdur við skýið. Þú getur líka hýst (dreift) eiginleikanum opinberlega í gegnum skýjareikninginn þinn. Það verður ekki í miðlægu Wolfram eiginleikageymslunni, en þú munt geta gefið einhverjum vefslóð sem gerir þeim kleift að fá eiginleikann þinn af reikningnum þínum. (Í framtíðinni munum við einnig styðja miðlægar geymslur í öllu fyrirtækinu okkar.)

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 í fréttayfirlit um nýja eiginleika og svo framvegis)

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ð SendMailFromNotebook geta tekið á móti skrám á einu ákveðnu sniði og búið til póst á einn ákveðinn hátt. Marghyrningamynd býr til töflur með aðeins ákveðnum litum og merkingum o.s.frv.

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 Staðfestingarpróf, eins mikið og þér sýnist. Að auki er kerfið stöðugt að reyna að breyta skjaladæmunum sem þú gefur upp í sannprófunarferli (og stundum getur þetta verið ansi auðlindafrekt, til dæmis fyrir fall þar sem niðurstaðan fer eftir tilviljunarkenndum tölum eða tíma dags).

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ð gott minnisvarða nafn, sem notendur myndu auðveldlega skilja ef þeir sáu það í kóða, þá er nú þegar hægt að bæta því við. Annars er líklega betra að setja kóðann aftur við forritið þitt í hvert skipti sem þú þarft að nota þ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 nýjar einingar, nota Wolfram gagnageymsla. En hvað ef þú vilt kynna nýjar tegundir af hlutum fyrir útreikninga þína?

Þ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 UppValues. Með nokkrum takmörkunum (sérstaklega fyrir aðgerðir sem geta ekki metið rök þeirra), aðgerðageymsla gerir þér kleift að tákna aðgerð og skilgreina gildi fyrir hana. (Að auka væntingar um samræmi þegar búið er til nýja stóra hönnun sem er að fullu samþætt í gegnum Wolfram Tungumálið er almennt mjög mikilvæg aðferð sem ekki er hægt að ná með því einfaldlega að auka kostnað við verkefnið og er eitthvað sem fyrirtækið okkar gerir sem hluti af verkefnum fyrir langtímaþróun tungumálsins er þetta verkefni ekki markmið sem er sett sem hluti af þróun geymslunnar).

Svo, hvað gæti verið í aðgerðakóðanum í aðgerðageymslu? Allt innbyggt í Wolfram tungumálið, auðvitað (að minnsta kosti ef það táknar ekki ógnir í Öryggi og frammistöðu forritsins sjálfs, sem tölvuumhverfis) sem og hvers kyns aðgerða úr aðgerðageymslunni. Hins vegar eru önnur virkni: aðgerð í aðgerðageymslu getur hringt í API, eða í Wolfram CloudEða frá annarri heimild. Auðvitað eru nokkrar áhættur tengdar þessu. Vegna þess að engar tryggingar eru fyrir því að API breytist ekki og aðgerðin í aðgerðaversluninni hættir að virka. Til að hjálpa til við að bera kennsl á vandamál eins og þetta er athugasemd á skjalasíðunni (í hlutanum Kröfur) fyrir alla eiginleika sem treysta á meira en bara innbyggða Wolfram Language virkni. (Auðvitað, þegar kemur að raunverulegum gögnum, geta verið vandamál jafnvel með þessa virkni - vegna þess að raunveruleg gögn eru stöðugt að breytast, og stundum jafnvel skilgreiningar þeirra og uppbygging breytast.)

Æ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 Ytra meta eða Ytri virkni í Wolfram tungumálakóða.)

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ð setja upp ytri tungumál sérstakt tölvukerfi og skýgeymsla gæti valdið frekari öryggisvandamálum).

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, tilgreina réttindi aðgang að þeim. (Ef fyrirtækið þitt hefur Wolfram Enterprise einkaský, þá mun það brátt geta hýst sína eigin einkaeiginleikageymslu, sem hægt er að stjórna innan fyrirtækisins og stilla hvort þriðju aðila notendur eigi að þvinga skoðanir eða ekki.)

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: "Sendu skilaboð um þennan eiginleika"Og"Ræddu í Wolfram samfélaginu" Ef þú ert að hengja athugasemd við (td segðu mér frá villum), geturðu hakað í reitinn sem segir að þú viljir að skilaboðum þínum og tengiliðaupplýsingum verði deilt með höfundi eiginleikans.

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 ResourceUpdate. („Funkunarblaðið“ geymir í raun fleiri útgáfuupplýsingar og við ætlum að gera þetta aðgengilegra fyrir notendur okkar í framtíðinni.)

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 Resource Function[...]. Og þetta er mjög þægilegt ef þú skrifar kóða eða forskriftir beint fyrir Wolfram Engine, til dæmis með nota IDE eða texta kóða ritil (það skal sérstaklega tekið fram að aðgerðageymslan er fullkomlega samhæf við Ókeypis Wolfram vél fyrir hönnuði).

Hvernig virkar það?

Inni í aðgerðunum í Wolfram geymslunni er þetta mögulegt með því að nota nákvæmlega það sama auðlindakerfi basar, eins og í allar aðrar núverandi geymslur okkar (gagnageymslu, Neural Net Repository, safn kynningarverkefna osfrv.), eins og öll önnur Wolfram kerfisauðlindir, ResourceFunction að lokum byggt á virkni ResourceObject.

Hugleiddu ResourceFunction:

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

Að innan geturðu séð upplýsingar með því að nota aðgerðina Upplýsingar:

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

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:

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

Þegar þú hefur gert skilgreininguna geturðu notað auðlindaaðgerðina:

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

Athugaðu að það er svart tákn í þessari aðgerðablabba Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur. Þ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 Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur. Og það er appelsínugult tákn fyrir opinberan auðlindareiginleika í Wolfram Feature Repository Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur.

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 ResourceObject). (Og ef þú ert að nota texta-undirstaða IDE eða forrit, þá geturðu líka beinlínis búið til ResourceObject)

Staðbundin uppsetning á aðgerð úr geymslu á tölvunni þinni er framkvæmd með skipuninni LocalCache fyrir auðlindarhlut til að vista hann sem LocalObject á skráarkerfinu þínu. Dreifing á skýjareikning er gerð með skipuninni CloudDeploy fyrir auðlindahlut, og opinber skýdreifing er CloudPublish. Í öllum tilfellum ResourceRegister einnig notað til að skrá nafn auðlindaraðgerðarinnar, svo Resource Function["nafn"] mun virka.

Ef þú smellir á Senda hnappinn fyrir aðgerðageymslu, hvað gerist undir henni ResourceSubmit kallað á auðlindahlut. (Og ef þú ert að nota textainnsláttarviðmót geturðu líka hringt ResourceSubmit Beint.)

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ð stilltu sérstakt auðkenni útgefanda og notaðu það í staðinn sem nafn til að hafa samskipti við skoðanir þínar.

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 Aðildargátt auðlindakerfisins. En þegar eiginleikinn þinn hefur verið samþykktur verður þér tilkynnt (með tölvupósti) og eiginleikinn þinn verður settur á Wolfram eiginleikageymsluna.

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 Resource Function["MyFunction"] er það sem notendur munu raunverulega nota þegar þeir vinna með aðgerðina.

Ö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 nafnrými. (Auðvitað, aðgerðir sem gera allt, eru í aðgerðageymslunni.)

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 stillanleg fyrir besta skjáinn sem hagnýtur BLOB frekar en hrár karakter í innra samhengi.

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. Aðferð eða Myndstærð) verður hægt að nota fyrir innbyggðar aðgerðir, sem og fyrir þær sem innbyggð tákn eru þegar til fyrir. En stundum getur nýr eiginleiki krafist nýrra valkosta. Til þess að viðhalda einingu þurfa þessar færibreytur að vera tákn sem eru skilgreind í einstöku innra samhengi (eða eitthvað eins og heilar auðlindaaðgerðir, það er þær sjálfar). Til einföldunar gerir aðgerðageymslan þér kleift að skilgreina nýja valkosti í strengaskilgreiningum. Og til þæginda fyrir notandann, þessar skilgreiningar (að því gefnu að þær séu notaðar ValkosturValue и Valmöguleikamynstur) eru einnig unnin þannig að þegar föll eru notuð er ekki aðeins hægt að tilgreina færibreytur sem strengi, heldur einnig sem alþjóðleg tákn með sömu nöfnum.

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 Resource Function["nafn"], þá geturðu búið til samsetningar þessara aðgerða sem þú þarft, dæmi (ég skildi ekki) og bætt nýrri aðgerð við geymsluna byggða á þeim sem þegar hafa verið birtar áðan. (eða þegar eða áður - bæði orðin eru klaufaleg)

Þ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 Resource Function["MyFavorite Function"].

Þ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 leitaraðgerð (og skilgreiningarskrár geta innihaldið leitarorð o.s.frv.). Fyrir innbyggðar aðgerðir í Wolfram tungumálinu eru alls kyns krosstilvísanir í skjölunum til að hjálpa til við að „auglýsa“ aðgerðirnar. Aðgerðir í aðgerðageymslu geta vísað til innbyggðra aðgerða. En hvað með öfugt? Til að gera þetta ætlum við að gera tilraunir með mismunandi hönnun til að afhjúpa geymsluaðgerðir á skjalasíðum fyrir innbyggðar aðgerðir.

Fyrir innbyggðar aðgerðir í Wolfram Tungumálinu er svokallað uppgötvunarlag frá net „hjálparsíður“, sem veita skipulagða lista yfir eiginleika sem tengjast sérstökum svæðum. Það er alltaf erfitt að jafna mansíður almennilega og eftir því sem Wolfram tungumálið stækkar þarf oft að endurskipuleggja mansíður alveg. Það er frekar auðvelt að setja aðgerðir úr geymslu í víðtæka flokka, og jafnvel að skipta þeim flokkum niður stöðugt, en það er miklu meira virði að hafa rétt skipulagðar tungumálavísunarsíður. Ekki er enn ljóst hvernig best er að búa þær til fyrir allan þekkingargrunninn fyrir virkni. Til dæmis, CreateResourceObjectGallery í eiginleikageymslunni getur hver sem er sett inn vefsíðu sem inniheldur „valið“ þeirra úr geymslunni:

Wolfram Function Repository: Opinn aðgangsvettvangur fyrir Wolfram tungumálaviðbætur

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 eiginleikar sem voru upphaflega kynntir í Wolfram | Alfa. Og einn af lærdómnum af þessari reynslu er að það þarf mikla vinnu að ná þeim gæða- og samræmisstöðlum sem við leggjum áherslu á í öllu sem er innbyggt í Wolfram tungumálið, sem er oft erfiðara en upphafleg viðleitni til að koma hugmyndinni í framkvæmd. Samt sem áður getur aðgerð í þekkingargrunni aðgerða þjónað sem mjög gagnleg sönnun fyrir hugmyndum fyrir framtíðaraðgerð sem gæti að lokum verið byggð inn í Wolfram tungumálið.

Þ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

Bæta við athugasemd