Kaixo, Habr! Stephen Wolfram-en postaren itzulpena aurkezten dizuet
Wolfram hizkuntzaren koherentziarako aurrebaldintzak
Gaur programazio-lengoaiarekin batera lorpen handien atarian gaude
Wolfram Function Repository Wolfram Lengoaiaren izaera bereziak posible egin duen zerbait da, ez bakarrik programazio-lengoaia gisa, baizik eta
Adibidez, Wolfram funtzioen biltegiak dagoeneko dauka
Era berean, baino gehiago
Orrialdera iristeko, kopiatu goiko objektua (BLOB funtzioa), itsatsi sarrera-lerroan eta exekutatu funtzioa - Wolfram hizkuntzan dago jadanik eta lehenespenez onartzen da.
Kontuan izan behar da hemen prozesatzeko orduan
Hori espero dut laguntzarekin
Biltegiko funtzioek Wolfram hizkuntzan idatzitako kode txikiak edo handiak izan ditzakete. Adibidez, hauek deiak izan daitezke
Wolfram Feature Repository-en shell-a eta programazio-egitura diseinatuta dago, denek kausa komunean lagundu ahal izateko modu erraz eta erosoenean, hain zuzen ere.
Konpromiso eta xehetasun asko daude ikuspegi honetan, baina gure helburua Wolfram ezaugarrien biltegia optimizatzea da, bai erabiltzailearen esperientziarako, bai erabiltzaile-eginbide berriek hizkuntzaren garapenean modu esanguratsuan laguntzen dutela ziurtatzea. Hazten goazen heinean, ez dut dudarik biltegian integratutako funtzioak prozesatzeko eta baliozkotzeko metodo berriak asmatu beharko ditugula, ez behintzat funtzio ugari antolatzeko eta erabiltzaileek behar dituztenak aurkitzeko. Hala ere, pozgarria da aukeratu dugun bidea hasiera ona izatea. Nik pertsonalki
Eraginkortasuna handitzea kostuak murriztuz
Internet baino lehen ere, Wolfram Language kodea partekatzeko moduak zeuden (gure lehen proiektu zentralizatua izan zen
30 urte baino gehiagoz, gure enpresak arduratsu lan egin du Wolfram lengoaiaren egituraren osotasuna mantentzeko, eta hori funtsezkoa da Wolfram lengoaia programazio-lengoaia ez ezik, programazio-lengoaia ere bihur dadin bermatzeko.
Funtzio bakoitzaren ezarpen-egituran hainbat prozesu konputazional gertatzen dira. Kontuan izan behar da hemen beharrezkoa dela funtzioak itxura argia eta uniformea ββeta erabiltzailearentzako irakurgarritasun bisuala izatea. Testuinguru honetan, Wolfram Hizkuntzaren funtzio integratuak funtzioak behar bezala programatzeko 6000 adibide sekuentzial baino gehiagorekin aurkezten dira (hauek dira gure
Benetan ondo funtzionatzen duen biltegi bat sortzea metaprogramazio lan interesgarria da. Adibidez, programan murrizketen gehiegizkoak ez du algoritmoaren beharrezko bateratzea eta unibertsaltasuna lortzea ahalbidetuko. Murrizketa funtzional kopuru nahikorik ez dagoen bezala, ezin izango duzu algoritmoen exekuzio-sekuentzia nahiko zuzena ezarri. Gure enpresak inplementatutako ikuspegi hauen konpromisoa ezartzearen aurreko hainbat adibide nahiko egonkor funtzionatu zuten - hauek dira:
Aurreko adibide guztiek oinarrizko ezaugarri bat dute: proiektuan bildutako objektu eta funtzioek prozesuen egituraketa eta banaketa maila oso altua dute. Jakina, demo edo neurona-sare bat edo beste zerbait denaren egituraren xehetasunak asko alda daitezke, baina egungo edozein biltegirako oinarrizko egiturak beti izaten jarraitzen du. Beraz, zein da zure iritzia, erabiltzaile maitea, Wolfram hizkuntzari luzapenak gehitzen dizkion biltegi bat sortzeari buruz? Wolfram Language oso malgua izateko diseinatuta dago, beraz, edozein modutan hedatu eta alda daiteke. Zirkunstantzia hau oso garrantzitsua da Wolfram hizkuntzan eskala handiko hainbat software proiektu azkar sortzeko gaitasuna izateko. Kontuan izan behar da hemen hizkuntzaren malgutasuna handitzen den heinean hizkuntza horretan gauzatutako proiektuen kostua ezinbestean handituko dela. Izan ere, erabiltzaileak zenbat eta gehiago erabili horrelako hizkuntza bat, orduan eta funtzionaltasun gehiago jasotzen du, baina ez dugu ahaztu behar ikuspegi honek alde negatiboak ere izan ditzakeela programa-moduluen koherentzia koherentea bermatzeko ezintasunari dagokionez.
Ohiko arazo bat dago programazio-lengoaia tradizionaletako liburutegiekin - liburutegi bat erabiltzen baduzu, adibidez, kodea behar bezala funtzionatuko du, baina liburutegi bat baino gehiago erabiltzen saiatzen bazara, ez dago bermatzen elkarren artean ondo interakzionatuko dutenik. . Era berean, programazio lengoaia tradizionaletan - konputazio-lengoaia oso batean ez bezala - ez dago inolako funtzio edo datu-motetarako oinarrizko egiturak ez diren irudikapen koherenteen presentzia bermatzeko modurik. Baina, egia esan, arazoa lehen begiratuan dirudiena baino are handiagoa da: eskala handiko funtzionalitate bertikal bat eraikitzen ari bada, Wolfram lengoaian jartzen dugun proiektu zentralizatuaren programazioaren kostu handirik gabe, ezinezkoa da koherentzia lortu. Beraz, garrantzitsua da software-modulu guztiak behar bezala lan egitea beti.
Beraz, Wolfram ezaugarrien biltegiaren atzean dagoen ideia goian azaldutako arazoa saihestea da, kode zati txiki samarretan hizkuntzari luzapenak gehituz modulu koherente gisa garatzeko errazagoak diren ezaugarri indibidualen bidez. Hori esanda, funtzio indibidualak erabiliz eroso egin ezin diren programazio-eginbideak daude (eta gure konpainiak etorkizun hurbilean programazio-algoritmo optimizatua kaleratzeko asmoa du, eskala handiko software paketeak inplementatzen laguntzeko). Hala ere, Wolfram Lengoaian dagoeneko eraikitako funtzioetan oinarrituta, funtzio indibidualetan oinarrituta inplementatzen diren programazio aukera asko daude. Hemen ideia da programazio-ahalegin txikiarekin diseinuari koherentzia nahikoa emango dioten funtzio berri eta oso erabilgarriak sortzea posible dela, ondo koordinatuta egongo direla eta, horretaz gain, Etorkizunean hizkuntzan erraz eta zabal erabiltzeko gai izango da.
Planteamendu hau, noski, konpromiso bat da. Pakete handiago bat ezarriko balitz, oso indartsua eta erabilgarria izango litzatekeen funtzionaltasun-mundu berri bat imajina liteke. Beste guztiarekin bat etorriko den funtzionaltasun berriak lortu beharra badago, baina ez bazaude prest proiektua garatzeko esfortzu handirik egiteko, honek, tamalez, zure proiektuaren esparrua murriztea ekar dezake. Wolfram ezaugarrien biltegiaren atzean dagoen ideia proiektu baten definizio-zati bati funtzionaltasuna ematea da; ikuspegi honek funtzionalitate indartsuak gehituko ditu programazio-proiektu batean koherentzia ona mantentzea errazten duen bitartean.
Lagundu funtzio pertsonalizatuak gehitzen funtzioen biltegian
Gure taldeak gogor lan egin du erabiltzaileek Wolfram biltegiaren eginbideetan ekarpenak egiteko. Mahaigainean (dagoeneko
Bi urrats nagusi egin beharko dituzu: lehenik eta behin, idatzi zure funtzioaren kodea eta, bigarrenik, zure funtzioak nola funtzionatu behar duen azaltzen duen dokumentazioa idatzi.
Egin klik goiko "Ireki Lagina" botoian egin behar duzunaren adibide bat ikusteko:
Funtsean, Wolfram Language-n integratutako funtzio baten antzeko zerbait sortzen saiatzen ari zara. Funtzio integratua baino askoz zehatzagoa egin dezakeela izan ezik. Aldi berean, osotasunari eta fidagarritasunari buruzko itxaropenak askoz txikiagoak izango dira.
Zure funtzioari Wolfram Language-ren funtzioak izendatzeko jarraibideei jarraitzen dion izena eman behar diozu. Horrez gain, zure funtziorako dokumentazioa garatu beharko duzu, hizkuntzaren funtzio integratuen antzera. Geroago hitz egingo dut honetaz zehatzago. Oraingoz, ohartu besterik ez dago definizio-koadernoaren fitxategiaren goialdean dagoen botoien ilaran botoi bat dagoela
Dena behar bezala beteta dagoela eta prest zaudenean, egin klik "Egiaztatu" botoian. Guztiz normala da oraindik xehetasun guztiak argitu ez izana. Beraz, "Check" funtzioa automatikoki exekutatuko da eta estilo eta koherentzia egiaztapen asko egingo ditu. Askotan, zuzenketak berresteko eta onartzeko eskatuko dizu berehala (adibidez: "Lerro honek bi punturekin amaitu behar du" eta bi puntu bat idazteko eskatuko dizu). Batzuetan, zuk zeuk zerbait gehitzeko edo aldatzeko eskatuko dizu. Etengabe gehituko dizkiogu Egiaztatze botoiaren funtzionaltasun automatikoari eginbide berriak, baina funtsean funtzioen biltegian bidaltzen duzun guztia ahalik eta estilo-gidalerro gehien jarraitzen duela ziurtatzea da.
Beraz, "Egiaztatu" exekutatu ondoren, "Aurrebista" erabil dezakezu. "Aurrebista"-k zure funtziorako definitu duzun dokumentazio-orriaren aurrebista sortzen du. Zure ordenagailuan sortutako fitxategi baterako edo hodeiko biltegian dagoen fitxategi baterako aurrebista bat ere sor dezakezu. Arrazoiren batengatik, aurrebistan ikusten duzunarekin konforme ez bazaude, atzera egin eta beharrezko zuzenketak egin, eta egin klik berriro Aurrebista botoian.
Orain prest zaude zure funtzioa biltegira bultzatzeko. Inplementatu botoiak lau aukera ematen dizkizu:
Urrats honetan garrantzitsuena zure funtzioa Wolfram funtzioen biltegian bidal dezakezula edonorentzat eskuragarri egon dadin. Aldi berean, zure funtzioa erabiltzaile kopuru mugatu baterako ere jar dezakezu. Adibidez, zure ordenagailuan lokalean ostatatutako funtzio bat sor dezakezu, ordenagailu jakin hori erabiltzen duzunean erabilgarri egon dadin. Edo zure webgunean argitaratu dezakezu
Beraz, demagun zure funtzioa Wolfram funtzioaren ezagutza-basera bidali nahi duzula. Horretarako, egin klik "Bidali" botoia biltegira. Orduan, zer gertatzen da momentu honetan? Zure eskaera berehala jartzen da gure komisario talde dedikatuak berrikusteko eta onartzeko.
Zure eskaera onarpen-prozesuan aurrera doan heinean (normalean hainbat egun behar izaten ditu), haren egoerari buruzko komunikazioak jasoko dituzu eta, agian, etorkizunean erabiltzeko iradokizunak jasoko dituzu. Baina zure funtzioa onartu ondoren, berehala argitaratuko da Wolfram Feature Biltegian eta edonork erabil dezan egongo da. (Eta hau agertuko da
Zer egon behar du biltegian?
Kontuan izan behar da gure konpainiak oso estandar altuak dituela osotasun, fidagarritasun eta kalitate orokorrari dagokionez, eta azken 6000 urteotan Wolfram hizkuntzan dagoeneko eraiki ditugun 30 funtzio baino gehiagok, denek betetzen dituzte aurreko baldintzak. Wolfram Function Repository-en helburua Wolfram Language-n lehendik dauden egitura eta funtzionalitate guztiak erabiltzea da, ahalik eta funtzio arinagoak (hau da, errendimendu handiagoko funtzioak) gehitzeko.
Jakina, Wolfram funtzioen biltegiko funtzioek Wolfram Lengoaiaren diseinu-printzipioekin bat etorri behar dute; horrela, beste funtzioekin eta erabiltzaileek funtzioak behar bezala funtzionatu behar duten itxaropenekin guztiz elkarreragin ahal izateko. Hala ere, funtzioek ez dute osotasun edo fidagarritasun berdinekoa izan behar.
Wolfram lengoaiaren funtzio integratuetan, gogor egiten dugu lan programazio funtzioak ahalik eta orokorrenak izan daitezen. Hori esanda, Wolfram funtzioen biltegian ez dago ezer gaizki bertan kasu oso zehatz baina erabilgarria kudeatzen duen funtzio bat edukitzea. Adibidez, funtzioa
Funtzio integratuei lotutako beste puntu bat da gure enpresak ahalegin guztiak egiten dituela kasu atipiko guztiak kudeatzeko, sarrera okerrak zuzen kudeatzeko, etab. Funtzio-biltegi batean, guztiz normala da arazo bat konpontzeko kasu nagusiak kudeatzen dituen eta beste guztiak alde batera uzten dituen funtzio berezi bat egotea.
Begi bistakoa da hobe dela gehiago egiten duten eta hobeto egiten duten funtzioak edukitzea, baina funtzioen biltegi baterako optimizazioak - Wolfram lengoaiaren funtzio integratuekin ez bezala - funtzio gehiagorekin bilduta egon beharko luke funtzio gehiagorekin sakondu beharrean. funtzio zehatz bakoitzaren ezarpen-prozesuak.
Ikus dezagun orain biltegi bateko funtzioak probatzeko adibide bat. Funtzio horien koherentzia-itxaropenak, berez, hizkuntza-funtzio integratuak baino askoz txikiagoak dira. Hau bereziki egia da funtzioak kanpoko baliabideen menpe dauden kasuetan, hala nola APIak, garrantzitsua da etengabe proba koherenteak egitea, eta hori automatikoki egiaztatze algoritmoen barruan gertatzen da. Nb fitxategian, definizioak esplizituki zehaztu ditzakezu (Informazio Gehigarria atalean) eta sarrerako eta irteerako kateek edo motako karaktere osoko objektuek definitutako adina proba zehaztu ditzakezu.
Ondorioz, funtzioen biltegiak hainbat inplementazio konplexu izango ditu. Batzuk kode-lerro bakarra izango dira, beste batzuk milaka edo dozenaka mila lerro izan ditzakete, ziurrenik funtzio laguntzaile asko erabiliz. Noiz merezi du definitzeko kode gutxi behar duen funtzio bat gehitzea? Funtsean, funtzio baterako badago
Funtzio-biltegi baten helburu nagusia (bere izenak dioen bezala) hizkuntzan ezaugarri berriak sartzea da. Datu berriak gehitu nahi badituzu edo
Egia esan, bi modu daude. Baliteke funtzioen biltegian funtzio berrietan erabiliko den objektu mota berri bat sartu nahi izatea. Eta kasu honetan, beti idatzi dezakezu bere irudikapen sinbolikoa eta erabil dezakezu funtzioen biltegi batean funtzioak sartzeko edo ateratzeko.
Baina zer gertatzen da objektu bat irudikatu nahi baduzu eta ondoren definitu, Wolfram Language-n dauden funtzioen bidez, berarekin lan egin nahi duzula? Wolfram Hizkuntzak beti izan du horretarako mekanismo arin bat, izenekoa
Beraz, zer egon liteke funtzio-kodean funtzio-biltegi batean?
Wolfram ezaugarrien biltegirako kode guztia Wolfram-en idatzi behar al da? Zalantzarik gabe, kanpoko API barruko kodea ez da Wolfram hizkuntzan idatzi behar, eta horrek ez du hizkuntza kodea ere egiten. Izan ere, funtzio bat kanpoko edozein hizkuntzatan edo liburutegitan aurkitzen baduzu, Wolfram funtzioen biltegian erabiltzeko aukera ematen duen bilgarri bat sor dezakezu. (Normalean integratutako funtzioak erabili behar dituzu horretarako
Orduan, zertarako balio du hau egiteak? Funtsean, honek Wolfram Language sistema integratua eta bere software gaitasun multzo bateratua erabiltzeko aukera ematen du. Oinarrizko inplementazioa kanpoko liburutegi edo hizkuntza batetik lortzen baduzu, orduan Wolfram Languageren egitura sinboliko aberatsa erabil dezakezu goi-mailako funtzio eroso bat sortzeko, erabiltzaileek dagoeneko inplementatutako edozein funtzionalitate erraz erabiltzeko. Gutxienez, hori bideragarria izan beharko litzateke mundu ideal batean, non liburutegiak kargatzeko eta abarretako eraikuntza-bloke guztiak dauden, eta kasu horretan Wolfram Languagek automatikoki kudeatuko luke. (Kontuan izan behar da praktikan arazoak egon daitezkeela
Bide batez, kanpoko liburutegi tipikoak lehen aldiz begiratzen dituzunean, askotan konplexuegiak dirudite funtzio gutxi batzuetan estaltzeko, baina kasu askotan, konplexutasunaren zati handi bat liburutegirako beharrezkoak diren azpiegiturak eta funtzio guztiak sortzeatik dator. lagundu. Hala ere, Wolfram Lengoaia erabiltzean, normalean azpiegitura dagoeneko paketeetan sartuta dago, eta, beraz, ez dago laguntza-funtzio horiek guztiak zehatz-mehatz azaldu beharrik, baizik eta liburutegiko aplikazio-funtzio "goienak" egiteko funtzioak soilik sortu. .
Ezagutza oinarriaren "ekosistema".
Aldian-aldian erabiltzen dituzun funtzioak idatzi badituzu, bidali Wolfram Function Repository-ra! Honetatik zerbait gehiago ateratzen ez bada (hizkuntzaren garapena), orduan ere askoz erosoagoa izango zaizu funtzioak erabilera pertsonalerako erabiltzea. Hala ere, logikoa da funtzioak aldizka erabiltzen badituzu, agian beste erabiltzaile batzuek ere erabilgarriak izango dituztela pentsatzea.
Jakina, baliteke zure funtzioak partekatu ezin dituzun edo nahi ez dituzun egoera batean edo informazio-baliabide pribatuetara sarbidea lortuz gero. Halakoetan ere, funtzioak zure hodeiko kontuan zabaldu ditzakezu,
Wolfram funtzioen biltegira bidaltzen dituzun funtzioek ez dute zertan perfektuak izan; erabilgarriak izan behar dute. Hau Unix-en dokumentazio klasikoko "Erroreak" atalaren antzekoa da - "Definizioak atalean" "Egilearen oharrak" atala dago, non dagoeneko ezagutzen dituzun mugak, arazoak eta abar deskriba ditzakezu zure funtzioari buruz. Gainera, zure funtzioa biltegira bidaltzen duzunean, komisario talde dedikatu batek irakurriko dituen bidalketa oharrak gehi ditzakezu.
Ezaugarri bat argitaratutakoan, bere orrialdeak bi esteka ditu beti behealdean: "
Batzuetan, Wolfram funtzioen biltegiko funtzioak erabili nahi dituzu, hala nola funtzio integratuak, haien kodea begiratu gabe. Hala ere, barrura begirada bat eman nahi baduzu, beti dago Notepad botoia goiko aldean. Egin klik gainean eta eginbideen biltegian bidalitako jatorrizko definizio-koadernoaren kopia propioa lortuko duzu. Batzuetan, zure beharretarako adibide gisa erabil dezakezu. Aldi berean, funtzio honen aldaketa propioa ere garatu dezakezu. Biltegitik aurkitu dituzun funtzio hauek zure ordenagailuan edo zure aphid hodeiko biltegiratze kontuan argitaratu nahi dituzu, agian funtzioen ezagutza-basera bidali nahi dituzu, agian jatorrizko funtzioaren bertsio hobetu eta zabaldu gisa.
Etorkizunean, Git estiloko bifurkazioa onartzen dugu ezaugarrien biltegietarako, baina oraingoz sinplea izaten saiatzen ari gara, eta hizkuntzan ezaugarri bakoitzaren bertsio onartu bakarra dugu beti. Gehienetan (garatzaileek garatu dituzten funtzioak mantentzeari uko egiten ez badiote eta erabiltzaileen bidalketei erantzuten ez badiote), eginbidearen jatorrizko egileak bere eguneratzeen kontrola hartzen du eta bertsio berriak bidaltzen ditu, ondoren berrikusi eta, berrikuspen-prozesua gainditzen badute. , hizkuntzan argitaratua.
Azter dezagun nola funtzionatzen duen garatutako funtzioen "bertsioa". Oraintxe bertan, funtzioen biltegiko funtzio bat erabiltzen duzunean, haren definizioa betirako gordeko da zure ordenagailuan (edo zure hodeiko kontuan hodeia erabiltzen ari bazara). Eginbide baten bertsio berri bat eskuragarri badago, hura erabiltzen duzun hurrengoan mezu bat jasoko duzu horren berri emateko. Eta funtzioa bertsio berri batera eguneratu nahi baduzu, komandoa erabiliz egin dezakezu
Wolfram Function Repository-ren gauza ederretako bat Wolfram Language edozein programak, edonondik, bertatik funtzioak erabil ditzakeela da. Programa bat ohar-koadernoan agertzen bada, sarritan komenigarria da biltegiko funtzioak irakurtzeko erraza den "objektu bitar funtzionala" funtzio gisa formateatzea (agian bertsio egoki batekin).
Beti atzi dezakezu funtzioen biltegiko edozein funtzio testua erabiliz
Nola funtzionatzen du?
Wolfram biltegiko funtzioen barruan hori gauza bera erabiliz posible da
Demagun
Barruan informazio batzuk ikus ditzakezu funtzioa erabiliz
Nola funtzionatzen du baliabideen funtzio bat konfiguratzea? Errazena tokiko kasu hutsa da. Hona hemen funtzio bat hartzen duen adibide bat (kasu honetan funtzio hutsa) eta programa-saio jakin baterako baliabide-funtzio gisa definitzen duena:
Definizioa egin ondoren, baliabide funtzioa erabil dezakezu:
Kontuan izan funtzio-blob honetan ikono beltz bat dagoela . Horrek esan nahi du BLOB funtzioak uneko saiorako definitutako memoria barneko baliabideen funtzioari egiten diola erreferentzia. Zure ordenagailuan edo hodeiko kontuan betirako gordetzen den baliabide-eginbide batek ikono grisa du . Eta Wolfram Feature Repository-en baliabide ofizial baten ikono laranja bat dago .
Beraz, zer gertatzen da Definizio Koadernoko Zabaldu menua erabiltzen duzunean? Lehenik eta behin, koadernoko definizio guztiak hartzen ditu eta horietatik sinboliko bat sortzen du
Zure ordenagailuko biltegi batetik funtzio baten tokiko hedapena komandoa erabiliz egiten da
Funtzio-biltegi baterako Bidali botoia sakatzen baduzu, zer gertatzen den horren azpian
Lehenespenez, bidalketak zure Wolfram IDarekin lotutako izenarekin egiten dira. Baina garapen talde edo erakunde baten izenean eskaera bat bidaltzen baduzu, egin dezakezu
Funtzioren bat funtzioen ezagutza-basera bidali ondoren, ilaran jarriko da berrikusteko. Erantzun gisa iruzkinak jasotzen badituzu, normalean testu-fitxategi baten moduan egongo dira "iruzkin gelaxka" gehigarriak gehituta. Beti egiaztatu dezakezu zure aplikazioaren egoera bisitatuz
Sotiltasun batzuk lanean
Lehen begiratuan, badirudi definizio-koaderno bat hartu eta hitzez hitz funtzio-biltegi batean sartu dezakezula; hala ere, Γ±abardura asko daude tartean, eta horiek kudeatzeko meta-programazio nahiko konplexua egin behar da, prozesamendu sinbolikoa maneiatzea. funtzioa definitzen duen kodea bezala, eta Notepad bera definitzen da. Gehiena barnean gertatzen da, eszena atzean, baina ulertzea merezi duten inplikazio batzuk izan ditzake ezaugarrien ezagutza-baseari ekarpena egingo badiozu.
Berehalako lehen sotiltasuna: Definizio Koadernoa betetzen duzunean, zure funtzioa aipa dezakezu nonahi bezalako izen bat erabiliz. Nire Funtzioa, Wolfram Language-ko funtzio baten izen arrunt baten itxura duena, baina funtzioen biltegiaren dokumentaziorako hau ordezkatzen da
Bigarren sotiltasuna: Definizio Koadernotik baliabide-funtzioa sortzen duzunean, funtzioaren definizioan parte hartzen duten mendekotasun guztiak jaso eta esplizituki sartu behar dira. Hala ere, definizioak modularrak izaten jarraitzeko, dena bakarrean jarri behar duzu
Normalean ez duzu inoiz ikusiko izen-espazio hau konfiguratzeko erabilitako kodearen arrastorik. Baina arrazoiren batengatik zure funtzioaren barruan exekutatu gabeko ikurra deitzen baduzu, orduan ikusiko duzu ikur hau funtzioaren barneko testuinguruan dagoela. Hala ere, Definition Notepad prozesatzen denean, gutxienez funtzioari dagokion ikurra da
Funtzioen biltegia funtzio berriak definitzeko da. Eta funtzio hauek aukerak izan ditzakete. Askotan parametro hauek (adibidez,
Funtzio gehienek deitzen zaien bakoitzean egin behar dutena besterik ez dute egiten, baina funtzio batzuk hasieratu egin behar dira saio jakin batean exekutatu aurretik;
Biltegi bateko funtzioek biltegian dauden beste funtzio batzuk erabil ditzakete; elkarri erreferentzia egiten dioten bi (edo gehiago) funtzio biltzen dituen funtzio-biltegi baten definizioak konfiguratzeko, zure programa-saioan zabaldu behar dituzu, ahal izateko. haietan bezalako erreferentzia
Garapen-aukerak. Zer gertatu behar da biltegia benetan handitzen denean?
Gaur Wolfram Feature Repository abian jartzen ari gara, baina denborarekin bere tamaina eta funtzionalitatea izugarri handitzea espero dugu, eta garapenean hazten doan heinean aurreikusten ditugun hainbat arazo sortuko dira.
Lehenengo arazoa funtzio izenei eta haien berezitasunari buruzkoa da. Funtzio-biltegia honela diseinatuta dago, Wolfram Language-n integratutako funtzioak bezala, edozein funtzio erreferentzia egin dezakezu izena zehaztuz. Baina horrek ezinbestean esan nahi du funtzioen izenak globalki bakarrak izan behar direla biltegian, beraz, adibidez, bakarra egon daiteke.
Hasieran arazo handia dirudi, baina merezi du konturatzea funtsean Interneteko domeinuen edo sare sozialen heldulekuen arazo bera dela. Eta kontua da sistemak erregistratzaile bat izan behar duela, eta hau da gure enpresak Wolfram funtzioaren ezagutza-baserako beteko duen eginkizunetako bat. (Biltegi baten bertsio pribatuetarako, haien erregistratzaileak administratzaileak izan daitezke.) Jakina, Interneteko domeinu bat erregistratu daiteke ezer eduki gabe, baina funtzioen biltegi batean, funtzio-izen bat erregistratu daiteke benetako definizio bat badago. funtzioa.
Wolfram funtzioaren ezagutza-basea kudeatzeko gure eginkizunaren zati bat funtzio baterako aukeratutako izena logikoa dela ziurtatzea da, funtzioaren definizioa kontuan hartuta eta Wolfram Language izendatzeko konbentzioak betetzen dituela. 30 urte baino gehiagoko esperientzia dugu Wolfram hizkuntzan integratutako funtzioak izendatzen, eta gure komisario-taldeak esperientzia hori funtzioen biltegira eramango du. Jakina, beti daude salbuespenak. Esaterako, hobe dirudi funtzio batzuen izen labur bat izatea, baina hobe da izen luzeago eta zehatzago batekin "defentsa" egitea, etorkizunean funtzio-izen antzeko bat egin nahi duen norbaitekin topo egingo duzulako. .
(Kontuan izan behar da hemen funtzioak desanbiguatzeko kide etiketa batzuk gehitzeak ez duela nahi den ondoriorik izango. Etiketa bat beti esleitzen tematzen ez bazara, funtzio jakin baterako etiketa lehenetsi bat definitu beharko duzulako, eta egilearen etiketak ere esleitu beharko dituzu. , berriro ere koordinazio globala beharko luke.)
Wolfram funtzioen ezagutza-oinarria hazten doan heinean, sortuko den arazoetako bat funtzioen aurkigarritasuna da, eta horretarako sistemak eskaintzen du.
Wolfram Language-n integratutako funtzioetarako, detekzio-geruza deritzona dago
Wolfram funtzioen biltegia funtzioen biltegi iraunkor gisa konfiguratuta dago, non bertako edozein funtziok beti funtzionatuko duen. Jakina, eginbideen bertsio berriak erabilgarri egon daitezke, eta denborarekin eginbide batzuk zaharkituta geratuko direla espero dugu. Funtzioek funtzionatuko dute programetan erabiltzen badira, baina haien dokumentazio-orriek funtzio berri eta aurreratuagoetara estekatuko dute.
Wolfram Feature Repository funtzio berriak azkar ezagutzeko eta Wolfram hizkuntza erabiltzeko modu berriak ikasteko diseinatuta dago. Oso baikor gaude ezaugarrien biltegian aztertutako batzuk Wolfram Language oinarrizkoaren zati txertatuak izateko zentzua izango dutela azkenean. Azken hamarkadan antzeko multzo bat izan dugu
Hemen garrantzitsuena da funtzioen biltegi bateko funtzio bat erabiltzaile bakoitzak une honetan erabiltzeko erabilgarri dagoen zerbait dela. Baliteke jatorrizko hizkuntzaren funtzio bat askoz hobea eta errendimendu handiagoa izatea, baina ezaugarrien biltegi batek erabiltzaileei funtzio berri guztietarako sarbidea izango luke berehala. Eta, garrantzitsuena, kontzeptu honi esker, bakoitzak nahi dituen ezaugarri berriak gehi ditzake.
Wolfram hizkuntzaren historian lehenago, ideia honek ez zuen bezain ondo funtzionatuko, baina fase honetan hainbeste ahalegin egiten da hizkuntzan, eta hizkuntza-diseinuaren printzipioen ulermen sakona, non orain badirudi oso. erabiltzaile-komunitate handi batek diseinuaren koherentzia mantenduko duten funtzioak gehitzea posible da, erabiltzaile askorentzat erabilgarria izan dadin.
Wolfram Language erabiltzaileen komunitatean talentu izpiritu ikaragarria(?) dago. (Noski, komunitate honek hainbat arlotako I+G aditu nagusi asko biltzen ditu.) Espero dut Wolfram Feature Repository-ek talentu espiritu hori desblokeatzeko eta zabaltzeko plataforma eraginkor bat eskaintzea. Elkarrekin bakarrik sortu dezakegu Wolfram hizkuntzaren konputazioaren paradigma aplikatzeko eremua nabarmen zabalduko duen zerbait.
30 urte baino gehiagotan, bide luzea egin dugu Wolfram hizkuntzarekin. Orain elkarrekin, goazen are urrunago. Biziki gomendatzen ditut mundu osoko Wolfram hizkuntzaren erabiltzaile errespetatu guztiak biltegi funtzionala erabiltzeko plataforma gisa, baita software proiektu berria ere, hala nola Free Wolfram Engine for Developers.
Iturria: www.habr.com