Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Helo, Habr! Cyflwynaf i’ch sylw gyfieithiad o swydd Stephen Wolfram "Storfa Swyddogaeth Wolfram: Lansio Llwyfan Agored ar gyfer Ymestyn Iaith Wolfram".

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Rhagofynion ar gyfer cysondeb yr iaith Wolfram

Heddiw rydym yn sefyll ar drothwy cyflawniadau gwych ynghyd â'r iaith raglennu Iaith Wolfram. Dim ond tair wythnos yn ôl fe wnaethom lansio injan Wolfram am ddim i ddatblygwyri helpu ein defnyddwyr i integreiddio Iaith Wolfram yn eu prosiectau meddalwedd ar raddfa fawr. Heddiw rydym yn lansio Ystorfa swyddogaeth Wolfram, er mwyn darparu llwyfan cydgysylltiedig ar gyfer swyddogaethau a grëwyd i ymestyn yr iaith Wolfram, ac rydym hefyd yn agor ystorfa o swyddogaethau ar gyfer unrhyw un a all gyfrannu at ddatblygiad ein cynnyrch meddalwedd.

Mae Cadwrfa Swyddogaethau Wolfram yn rhywbeth sy'n bosibl oherwydd natur unigryw Iaith Wolfram nid yn unig fel iaith raglennu, ond hefyd fel iaith raglennu. iaith gyfrifiadurol ar raddfa lawn. Mewn ieithoedd rhaglennu traddodiadol, mae ychwanegu ymarferoldeb newydd sylweddol fel arfer yn golygu creu llyfrgelloedd ychwanegol cyfan a all weithio neu beidio pan gânt eu defnyddio gyda'i gilydd. Fodd bynnag, yn yr Iaith Wolfram mae cymaint eisoes wedi'i ymgorffori yn yr iaith ei hun, ei bod yn bosibl ehangu ei swyddogaeth yn sylweddol trwy ychwanegu swyddogaethau newydd sydd wedi'u hintegreiddio ar unwaith i strwythur cyfannol yr iaith gyfan.

Er enghraifft, mae ystorfa swyddogaeth Wolfram eisoes yn cynnwys 532 o nodweddion newydd wedi'i strwythuro'n 26 categori thematig:

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Yn yr un modd yn fwy na 6000 o swyddogaethau safonol, wedi'i ymgorffori yn iaith Wolfram, mae gan bob swyddogaeth o'r gadwrfa dudalen ddogfennaeth gyda disgrifiad manwl ohonynt ac enghreifftiau o waith:

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

I gyrraedd y dudalen, copïwch y gwrthrych uchod (swyddogaeth BLOB), gludwch ef i'r llinell fewnbwn ac yna rhedwch y ffwythiant - mae eisoes wedi'i gynnwys yn iaith Wolfram a'i gefnogi yn ddiofyn gan ddechrau gyda fersiwn 12.0:

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Dylid nodi yma wrth brosesu Cod LogoQRC Nid oes angen i chi, er enghraifft, sefydlu “llyfrgell prosesu delweddau” - gan ein bod eisoes wedi gweithredu ffordd gyson a gofalus algorithmig yn Iaith Wolfram prosesu delwedd, y gellir eu prosesu ar unwaith gan amrywiol swyddogaethau iaith graffigol:

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Rwy’n gobeithio hynny gyda’r gefnogaeth cymuned wych a thalentog, sydd wedi bod yn tyfu ac yn ehangu (yn seiliedig ar yr Iaith Wolfram) dros y degawdau diwethaf. Bydd ystorfa swyddogaeth Wolfram yn caniatáu hyd y gellir ei ragweld i ehangu'n sylweddol yr ystod o swyddogaethau (a allai fod yn arwyddocaol, yn arbenigo mewn amrywiol feysydd gwyddoniaeth a thechnoleg) sydd ar gael yn yr iaith. Felly, daw'n bosibl defnyddio cynnwys yr iaith (ei swyddogaethau adeiledig) a egwyddorion datblygu, sy'n cael eu gweithredu ar sail yr iaith. (Dylid nodi yma fod gan yr Iaith Wolfram fwy na Hanes 30 mlynedd o ddatblygiad a thwf sefydlog).
Gall swyddogaethau o'r gadwrfa gynnwys darnau bach neu fawr o god a ysgrifennwyd yn Iaith Wolfram. Er enghraifft, gallai'r rhain fod yn alwadau APIs a gwasanaethau allanol neu lyfrgelloedd allanol mewn ieithoedd eraill. Nodwedd unigryw'r dull hwn yw, pan fyddwch chi'n drilio i lawr i ymarferoldeb lefel defnyddiwr, ni fydd unrhyw anghysondebau posibl oherwydd bod y dull wedi'i adeiladu ar ben strwythur cyson Iaith Wolfram - a bydd pob swyddogaeth yn gweithio'n gywir yn awtomatig - yn union fel y dylai hi.
Mae strwythur cragen a rhaglennu Storfa Nodweddion Wolfram wedi'i gynllunio fel y gall pawb gyfrannu at yr achos cyffredin yn y ffordd fwyaf syml a chyfleus iddynt - mewn gwirionedd, dim ond trwy lenwi ffeil testun y llyfr nodiadau (gydag estyniad nb) WL. Mae swyddogaethau awtomatig adeiledig yn caniatáu ichi wirio swyddogaethau newydd sy'n cael eu hychwanegu at y gadwrfa i sicrhau eu bod yn integreiddio i'r iaith. Mae ein cwmni yn betio ar yr ystod eang o ddefnyddwyr sy'n gallu integreiddio eu swyddogaethau i'r iaith, yn hytrach nag ar gymhlethdod mawr swyddogaethau newydd - ac er bod yna broses adolygu, nid ydym yn mynnu dim byd tebyg dadansoddiad dylunio manwl neu safonau llym ar gyfer cyflawnder a dibynadwyedd nodweddion defnyddwyr newydd, yn hytrach na phrofi nodweddion mwy trwyadl sydd wedi'u cynnwys yn yr iaith graidd a ddefnyddiwn.

Mae llawer o gyfaddawdau a manylion yn y dull hwn, ond ein nod yw gwneud y gorau o ystorfa nodweddion Wolfram ar gyfer profiad y defnyddiwr a sicrhau bod nodweddion defnyddwyr newydd yn cyfrannu'n ystyrlon at ddatblygiad yr iaith. Wrth inni dyfu, nid oes gennyf unrhyw amheuaeth y bydd yn rhaid inni ddyfeisio dulliau newydd o brosesu a dilysu swyddogaethau sydd wedi’u hymgorffori yn y gadwrfa, yn anad dim ar gyfer trefnu nifer fawr o swyddogaethau a dod o hyd i’r rhai y mae eu hangen ar ddefnyddwyr. Fodd bynnag, mae’n galonogol bod y llwybr yr ydym wedi’i ddewis yn ddechrau da. Fi yn bersonol ychwanegu nifer o nodweddion i'r gronfa ddata wreiddiol. Mae llawer ohonynt yn seiliedig ar god yr wyf wedi'i ddatblygu'n bersonol ers cryn amser. A dim ond ychydig funudau gymerodd hi i mi eu gwthio i'r ystorfa. Nawr eu bod yn y storfa, gallaf o'r diwedd - ar unwaith ac ar unrhyw adeg - ddefnyddio'r swyddogaethau hyn yn ôl yr angen, heb orfod poeni am chwilio am ffeiliau, lawrlwytho pecynnau, ac ati.

Cynyddu effeithlonrwydd tra'n lleihau costau

Hyd yn oed cyn y Rhyngrwyd, roedd ffyrdd o rannu cod Wolfram Language (ein prosiect canolog mawr cyntaf oedd MathFfynhonnell, a grëwyd ar gyfer Mathematica yn 1991 yn seiliedig ar CD-ROM, ac ati). Wrth gwrs, mae'r dull gweithredu a gynigir yn seiliedig ar ystorfa swyddogaeth Wolfram yn arf mwy pwerus a dibynadwy ar gyfer gweithredu'r tasgau uchod.

Ers dros 30 mlynedd, mae ein cwmni wedi gweithio'n ddiwyd i gynnal uniondeb strwythur iaith Wolfram, ac mae hyn yn hanfodol i sicrhau bod iaith Wolfram nid yn unig yn iaith raglennu, ond hefyd yn iaith raglennu. iaith gyfrifiadurol lawn. Ac felly, hanfod y dull o weithredu ystorfa swyddogaeth Wolfram yw defnyddio dull unedig o raglennu a datblygu swyddogaethau newydd sy'n cael eu hychwanegu'n ddilyniannol ac sy'n ffitio i mewn i fframwaith yr iaith fel y gall ddatblygu a chyd-esblygu.

Mae prosesau cyfrifiannol amrywiol yn digwydd yn strwythur gweithredu pob swyddogaeth. Dylid nodi yma ei bod yn angenrheidiol bod gan y swyddogaeth ymddangosiad clir ac unffurf a darllenadwyedd gweledol i'r defnyddiwr. Yn y cyd-destun hwn, cyflwynir mwy na 6000 o enghreifftiau dilyniannol i swyddogaethau adeiledig Iaith Wolfram o sut i raglennu swyddogaethau yn gywir (dyma ein fideos rhaglennu bywsy'n cynnwys cannoedd o oriau o broses o greu rhaglenni safonol). Yr hyn y mae'r dull hwn yn ei wneud yn y pen draw yn gwneud ystorfa nodwedd Wolfram yn gallu perfformio'n dda yw natur strwythurol Iaith Wolfram, gyda'i nifer fawr o lyfrgelloedd ychwanegol ac amrywiol sydd eisoes wedi'u hymgorffori yn yr iaith. Er enghraifft, os oes gennych swyddogaeth sy'n prosesu delweddau, neu araeau gwasgaredigNeu strwythurau moleciwlaiddAc data daearyddol neu rai eraill - mae eu cynrychiolaeth symbolaidd gyson eisoes yn bodoli yn yr iaith, a diolch i hyn, mae eich swyddogaeth yn dod yn gydnaws ar unwaith â swyddogaethau eraill yn yr iaith.

Mae creu ystorfa sy'n gweithio'n dda mewn gwirionedd yn dasg meta-raglennu ddiddorol. Er enghraifft, ni fydd gormodedd o gyfyngiadau yn y rhaglen yn caniatáu cael yr uniad gofynnol a chyffredinolrwydd yr algorithm. Yn union fel gyda nifer annigonol o gyfyngiadau swyddogaethol, ni fyddwch yn gallu gweithredu dilyniant digon cywir o gyflawni algorithm. Gweithiodd sawl enghraifft flaenorol o weithredu cyfaddawd o'r dulliau hyn, a weithredwyd gan ein cwmni, yn eithaf sefydlog - sef: Arddangosiadau Twngsten Prosiect, a lansiwyd yn 2007 ac sydd bellach yn rhedeg ar-lein gyda dros 12000 o arddangosiadau defnyddwyr-rhyngweithiol. YN Cronfa ddata Wolfram mae mwy na 600 o gronfeydd data parod y gellir eu defnyddio yn Iaith Wolfram, a Storio rhwydwaith niwral Wolfram yn cael ei ailgyflenwi â rhwydweithiau niwral newydd bron bob wythnos (mae yna 118 ohonyn nhw nawr) ac maen nhw wedi'u cysylltu'n syth trwy'r swyddogaeth Model Net yn yr Iaith Wolfram.

Mae gan bob un o'r enghreifftiau uchod nodwedd sylfaenol - mae gan y gwrthrychau a'r swyddogaethau a gasglwyd yn y prosiect radd uchel iawn o strwythuro a dosbarthiad prosesau. Wrth gwrs, gall manylion strwythur yr hyn sy'n rhwydwaith demo neu'n rhwydwaith niwral neu rywbeth arall amrywio'n fawr, ond mae'r strwythur sylfaenol ar gyfer unrhyw gadwrfa gyfredol bob amser yn aros yr un fath. Felly beth yw eich barn chi, annwyl ddefnyddiwr, am greu ystorfa o'r fath sy'n ychwanegu estyniadau i'r iaith Wolfram? Mae Iaith Wolfram wedi'i chynllunio i fod yn hynod hyblyg, felly gellir ei hymestyn a'i haddasu mewn unrhyw ffordd. Mae'r amgylchiad hwn yn hynod bwysig ar gyfer y gallu i greu amrywiol brosiectau meddalwedd ar raddfa fawr yn gyflym yn Iaith Wolfram. Dylid nodi yma, wrth i hyblygrwydd yr iaith gynyddu, y bydd cost prosiectau a weithredir yn y fath iaith yn anochel yn cynyddu. Mae hyn oherwydd y ffaith mai po fwyaf y mae'r defnyddiwr yn defnyddio iaith o'r fath, y mwyaf o swyddogaethau ymroddedig y mae'n eu derbyn, ond ni ddylem anghofio y gallai fod gan y dull hwn hefyd ochrau negyddol o ran yr anallu i sicrhau cysondeb cyson o fodiwlau rhaglen.

Mae problem gyffredin gyda llyfrgelloedd mewn ieithoedd rhaglennu traddodiadol - os ydych chi'n defnyddio un llyfrgell, er enghraifft, bydd y cod yn gweithio'n gywir, ond os ceisiwch ddefnyddio llyfrgelloedd lluosog, nid oes unrhyw sicrwydd y byddant yn rhyngweithio'n gywir â'i gilydd . Hefyd, mewn ieithoedd rhaglennu traddodiadol - yn wahanol i iaith gyfrifiadurol lawn - nid oes unrhyw ffordd i warantu presenoldeb cynrychioliadau adeiledig cyson ar gyfer unrhyw swyddogaethau neu fathau o ddata heblaw eu strwythurau sylfaenol. Ond, mewn gwirionedd, mae'r broblem hyd yn oed yn fwy nag y mae'n ymddangos ar yr olwg gyntaf: os yw rhywun yn adeiladu fertigol ar raddfa fawr o ymarferoldeb, yna heb gostau enfawr rhaglennu prosiect canolog a roddwn yn iaith Wolfram, mae'n amhosibl cyflawni cysondeb. Mae'n bwysig felly bod pob modiwl meddalwedd bob amser yn gweithio gyda'i gilydd yn gywir.

Felly'r syniad y tu ôl i ystorfa nodweddion Wolfram yw osgoi'r broblem a amlinellir uchod trwy ychwanegu estyniadau i'r iaith mewn darnau cymharol fach o god trwy nodweddion unigol sy'n haws eu datblygu fel modiwlau cydlynol. Wedi dweud hynny, mae yna nodweddion rhaglennu na ellir eu gwneud yn gyfleus gan ddefnyddio swyddogaethau unigol (ac mae ein cwmni'n bwriadu rhyddhau algorithm rhaglennu wedi'i optimeiddio yn y dyfodol agos i helpu i weithredu pecynnau meddalwedd ar raddfa fawr). Fodd bynnag, yn seiliedig ar y swyddogaethau sydd eisoes wedi'u hymgorffori yn Iaith Wolfram, mae yna lawer o bosibiliadau rhaglennu sy'n cael eu gweithredu yn seiliedig ar swyddogaethau unigol. Y syniad yma yw, gyda chymharol ychydig o ymdrech rhaglennu, ei bod yn bosibl creu nifer o swyddogaethau newydd a defnyddiol iawn a fydd yn darparu cydlyniad digonol i'r dyluniad, byddant wedi'u cydgysylltu'n dda â'i gilydd, a hefyd, yn ogystal â hyn, maent yn gallu cael ei defnyddio'n rhwydd ac yn eang yn yr iaith yn y dyfodol.

Mae'r dull hwn, wrth gwrs, yn gyfaddawd. Pe bai pecyn mwy yn cael ei weithredu, gellid dychmygu byd cwbl newydd o ymarferoldeb a fyddai'n hynod bwerus a defnyddiol. Os oes angen cael swyddogaethau newydd a fydd yn cyd-fynd â phopeth arall, ond nad ydych chi'n fodlon gwario llawer o ymdrech ar ddatblygu'r prosiect, gall hyn, yn anffodus, arwain at ostyngiad yng nghwmpas eich prosiect. Y syniad y tu ôl i ystorfa nodwedd Wolfram yw darparu ymarferoldeb i ran ddiffiniol o brosiect; bydd y dull hwn yn ychwanegu ymarferoldeb pwerus tra'n ei gwneud hi'n haws cynnal cysondeb da mewn prosiect rhaglennu.

Helpwch i ychwanegu swyddogaethau personol i'r gadwrfa swyddogaethau

Mae ein tîm wedi gweithio'n galed i'w gwneud hi'n hawdd i ddefnyddwyr gyfrannu at nodweddion ystorfa Wolfram. Ar y bwrdd gwaith (eisoes i mewn fersiwn 12.0), Yn syml, gallwch fynd trwy'r tabiau prif ddewislen yn ddilyniannol: Ffeil> Newydd> Eitem Ystorfa> Eitem Storfa Swyddogaeth a byddwch yn cael "Llyfr Nodiadau Diffiniad" (yn rhaglennol y tu mewn i'r fainc waith. Gallwch hefyd ddefnyddio'r ffwythiant analog - Creu Llyfr Nodiadau["Adnodd Swyddogaeth"]):

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Mae dau brif gam y bydd angen i chi eu cyflawni: yn gyntaf, ysgrifennwch y cod ar gyfer eich swyddogaeth ac, yn ail, ysgrifennwch ddogfennaeth sy'n dangos sut y dylai eich swyddogaeth weithio.
Cliciwch ar y botwm "Sampl Agored" ar y brig i weld enghraifft o'r hyn sydd angen i chi ei wneud:

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Yn y bôn, rydych chi'n ceisio creu rhywbeth tebyg i swyddogaeth adeiledig yn Iaith Wolfram. Ac eithrio y gall wneud rhywbeth llawer mwy penodol na swyddogaeth adeiledig. Ar yr un pryd, bydd disgwyliadau o ran ei gyflawnrwydd a'i ddibynadwyedd yn llawer is.
Mae angen i chi roi enw i'ch swyddogaeth sy'n dilyn canllawiau enwi ffwythiannau Wolfram Language. Yn ogystal, bydd angen i chi ddatblygu dogfennaeth ar gyfer eich swyddogaeth, yn debyg i swyddogaethau adeiledig yr iaith. Byddaf yn siarad am hyn yn fanylach yn nes ymlaen. Am y tro, sylwch fod botwm yn y rhes o fotymau ar frig y ffeil llyfr nodiadau diffiniad "Canllawiau Arddull", sy'n esbonio beth i'w wneud, a botwm Tools, sy'n darparu offer ar gyfer fformatio dogfennaeth eich swyddogaeth.
Pan fyddwch chi'n siŵr bod popeth wedi'i lenwi'n iawn a'ch bod chi'n barod, cliciwch ar y botwm "Gwirio". Mae'n gwbl normal nad ydych wedi cyfrifo'r holl fanylion eto. Felly bydd y swyddogaeth "Gwirio" yn rhedeg yn awtomatig ac yn gwneud llawer o wiriadau arddull a chysondeb. Yn aml, bydd yn eich annog ar unwaith i gadarnhau a derbyn y cywiriadau (Er enghraifft: "Rhaid i'r llinell hon orffen gyda cholon," a bydd yn eich annog i fynd i mewn i golon). Weithiau bydd hi'n gofyn i chi ychwanegu neu newid rhywbeth eich hun. Byddwn yn ychwanegu nodweddion newydd yn gyson at ymarferoldeb awtomatig y botwm Gwirio, ond yn y bôn ei ddiben yw sicrhau bod popeth a gyflwynwch i'r ystorfa nodwedd eisoes yn dilyn cymaint o ganllawiau arddull â phosibl yn agos.

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Felly, ar ôl rhedeg "Gwirio", gallwch ddefnyddio "Rhagolwg". Mae "Rhagolwg" yn creu rhagolwg o'r dudalen ddogfennaeth a ddiffiniwyd gennych ar gyfer eich swyddogaeth. Gallwch hefyd greu rhagolwg ar gyfer ffeil a grëwyd ar eich cyfrifiadur neu ar gyfer ffeil sydd wedi'i lleoli mewn storfa cwmwl. Os, am ryw reswm, nad ydych chi'n fodlon â'r hyn a welwch yn y rhagolwg, ewch yn ôl a gwneud y cywiriadau angenrheidiol, ac yna cliciwch ar y botwm Rhagolwg eto.
Nawr rydych chi'n barod i wthio'ch swyddogaeth i'r ystorfa. Mae'r botwm Defnyddio yn rhoi pedwar opsiwn i chi:

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Y peth pwysig ar y cam hwn yw y gallwch chi gyflwyno'ch swyddogaeth i gadwrfa swyddogaeth Wolfram fel ei bod ar gael i unrhyw un. Ar yr un pryd, gallwch hefyd osod eich swyddogaeth ar gyfer nifer cyfyngedig o ddefnyddwyr. Er enghraifft, gallwch greu swyddogaeth sy'n cael ei chynnal yn lleol ar eich cyfrifiadur fel ei bod ar gael pan fyddwch yn defnyddio'r cyfrifiadur penodol hwnnw. Neu gallwch ei bostio yn eich cyfrif cwmwl, fel ei fod ar gael i chi pan fyddwch wedi'ch cysylltu â'r cwmwl. Gallwch hefyd gynnal (defnyddio) y nodwedd yn gyhoeddus trwy'ch cyfrif cwmwl. Ni fydd yn ystorfa nodwedd ganolog Wolfram, ond byddwch yn gallu rhoi URL i rywun a fydd yn caniatáu iddynt gael eich nodwedd o'ch cyfrif. (Yn y dyfodol, byddwn hefyd yn cefnogi storfeydd canolog ledled ein cwmni.)

Felly gadewch i ni ddweud eich bod am gyflwyno'ch swyddogaeth i sylfaen wybodaeth swyddogaeth Wolfram. I wneud hyn, rydych chi'n clicio ar y botwm "Cyflwyno" i'r gadwrfa. Felly beth sy'n digwydd ar hyn o bryd? Mae eich cais yn cael ei giwio ar unwaith i'w adolygu a'i gymeradwyo gan ein tîm ymroddedig o guraduron.

Wrth i'ch cais fynd trwy'r broses gymeradwyo (sy'n cymryd sawl diwrnod fel arfer), byddwch yn derbyn cyfathrebiadau ynghylch ei statws ac o bosibl awgrymiadau ar gyfer defnydd yn y dyfodol. Ond unwaith y bydd eich nodwedd wedi'i chymeradwyo, bydd yn cael ei chyhoeddi ar unwaith i'r Wolfram Feature Repository a bydd ar gael i unrhyw un ei ddefnyddio. (A bydd hyn yn ymddangos yn crynodebau newyddion o nodweddion newydd ac ati)

Beth ddylai fod yn y storfa?

Dylid nodi bod gan ein cwmni safonau uchel iawn o ran cyflawnrwydd, dibynadwyedd ac ansawdd cyffredinol, ac o'r 6000+ o swyddogaethau yr ydym eisoes wedi'u cynnwys yn iaith Wolfram dros y 30+ mlynedd diwethaf, mae pob un yn bodloni'r gofynion uchod. Nod Storfa Swyddogaethau Wolfram yw defnyddio'r holl strwythur a swyddogaethau sydd eisoes yn bodoli yn Iaith Wolfram er mwyn ychwanegu cymaint o swyddogaethau llawer ysgafnach (hynny yw, swyddogaethau perfformiad uwch) â phosibl.

Wrth gwrs, rhaid i swyddogaethau yn ystorfa ffwythiannau Wolfram gydymffurfio ag egwyddorion dylunio Iaith Wolfram - fel y gallant ryngweithio'n llawn â swyddogaethau eraill a disgwyliadau defnyddwyr o sut y dylai'r swyddogaeth weithio'n iawn. Fodd bynnag, nid oes rhaid i'r swyddogaethau fod yr un mor gyflawn neu ddibynadwy.

Yn swyddogaethau adeiledig yr iaith Wolfram, rydym yn gweithio'n galed i wneud swyddogaethau rhaglennu mor gyffredinol â phosibl. Wedi dweud hynny, pan nad oes dim o'i le yn ystorfa swyddogaeth Wolfram ar gael swyddogaeth ynddi sy'n delio ag achos penodol ond defnyddiol iawn. Er enghraifft, y swyddogaeth AnfonMailFromNotebook yn gallu derbyn ffeiliau mewn un fformat penodol a chreu post mewn un ffordd benodol. Diagram Polygonal yn creu siartiau gyda dim ond rhai lliwiau a labelu, ac ati.

Pwynt arall sy'n ymwneud â'r swyddogaethau adeiledig yw bod ein cwmni'n gwneud pob ymdrech i drin pob achos annodweddiadol, i drin mewnbwn anghywir yn gywir, ac ati. Mewn ystorfa swyddogaeth, mae'n gwbl normal bod yna swyddogaeth arbennig sy'n ymdrin â'r prif achosion o ddatrys problem ac yn anwybyddu pob un arall.

Y pwynt amlwg yw ei bod yn well cael swyddogaethau sy'n gwneud mwy ac yn ei wneud yn well, ond dylai optimeiddio ar gyfer ystorfa swyddogaethau - yn hytrach na swyddogaethau adeiledig iaith Wolfram - gael mwy o swyddogaethau wedi'u bwndelu â mwy o swyddogaethau yn hytrach na threiddio i mewn i prosesau gweithredu pob swyddogaeth benodol.

Nawr, gadewch i ni edrych ar enghraifft o swyddogaethau profi mewn ystorfa. Mae disgwyliadau cysondeb ar gyfer swyddogaethau o'r fath yn naturiol yn llawer is nag ar gyfer swyddogaethau iaith adeiledig. Mae hyn yn arbennig o wir mewn achosion lle mae swyddogaethau'n dibynnu ar adnoddau allanol fel APIs, mae'n bwysig cynnal profion cyson yn gyson, sy'n digwydd yn awtomatig o fewn yr algorithmau dilysu. Yn y ffeil nb, gallwch nodi diffiniadau yn benodol (yn yr adran Gwybodaeth Ychwanegol) a nodi cymaint o brofion ag a ddiffinnir gan naill ai llinynnau mewnbwn ac allbwn neu wrthrychau nodau llawn o'r math Prawf Dilysu, cymaint ag y gwelwch yn dda. Yn ogystal, mae'r system yn gyson yn ceisio troi'r enghreifftiau dogfennaeth a ddarperir gennych yn broses ddilysu (ac weithiau gall hyn fod yn eithaf dwys o ran adnoddau, er enghraifft, ar gyfer swyddogaeth y mae ei chanlyniad yn dibynnu ar rifau hap neu amser y dydd).

O ganlyniad, bydd gan y storfa swyddogaethau nifer o gymhlethdodau gweithredu. Un llinell o god yn unig fydd rhai, gall eraill gynnwys miloedd neu ddegau o filoedd o linellau, gan ddefnyddio llawer o swyddogaethau cynorthwyol yn ôl pob tebyg. Pryd mae'n werth ychwanegu swyddogaeth sydd angen ychydig iawn o god i'w ddiffinio? Yn y bôn, os ar gyfer swyddogaeth mae yna enw cofiadwy da, y byddai defnyddwyr yn ei ddeall yn hawdd pe baent yn ei weld mewn darn o god, yna gellir ei ychwanegu eisoes. Fel arall, mae'n debyg ei bod yn well ail-atodi'r cod i'ch rhaglen bob tro y bydd angen i chi ei ddefnyddio.

Prif bwrpas cadwrfa ffwythiannau (fel mae'r enw'n awgrymu) yw cyflwyno nodweddion newydd i'r iaith. Os ydych am ychwanegu data newydd neu endidau newydd, defnyddio Ystorfa Data Wolfram. Ond beth os ydych chi am gyflwyno mathau newydd o wrthrychau ar gyfer eich cyfrifiadau?

Mewn gwirionedd mae dwy ffordd. Efallai y byddwch am gyflwyno math newydd o wrthrych a fydd yn cael ei ddefnyddio mewn swyddogaethau newydd yn y gadwrfa swyddogaethau. Ac yn yr achos hwn, gallwch chi bob amser ysgrifennu ei gynrychiolaeth symbolaidd a'i ddefnyddio wrth fewnbynnu neu allbynnu swyddogaethau mewn ystorfa swyddogaethau.

Ond beth os ydych am gynrychioli gwrthrych ac yna diffinio, trwy swyddogaethau presennol yn Iaith Wolfram, eich bod am weithio ag ef? Mae'r Iaith Wolfram bob amser wedi cael mecanwaith ysgafn ar gyfer hyn, a elwir UpValues. Gyda rhai cyfyngiadau (yn enwedig ar gyfer swyddogaethau hynny methu gwerthuso eu dadleuon), mae ystorfa swyddogaeth yn caniatáu ichi gynrychioli swyddogaeth yn syml a diffinio gwerthoedd ar ei chyfer. (Mae codi’r disgwyliad o gysondeb wrth greu dyluniad mawr newydd sydd wedi’i integreiddio’n llawn drwy’r Iaith Wolfram yn gyffredinol yn drefn bwysig iawn na ellir ei chyflawni drwy’n syml gynyddu cost y prosiect ac yn rhywbeth y mae ein cwmni’n ei wneud fel rhan o brosiectau ar gyfer datblygiad hirdymor yr iaith, nid yw'r dasg hon yn nod a osodir fel rhan o ddatblygiad yr ystorfa).

Felly, beth allai fod yn y cod swyddogaeth mewn ystorfa swyddogaethau? Mae popeth wedi'i ymgorffori yn Iaith Wolfram, wrth gwrs (o leiaf os nad yw'n cynrychioli bygythiadau gyfer Diogelwch a pherfformiad y rhaglen ei hun, fel amgylchedd cyfrifiadurol) yn ogystal ag unrhyw swyddogaeth o'r ystorfa swyddogaethau. Fodd bynnag, mae swyddogaethau eraill: gall swyddogaeth mewn ystorfa swyddogaethau alw API, neu i mewn Cwmwl WolframNeu o ffynhonnell arall. Wrth gwrs, mae rhai risgiau yn gysylltiedig â hyn. Oherwydd y ffaith nad oes unrhyw sicrwydd na fydd yr API yn newid, a bydd y swyddogaeth yn y storfa swyddogaeth yn rhoi'r gorau i weithio. Er mwyn helpu i nodi materion fel hyn, mae nodyn ar y dudalen ddogfennaeth (yn yr adran Gofynion) ar gyfer unrhyw nodwedd sy'n dibynnu ar fwy nag ymarferoldeb Wolfram Language yn unig. (Wrth gwrs, o ran data go iawn, gall fod problemau hyd yn oed gyda'r swyddogaeth hon - oherwydd bod data'r byd go iawn yn newid yn gyson, ac weithiau mae hyd yn oed ei ddiffiniadau a'i strwythur yn newid.)

A ddylai'r holl god ar gyfer ystorfa nodwedd Wolfram gael ei ysgrifennu yn Wolfram? Yn sicr, ni ddylai'r cod y tu mewn i'r API allanol gael ei ysgrifennu yn yr iaith Wolfram, nad yw hyd yn oed yn gwneud y cod iaith. Mewn gwirionedd, os dewch o hyd i swyddogaeth mewn bron unrhyw iaith neu lyfrgell allanol, gallwch greu deunydd lapio sy'n caniatáu ichi ei ddefnyddio yn ystorfa swyddogaeth Wolfram. (Fel arfer dylech ddefnyddio'r swyddogaethau adeiledig ar gyfer hyn Gwerthuso Allanol neu Swyddogaeth Allanol yng nghod iaith Wolfram.)

Felly beth yw pwynt gwneud hyn? Yn y bôn, mae hyn yn caniatáu ichi ddefnyddio'r system Wolfram Language integredig gyfan a'i set unedig gyfan o alluoedd meddalwedd. Os ydych chi'n cael y gweithrediad sylfaenol o lyfrgell neu iaith allanol, gallwch chi wedyn ddefnyddio strwythur symbolaidd cyfoethog Iaith Wolfram i greu swyddogaeth lefel uchaf gyfleus sy'n caniatáu i ddefnyddwyr ddefnyddio unrhyw swyddogaeth sydd eisoes ar waith yn hawdd. O leiaf, dylai hyn fod yn ymarferol mewn byd delfrydol lle mae holl flociau adeiladu llyfrgelloedd llwytho ac ati yn bodoli, ac os felly byddent yn cael eu trin yn awtomatig gan Wolfram Language. (Dylid nodi y gall fod problemau gyda sefydlu ieithoedd allanol system gyfrifiadurol benodol, a storio cwmwl achosi problemau diogelwch ychwanegol).

Gyda llaw, pan edrychwch am y tro cyntaf ar lyfrgelloedd allanol nodweddiadol, maent yn aml yn ymddangos yn rhy gymhleth i'w cynnwys mewn ychydig o swyddogaethau, ond mewn llawer o achosion, mae llawer o'r cymhlethdod yn deillio o greu'r seilwaith sydd ei angen ar gyfer y llyfrgell a'r holl swyddogaethau i ei gefnogi. Fodd bynnag, wrth ddefnyddio Wolfram Language, mae'r seilwaith eisoes wedi'i ymgorffori yn y pecynnau, ac felly nid oes angen datgelu'r holl swyddogaethau cymorth hyn yn fanwl, ond dim ond creu swyddogaethau ar gyfer y swyddogaethau "uchaf" sy'n benodol i gymwysiadau yn y llyfrgell .

"Ecosystem" y sylfaen wybodaeth

Os oes gennych chi swyddogaethau ysgrifenedig rydych chi'n eu defnyddio'n rheolaidd, cyflwynwch nhw i Storfa Swyddogaethau Wolfram! Os na fydd rhywbeth arall yn dod allan o hyn (datblygiad iaith), yna hyd yn oed wedyn bydd yn llawer mwy cyfleus i chi ddefnyddio'r swyddogaethau at ddefnydd personol. Fodd bynnag, mae'n rhesymegol tybio, os ydych chi'n defnyddio'r swyddogaethau'n rheolaidd, efallai y bydd defnyddwyr eraill hefyd yn eu gweld yn ddefnyddiol.

Yn naturiol, efallai y byddwch yn cael eich hun mewn sefyllfa lle nad ydych yn gallu – neu ddim eisiau – rhannu eich swyddogaethau neu mewn achos o gael mynediad at adnoddau gwybodaeth preifat. Hyd yn oed mewn achosion o'r fath, gallwch chi ddefnyddio'r swyddogaethau yn eich cyfrif cwmwl eich hun, nodi hawliau mynediad iddynt. (Os oes gan eich sefydliad Cwmwl preifat Wolfram Enterprise, yna cyn bo hir bydd yn gallu cynnal ei storfa nodweddion preifat ei hun, y gellir ei gweinyddu o fewn eich sefydliad a phennu a ddylid gorfodi safbwyntiau i gael eu gweld gan ddefnyddwyr trydydd parti ai peidio.)

Nid oes rhaid i'r swyddogaethau a gyflwynwch i ystorfa swyddogaethau Wolfram fod yn berffaith; mae'n rhaid iddynt fod yn ddefnyddiol. Mae hyn ychydig yn debyg i'r adran "Gwallau" yn nogfennaeth clasurol Unix - yn yr "Adran Diffiniadau" mae adran "Nodiadau Awdur" lle gallwch ddisgrifio cyfyngiadau, problemau, ac ati yr ydych eisoes yn gwybod am eich swyddogaeth. Yn ogystal, pan fyddwch yn cyflwyno'ch nodwedd i'r gadwrfa, gallwch ychwanegu nodiadau cyflwyno a fydd yn cael eu darllen gan dîm ymroddedig o guraduron.

Unwaith y bydd nodwedd wedi'i chyhoeddi, mae gan ei dudalen bob amser ddau ddolen ar y gwaelod: "Anfonwch neges am y nodwedd hon"Ac"Trafod yn y gymuned Wolfram" Os ydych chi'n atodi nodyn (ee, dywedwch wrthyf am fygiau), gallwch wirio'r blwch sy'n dweud eich bod am i'ch neges a'ch gwybodaeth gyswllt gael eu rhannu ag awdur y nodwedd.

Weithiau rydych chi eisiau defnyddio swyddogaethau o ystorfa swyddogaethau Wolfram, fel swyddogaethau adeiledig, heb edrych ar eu cod. Fodd bynnag, os ydych chi am edrych y tu mewn, mae botwm Notepad ar y brig bob amser. Cliciwch arno a byddwch yn cael eich copi eich hun o'r llyfr nodiadau diffiniad gwreiddiol a gyflwynwyd i'r gadwrfa nodweddion. Weithiau gallwch chi ei ddefnyddio fel enghraifft ar gyfer eich anghenion. Ar yr un pryd, gallwch hefyd ddatblygu eich addasiad eich hun o'r swyddogaeth hon. Efallai y byddwch am bostio'r swyddogaethau hyn y daethoch o hyd iddynt o'r ystorfa ar eich cyfrifiadur neu yn eich cyfrif storio cwmwl pryfed gleision, efallai eich bod am eu cyflwyno i'r sylfaen wybodaeth swyddogaeth, efallai fel fersiwn well, estynedig o'r swyddogaeth wreiddiol.

Yn y dyfodol, rydyn ni'n bwriadu cefnogi fforchio arddull Git ar gyfer ystorfeydd nodwedd, ond am y tro rydyn ni'n ceisio ei gadw'n syml, a dim ond un fersiwn dderbyniol o bob nodwedd sydd gennym ni bob amser wedi'i ymgorffori yn yr iaith. Yn amlach na pheidio (oni bai bod datblygwyr yn rhoi’r gorau i gynnal y nodweddion a ddatblygwyd ganddynt ac yn ymateb i gyflwyniadau defnyddwyr), mae awdur gwreiddiol y nodwedd yn rheoli diweddariadau iddo ac yn cyflwyno fersiynau newydd, sydd wedyn yn cael eu hadolygu ac, os ydynt yn pasio’r broses adolygu , a gyhoeddwyd yn yr iaith.

Gadewch i ni ystyried y cwestiwn o sut mae “fersiwn” swyddogaethau datblygedig yn gweithio. Ar hyn o bryd, pan fyddwch chi'n defnyddio swyddogaeth o'r storfa swyddogaethau, bydd ei ddiffiniad yn cael ei storio'n barhaol ar eich cyfrifiadur (neu yn eich cyfrif cwmwl os ydych chi'n defnyddio'r cwmwl). Os oes fersiwn newydd o nodwedd ar gael, y tro nesaf y byddwch yn ei defnyddio byddwch yn derbyn neges yn eich hysbysu o hyn. Ac os ydych chi am ddiweddaru'r swyddogaeth i fersiwn newydd, gallwch chi ei wneud gan ddefnyddio'r gorchymyn Diweddariad Adnoddau. (Mae'r "function blob" mewn gwirionedd yn storio mwy o wybodaeth fersiwn, ac rydym yn bwriadu gwneud hyn yn fwy hygyrch i'n defnyddwyr yn y dyfodol.)

Un o'r pethau hardd am Storfa Swyddogaethau Wolfram yw y gall unrhyw raglen Wolfram Language, unrhyw le, ddefnyddio swyddogaethau ohoni. Os bydd rhaglen yn ymddangos mewn llyfr nodiadau, mae'n aml yn gyfleus i fformatio'r swyddogaethau ystorfa fel swyddogaethau "gwrthrych deuaidd swyddogaeth" hawdd eu darllen (efallai gyda set fersiwn priodol).

Gallwch chi bob amser gael mynediad i unrhyw swyddogaeth yn y gadwrfa swyddogaethau gan ddefnyddio testun Swyddogaeth Adnoddau[...]. Ac mae hyn yn gyfleus iawn os ydych chi'n ysgrifennu cod neu sgriptiau yn uniongyrchol ar gyfer y Wolfram Engine, er enghraifft, gyda defnyddio IDE neu olygydd cod testun (dylid nodi'n arbennig bod y storfa swyddogaethau yn gwbl gydnaws â Peiriant Wolfram Am Ddim i Ddatblygwyr).

Sut mae'n gweithio?

Y tu mewn i'r swyddogaethau yn ystorfa Wolfram mae hyn yn bosibl gan ddefnyddio'r un peth yn union systemau adnoddau seiliau, megys yn ein holl gadwrfeydd presennol eraill (storfa ddata, Ystorfa Net Newral, casgliad o brosiectau demo ac ati), fel pob adnodd system Wolfram arall, Swyddogaeth Adnoddau yn y pen draw yn seiliedig ar swyddogaeth Adnodd Gwrthrych.

Ystyriwch Swyddogaeth Adnoddau:

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Y tu mewn gallwch weld rhywfaint o wybodaeth gan ddefnyddio'r swyddogaeth Gwybodaeth:

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Sut mae sefydlu swyddogaeth adnoddau yn gweithio? Mae'r un symlaf yn achos lleol yn unig. Dyma enghraifft sy'n cymryd swyddogaeth (yn yr achos hwn dim ond swyddogaeth pur) ac yn ei ddiffinio fel swyddogaeth adnoddau ar gyfer sesiwn rhaglen benodol:

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Unwaith y byddwch wedi gwneud y diffiniad, gallwch ddefnyddio'r swyddogaeth adnoddau:

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Sylwch fod eicon du yn y blob swyddogaeth hwn Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram. Mae hyn yn golygu bod y swyddogaeth BLOB yn cyfeirio at y swyddogaeth adnoddau mewn cof a ddiffinnir ar gyfer y sesiwn gyfredol. Mae gan nodwedd adnodd sy'n cael ei storio'n barhaol ar eich cyfrifiadur neu gyfrif cwmwl eicon llwyd Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram. Ac mae eicon oren ar gyfer nodwedd adnodd swyddogol yn Storfa Nodweddion Wolfram Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram.

Felly beth sy'n digwydd pan fyddwch chi'n defnyddio'r ddewislen Expand yn y Llyfr Nodiadau Diffiniad? Yn gyntaf, mae'n cymryd yr holl ddiffiniadau yn y llyfr nodiadau ac oddi wrthynt yn creu symbolaidd Adnodd Gwrthrych). (Ac os ydych chi'n defnyddio IDE neu raglen sy'n seiliedig ar destun, yna gallwch chi hefyd greu'n benodol Adnodd Gwrthrych)

Gwneir defnydd lleol o swyddogaeth o gadwrfa ar eich cyfrifiadur gan ddefnyddio'r gorchymyn LleolCache am wrthrych adnodd i'w gadw fel Gwrthrych Lleol ar eich system ffeiliau. Gwneir defnydd i gyfrif cwmwl gan ddefnyddio'r gorchymyn CloudDeploy ar gyfer gwrthrych adnoddau, a lleoli cwmwl cyhoeddus yn CloudPublish. Ym mhob achos Cofrestr Adnoddau hefyd yn cael ei ddefnyddio i gofrestru enw swyddogaeth adnoddau, felly Swyddogaeth Adnoddau["enw"] yn gweithio.

Os cliciwch y botwm Cyflwyno ar gyfer Cadwrfa Swyddogaeth, beth sy'n digwydd oddi tano Cyflwyno Adnoddau galw ar wrthrych adnodd. (Ac os ydych chi'n defnyddio rhyngwyneb mewnbwn testun, gallwch chi hefyd ffonio Cyflwyno Adnoddau yn uniongyrchol.)

Yn ddiofyn, gwneir cyflwyniadau o dan yr enw sy'n gysylltiedig â'ch ID Wolfram. Ond os ydych yn cyflwyno cais ar ran tîm neu sefydliad datblygu, gallwch wneud hynny gosod ID cyhoeddwr ar wahân ac yn lle hynny defnyddiwch ef fel yr enw i ryngweithio â'ch barn.

Ar ôl i chi gyflwyno unrhyw un o'ch swyddogaethau i'r gronfa wybodaeth swyddogaeth, bydd yn cael ei adolygu. Os byddwch yn derbyn sylwadau mewn ymateb, byddant fel arfer ar ffurf ffeil testun gyda “chelloedd sylwadau” ychwanegol wedi'u hychwanegu. Gallwch chi bob amser wirio statws eich cais trwy ymweld porth aelod system adnoddau. Ond unwaith y bydd eich nodwedd wedi'i chymeradwyo, cewch eich hysbysu (trwy e-bost) a bydd eich nodwedd yn cael ei phostio i ystorfa nodweddion Wolfram.

Rhai cynnil yn y gwaith

Ar yr olwg gyntaf gall ymddangos fel y gallwch chi gymryd llyfr nodiadau diffiniad a'i roi air am air mewn ystorfa swyddogaethau, fodd bynnag, mewn gwirionedd mae cryn dipyn o gynildeb yn gysylltiedig - ac mae eu trin yn gofyn am wneud rhywfaint o feta-raglennu eithaf cymhleth, gan drin prosesu symbolaidd. fel y cod sy'n diffinio'r swyddogaeth , a diffinnir y Notepad ei hun. Mae'r rhan fwyaf o hyn yn digwydd yn fewnol, y tu ôl i'r llenni, ond gall fod â rhai goblygiadau sy'n werth eu deall os ydych chi'n mynd i gyfrannu at y sylfaen wybodaeth nodwedd.

Cynildeb uniongyrchol cyntaf: Pan fyddwch chi'n llenwi'r Llyfr Nodiadau Diffiniad, gallwch chi gyfeirio at eich swyddogaeth ym mhobman gan ddefnyddio enw tebyg Fy Swyddogaeth, sy'n edrych fel enw rheolaidd ar ffwythiant yn yr Iaith Wolfram, ond ar gyfer dogfennaeth ystorfa ffwythiannau mae hwn yn cael ei ddisodli Swyddogaeth Adnoddau["Fy Swyddogaeth"] yw'r hyn y bydd defnyddwyr yn ei ddefnyddio mewn gwirionedd wrth weithio gyda'r swyddogaeth.

Yr ail gynildeb: pan fyddwch chi'n creu swyddogaeth adnoddau o'r Llyfr Nodiadau Diffiniad, rhaid i'r holl ddibyniaethau sy'n gysylltiedig â'r diffiniad swyddogaeth gael eu dal a'u cynnwys yn benodol. Fodd bynnag, er mwyn sicrhau bod y diffiniadau'n aros yn fodiwlaidd, mae angen ichi roi popeth mewn unigryw gofod enw. (Wrth gwrs, swyddogaethau sy'n gwneud y cyfan, yn y storfa swyddogaethau.)

Yn nodweddiadol, ni fyddwch byth yn gweld unrhyw olion o'r cod a ddefnyddiwyd i ffurfweddu'r gofod enw hwn. Ond os ydych chi'n galw symbol tan-gyflawni y tu mewn i'ch swyddogaeth am ryw reswm, yna fe welwch fod y symbol hwn yng nghyd-destun mewnol y swyddogaeth. Fodd bynnag, wrth brosesu'r Diffiniad Notepad, o leiaf y symbol sy'n cyfateb i'r swyddogaeth ei hun yw addasadwy ar gyfer arddangosiad gorau fel BLOB swyddogaethol yn hytrach na chymeriad amrwd yn y cyd-destun mewnol.

Mae'r storfa swyddogaethau ar gyfer diffinio swyddogaethau newydd. Ac efallai y bydd gan y swyddogaethau hyn opsiynau. Yn aml mae'r paramedrau hyn (er enghraifft, Dull neu Maint Delwedd) yn gallu cael ei ddefnyddio ar gyfer swyddogaethau adeiledig, yn ogystal ag ar gyfer y rhai y mae symbolau adeiledig eisoes yn bodoli ar eu cyfer. Ond weithiau efallai y bydd angen opsiynau newydd ar nodwedd newydd. Er mwyn cynnal modiwlaredd, mae angen i'r paramedrau hyn fod yn symbolau wedi'u diffinio mewn cyd-destun mewnol unigryw (neu rywbeth fel swyddogaethau adnodd cyfan, hynny yw, eu hunain). Er mwyn symlrwydd, mae'r ystorfa swyddogaeth yn caniatáu ichi ddiffinio opsiynau newydd mewn diffiniadau llinynnol. Ac er hwylustod y defnyddiwr, mae'r diffiniadau hyn (gan dybio eu bod yn defnyddio Gwerth Opsiwn и Patrwm Opsiynau) hefyd yn cael eu prosesu fel y gellir pennu paramedrau, wrth ddefnyddio swyddogaethau, nid yn unig fel llinynnau, ond hefyd fel symbolau byd-eang gyda'r un enwau.

Mae'r rhan fwyaf o swyddogaethau yn syml yn gwneud yr hyn y maent i fod i'w wneud bob tro y cânt eu galw, ond mae angen cychwyn rhai swyddogaethau cyn y gallant redeg mewn sesiwn benodol - ac i ddatrys y broblem hon, mae adran "Cychwyn" yn yr adran Diffiniad.

Gall swyddogaethau o gadwrfa ddefnyddio swyddogaethau eraill sydd eisoes yn y gadwrfa; er mwyn sefydlu diffiniadau ar gyfer ystorfa swyddogaethau sy'n cynnwys dwy (neu fwy) o swyddogaethau sy'n cyfeirio at ei gilydd, rhaid i chi eu defnyddio yn eich sesiwn rhaglen fel y gallwch cyfeirio fel arnynt Swyddogaeth Adnoddau["enw"], yna gallwch chi greu'r cyfuniadau o'r swyddogaethau hyn sydd eu hangen arnoch chi, enghreifftiau (doeddwn i ddim yn deall) ac ychwanegu swyddogaeth newydd i'r ystorfa yn seiliedig ar y rhai a bostiwyd eisoes yn gynharach. (neu eisoes neu o'r blaen - mae'r ddau air yn drwsgl)

Rhagolygon datblygu. Beth ddylai ddigwydd pan fydd y storfa'n mynd yn fawr iawn?

Heddiw rydyn ni newydd lansio Storfa Nodweddion Wolfram, ond dros amser rydyn ni'n disgwyl y bydd ei maint a'i swyddogaeth yn cynyddu'n ddramatig, ac wrth iddo dyfu mewn datblygiad bydd yna broblemau amrywiol rydyn ni eisoes yn rhagweld y byddant yn codi.

Mae'r broblem gyntaf yn ymwneud ag enwau swyddogaethau a'u natur unigryw. Mae'r ystorfa swyddogaethau wedi'i dylunio yn y fath fodd fel y gallwch, fel y swyddogaethau adeiledig yn Iaith Wolfram, gyfeirio at unrhyw swyddogaeth benodol trwy nodi ei henw yn unig. Ond mae hyn yn anochel yn golygu bod yn rhaid i enwau ffwythiannau fod yn unigryw yn fyd-eang ar draws y gadwrfa, fel, er enghraifft, mai dim ond un Swyddogaeth Adnoddau["FyHoff Swyddogaeth"].

Gall hyn ymddangos yn broblem fawr ar y dechrau, ond mae'n werth sylweddoli ei bod yn y bôn yr un broblem ag ar gyfer pethau fel parthau rhyngrwyd neu ddolenni cyfryngau cymdeithasol. A'r ffaith yw mai'r cyfan y mae angen i'r system ei wneud yw cael cofrestrydd - a dyma un o'r rolau y bydd ein cwmni'n eu cyflawni ar gyfer sylfaen wybodaeth swyddogaeth Wolfram. (Ar gyfer fersiynau preifat o gadwrfa, gall eu cofrestryddion fod yn weinyddwyr.) Wrth gwrs, gellir cofrestru parth Rhyngrwyd heb fod ag unrhyw beth arno, ond mewn cadwrfa swyddogaethau, dim ond os oes diffiniad gwirioneddol o ystorfa y gellir cofrestru enw swyddogaeth y swyddogaeth.

Rhan o'n rôl wrth reoli sylfaen wybodaeth swyddogaeth Wolfram yw sicrhau bod yr enw a ddewisir ar gyfer swyddogaeth yn rhesymegol o ystyried diffiniad y swyddogaeth a'i fod yn dilyn confensiynau enwi Iaith Wolfram. Mae gennym dros 30 mlynedd o brofiad yn enwi swyddogaethau adeiledig yn Iaith Wolfram, a bydd ein tîm o guraduron yn dod â’r profiad hwnnw i’r gadwrfa swyddogaethau hefyd. Wrth gwrs, mae yna bob amser eithriadau. Er enghraifft, gall ymddangos yn well cael enw byr ar gyfer rhyw swyddogaeth, ond mae'n well "amddiffyn" gydag enw hirach, mwy penodol oherwydd eich bod yn llai tebygol o redeg i mewn i rywun sydd am wneud enw swyddogaeth tebyg yn y dyfodol .

(Dylid nodi yma na fydd ychwanegu rhywfaint o dag aelod i ddadamwyso swyddogaethau yn cael yr effaith a fwriadwyd. Oherwydd oni bai eich bod yn mynnu neilltuo tag bob amser, bydd angen i chi ddiffinio tag rhagosodedig ar gyfer unrhyw swyddogaeth benodol, a hefyd dyrannu tagiau awdur , a fyddai unwaith eto yn gofyn am gydlyniad byd-eang.)

Wrth i sylfaen wybodaeth ffwythiannau Wolfram dyfu, un o'r problemau sy'n debygol o godi yw darganfod swyddogaethau, y mae'r system yn darparu ar eu cyfer. swyddogaeth chwilio (a gall ffeiliau diffiniad gynnwys geiriau allweddol, ac ati). Ar gyfer swyddogaethau adeiledig yn Wolfram Language, mae pob math o groesgyfeiriadau yn y ddogfennaeth i helpu i “hysbysebu” y swyddogaethau. Gall swyddogaethau mewn ystorfa swyddogaethau gyfeirio at swyddogaethau adeiledig. Ond beth am y ffordd arall? I wneud hyn, rydyn ni'n mynd i arbrofi gyda gwahanol ddyluniadau i ddatgelu swyddogaethau ystorfa ar dudalennau dogfennaeth ar gyfer swyddogaethau adeiledig.

Ar gyfer swyddogaethau adeiledig yn yr Iaith Wolfram mae haen ganfod fel y'i gelwir a ddarperir gan rhwydwaith o "dudalennau cymorth", sy'n darparu rhestrau trefnus o nodweddion sy'n ymwneud â meysydd penodol. Mae bob amser yn anodd cydbwyso tudalennau dyn yn gywir, ac wrth i iaith Wolfram dyfu, yn aml mae angen ad-drefnu tudalennau dyn yn llwyr. Mae'n eithaf hawdd rhoi swyddogaethau o ystorfa i gategorïau eang, a hyd yn oed i dorri'r categorïau hynny i lawr yn gyson, ond mae'n llawer mwy gwerthfawr cael tudalennau cyfeirio iaith wedi'u trefnu'n gywir. Nid yw'n glir eto sut orau i'w creu ar gyfer y sylfaen wybodaeth swyddogaeth gyfan. Er enghraifft, CreateResourceObjectGallery yn y storfa nodwedd, gall unrhyw un bostio tudalen we sy'n cynnwys eu "dewisiadau" o'r gadwrfa:

Storfa Swyddogaeth Wolfram: Llwyfan mynediad agored ar gyfer estyniadau iaith Wolfram

Mae ystorfa swyddogaeth Wolfram wedi'i ffurfweddu fel ystorfa swyddogaeth barhaus, lle bydd unrhyw swyddogaeth ynddi bob amser yn gweithio. Wrth gwrs, efallai y bydd fersiynau newydd o nodweddion ar gael, a disgwyliwn y bydd rhai nodweddion wrth gwrs yn dod yn ddarfodedig dros amser. Bydd y swyddogaethau'n gweithio os cânt eu defnyddio mewn rhaglenni, ond bydd eu tudalennau dogfennaeth yn cysylltu â swyddogaethau newydd, mwy datblygedig.

Mae Storfa Nodweddion Wolfram wedi'i chynllunio i'ch helpu chi i ddarganfod nodweddion newydd yn gyflym a dysgu ffyrdd newydd o ddefnyddio iaith Wolfram. Rydym yn obeithiol iawn y bydd peth o'r hyn a archwiliwyd yn y gadwrfa nodwedd yn gwneud synnwyr yn y pen draw i ddod yn rhan annatod o Iaith Wolfram graidd. Dros y degawd diwethaf rydym wedi cael set debyg nodweddion a gyflwynwyd yn wreiddiol yn Wolfram | Alffa. Ac un o'r gwersi a ddysgwyd o'r profiad hwn yw bod cyflawni'r safonau ansawdd a chysondeb yr ydym yn canolbwyntio arnynt ym mhopeth sydd wedi'i ymgorffori yn iaith Wolfram yn gofyn am lawer o waith, sy'n aml yn anoddach na'r ymdrech gychwynnol i roi'r syniad ar waith. Serch hynny, gall swyddogaeth yn y sylfaen wybodaeth swyddogaeth fod yn brawf defnyddiol iawn o gysyniad ar gyfer swyddogaeth yn y dyfodol y gellir ei chynnwys yn iaith Wolfram yn y pen draw.

Y peth pwysicaf yma yw bod swyddogaeth mewn ystorfa swyddogaethau yn rhywbeth sydd ar gael i bob defnyddiwr ei ddefnyddio ar hyn o bryd. Mae'n bosibl y gallai nodwedd iaith frodorol fod yn llawer gwell a mwy perfformiadol, ond byddai ystorfa nodweddion yn caniatáu i ddefnyddwyr gael mynediad i'r holl nodweddion newydd ar unwaith. Ac, yn bwysicaf oll, mae'r cysyniad hwn yn caniatáu i bawb ychwanegu unrhyw nodweddion newydd y maent eu heisiau.

Yn gynharach yn hanes yr iaith Wolfram, ni fuasai y syniad hwn wedi gweithio cystal ag y mae, ond ar hyn o bryd y mae cymaint o ymdrech yn cael ei roi i'r iaith, a dealltwriaeth mor ddwfn o egwyddorion cynllun iaith, fel ei fod yn ymddangos yn eithaf yn bosibl i gymuned fawr o ddefnyddwyr ychwanegu nodweddion a fydd yn cynnal cysondeb dylunio i'w gwneud yn ddefnyddiol i ystod eang o ddefnyddwyr.

Mae ysbryd anhygoel o dalent(?) yng nghymuned defnyddwyr Wolfram Language. (Wrth gwrs, mae'r gymuned hon yn cynnwys llawer o bobl ymchwil a datblygu blaenllaw mewn amrywiaeth o feysydd.) Rwy'n gobeithio y bydd y Wolfram Feature Repository yn darparu llwyfan effeithiol ar gyfer datgloi a lledaenu'r ysbryd talent hwn. Dim ond gyda'n gilydd y gallwn greu rhywbeth a fydd yn ehangu'n sylweddol yr ardal y gellir cymhwyso patrwm cyfrifiadurol iaith Wolfram iddo.

Mewn mwy na 30 mlynedd, rydyn ni wedi dod yn bell ag iaith Wolfram. Nawr gyda'n gilydd, gadewch i ni fynd hyd yn oed ymhellach. Rwy'n annog yn gryf holl ddefnyddwyr uchel eu parch yr iaith Wolfram ledled y byd i ddefnyddio'r ystorfa swyddogaethol fel llwyfan ar gyfer hyn, yn ogystal â'r prosiect meddalwedd newydd fel y Free Wolfram Engine for Developers.

Ffynhonnell: hab.com

Ychwanegu sylw