Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Hello, Habr! Gipresentar ko sa imong pagtagad ang usa ka paghubad sa post ni Stephen Wolfram "Ang Wolfram Function Repository: Paglunsad og Bukas nga Plataporma alang sa Pagpalapad sa Wolfram Language".

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Mga kinahanglanon alang sa pagkamakanunayon sa pinulongang Wolfram

Karon nagbarug kami sa threshold sa daghang mga nahimo kauban ang programming language Pinulongan sa Wolfram. Tulo lang ka semana ang milabay among gilusad libre nga Wolfram engine alang sa mga developersaron matabangan ang among mga tiggamit nga mahiusa ang Wolfram Language sa ilang mga dagkong proyekto sa software. Karon naglansad kami Wolfram function repository, aron sa paghatag og usa ka koordinado nga plataporma alang sa mga gimbuhaton nga gihimo aron sa pagpalapad sa Wolfram nga pinulongan, ug kami usab nag-abli sa usa ka tipiganan sa mga gimbuhaton alang sa bisan kinsa nga makatampo sa pagpalambo sa among software nga produkto.

Ang Wolfram Function Repository usa ka butang nga nahimong posible pinaagi sa talagsaon nga kinaiya sa Wolfram Language dili lamang isip usa ka programming language, apan usab isip usa ka full-scale computing nga pinulongan. Sa tradisyonal nga mga pinulongan sa programming, ang pagdugang og mahinungdanong bag-ong mga gamit kasagaran naglakip sa paghimo og tibuok nga dugang nga mga librarya nga mahimo o dili mahimo kung gamiton nga magkauban. Apan, sa Wolfram Language daghan na ang natukod sa pinulongan mismo, nga posible nga mapalapad pag-ayo ang pagpaandar niini pinaagi lamang sa pagdugang ug bag-ong mga gimbuhaton nga gisagol dayon sa holistic nga istruktura sa tibuok nga pinulongan.

Pananglitan, ang Wolfram function repository naa na 532 bag-ong mga bahin gihan-ay sa 26 ka tematik nga mga kategorya:

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Ingon usab labaw pa sa 6000 nga standard function, gitukod sa pinulongang Wolfram, ang matag function gikan sa repository adunay panid sa dokumentasyon nga adunay detalyadong paghulagway niini ug mga pananglitan sa trabaho:

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Aron makaadto sa panid, kopyaha ang butang sa ibabaw (function BLOB), idikit kini sa linya sa pag-input ug dayon pagdagan ang function - natukod na kini sa pinulongang Wolfram ug gisuportahan pinaagi sa default sugod sa bersyon 12.0:

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Kini kinahanglan nga matikdan dinhi nga sa diha nga ang pagproseso LogoQRCode Dili nimo kinahanglan, pananglitan, nga magbutang usa ka "library sa pagproseso sa imahe" - tungod kay gipatuman na namon ang usa ka makanunayon ug mabinantayon nga paagi sa algorithm sa Wolfram Language pagproseso sa imahe, nga maproseso dayon sa lain-laing mga graphical language functions:

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Manghinaut ko nga uban sa suporta talagsaon ug talento nga komunidad, nga nag-uswag ug nagkalapad (base sa Wolfram Language) sa miaging pipila ka dekada. Ang Wolfram function repository magtugot alang sa umaabot nga umaabot nga mapalapad pag-ayo ang han-ay sa (posible nga mahimong mahinungdanon, espesyalista sa lain-laing natad sa syensya ug teknolohiya) nga mga gimbuhaton nga anaa sa pinulongan. Sa ingon, mahimo nga magamit ang parehas nga sulud sa lengguwahe (mga built-in nga gimbuhaton) ug mga prinsipyo sa kalamboan, nga gipatuman base sa pinulongan. (Kinahanglan nga matikdan dinhi nga ang Wolfram Language adunay labaw pa sa 30 ka tuig nga kasaysayan sa kalamboan ug lig-on nga pagtubo).
Ang mga function gikan sa repository mahimong adunay gagmay o dagkong mga piraso sa code nga gisulat sa Wolfram Language. Pananglitan, kini mahimong mga tawag eksternal nga mga API ug mga serbisyo o eksternal nga mga librarya sa ubang mga pinulongan. Ang talagsaon nga bahin niini nga pamaagi mao nga kung mag-drill ka ngadto sa user-level functionality, wala'y potensyal nga mga panagsumpaki tungod kay ang pamaagi gitukod sa ibabaw sa makanunayon nga istruktura sa Wolfram Language - ug ang matag function awtomatik nga magtrabaho sa husto - sama sa gituyo. kinahanglan.
Ang kabhang ug istruktura sa programming sa Wolfram Feature Repository gidisenyo aron ang tanan makatampo sa komon nga hinungdan sa labing yano ug sayon ​​nga paagi alang kanila - sa pagkatinuod, lang pinaagi sa pagpuno sa notepad text file (uban ang nb extension) WL. Gitugotan ka sa mga built-in nga awtomatik nga pag-andar nga susihon ang mga bag-ong gimbuhaton nga gidugang sa repository aron masiguro ang ilang panagsama sa sinultian. Ang among kompanya nagpusta sa halapad nga mga tiggamit nga mahimo’g i-integrate ang ilang mga gimbuhaton sa lengguwahe, kaysa sa labi ka komplikado sa mga bag-ong gimbuhaton - ug bisan kung adunay proseso sa pagrepaso, wala kami moinsistir sa bisan unsang butang nga sama. makuti nga pagtuki sa disenyo o estrikto nga mga sumbanan alang sa pagkakompleto ug kasaligan sa mga bag-ong feature sa user, sukwahi sa mas estrikto nga pagsulay sa mga feature nga gitukod sa kinauyokan nga pinulongan nga among gigamit.

Adunay daghang mga trade-off ug mga detalye niini nga pamaagi, apan ang among tumong mao ang pag-optimize sa Wolfram feature repository alang sa kasinatian sa user ug sa pagsiguro nga ang bag-ong mga feature sa user makatampo og makahuluganon sa pagpalambo sa pinulongan. Samtang kita motubo, ako walay pagduha-duha nga kita kinahanglan nga mag-imbento og bag-ong mga pamaagi alang sa pagproseso ug pag-validate sa mga gimbuhaton nga gitukod sa repository, labing menos alang sa pag-organisar sa daghang mga gimbuhaton ug pagpangita sa mga gikinahanglan sa mga tiggamit. Bisan pa, makapadasig nga ang dalan nga among gipili usa ka maayong pagsugod. Ako sa personal midugang sa pipila ka mga bahin sa orihinal nga database. Daghan kanila gibase sa code nga akong personal nga naugmad sa dugay na nga panahon. Ug pipila lang ka minuto ang pagduso nako nila sa repository. Karon nga naa na sila sa repository, mahimo nako sa katapusan - diha-diha dayon ug bisan unsang oras - magamit kini nga mga gimbuhaton kung gikinahanglan, nga dili kinahanglan mabalaka bahin sa pagpangita sa mga file, pag-download sa mga pakete, ug uban pa.

Pagdugang sa kahusayan samtang pagkunhod sa gasto

Bisan sa wala pa ang Internet, adunay mga paagi sa pagpaambit sa Wolfram Language code (ang among unang mayor nga sentralisadong proyekto mao ang MathSource, gihimo para sa Mathematica niadtong 1991 base sa CD-ROM, ug uban pa). Siyempre, ang pamaagi nga gisugyot alang sa pagpatuman base sa Wolfram function repository usa ka mas gamhanan ug kasaligan nga himan alang sa pagpatuman sa mga buluhaton sa ibabaw.

Sulod sa kapin sa 30 ka tuig, ang among kompanya makugihon nga nagtrabaho aron mapadayon ang integridad sa istruktura sa pinulongang Wolfram, ug kini hinungdanon aron masiguro nga ang pinulongang Wolfram dili lamang usa ka programming language, apan usa usab ka bug-os nga computing nga pinulongan. Ug sa ingon, ang diwa sa pamaagi sa pagpatuman sa Wolfram function repository mao ang paggamit sa usa ka hiniusa nga pamaagi sa pagprograma ug pagpalambo sa bag-ong mga gimbuhaton nga sunodsunod nga gidugang ug mohaum sa gambalay sa pinulongan aron kini molambo ug magkauban.

Nagkalainlain nga mga proseso sa pagkalkula ang nahitabo sa istruktura sa pagpatuman sa matag function. Kini kinahanglan nga nakita dinhi nga kini mao ang gikinahanglan nga ang function adunay usa ka tin-aw ug uniporme nga panagway ug visual readability alang sa user. Niini nga konteksto, ang mga built-in nga function sa Wolfram Language gipresentar sa labaw pa sa 6000 sequential nga mga pananglitan kung unsaon pag-program sa husto nga mga function (kini ang atong live nga mga video sa programmingnga naglakip sa gatusan ka oras nga proseso sa paghimo og standard nga mga programa). Ang nahimo niining paagiha sa katapusan naghimo sa Wolfram feature repository nga makahimo og maayo mao ang structural nga kinaiya sa Wolfram Language, uban sa daghang gidaghanon sa dugang ug lain-laing mga librarya nga natukod na sa pinulongan. Pananglitan, kung ikaw adunay function nga nagproseso sa mga imahe, o gamay nga arrays, o mga istruktura sa molekulaUg geograpikanhong datos o uban pa - ang ilang makanunayon nga simbolikong representasyon anaa na sa pinulongan, ug salamat niini, ang imong function diha-diha dayon nahimong compatible sa ubang mga function sa pinulongan.

Ang paghimo og repository nga aktuwal nga nagtrabaho og maayo usa ka makapaikag nga meta-programming nga buluhaton. Pananglitan, ang sobra nga mga pagdili sa programa dili magtugot nga makuha ang gikinahanglan nga panaghiusa ug unibersalidad sa algorithm. Sama sa usa ka dili igo nga gidaghanon sa mga pagdili sa pag-andar, dili ka makahimo sa pagpatuman sa usa ka igo nga husto nga pagkasunod-sunod sa pagpatuman sa algorithm. Daghang mga nangaging mga pananglitan sa pagpatuman sa usa ka pagkompromiso sa kini nga mga pamaagi, nga gipatuman sa among kompanya, nagtrabaho nga lig-on - kini mao ang: Mga Demonstrasyon sa Tungsten sa Proyekto, gilusad niadtong 2007 ug karon nagdagan online online nga adunay kapin sa 12000 ka user-interactive nga mga demo. SA database sa Wolfram adunay labaw pa sa 600 nga andam nga mga database nga magamit sa Wolfram Language, ug Pagtipig sa neural network sa Wolfram gipuno sa bag-ong mga neural network hapit matag semana (adunay na 118 niini karon) ug sila konektado dayon pinaagi sa function NetModel sa Wolfram Language.

Ang tanan nga mga pananglitan sa ibabaw adunay sukaranan nga bahin - ang mga butang ug mga gimbuhaton nga nakolekta sa proyekto adunay taas nga lebel sa pag-istruktura ug pag-apod-apod sa mga proseso. Siyempre, ang detalye sa istruktura sa kung unsa ang usa ka demo o usa ka neural network o uban pa mahimong magkalainlain, apan ang sukaranan nga istruktura alang sa bisan unsang kasamtangan nga repository kanunay nagpabilin nga parehas. Busa unsa ang imong opinyon, minahal nga tiggamit, mahitungod sa paghimo sa ingon nga usa ka repository nga nagdugang mga extension sa Wolfram nga pinulongan? Ang Wolfram nga Pinulongan kay gidesinyo nga mahimong hilabihan ka flexible, aron kini mapalapad ug mabag-o sa bisan unsang paagi. Kini nga kahimtang hinungdanon kaayo alang sa katakus sa dali nga paghimo sa lainlaing mga dagkong proyekto sa software sa Wolfram Language. Angay nga timan-an dinhi nga samtang motaas ang pagka-flexible sa pinulongan, dili kalikayan nga motaas ang gasto sa mga proyekto nga gipatuman sa maong pinulongan. Kini mao ang tungod sa kamatuoran nga ang labaw nga user sa paggamit sa ingon nga usa ka pinulongan, ang labaw nga dedikado nga functionality iyang madawat, apan kita kinahanglan nga dili kalimtan nga kini nga pamaagi mahimo usab nga adunay negatibo nga mga bahin sa mga termino sa kawalay katakus sa pagsiguro sa makanunayon pagkamakanunayon sa programa modules.

Adunay usa ka kasagarang problema sa mga librarya sa tradisyonal nga mga programming language - kung mogamit ka usa ka librarya, pananglitan, ang code molihok sa husto, apan kung sulayan nimo ang paggamit sa daghang mga librarya, wala’y garantiya nga sila makig-uban sa husto sa usag usa . Usab, sa tradisyonal nga mga programming language - dili sama sa usa ka bug-os nga computing nga pinulongan - wala'y paagi sa paggarantiya sa presensya sa makanunayon nga built-in nga mga representasyon alang sa bisan unsang mga gimbuhaton o mga tipo sa datos gawas sa ilang mga batakang istruktura. Apan, sa tinuud, ang problema mas dako pa kaysa sa una nga pagtan-aw: kung ang usa nagtukod usa ka dako nga bertikal nga pag-andar, kung wala ang daghang mga gasto sa sentralisadong programa sa proyekto nga among gibutang sa pinulongang Wolfram, imposible nga makab-ot ang pagkamakanunayon. Busa importante nga ang tanang software modules kanunay magtinabangay sa hustong paagi.

Mao nga ang ideya sa luyo sa Wolfram feature repository mao ang paglikay sa problema nga gilatid sa ibabaw pinaagi lamang sa pagdugang sa mga extension sa pinulongan sa medyo gagmay nga mga piraso sa code pinaagi sa tagsa-tagsa nga mga feature nga mas sayon ​​nga mapalambo isip coherent modules. Ingon niana, adunay mga bahin sa pagprograma nga dili mahimo nga kombenyente gamit ang mga indibidwal nga gimbuhaton (ug ang among kompanya nagplano nga buhian ang usa ka na-optimize nga algorithm sa pagprograma sa umaabot nga umaabot aron matabangan ang pagpatuman sa dagkong mga pakete sa software). Bisan pa, base sa mga gimbuhaton nga natukod na sa Wolfram Language, adunay daghang mga posibilidad sa pagprograma nga gipatuman base sa indibidwal nga mga gimbuhaton. Ang ideya dinhi mao nga sa medyo gamay nga paningkamot sa pagprograma posible nga makahimo og daghang mga bag-o ug mapuslanon kaayo nga mga gimbuhaton nga maghatag igo nga pagkadugtong sa disenyo, sila mahimong maayo nga koordinasyon sa usag usa, ug usab, dugang pa niini, sila mahimong dali ug kaylap nga gamiton sa pinulongan sa umaabot.

Kini nga pamaagi, siyempre, usa ka pagkompromiso. Kung ang usa ka mas dako nga pakete gipatuman, ang usa ka bag-ong kalibutan sa pagpaandar mahimong mahanduraw nga labi ka kusgan ug mapuslanon. Kung adunay kinahanglan nga makakuha og bag-ong pag-andar nga mohaum sa tanan, apan dili ka andam nga mogasto og daghang paningkamot sa pagpalambo sa proyekto, kini, sa kasubo, mahimong mosangpot sa pagkunhod sa sakup sa imong proyekto. Ang ideya sa luyo sa Wolfram feature repository mao ang paghatag og functionality sa usa ka define nga bahin sa usa ka proyekto; kini nga pamaagi makadugang og gamhanan nga functionality samtang nagpasayon ​​sa pagpadayon sa maayo nga consistency sa usa ka programming project.

Tabang sa pagdugang sa naandan nga mga gimbuhaton sa tipiganan sa function

Ang among team nagtrabaho pag-ayo aron mapadali ang mga tiggamit sa pagtampo sa mga bahin sa repository sa Wolfram. Sa desktop (naa na sa bersyon 12.0), Mahimo ka lang nga moagi sa mga tab sa main menu nga sunud-sunod: File> New> RepositoryItem> Function Repository Item ug makuha nimo ang "Depinisyon Notebook" (programmatically sulod sa workbench. Mahimo usab nimo gamiton ang analogue function - PaghimoNotebook["FunctionResource"]):

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Adunay duha ka nag-unang mga lakang nga kinahanglan nimong buhaton: una, isulat gyud ang code alang sa imong function ug, ikaduha, isulat ang dokumentasyon nga nag-ilustrar kung giunsa molihok ang imong function.
I-klik ang "Open Sample" nga buton sa ibabaw aron makakita og ehemplo sa kinahanglan nimong buhaton:

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Sa tinuud, naningkamot ka nga maghimo usa ka butang nga susama sa usa ka built-in nga function sa Wolfram Language. Gawas nga kini makahimo sa usa ka butang nga mas espesipiko kay sa usa ka built-in nga function. Sa samang higayon, ang mga pagdahom bahin sa pagkakompleto ug kasaligan niini mahimong mas ubos.
Kinahanglan nimong hatagan ang imong function ug ngalan nga nagsunod sa mga panudlo sa pagngalan sa function sa Wolfram Language. Dugang pa, kinahanglan nimo nga maghimo og dokumentasyon para sa imong function, susama sa mga built-in nga function sa pinulongan. Hisgutan ko kini sa mas detalyado sa ulahi. Sa pagkakaron, matikdi lang nga sa laray sa mga buton sa ibabaw sa definition notebook file adunay buton "Mga Giya sa Estilo", nga nagpatin-aw kung unsa ang buhaton, ug usa ka buton sa Tools, nga naghatag mga himan alang sa pag-format sa dokumentasyon sa imong function.
Kung sigurado ka nga napuno sa husto ang tanan ug andam ka na, i-klik ang "Check" button. Kini mao ang hingpit nga normal nga kamo wala makahunahuna sa tanan nga mga detalye pa. Mao nga ang function nga "Check" awtomatikong modagan ug maghimo daghang mga pagsusi sa istilo ug pagkamakanunayon. Kasagaran, kini diha-diha dayon mag-aghat kanimo sa pagkumpirma ug pagdawat sa mga pagtul-id (Pananglitan: "Kini nga linya kinahanglan matapos sa usa ka colon," ug kini mag-aghat kanimo sa pagsulod sa usa ka colon). Usahay hangyoon ka niya nga idugang o usbon ang usa ka butang sa imong kaugalingon. Kanunay namong idugang ang mga bag-ong feature sa awtomatik nga pag-andar sa Check button, apan ang katuyoan niini mao ang pagsiguro nga ang tanan nga imong gisumite sa feature repository nagsunod na sa daghang mga giya sa estilo kutob sa mahimo.

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Busa, human sa pagpadagan sa "Check", mahimo nimong gamiton ang "Preview". Ang "Preview" nagmugna og preview sa panid sa dokumentasyon nga imong gihubit alang sa imong function. Mahimo ka usab nga maghimo usa ka preview alang sa usa ka file nga gihimo sa imong computer o alang sa usa ka file nga nahimutang sa pagtipig sa panganod. Kung, sa usa ka hinungdan, dili ka matagbaw sa imong nakita sa preview, balik lang ug himoa ang gikinahanglan nga mga pagtul-id, ug dayon i-klik ang Preview button pag-usab.
Karon andam ka na nga iduso ang imong function sa repository. Ang Deploy button naghatag kanimo og upat ka mga kapilian:

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Ang importante nga butang niini nga lakang mao nga mahimo nimong isumite ang imong function sa Wolfram function repository aron kini magamit ni bisan kinsa. Sa parehas nga oras, mahimo usab nimo ibutang ang imong function alang sa limitado nga gidaghanon sa mga tiggamit. Pananglitan, makahimo ka og function nga gi-host sa lokal sa imong computer aron magamit kini kung imong gigamit ang partikular nga computer. O mahimo nimo kini i-post sa imong cloud account, aron kini magamit kanimo kung konektado ka sa panganod. Mahimo usab nimo nga i-host sa publiko (i-deploy) ang bahin pinaagi sa imong cloud account. Dili kini sa sentro nga bahin sa Wolfram nga repository, apan mahimo nimong hatagan ang usa ka tawo og URL nga magtugot kanila nga makuha ang imong bahin gikan sa imong account. (Sa umaabot, suportahan usab namon ang mga sentral nga repositoryo sa among kompanya.)

Busa ingnon ta nga gusto nimo nga isumiter ang imong function sa Wolfram function knowledge base. Aron mahimo kini, imong i-klik ang "Isumite" nga buton sa repositoryo. Busa unsa man ang nahitabo karon? Ang imong aplikasyon gipila dayon alang sa pagsusi ug pag-apruba sa among gipahinungod nga grupo sa mga curator.

Samtang nag-uswag ang imong aplikasyon pinaagi sa proseso sa pag-apruba (nga kasagarang mokabat ug pipila ka adlaw), makadawat ka ug mga komunikasyon bahin sa kahimtang niini ug posible nga mga sugyot alang sa umaabot nga paggamit. Apan kung maaprobahan na ang imong feature, ipatik dayon kini sa Wolfram Feature Repository ug mahimong magamit ni bisan kinsa. (Ug kini makita sa news digest sa mga bag-ong feature ug uban pa)

Unsa ang kinahanglan sa pagtipig?

Kinahanglang hinumdoman nga ang among kompanya adunay taas kaayo nga mga sumbanan alang sa pagkakompleto, kasaligan ug kinatibuk-ang kalidad, ug sa 6000+ nga mga gimbuhaton nga among natukod sa pinulongang Wolfram sa miaging 30+ ka tuig, ang tanan nakab-ot ang mga kinahanglanon sa ibabaw. Ang tumong sa Wolfram Function Repository mao ang paggamit sa tanang istruktura ug functionality nga anaa na sa Wolfram Language aron makadugang ug mas gaan nga mga function (nga mao, mas taas nga performance functions) kutob sa mahimo.

Siyempre, ang mga gimbuhaton sa Wolfram function repository kinahanglan nga mahiuyon sa disenyo nga mga prinsipyo sa Wolfram Language - aron sila hingpit nga makig-uban sa uban nga mga gimbuhaton ug mga gilauman sa mga tiggamit kung giunsa ang function kinahanglan molihok sa husto. Bisan pa, ang mga gimbuhaton dili kinahanglan nga parehas nga pagkakompleto o kasaligan.

Sa mga built-in nga function sa Wolfram nga lengguwahe, nagtrabaho kami pag-ayo aron mahimo ang mga gimbuhaton sa pagprograma sa kinatibuk-an kutob sa mahimo. Kana nga giingon, kung sa Wolfram function repository wala’y sayup nga adunay usa ka function niini nga yano nga nagdumala sa pipila ka piho apan mapuslanon nga kaso. Pananglitan, ang function SendMailFromNotebook makadawat og mga file sa usa ka piho nga format ug makahimo og mail sa usa ka piho nga paagi. PolygonalDiagram naghimo og mga tsart nga adunay piho nga mga kolor ug pag-label, ug uban pa.

Ang laing punto nga may kalabutan sa mga built-in nga mga function mao nga ang among kompanya naghimo sa tanan nga paningkamot sa pagdumala sa tanan nga dili tipikal nga mga kaso, sa husto nga pagdumala sa sayop nga input, ug uban pa. Sa usa ka function repository, kini mao ang hingpit nga normal nga adunay usa ka espesyal nga function nga nagdumala sa mga nag-unang mga kaso sa pagsulbad sa usa ka problema ug wala magtagad sa tanan nga uban.

Ang klaro nga punto mao nga mas maayo nga adunay mga gimbuhaton nga labi ka daghan ug mahimo kini nga labi ka maayo, apan ang pag-optimize alang sa usa ka repository sa function - sukwahi sa mga built-in nga function sa pinulongang Wolfram - kinahanglan adunay daghang mga gimbuhaton nga gihugpong nga adunay daghang mga gimbuhaton kaysa pag-usisa. ang mga proseso sa pagpatuman sa matag piho nga gimbuhaton.

Karon atong tan-awon ang usa ka pananglitan sa mga function sa pagsulay sa usa ka repositoryo. Ang pagkamakanunayon nga mga gipaabut alang sa ingon nga mga gimbuhaton natural nga labi ka ubos kaysa sa mga built-in nga function sa pinulongan. Tinuod kini labi na sa mga kaso diin ang mga gimbuhaton nagsalig sa mga eksternal nga kapanguhaan sama sa mga API, hinungdanon nga kanunay nga magpahigayon kanunay nga mga pagsulay, nga awtomatiko nga mahitabo sa sulod sa mga algorithm sa pag-verify. Sa nb file, mahimo nimong klaro nga ipiho ang mga kahulugan (sa seksyon sa Dugang nga Impormasyon) ug ipiho ang daghang mga pagsulay sama sa gipasabut sa bisan unsang input ug output nga mga kuwerdas o puno nga mga butang nga adunay tipo. Pagsusi sa Pagpamatuod, kutob sa imong nakita nga angay. Dugang pa, ang sistema kanunay nga naningkamot sa paghimo sa mga panig-ingnan sa dokumentasyon nga imong gihatag sa usa ka proseso sa pag-verify (ug usahay kini mahimo nga labi ka kusog sa kapanguhaan, pananglitan, alang sa usa ka function kansang resulta nagdepende sa mga random nga numero o oras sa adlaw).

Ingon usa ka sangputanan, ang repository sa function adunay daghang mga pagkakomplikado sa pagpatuman. Ang uban mahimong usa ra ka linya sa code, ang uban mahimo’g maglakip sa liboan o napulo ka libo nga linya, lagmit naggamit daghang mga function sa katabang. Kanus-a kini angay nga pagdugang usa ka function nga nanginahanglan gamay ra nga code aron mahibal-an? Sa panguna, kung alang sa usa ka function adunay maayong mnemonic nga ngalan, nga daling masabtan sa mga tiggamit kung nakita nila kini sa usa ka piraso sa code, nan mahimo na kini idugang. Kung dili, mas maayo nga idugang na lang ang code sa imong programa matag higayon nga kinahanglan nimo kini gamiton.

Ang nag-unang katuyoan sa usa ka function repository (sama sa gisugyot sa ngalan niini) mao ang pagpaila sa bag-ong mga bahin sa pinulongan. Kung gusto nimong idugang ang bag-ong datos o bag-ong mga entidad, gamita Wolfram Data repository. Apan komosta kon gusto nimong ipaila ang bag-ong mga matang sa mga butang para sa imong mga kalkulasyon?

Adunay tinuod nga duha ka paagi. Mahimo nimong ipaila ang usa ka bag-ong tipo sa butang nga magamit sa mga bag-ong function sa repository sa function. Ug sa kini nga kaso, mahimo nimong isulat kanunay ang simbolikong representasyon niini ug gamiton kini kung mag-input o mag-output sa mga gimbuhaton sa usa ka repository sa function.

Apan unsa man kon gusto nimo nga magrepresentar sa usa ka butang ug dayon ipasabut, pinaagi sa kasamtangan nga mga gimbuhaton sa Wolfram Language, nga gusto nimo nga magtrabaho uban niini? Ang Wolfram Language kanunay adunay gaan nga mekanismo alang niini, nga gitawag UpValues. Uban sa pipila ka mga pagdili (ilabi na sa mga gimbuhaton nga dili makatimbang-timbang sa ilang mga argumento), ang usa ka function repository nagtugot kanimo sa pagrepresentar lang sa usa ka function ug pagtino sa mga kantidad alang niini. (Ang pagpataas sa pagpaabot sa pagkamakanunayon sa paghimo og bag-ong mayor nga disenyo nga hingpit nga gihiusa sa tibuok Wolfram Language sa kasagaran usa ka importante kaayo nga pamaagi nga dili makab-ot pinaagi lamang sa pagdugang sa gasto sa proyekto ug usa ka butang nga gibuhat sa among kompanya isip kabahin sa mga proyekto. alang sa dugay nga pag-uswag sa pinulongan, kini nga buluhaton dili usa ka tumong nga gibutang isip kabahin sa pagpalambo sa repository).

Busa, unsa man kaha ang anaa sa function code sa usa ka function repository? Ang tanan gitukod sa Wolfram Language, siyempre (labing menos kung dili kini nagrepresentar mga hulga alang sa kasigurohan ug ang paghimo sa programa mismo, isip usa ka palibot sa kompyuter) ingon man ang bisan unsang function gikan sa repository sa function. Bisan pa, adunay uban nga mga gamit: ang usa ka function sa usa ka function repository mahimong makatawag sa usa ka API, o sa Wolfram Cloud, o gikan sa laing tinubdan. Siyempre, adunay pipila ka mga risgo nga nalangkit niini. Tungod sa kamatuoran nga walay mga garantiya nga ang API dili mausab, ug ang function sa function store mohunong sa pagtrabaho. Aron matabangan ang pag-ila sa mga isyu nga sama niini, adunay usa ka nota sa panid sa dokumentasyon (sa seksyon nga Mga Kinahanglanon) para sa bisan unsang bahin nga nagsalig sa labi pa sa gitukod nga Wolfram Language nga pagpaandar. (Siyempre, kung bahin sa tinuod nga datos, mahimong adunay mga problema bisan sa kini nga pagpaandar - tungod kay ang tinuud nga datos sa kalibutan kanunay nga nagbag-o, ug usahay bisan ang mga kahulugan ug pagbag-o sa istruktura.)

Kinahanglan ba nga ang tanan nga code alang sa Wolfram feature repository isulat sa Wolfram? Sa tinuud, ang code sa sulod sa eksternal nga API kinahanglan nga dili isulat sa Wolfram nga sinultian, nga wala gani maghimo sa code sa pinulongan. Sa tinuud, kung makit-an nimo ang usa ka function sa halos bisan unsang eksternal nga lengguwahe o librarya, mahimo ka maghimo usa ka wrapper nga nagtugot kanimo nga magamit kini sa repository sa function sa Wolfram. (Kasagaran kinahanglan nimo gamiton ang mga built-in nga function alang niini ExternalEvaluate o External Function sa Wolfram language code.)

Busa unsa ang punto sa pagbuhat niini? Sa tinuud, gitugotan ka niini nga gamiton ang tibuuk nga sistema sa Wolfram Language ug ang tibuuk nga hiniusa nga hugpong sa mga kapabilidad sa software. Kung makuha nimo ang base nga pagpatuman gikan sa usa ka eksternal nga librarya o lengguwahe, mahimo nimong gamiton ang dato nga simbolikong istruktura sa Wolfram Language aron makahimo usa ka kombenyente nga top-level nga function nga nagtugot sa mga tiggamit nga dali nga magamit ang bisan unsang kagamitan nga gipatuman na. Sa labing gamay, kini kinahanglan nga mahimo sa usa ka sulundon nga kalibutan diin ang tanan nga mga bloke sa pagtukod sa pagkarga sa mga librarya ug uban pa anaa, diin kini awtomatiko nga madumala sa Wolfram Language. (Kinahanglan nga matikdan nga sa praktis mahimong adunay mga problema sa pag-set up sa gawas nga mga pinulongan espesipikong sistema sa kompyuter, ug ang pagtipig sa panganod mahimong magpahinabog dugang nga mga isyu sa seguridad).

Pinaagi sa dalan, sa una nimong pagtan-aw sa tipikal nga gawas nga mga librarya, sila sa kasagaran daw komplikado kaayo nga masakop sa pipila lang nga mga gimbuhaton, apan sa daghang mga kaso, kadaghanan sa pagkakomplikado naggikan sa paghimo sa imprastraktura nga gikinahanglan alang sa librarya ug sa tanan nga mga gimbuhaton sa suportahan kini. Bisan pa, kung gigamit ang Wolfram Language, ang imprastraktura sa kasagaran natukod na sa mga pakete, ug busa dili kinahanglan nga ibutyag ang tanan nga kini nga mga function sa suporta sa detalye, apan paghimo lamang mga gimbuhaton alang sa "labing taas" nga piho nga mga gimbuhaton sa aplikasyon sa librarya. .

"Ecosystem" sa base sa kahibalo

Kung nasulat nimo ang mga function nga kanunay nimong gigamit, isumite kini sa Wolfram Function Repository! Kung adunay labi pa nga wala mogawas gikan niini (pag-uswag sa sinultian), nan bisan kung kini labi ka labi ka kombenyente alang kanimo nga gamiton ang mga gimbuhaton alang sa personal nga paggamit. Bisan pa, makatarunganon nga hunahunaon nga kung kanunay nimo gamiton ang mga gimbuhaton, tingali ang ubang mga tiggamit makit-an usab kini nga mapuslanon.

Natural, mahimo nimong makit-an ang imong kaugalingon sa usa ka sitwasyon diin dili nimo mahimo - o dili gusto - nga ipaambit ang imong mga gimbuhaton o sa higayon nga makakuha ka ug access sa mga kapanguhaan sa pribado nga impormasyon. Bisan sa ingon nga mga kaso, mahimo nimong i-deploy ang mga gimbuhaton sa imong kaugalingon nga cloud account, nagpiho nga mga katungod access ngadto kanila. (Kung ang imong organisasyon adunay Wolfram Enterprise pribado nga panganod, unya kini sa dili madugay makahimo sa pag-host sa kaugalingon nga pribadong feature nga repository, nga mahimong ipangalagad gikan sa sulod sa imong organisasyon ug itakda kung pugson ba o dili ang mga panglantaw nga tan-awon sa mga third-party nga tiggamit.)

Ang mga gimbuhaton nga imong gisumite sa Wolfram function repository dili kinahanglan nga perpekto; kinahanglan lang nga mapuslanon sila. Parehas kini sa seksyon nga "Mga Kasaypanan" sa klasiko nga dokumentasyon sa Unix - sa "Seksyon sa Mga Kahulugan" adunay seksyon nga "Mga Tala sa Awtor" diin mahimo nimong ihulagway ang mga limitasyon, mga problema, ug uban pa nga nahibal-an na nimo bahin sa imong gimbuhaton. Dugang pa, kung isumite nimo ang imong bahin sa repository, mahimo nimong idugang ang mga nota sa pagsumite nga basahon sa usa ka dedikado nga grupo sa mga curator.

Sa higayon nga mamantala ang usa ka feature, ang panid niini kanunay adunay duha ka link sa ubos: "Pagpadala usa ka mensahe bahin niini nga bahin"Ug"Hisguti sa komunidad sa Wolfram" Kung nag-attach ka og nota (pananglitan, sultihi ako bahin sa mga bug), mahimo nimong susihon ang kahon nga nag-ingon nga gusto nimo ang imong mensahe ug impormasyon sa pagkontak nga ipaambit sa tagsulat sa bahin.

Usahay gusto nimo nga gamiton ang mga function gikan sa Wolfram function repository, sama sa built-in nga mga function, nga wala magtan-aw sa ilang code. Bisan pa, kung gusto nimo tan-awon ang sulod, kanunay adunay buton sa Notepad sa taas. Pag-klik niini ug makuha nimo ang imong kaugalingon nga kopya sa orihinal nga kahulugan nga notebook nga gisumite sa repository sa bahin. Usahay mahimo nimo kining gamiton isip usa ka ehemplo sa imong mga panginahanglan. Sa parehas nga oras, mahimo usab nimo mapalambo ang imong kaugalingon nga pagbag-o sa kini nga function. Mahimo nimong i-post kini nga mga function nga imong nakit-an gikan sa repository sa imong kompyuter o sa imong aphid cloud storage account, tingali gusto nimo isumite kini sa base sa kahibalo sa function, tingali ingon usa ka gipaayo, gipalapdan nga bersyon sa orihinal nga function.

Sa umaabot, nagplano kami nga suportahan ang Git-style forking alang sa mga feature repository, apan sa pagkakaron naningkamot kami nga ipabilin kini nga yano, ug kanunay lang kami adunay usa ka gidawat nga bersyon sa matag feature nga gitukod sa pinulongan. Mas kasagaran kay sa dili (gawas kon ang mga developers mohunong sa pagmentinar sa mga feature nga ilang naugmad ug mosanong sa mga gisumiter sa user), ang orihinal nga tagsulat sa feature mokontrolar sa mga update niini ug mosumiter og bag-ong mga bersyon, nga unya susihon ug, kon sila makapasar sa proseso sa pagrepaso , nga gipatik sa pinulongan.

Atong tagdon ang pangutana kung giunsa ang "pag-bersyon" sa mga naugmad nga mga gimbuhaton. Karon, kung mogamit ka usa ka function gikan sa repository sa function, ang kahulugan niini permanente nga itago sa imong kompyuter (o sa imong cloud account kung gigamit nimo ang panganod). Kung ang usa ka bag-ong bersyon sa usa ka bahin magamit, sa sunod higayon nga imong gamiton kini makadawat ka usa ka mensahe nga nagpahibalo kanimo bahin niini. Ug kung gusto nimo nga i-update ang function sa usa ka bag-ong bersyon, mahimo nimo kini gamit ang mando ResourceUpdate. (Ang "function blob" aktuwal nga nagtipig ug dugang nga impormasyon sa pag-bersyon, ug nagplano kami nga himoon kini nga mas daling ma-access sa among mga tiggamit sa umaabot.)

Usa sa matahum nga mga butang bahin sa Wolfram Function Repository mao nga ang bisan unsang programa sa Wolfram Language, bisan asa makagamit sa mga gimbuhaton gikan niini. Kung ang usa ka programa makita sa usa ka notepad, kasagaran sayon ​​​​ang pag-format sa mga function sa repository isip sayon ​​​​basahon nga "function binary object" nga mga function (tingali adunay usa ka angay nga bersyon set).

Mahimo nimong ma-access kanunay ang bisan unsang function sa repository sa function gamit ang teksto ResourceFunction[...]. Ug kini sayon ​​​​kaayo kung magsulat ka og code o mga script direkta alang sa Wolfram Engine, pananglitan, uban sa gamit ang IDE o text code editor (kini kinahanglan nga labi nga matikdan nga ang function repository hingpit nga nahiuyon sa Libre nga Wolfram Engine alang sa mga Nag-develop).

Unsang paagi kini sa trabaho?

Sa sulod sa mga gimbuhaton sa Wolfram repository posible kini gamit ang parehas nga parehas mga sistema sa kapanguhaan mga base, sama sa ang tanan namong uban pang kasamtangan nga mga repositoryo (pagtipig sa datos, Neural Net Repository, koleksyon sa mga proyekto sa demo ug uban pa), sama sa ubang mga kapanguhaan sa sistema sa Wolfram, ResourceFunction sa katapusan base sa function ResourceObject.

Hunahunaa ResourceFunction:

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Sa sulod makita nimo ang pipila ka impormasyon gamit ang function Impormasyon:

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Sa unsang paagi ang pag-set up sa usa ka resource function nagtrabaho? Ang pinakasimple kay puro lokal nga kaso. Ania ang usa ka pananglitan nga nagkinahanglan og usa ka function (sa kini nga kaso usa lamang ka purong function) ug gihubit kini isip usa ka resource function alang sa gihatag nga sesyon sa programa:

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Kung nahimo na nimo ang kahulugan, mahimo nimong gamiton ang function sa kapanguhaan:

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Timan-i nga adunay itom nga icon niini nga function blob Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram. Kini nagpasabot nga ang BLOB function nagtumong sa in-memory resource function nga gipiho alang sa kasamtangan nga session. Ang resource feature nga permanenteng gitipigan sa imong computer o cloud account adunay gray nga icon Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram. Ug adunay usa ka orange nga icon alang sa usa ka opisyal nga bahin sa kapanguhaan sa Wolfram Feature Repository Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram.

Busa unsa ang mahitabo kung imong gamiton ang Expand menu sa Definition Notebook? Una, gikinahanglan ang tanan nga mga kahulugan sa notepad ug gikan kanila nagmugna og simbolo ResourceObject). (Ug kung naggamit ka usa ka IDE nga nakabase sa teksto o programa, mahimo ka usab nga klaro nga maghimo ResourceObject)

Ang lokal nga pag-deploy sa usa ka function gikan sa usa ka repository sa imong computer gihimo gamit ang command LocalCache alang sa usa ka butang nga kahinguhaan aron i-save kini ingon LocalObject sa imong file system. Ang pag-deploy sa usa ka cloud account gihimo gamit ang command CloudDeploy alang sa usa ka butang nga kahinguhaan, ug usa ka pag-deploy sa publiko nga panganod CloudPublish. Sa tanang kaso ResourceRegister gigamit usab sa pagparehistro sa ngalan sa resource function, busa ResourceFunction["ngalan"] motrabaho.

Kung imong i-klik ang Isumite nga buton para sa usa ka Function Repository, unsa ang mahitabo sa ilawom niini ResourceSmit gitawag sa usa ka butang nga kapanguhaan. (Ug kung naggamit ka usa ka interface sa pag-input sa teksto, mahimo usab nimo tawagan ResourceSmit direkta.)

Sa kasagaran, ang mga pagsumite gihimo ubos sa ngalan nga nalangkit sa imong Wolfram ID. Apan kung nagsumite ka usa ka aplikasyon alang sa usa ka grupo sa pagpauswag o organisasyon, mahimo nimo itakda ang separado nga ID sa magmamantala ug sa baylo gamiton kini isip ngalan aron makig-uban sa imong mga panglantaw.

Human nimo masumite ang bisan unsa sa imong mga gimbuhaton sa base sa kahibalo sa function, kini ipila alang sa pagsusi. Kung makadawat ka og mga komento agig tubag, kasagaran kini anaa sa porma sa usa ka text file nga adunay dugang nga "comment cell" nga gidugang. Mahimo nimong susihon kanunay ang kahimtang sa imong aplikasyon pinaagi sa pagbisita portal nga miyembro sa sistema sa kapanguhaan. Apan kung maaprobahan na ang imong feature, mapahibalo ka (pinaagi sa email) ug ang imong feature i-post sa Wolfram feature repository.

Pipila ka mga subtleties sa trabaho

Sa una nga pagtan-aw kini ingon og mahimo ka lang makakuha usa ka kahulugan nga notebook ug ibutang kini nga verbatim sa usa ka tipiganan sa function, bisan pa, adunay daghang mga subtleties nga nalangkit - ug ang pagdumala niini nanginahanglan paghimo usa ka medyo komplikado nga meta-programming, pagdumala sa simbolikong pagproseso. ingon ang code nga naghubit sa function, ug ang Notepad mismo ang gihubit. Kadaghanan niini mahitabo sa sulod, sa luyo sa mga talan-awon, apan kini mahimong adunay pipila ka mga implikasyon nga angay sabton kung ikaw motampo sa bahin sa kahibalo base.

Una diha-diha dayon nga pagkamaayo: Kung imong pun-on ang Definition Notebook, mahimo nimong i-refer ang imong function bisan asa gamit ang usa ka ngalan sama sa MyFunction, nga morag usa ka regular nga ngalan alang sa usa ka function sa Wolfram Language, apan alang sa function repository documentation kini gipulihan ResourceFunction["Akong Function"] mao ang aktuwal nga gamiton sa mga tiggamit kung nagtrabaho kauban ang function.

Ang ikaduhang subtlety: kung maghimo ka ug resource function gikan sa Definition Notebook, ang tanang dependency nga nalambigit sa function definition kinahanglang makuha ug klarong iapil. Bisan pa, aron masiguro nga ang mga kahulugan magpabilin nga modular, kinahanglan nimo nga ibutang ang tanan sa usa ka talagsaon namespace. (Alangan, mga function nga naghimo sa tanan, anaa sa function repository.)

Kasagaran dili nimo makita ang bisan unsang pagsubay sa code nga gigamit aron ma-configure kini nga namespace. Apan kung sa usa ka hinungdan nga tawagan nimo ang usa ka wala gipatuman nga simbolo sa sulod sa imong function, nan imong makita nga kini nga simbolo naa sa internal nga konteksto sa function. Bisan pa, kung giproseso ang Definition Notepad, labing menos ang simbolo nga katumbas sa function mismo mapaigoigo alang sa labing maayo nga display isip usa ka functional BLOB kay sa usa ka hilaw nga karakter sa internal nga konteksto.

Ang function repository alang sa pagtino sa bag-ong mga gimbuhaton. Ug kini nga mga gimbuhaton mahimong adunay mga kapilian. Kasagaran kini nga mga parameter (pananglitan, pamaagi o Gidak-on sa Imahe) mahimong magamit alang sa mga built-in nga mga gimbuhaton, ingon man alang sa kung diin ang mga built-in nga mga simbolo naglungtad na. Apan usahay ang usa ka bag-ong bahin mahimong magkinahanglan bag-ong mga kapilian. Aron mapadayon ang modularity, kini nga mga parameter kinahanglan nga mga simbolo nga gihubit sa usa ka talagsaon nga internal nga konteksto (o usa ka butang sama sa tibuuk nga mga gimbuhaton sa kapanguhaan, nga mao, sa ilang kaugalingon). Alang sa kayano, ang function repository nagtugot kanimo sa paghubit sa mga bag-ong kapilian sa mga kahulugan sa string. Ug alang sa kasayon ​​​​sa tiggamit, kini nga mga kahulugan (nagtuo nga gigamit nila OptionValue и OptionsPattern) giproseso usab aron kung gamiton ang mga gimbuhaton, ang mga parameter mahimong matino dili lamang ingon mga kuwerdas, apan ingon usab mga global nga simbolo nga adunay parehas nga mga ngalan.

Kadaghanan sa mga gimbuhaton yano ra nga buhaton kung unsa ang ilang kinahanglan buhaton sa matag higayon nga sila tawgon, apan ang pipila nga mga gimbuhaton kinahanglan nga magsugod sa dili pa sila makadagan sa usa ka partikular nga sesyon - ug aron masulbad kini nga problema, adunay usa ka seksyon nga "Initialization" sa seksyon nga Kahulugan.

Ang mga function gikan sa usa ka repository mahimong mogamit sa ubang mga function nga naa na sa repository; aron ma-set up ang mga kahulugan alang sa usa ka function repository nga adunay duha (o daghan pa) nga mga function nga nag-refer sa usag usa, kinahanglan nimo nga i-deploy kini sa imong sesyon sa programa aron mahimo nimo. reference sama sa kanila ResourceFunction["ngalan"], unya makahimo ka sa mga kombinasyon niini nga mga function nga imong gikinahanglan, mga pananglitan (wala ko kasabot) ug makadugang og bag-ong function sa repository base sa mga na-post na kaniadto. (o na o kaniadto - ang duha ka pulong clumsy)

Mga palaaboton sa kalamboan. Unsa ang kinahanglan mahitabo kung ang repository mahimong dako kaayo?

Karon bag-o lang namon gilusad ang Wolfram Feature Repository, apan sa paglabay sa panahon gipaabut namon nga ang gidak-on ug pag-andar niini mahimo’g modaghan pag-ayo, ug samtang kini motubo sa pag-uswag adunay lainlaing mga problema nga gipaabut na namon nga mahimong motumaw.

Ang una nga problema mao ang mga ngalan sa function ug ang ilang pagkatalagsaon. Ang function repository gidisenyo sa paagi nga, sama sa built-in nga mga function sa Wolfram Language, mahimo nimong i-refer ang bisan unsang gihatag nga function pinaagi lang sa pagtino sa ngalan niini. Apan kini dili kalikayan nga nagpasabut nga ang mga ngalan sa function kinahanglan nga talagsaon sa tibuuk kalibutan sa tibuuk nga repository, aron, pananglitan, adunay usa ra. ResourceFunction["Akong Paborito nga Function"].

Tingali kini usa ka dako nga problema sa una, apan angay nga mahibal-an nga kini parehas nga problema sama sa mga butang sama sa mga domain sa internet o mga pagdumala sa social media. Ug ang tinuod mao nga ang sistema kinahanglan nga adunay usa ka tigrehistro - ug kini usa sa mga tahas nga himuon sa among kompanya alang sa sukaranan sa kahibalo sa function sa Wolfram. (Alang sa mga pribadong bersyon sa usa ka repository, ang ilang mga tigrehistro mahimong mga tigdumala.) Siyempre, ang usa ka domain sa Internet mahimong marehistro nga walay bisan unsa niini, apan sa usa ka function repository, ang usa ka function nga ngalan mahimo lamang nga marehistro kung adunay usa ka aktwal nga kahulugan sa ang function.

Kabahin sa among tahas sa pagdumala sa Wolfram function knowledge base mao ang pagsiguro nga ang ngalan nga gipili alang sa usa ka function kay lohikal nga gihatag sa depinisyon sa function ug nga kini nagsunod sa Wolfram Language nga mga kombensiyon sa pagngalan. Kami adunay sobra sa 30 ka tuig nga kasinatian sa pagngalan sa mga built-in nga function sa Wolfram Language, ug ang among team sa mga curator magdala usab niana nga kasinatian sa function repository. Siyempre, kanunay adunay mga eksepsiyon. Pananglitan, tingali mas maayo nga adunay usa ka mubo nga ngalan alang sa usa ka function, apan mas maayo nga "pagdepensa" sa usa ka mas taas, mas espesipiko nga ngalan tungod kay dili kaayo ka makasugat sa usa ka tawo nga gusto maghimo usa ka parehas nga ngalan sa function sa umaabot. .

(Kinahanglan nga matikdan dinhi nga ang pagdugang lamang sa pipila ka tag sa miyembro sa pag-disambiguate sa mga gimbuhaton wala’y gituyo nga epekto. Tungod kay gawas kung imong ipugos nga ang usa ka tag kanunay nga gi-assign, kinahanglan nimo nga ipasabut ang usa ka default nga tag alang sa bisan unsang gihatag nga function, ug igahin usab ang awtor tag, nga nanginahanglan usab og global nga koordinasyon.)

Samtang ang sukaranan sa kahibalo sa mga gimbuhaton sa Wolfram motubo, usa sa mga problema nga lagmit nga motumaw mao ang pagkadiskubre sa mga gimbuhaton, diin ang sistema naghatag. function sa pagpangita (ug ang mga depinisyon nga mga file mahimong maglakip sa mga keyword, ug uban pa). Alang sa mga built-in nga function sa Wolfram Language, adunay tanan nga mga lahi sa cross-reference sa dokumentasyon aron matabangan ang "pag-anunsyo" sa mga gimbuhaton. Ang mga function sa usa ka function repository mahimong maghisgot sa mga built-in nga function. Apan komosta ang laing paagi? Aron mahimo kini, mag-eksperimento kami sa lainlaing mga disenyo aron ibutyag ang mga function sa repository sa mga panid sa dokumentasyon alang sa mga built-in nga function.

Alang sa mga built-in nga function sa Wolfram Language adunay gitawag nga detection layer nga gihatag sa network sa "mga panid sa tabang", nga naghatag og organisado nga mga listahan sa mga bahin nga may kalabutan sa piho nga mga dapit. Kanunay nga lisud ang husto nga pagbalanse sa mga panid sa tawo, ug samtang ang pinulongang Wolfram motubo, ang mga panid sa tawo kasagaran kinahanglan nga hingpit nga maorganisar pag-usab. Sayon ra ang pagbutang sa mga gimbuhaton gikan sa usa ka tipiganan ngadto sa halapad nga mga kategorya, ug bisan ang pagbungkag sa mga kategorya nga makanunayon, apan labi ka labi ka bililhon nga adunay husto nga pagkahan-ay sa mga panid sa pakisayran sa pinulongan. Dili pa klaro kung giunsa ang paghimo niini alang sa tibuuk nga base sa kahibalo sa function. Pananglitan, PaghimoResourceObjectGallery sa feature repository, bisan kinsa mahimong mag-post og web page nga adunay ilang "picks" gikan sa repository:

Wolfram Function Repository: Open access platform para sa mga extension sa pinulongang Wolfram

Ang Wolfram function repository gi-configure ingon usa ka padayon nga function repository, diin ang bisan unsang function niini kanunay nga molihok. Siyempre, ang mga bag-ong bersyon sa mga bahin mahimong magamit, ug gilauman namon nga ang pipila nga mga bahin mahimo’g dili na magamit sa paglabay sa panahon. Ang mga gimbuhaton molihok kung kini gigamit sa mga programa, apan ang ilang mga panid sa dokumentasyon mag-link sa bag-o, mas advanced nga mga gimbuhaton.

Ang Wolfram Feature Repository gidisenyo aron matabangan ka nga dali nga makadiskubre sa mga bag-ong bahin ug makakat-on og bag-ong mga paagi sa paggamit sa pinulongang Wolfram. Kami malaumon kaayo nga ang pipila sa kung unsa ang na-explore sa feature nga repository sa kadugayan adunay kahulugan nga mahimong built-in nga mga bahin sa kinauyokan nga Wolfram Language. Sulod sa miaging dekada kami adunay parehas nga set mga bahin nga orihinal nga gipaila sa Wolfram | Alpha. Ug usa sa mga leksyon nga nakat-unan gikan niini nga kasinatian mao nga ang pagkab-ot sa mga sumbanan sa kalidad ug pagkamakanunayon nga atong gipunting sa tanan nga gitukod sa pinulongang Wolfram nagkinahanglan og daghang trabaho, nga kasagaran mas lisud kay sa inisyal nga paningkamot sa pagpatuman sa ideya. Bisan pa, ang usa ka function sa base sa kahibalo sa function mahimo’g magsilbi nga usa ka mapuslanon nga pruweba sa konsepto alang sa umaabot nga gimbuhaton nga mahimo’g matukod sa katapusan sa pinulongang Wolfram.

Ang labing importante nga butang dinhi mao nga ang usa ka function sa usa ka function repository usa ka butang nga magamit alang sa matag tiggamit nga magamit karon. Posible nga ang usa ka bahin sa lumad nga sinultian mahimong labi ka labi ka maayo ug labi ka pasundayag, apan ang usa ka repository sa bahin magtugot sa mga tiggamit nga adunay access sa tanan nga mga bag-ong bahin dayon. Ug, labing hinungdanon, kini nga konsepto nagtugot sa tanan nga makadugang bisan unsang bag-ong mga bahin nga gusto nila.

Sa sayo pa sa kasaysayan sa Wolfram nga pinulongan, kini nga ideya dili unta molihok sama sa kini, apan sa niini nga yugto adunay daghan kaayo nga paningkamot nga gibutang sa pinulongan, ug ang usa ka lawom nga pagsabut sa mga prinsipyo sa disenyo sa pinulongan, nga karon daw kaayo. posible alang sa usa ka dako nga komunidad sa mga tiggamit sa pagdugang sa mga bahin nga magpadayon sa disenyo pagkamakanunayon sa paghimo kanila nga mapuslanon sa usa ka halapad nga mga tiggamit.

Adunay usa ka talagsaon nga espiritu sa talento(?) sa Wolfram Language user nga komunidad. (Siyempre, kini nga komunidad naglakip sa daghang nanguna nga mga eksperto sa R&D sa lainlaing natad.) Nanghinaut ko nga ang Wolfram Feature Repository maghatag ug epektibong plataporma alang sa pag-abli ug pagsabwag niini nga espiritu sa talento. Mag-uban lamang kita makahimo og usa ka butang nga makapalapad pag-ayo sa dapit diin ang Wolfram language computing paradigm mahimong magamit.

Sa sobra sa 30 ka tuig, layo na ang among naabot sa pinulongang Wolfram. Karon mag-uban, mopadayon pa ta. Kusganon nakong giawhag ang tanang respetado nga tiggamit sa Wolfram nga pinulongan sa tibuok kalibotan nga gamiton ang feature repository isip plataporma niini, ingon man ang bag-ong software project sama sa Free Wolfram Engine for Developers.

Source: www.habr.com

Idugang sa usa ka comment