Hello, Habr! Gipresentar ko sa imong pagtagad ang usa ka paghubad sa post ni Stephen Wolfram
Mga kinahanglanon alang sa pagkamakanunayon sa pinulongang Wolfram
Karon nagbarug kami sa threshold sa daghang mga nahimo kauban ang programming language
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
Pananglitan, ang Wolfram function repository naa na
Ingon usab labaw pa sa
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
Kini kinahanglan nga matikdan dinhi nga sa diha nga ang pagproseso
Manghinaut ko nga uban sa suporta
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
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
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
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
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
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
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:
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
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:
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
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.
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:
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
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
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
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.
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
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
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
Busa, unsa man kaha ang anaa sa function code sa usa ka function repository?
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
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
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,
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: "
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
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
Unsang paagi kini sa trabaho?
Sa sulod sa mga gimbuhaton sa Wolfram repository posible kini gamit ang parehas nga parehas
Hunahunaa
Sa sulod makita nimo ang pipila ka impormasyon gamit ang function
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:
Kung nahimo na nimo ang kahulugan, mahimo nimong gamiton ang function sa kapanguhaan:
Timan-i nga adunay itom nga icon niini nga function blob . 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 . Ug adunay usa ka orange nga icon alang sa usa ka opisyal nga bahin sa kapanguhaan sa Wolfram Feature Repository .
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
Ang lokal nga pag-deploy sa usa ka function gikan sa usa ka repository sa imong computer gihimo gamit ang command
Kung imong i-klik ang Isumite nga buton para sa usa ka Function Repository, unsa ang mahitabo sa ilawom niini
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
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
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
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
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
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,
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
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.
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.
Alang sa mga built-in nga function sa Wolfram Language adunay gitawag nga detection layer nga gihatag sa
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
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