Салам, Хабр! Сиздердин назарыңыздарга Стивен Вольфрамдын постунун котормосун сунуштайм
Вольфрам тилинин ырааттуулугунун шарты
Бүгүн биз программалоо тили менен бирге чоң жетишкендиктердин босогосунда турабыз
Wolfram Функция Репозиторий - бул Wolfram тилинин программалоо тили катары гана эмес, ошондой эле уникалдуу табияты менен мүмкүн болгон нерсе.
Мисалы, Wolfram функциясынын репозиторийинде мурунтан эле бар
Ошо сыяктуу эле ашык
Баракка өтүү үчүн жогорудагы объектти көчүрүңүз (BLOB функциясы), аны киргизүү сабына чаптаңыз жана андан кийин функцияны иштетиңиз - ал Wolfram тилине мурунтан эле орнотулган жана демейки боюнча колдоого алынат
Бул жерде кайра иштетүүдө белгилей кетүү керек
колдоосу менен деп үмүттөнөм
Репозиторийдеги функциялар Wolfram тилинде жазылган кичинекей же чоң код бөлүктөрүн камтышы мүмкүн. Мисалы, бул чалуулар болушу мүмкүн
Wolfram Функциялар Репозиторийинин кабыкчасы жана программалоо түзүмү ар бир адам жалпы ишке эң жөнөкөй жана ыңгайлуу жол менен салым кошо ала тургандай иштелип чыккан - чындыгында, жөн гана
Бул ыкмада көптөгөн карама-каршылыктар жана майда-чүйдөсүнө чейин бар, бирок биздин максатыбыз Wolfram өзгөчөлүк репозиторийин колдонуучу тажрыйбасы үчүн оптималдаштыруу жана жаңы колдонуучу өзгөчөлүктөрү тилдин өнүгүшүнө олуттуу салым кошуусун камсыз кылуу. Биз өскөн сайын, биз репозиторийге орнотулган функцияларды иштеп чыгуу жана текшерүү үчүн жаңы ыкмаларды ойлоп табууга туура келет деп күмөн санабайм, көп сандагы функцияларды уюштуруу жана колдонуучуларга керектүүлөрдү табуу үчүн. Бирок, биз тандап алган жол жакшы башталыш экени кубандырат. Мен лично
Чыгымдарды кыскартуу менен бирге натыйжалуулукту жогорулатуу
Интернетке чейин эле Wolfram тилинин кодун бөлүшүү жолдору бар болчу (биздин биринчи ири борборлоштурулган долбоор
30 жылдан ашуун убакыттан бери биздин компания Wolfram тилинин структурасынын бүтүндүгүн сактоо үчүн тырышчаактык менен иштеп келет жана бул Wolfram тили программалоо тили гана эмес, ошондой эле
Ар бир функцияны ишке ашыруу структурасында ар кандай эсептөө процесстери пайда болот. Бул жерде белгилей кетүү керек, бул функция колдонуучу үчүн ачык жана бирдей көрүнүшкө жана визуалдык окууга ээ болушу керек. Бул контекстте Вольфрам тилинин орнотулган функциялары функцияларды кантип туура программалоонун 6000ден ашык ырааттуу мисалдары менен берилген (бул биздин
Иш жүзүндө жакшы иштеген репозиторийди түзүү мета-программалоонун кызыктуу милдети. Мисалы, программадагы чектөөлөрдүн ашыкча болушу алгоритмдин талап кылынган унификациясын жана универсалдуулугун алууга мүмкүндүк бербейт. Функционалдык чектөөлөрдүн жетишсиз саны сыяктуу эле, сиз алгоритмди аткаруунун жетишерлик туура ырааттуулугун ишке ашыра албайсыз. Биздин компания тарабынан ишке ашырылган бул ыкмалардын компромиссин ишке ашыруунун бир нече мурунку мисалдары туруктуу иштеген - булар:
Жогорудагы мисалдардын бардыгынын фундаменталдуу өзгөчөлүгү бар - долбоордо чогултулган объекттер жана функциялар процесстердин структураланышынын жана бөлүштүрүлүшүнүн өтө жогорку даражасына ээ. Албетте, демонстрациянын же нейрондук тармактын же башка нерсенин структурасынын чоо-жайы абдан ар түрдүү болушу мүмкүн, бирок учурдагы репозиторийдин фундаменталдык структурасы дайыма ошол эле бойдон калат. Анда, урматтуу колдонуучу, Wolfram тилине кеңейтүүлөрдү кошкон ушундай репозиторийди түзүү жөнүндө сиздин пикириңиз кандай? Wolfram тили өтө ийкемдүү болуп иштелип чыккан, ошондуктан аны каалаган жол менен узартууга жана өзгөртүүгө болот. Бул жагдай Wolfram тилинде ар кандай масштабдуу программалык долбоорлорду тез түзүү жөндөмдүүлүгү үчүн өтө маанилүү болуп саналат. Бул жерде айта кетчү нерсе, тилдин ийкемдүүлүгү жогорулаган сайын мындай тилде ишке ашырылып жаткан долбоорлордун баасы сөзсүз өсөт. Бул колдонуучу мындай тилди канчалык көп колдонсо, ал ошончолук көп арналган функционалдуулукка ээ боло тургандыгы менен түшүндүрүлөт, бирок бул ыкманын программалык модулдардын ырааттуу ырааттуулугун камсыз кыла албагандыгы жагынан терс жактары да болушу мүмкүн экенин унутпашыбыз керек.
Салттуу программалоо тилдериндеги китепканаларда жалпы көйгөй бар - эгер сиз бир китепкананы колдонсоңуз, мисалы, код туура иштейт, бирок бир нече китепкананы колдонууга аракет кылсаңыз, алар бири-бири менен туура иштешет деген кепилдик жок. . Ошондой эле, салттуу программалоо тилдеринде - толук кандуу эсептөө тилинен айырмаланып, алардын негизги структураларынан башка ар кандай функциялар же маалымат түрлөрү үчүн ырааттуу орнотулган өкүлчүлүктөрдүн болушуна кепилдик бере албайт. Бирок, чындыгында, маселе бир караганда көрүнгөндөн да чоңураак: эгер кимдир бирөө функционалдуулуктун масштабдуу вертикалын куруп жатса, анда биз Wolfram тилине киргизген борборлоштурулган долбоордук программалоо үчүн чоң чыгымдарсыз, бул мүмкүн эмес. ырааттуулукка жетишүү. Ошондуктан бардык программалык модулдар дайыма туура иштеши маанилүү.
Ошентип, Wolfram функцияларынын репозиторийинин идеясы жогоруда айтылган көйгөйдөн кутулуу болуп саналат, бул тилге когеренттүү модулдар катары иштеп чыгуу оңой болгон жеке функциялар аркылуу салыштырмалуу кичинекей коддорго кеңейтүүлөрдү кошуу. Айтылгандай, жеке функцияларды колдонуу менен ыңгайлуу кылуу мүмкүн болбогон программалоо функциялары бар (жана биздин компания масштабдуу программалык пакеттерди ишке ашырууга жардам берүү үчүн жакынкы келечекте оптималдаштырылган программалоо алгоритмин чыгарууну пландаштырууда). Бирок, Wolfram тилине мурунтан эле орнотулган функциялардын негизинде, жеке функциялардын негизинде ишке ашырылган көптөгөн программалоо мүмкүнчүлүктөрү бар. Бул жерде идея, салыштырмалуу аз программалоо аракети менен бир катар жаңы жана абдан пайдалуу функцияларды түзүүгө болот, алар дизайнга жетиштүү ырааттуулукту камсыз кылат, алар бири-бири менен жакшы координацияланат, жана андан тышкары, алар келечекте тилде оңой жана кеңири колдонула алат.
Бул ыкма, албетте, компромисс болуп саналат. Эгер чоңураак пакет ишке ашырылса, өтө күчтүү жана пайдалуу боло турган жаңы функция дүйнөсүн элестетүүгө болот. Эгер башка бардык нерсеге шайкеш келе турган жаңы функцияларды алуу зарылчылыгы келип чыкса, бирок сиз долбоорду иштеп чыгууга көп күч-аракет жумшоону каалабасаңыз, бул, тилекке каршы, сиздин долбоордун көлөмүнүн кыскарышына алып келиши мүмкүн. Wolfram өзгөчөлүктөр репозиторийинин идеясы долбоордун аныктоочу бөлүгүн функционалдуулук менен камсыз кылуу болуп саналат; бул ыкма программалоо долбоорунда жакшы ырааттуулукту сактоону жеңилдетип, күчтүү функцияларды кошот.
Функция репозиторийине ыңгайлаштырылган функцияларды кошууга жардам бериңиз
Биздин команда колдонуучулардын Wolfram репозиторийинин мүмкүнчүлүктөрүнө салым кошуусун жеңилдетүү үчүн көп эмгектенди. Иш тактада (учурдан эле
Сиз аткарышыңыз керек болгон эки негизги кадам бар: биринчиден, иш жүзүндө функцияңыздын кодун жазыңыз, экинчиден, функцияңыз кандай иштеши керек экенин көрсөткөн документтерди жазыңыз.
Эмне кылуу керек экенин көрүү үчүн жогору жактагы "Үлгү ачуу" баскычын басыңыз:
Негизи, сиз Wolfram тилиндеги орнотулган функцияга окшош нерсени түзүүгө аракет кылып жатасыз. Мындан тышкары, ал орнотулган функцияга караганда бир топ конкреттүү нерсени жасай алат. Ошол эле учурда, анын толуктугуна жана ишенимдүүлүгүнө карата күтүүлөр алда канча төмөн болот.
Функцияңызга Вольфрам тилинин функцияны атоо боюнча көрсөтмөлөрүнө ылайык ат беришиңиз керек. Мындан тышкары, тилдин орнотулган функцияларына окшош функцияңыз үчүн документтерди иштеп чыгышыңыз керек болот. Бул тууралуу кийинчерээк кененирээк айтып берем. Азырынча, аныктама дептер файлынын жогору жагындагы баскычтар сапында баскыч бар экенин байкаңыз
Баары туура толтурулганына жана даяр экениңизге ишенгениңизде, "Текшерүү" баскычын басыңыз. Азырынча бардык майда-чүйдөсүнө чейин түшүнө электигиңиз нормалдуу көрүнүш. Ошентип, "Текшерүү" функциясы автоматтык түрдө иштеп, көптөгөн стилди жана ырааттуулукту текшерет. Көбүнчө, ал дароо сизден оңдоолорду ырастап жана кабыл алууга түрткү берет (Мисалы: “Бул сап кош чекит менен бүтүшү керек” жана ал сизди кош чекитке киргизүүгө түрткү берет). Кээде ал сизден бир нерсе кошууну же өзгөртүүнү суранат. Биз "Текшерүү" баскычынын автоматтык иштөөсүнө ар дайым жаңы функцияларды кошуп турабыз, бирок, негизинен, анын максаты - сиз функциялар репозиторийине тапшырган нерселердин баары мүмкүн болушунча көп стилдик көрсөтмөлөргө тыкыр баш ийишин камсыз кылуу.
Ошентип, "Текшерүү" иштетилгенден кийин, "Алдын ала көрүү" функциясын колдоно аласыз. "Алдын ала көрүү" функцияңыз үчүн сиз аныктаган документация барагынын алдын ала көрүүсүн түзөт. Ошондой эле компьютериңизде түзүлгөн файлга же булут сактагычында жайгашкан файлга алдын ала кароо түзө аласыз. Эгер кандайдыр бир себептерден улам сиз алдын ала кароодо көргөн нерсеңизге канааттанбасаңыз, жөн гана артка кайтып, керектүү оңдоолорду киргизиңиз, андан кийин кайра көрүү баскычын чыкылдатыңыз.
Эми сиз функцияңызды репозиторийге түртүүгө даярсыз. Жайгаштыруу баскычы сизге төрт жолду берет:
Бул кадамда маанилүү нерсе, сиз өзүңүздүн функцияңызды Wolfram функциясынын репозиторийине тапшыра аласыз, ошондуктан ал каалаган адам үчүн жеткиликтүү болот. Ошол эле учурда, сиз өзүңүздүн функцияңызды чектелген сандагы колдонуучуларга да жайгаштырсаңыз болот. Мисалы, сиз компьютериңизде локалдык түрдө жайгаштырылган функцияны түзө аласыз, ал ошол компьютерди колдонгондо жеткиликтүү болот. Же өзүңүздүн баракчаңызга жайгаштырсаңыз болот
Демек, сиз чындыгында өзүңүздүн функцияңызды Wolfram функциясынын билим базасына тапшыргыңыз келет дейли. Бул үчүн, сиз репозиторийге "Тапшыруу" баскычын басыңыз. Ошентип, учурда эмне болуп жатат? Арызыңыз дароо биздин атайын кураторлор тобу тарабынан каралып, бекитилүүгө кезекке коюлат.
Колдонмоңуз жактыруу процессинен өткөн сайын (бул адатта бир нече күндү талап кылат), сиз анын статусу жана келечекте колдонуу боюнча сунуштарды аласыз. Бирок сиздин функцияңыз жактырылгандан кийин, ал дароо Wolfram Функциялар Репозиторийине жарыяланат жана каалагандар үчүн жеткиликтүү болот. (Жана бул пайда болот
Сактагычта эмне болушу керек?
Белгилей кетчү нерсе, биздин компания толуктук, ишенимдүүлүк жана жалпы сапат боюнча өтө жогорку стандарттарга ээ жана акыркы 6000+ жыл ичинде биз Wolfram тилине киргизген 30+ функциянын бардыгы жогорудагы талаптарга жооп берет. Вольфрам Функциялар Репозиторийинин максаты - мүмкүн болушунча көбүрөөк жеңилирээк функцияларды (башкача айтканда, жогорку аткаруу функцияларын) кошуу үчүн, Вольфрам тилинде буга чейин бар болгон бардык структураларды жана функцияларды колдонуу.
Албетте, Wolfram функциясынын репозиторийиндеги функциялар Вольфрам тилинин долбоорлоо принциптерине ылайык келиши керек - алар башка функциялар менен толук өз ара аракеттениши жана функциянын кантип туура иштеши керектиги жөнүндө колдонуучулардын күтүүлөрү. Бирок, функциялар бирдей толуктукта же ишенимдүүлүктө болууга тийиш эмес.
Вольфрам тилинин орнотулган функцияларында биз программалоо функцияларын мүмкүн болушунча жалпы кылуу үчүн көп аракет кылабыз. Айтор, Wolfram функция репозиторийинде кандайдыр бир өзгөчө, бирок пайдалуу ишти чечүүчү функциянын болушунун эч кандай жаман жери жок. Мисалы, функция
Орнотулган функцияларга байланыштуу дагы бир жагдай, биздин компания бардык типтүү эмес учурларды чечүүгө, туура эмес киргизүүнү туура иштетүүгө жана башкаларга бардык күч-аракетин жумшайт. Функция репозиторийинде маселени чечүүнүн негизги учурларын чечүүчү жана калгандарынын баарын этибарга албаган атайын функциянын болушу толук нормалдуу көрүнүш.
Көрүнүп турган нерсе, көбүрөөк аткара турган жана аны жакшыраак аткарган функцияларга ээ болуу жакшы, бирок функция репозиторий үчүн оптималдаштыруу - Вольфрам тилинин орнотулган функцияларынан айырмаланып, көбүрөөк функциялар менен бириктирилген көбүрөөк функцияларга ээ болушу керек. ар бир конкреттүү функцияны ишке ашыруу процесстери.
Эми репозиторийдеги функцияларды тестирлөөнүн мисалын карап көрөлү. Мындай функциялар үчүн ырааттуулук күтүүлөрү, албетте, орнотулган тил функцияларына караганда алда канча төмөн. Бул, өзгөчө, функциялар API сыяктуу тышкы ресурстарга көз каранды болгон учурларда, текшерүү алгоритмдеринде автоматтык түрдө ишке ашкан ырааттуу сыноолорду дайыма жүргүзүү маанилүү. nb файлында сиз аныктамаларды (Кошумча маалымат бөлүмүндө) так көрсөтө аласыз жана киргизүү жана чыгаруу саптары же типтеги толук символдук объекттер менен аныкталган сандагы тесттерди белгилей аласыз.
Натыйжада, функция репозиторийинде бир катар ишке ашыруу татаалдыктары болот. Кээ бирлери коддун бир эле сабы болот, башкалары миңдеген же он миңдеген саптарды камтышы мүмкүн, сыягы, көптөгөн жардамчы функцияларды колдонушат. Аныктоо үчүн өтө аз кодду талап кылган функцияны качан кошуу керек? Негизинен, эгерде функция бар болсо
Функция репозиторийинин негизги максаты (аты айтып тургандай) тилге жаңы функцияларды киргизүү. Эгер сиз жаңы маалыматтарды кошууну кааласаңыз же
Чынында эки жолу бар. Сиз функция репозиторийиндеги жаңы функцияларда колдонула турган жаңы объект түрүн киргизгиңиз келиши мүмкүн. Жана бул учурда, сиз ар дайым анын символикалык көрүнүшүн жазып, аны функция репозиторийине функцияларды киргизүүдө же чыгарууда колдоно аласыз.
Бирок, эгер сиз объектти чагылдырып, андан кийин Вольфрам тилиндеги функциялар аркылуу аны менен иштөөнү кааласаңызчы? Wolfram тили ар дайым бул үчүн жеңил механизмге ээ болгон
Демек, функция репозиторийиндеги функция кодунда эмне болушу мүмкүн?
Wolfram өзгөчөлүктөрү репозиторийинин бардык коду Вольфрамда жазылышы керекпи? Албетте, тышкы API ичиндеги код Wolfram тилинде жазылбашы керек, ал тил кодун да түзбөйт. Чынында, эгер сиз дээрлик бардык тышкы тилде же китепканада функцияны тапсаңыз, Wolfram функциясынын репозиторийинде аны колдонууга мүмкүндүк берген оромо түзө аласыз. (Көбүнчө бул үчүн сиз орнотулган функцияларды колдонушуңуз керек
Анда муну кылуунун эмне кереги бар? Негизи, бул сиз Wolfram Language интегралдык тутумун жана анын бирдиктүү программалык мүмкүнчүлүктөрүн колдонууга мүмкүндүк берет. Эгерде сиз базалык ишке ашырууну тышкы китепканадан же тилден алсаңыз, анда Wolfram тилинин бай символикалык түзүмүн колдонуп, колдонуучуларга буга чейин ишке ашырылган каалаган функцияны оңой колдонууга мүмкүндүк берген ыңгайлуу жогорку деңгээлдеги функцияны түзө аласыз. Жок дегенде, бул идеалдуу дүйнөдө мүмкүн болушу керек, ал жерде жүктөө китепканаларынын бардык курулуш блоктору ж.б. бар, бул учурда алар Вольфрам тили тарабынан автоматтык түрдө иштетилет. (Иш жүзүндө көйгөйлөр болушу мүмкүн экенин белгилей кетүү керек
Баса, типтүү тышкы китепканаларды биринчи жолу карап чыкканда, алар көбүнчө бир нече функцияларды камтуу үчүн өтө татаалдай сезилет, бирок көп учурларда татаалдыктын көбү китепкана үчүн зарыл болгон инфраструктураны жана бардык функцияларды түзүүдөн келип чыгат. аны колдо. Бирок, Wolfram тилин колдонгондо, инфраструктура адатта пакеттерге курулган, ошондуктан бул колдоо функцияларынын бардыгын майда-чүйдөсүнө чейин ачып берүүнүн кереги жок, бирок китепканада "эң жогорку" колдонмого тиешелүү функциялар үчүн гана функцияларды түзүңүз. .
Билим базасынын "экосистемасы"
Эгер сиз үзгүлтүксүз колдонгон функцияларды жазган болсоңуз, аларды Вольфрам Функция Репозиторийине тапшырыңыз! Эгер мындан дагы бир нерсе чыкпаса (тилди өнүктүрүү), анда дагы жеке колдонуу үчүн функцияларды колдонуу сизге бир топ ыңгайлуу болот. Бирок, эгер сиз функцияларды үзгүлтүксүз колдонсоңуз, балким, башка колдонуучулар да аларды пайдалуу деп эсептешибиз логикалык.
Албетте, сиз өзүңүздүн функцияларыңызды бөлүшө албаган же каалабаган кырдаалга туш болушуңуз мүмкүн же жеке маалымат ресурстарына кирүү мүмкүнчүлүгүнө ээ болгон учурда. Мындай учурларда да, сиз жөн гана өз булут эсебиңизге функцияларды орното аласыз,
Wolfram функция репозиторийине тапшырган функциялар кемчиликсиз болушу шарт эмес; алар жөн гана пайдалуу болушу керек. Бул Unixтин классикалык документтериндеги "Каталар" бөлүмүнө окшош - "Аныктамалар бөлүмүндө" "Автордун эскертүүлөрү" бөлүмү бар, анда сиз өзүңүзгө белгилүү болгон чектөөлөрдү, көйгөйлөрдү ж.б. сүрөттөй аласыз. Кошумча, сиз репозиторийге өзүңүздүн өзгөчөлүгүңүздү тапшырганыңызда, атайын кураторлор тобу окуй турган жазууларды кошо аласыз.
Функция жарыялангандан кийин, анын бетинде дайыма эки шилтеме болот: "
Кээде сиз жөн гана Wolfram функция репозиторийиндеги функцияларды, мисалы, орнотулган функцияларды, алардын кодун карабай эле колдонгуңуз келет. Бирок, эгер сиз ичин карагыңыз келсе, анда ар дайым жогору жагында Блокнот баскычы бар. Аны чыкылдатсаңыз, сиз функция репозиторийине берилген баштапкы аныктама дептердин өзүңүздүн көчүрмөсүн аласыз. Кээде сиз жөн гана муктаждыктарыңыз үчүн мисал катары колдоно аласыз. Ошол эле учурда, сиз да бул функциянын өз модификациясын иштеп чыга аласыз. Сиз компьютериңиздеги репозиторийден же aphid булут сактоо эсебиңизден тапкан бул функцияларды жайгаштыргыңыз келиши мүмкүн, балким, аларды функциялык билимдер базасына, балким, баштапкы функциянын жакшыртылган, кеңейтилген версиясы катары тапшыргыңыз келет.
Келечекте биз функция репозиторийлери үчүн Git стилиндеги форкингди колдоону пландап жатабыз, бирок азыр биз аны жөнөкөй сактоого аракет кылып жатабыз жана бизде ар дайым тилге орнотулган ар бир функциянын бир гана кабыл алынган версиясы бар. Көбүнчө (иштеп чыгуучулар өздөрү иштеп чыккан функцияларды сактап калуудан баш тартпаса жана колдонуучунун сунуштарына жооп бербесе), функциянын түпнуска автору ага жаңыртууларды көзөмөлдөп, жаңы версияларды тапшырат, алар кайра каралып чыгат жана эгер алар текшерүү процессинен өтсө. , тилинде жарык көргөн.
Иштелип чыккан функциялардын “версиясы” кандай иштейт деген суроону карап көрөлү. Учурда, сиз функция репозиторийинен функцияны колдонгондо, анын аныктамасы компьютериңизде (же булутту колдонуп жатсаңыз, булут эсебиңизде) биротоло сакталат. Функциянын жаңы версиясы жеткиликтүү болсо, аны кийинки жолу колдонгонуңузда бул тууралуу эскерткен билдирүү аласыз. Жана эгер сиз функцияны жаңы версияга жаңырткыңыз келсе, аны буйрукту колдонуп аткарсаңыз болот
Wolfram Функциялар Репозиторийиндеги эң сонун нерселердин бири - каалаган Wolfram Language программасы, каалаган жерде анын функцияларын колдоно алат. Эгерде программа блокнотто пайда болсо, анда репозиторий функцияларын окууга оңой "функция экилик объекти" функциялары катары форматтоо ыңгайлуу (балким, тиешелүү версиялар топтому менен).
Функция репозиторийиндеги каалаган функцияга текстти колдонуу менен ар дайым кире аласыз
Бул кандай иштейт?
Wolfram репозиторийиндеги функциялардын ичинде дал ушул нерсени колдонууга болот
кароо
Ичинде сиз функцияны колдонуп кээ бир маалыматты көрө аласыз
Ресурс функциясын орнотуу кандай иштейт? Эң жөнөкөйсү – бул жалаң жергиликтүү иш. Бул жерде функцияны кабыл алган (бул учурда жөн гана таза функция) жана аны берилген программа сессиясы үчүн ресурс функциясы катары аныктаган мисал:
Сиз аныктаманы жасагандан кийин, ресурс функциясын колдоно аласыз:
Бул функциянын блобунда кара сөлөкөт бар экенине көңүл буруңуз . Бул BLOB функциясы учурдагы сессия үчүн аныкталган эстутумдагы ресурс функциясына тиешелүү экенин билдирет. Компьютериңизде же булут эсебиңизде туруктуу сакталган ресурс өзгөчөлүгү боз сөлөкөткө ээ . Ал эми Wolfram Функциялар Репозиторийинде расмий ресурс өзгөчөлүгү үчүн кызгылт сары сөлөкөт бар .
Демек, аныктоо блокнотундагы Кеңейтүү менюсун колдонгондо эмне болот? Биринчиден, ал блокноттогу бардык аныктамаларды алат жана алардан символикалык түзөт
Сиздин компьютериңиздеги репозиторийден функцияны локалдык жайылтуу буйрукту колдонуу менен ишке ашырылат
Функция репозиторийине тапшыруу баскычын чыкылдатсаңыз, анын астында эмне болот
Демейки боюнча, тапшыруулар Wolfram ID'ңиз менен байланышкан ат менен жүргүзүлөт. Бирок, эгер сиз иштеп чыгуу тобунун же уюмдун атынан арыз берип жатсаңыз, анда мүмкүн
Функцияларыңыздын кайсынысын болбосун функциялык билимдер базасына тапшырганыңыздан кийин, ал текшерүү үчүн кезекке коюлат. Эгерде сиз жооп катары комментарийлерди алсаңыз, алар адатта кошумча "комментарий уячалары" кошулган текст файлы түрүндө болот. Ар дайым баруу менен арызыңыздын абалын текшере аласыз
Жумушта кээ бир кылдаттыктар
Бир караганда, сиз жөн гана аныктама дептерлерин алып, аны сөзмө-сөз функция репозиторийине киргизе тургандай сезилиши мүмкүн, бирок чындыгында бул жерде бир топ кылдаттыктар бар - жана аларды иштетүү абдан татаал мета-программалоону, символикалык иштетүүнү талап кылат. функцияны аныктаган код катары жана Блокноттун өзү аныкталат. Мунун көбү ички, көшөгө артында болот, бирок, эгер сиз өзгөчөлүк билимдер базасына салым кошкуңуз келсе, анда түшүнүүгө арзырлык кээ бир кесепеттер болушу мүмкүн.
Биринчи дароо кылдаттык: Аныктоо блокнотту толтурганыңызда, сиз жөн гана бул сыяктуу ат менен бардык жерде өзүңүздүн функцияңызга кайрыла аласыз MyFunction, бул Вольфрам тилиндеги функциянын кадимки аталышына окшош, бирок функциянын репозиторий документтери үчүн бул алмаштырылган
Экинчи кылдаттык: Аныктоо блокнотунан ресурс функциясын түзгөнүңүздө, функциянын аныктамасына катышкан бардык көз карандылыктар камтылууга жана ачык түрдө камтылууга тийиш. Бирок, аныктамалар модулдук бойдон калуу үчүн, баарын уникалдуу коюу керек
Адатта, сиз бул аттар мейкиндигин конфигурациялоо үчүн колдонулган коддун изин эч качан көрбөйсүз. Бирок кандайдыр бир себептерден улам сиз функцияңыздын ичинде аткарылбаган символду чакырсаңыз, анда бул символ функциянын ички контекстинде экенин көрөсүз. Бирок, Definition Notepad иштеп жатканда, жок эле дегенде, функциянын өзүнө тиешелүү белги
Функция репозиторий жаңы функцияларды аныктоо үчүн. Жана бул функциялардын варианттары болушу мүмкүн. Көп учурда бул параметрлер (мисалы,
Көпчүлүк функциялар жөн гана алар чакырылган сайын эмне кылышы керек болсо, ошону аткарышат, бирок кээ бир функциялар белгилүү бир сеанста иштей алардан мурун инициализацияланышы керек - жана бул маселени чечүү үчүн Аныктоо бөлүмүндө "Инициалдаштыруу" бөлүмү бар.
Репозиторийдеги функциялар репозиторийде болгон башка функцияларды колдоно алат; бири-бирине шилтеме кылган эки (же андан көп) функцияларды камтыган функция репозиторийинин аныктамаларын орнотуу үчүн, сиз аларды программа сессияңызда жайгаштырышыңыз керек. аларга окшош шилтеме
Өнүгүү перспективалары. Репозиторий чындап чоңойгондо эмне болушу керек?
Бүгүн биз Wolfram Функциялар Репозиторийин жаңыдан ишке киргизип жатабыз, бирок убакыттын өтүшү менен анын көлөмү жана функционалдуулугу кескин көбөйүшү мүмкүн деп күтөбүз, ал эми өнүгүүдө биз күткөн ар кандай көйгөйлөр пайда болушу мүмкүн.
Биринчи маселе функциялардын аталыштарына жана алардын уникалдуулугуна тиешелүү. Функциялардын репозиторийлери Вольфрам тилиндеги орнотулган функциялар сыяктуу эле, анын атын көрсөтүү менен каалаган функцияга шилтеме кыла ала тургандай кылып иштелип чыккан. Бирок бул сөзсүз түрдө функция аттары репозиторий боюнча глобалдык уникалдуу болушу керек дегенди билдирет, ошондуктан, мисалы, бир гана болушу мүмкүн.
Бул башында чоң көйгөй сыяктуу сезилиши мүмкүн, бирок бул негизинен интернет домендери же социалдык медиа туткалары сыяктуу нерселерге окшош көйгөй экенин түшүнүү керек. Ал эми система жөн гана регистрге ээ болушу керек экендигинде - бул биздин компания Wolfram функциясынын билим базасы үчүн аткара турган ролдордун бири. (Репозиторийдин жеке версиялары үчүн алардын регистраторлору администраторлор болушу мүмкүн.) Албетте, Интернет доменин эч нерсеси жок эле каттаса болот, бирок функция репозиторийинде функциянын аталышы анын чыныгы аныктамасы болгондо гана катталышы мүмкүн. функция.
Вольфрам функциясынын билим базасын башкаруудагы биздин ролубуздун бир бөлүгү функция үчүн тандалган аталыш функциянын аныктамасында логикалык болушун жана ал Вольфрам тилинин атоо конвенцияларына ылайык келишин камсыз кылуу болуп саналат. Бизде Вольфрам тилинде орнотулган функцияларды атоо боюнча 30 жылдан ашык тажрыйбабыз бар жана биздин кураторлор тобу бул тажрыйбаны функция репозиторийине да алып келет. Албетте, ар дайым өзгөчөлүктөр бар. Мисалы, кандайдыр бир функциянын кыска аталышы жакшыраак сезилиши мүмкүн, бирок узунураак, конкреттүү ат менен "коргоо" жакшыраак, анткени келечекте окшош функциянын атын жасагысы келген адамга жолугуп калуу ыктымалдыгы азыраак. .
(Бул жерде белгилей кетүүчү нерсе, функцияларды чечмелөө үчүн жөн гана мүчө тегин кошуу күтүлгөн эффектке ээ болбойт. Анткени сиз ар дайым тег ыйгарууну талап кылмайынча, кандайдыр бир функция үчүн демейки тегди аныктап, ошондой эле автор тегдерин бөлүштүрүшүңүз керек болот. , бул дагы глобалдык координацияны талап кылат.)
Wolfram функцияларынын билим базасы өскөн сайын, пайда боло турган көйгөйлөрдүн бири функциялардын табылышы болуп саналат, алар үчүн система камсыз кылат.
Вольфрам тилиндеги орнотулган функциялар үчүн тарабынан берилген аныктоо катмары деп аталган бар
Wolfram функция репозиторийси туруктуу функция репозиторий катары конфигурацияланган, андагы каалаган функция ар дайым иштей берет. Албетте, функциялардын жаңы версиялары жеткиликтүү болушу мүмкүн жана биз кээ бир функциялар, албетте, убакыттын өтүшү менен эскирип калат деп күтөбүз. Функциялар программаларда колдонулса иштейт, бирок алардын документация барактары жаңы, өркүндөтүлгөн функцияларга шилтеме берет.
Wolfram Feature Repository жаңы функцияларды тез табууга жана Wolfram тилин колдонуунун жаңы жолдорун үйрөнүүгө жардам берүү үчүн иштелип чыккан. Функциялар репозиторийинде изилденген нерселердин кээ бирлери акыры Wolfram тилинин негизги бөлүктөрү болуп калат деп абдан оптимисттик маанайдабыз. Акыркы он жылдын ичинде бизде ушундай эле топтом бар
Бул жерде эң негизгиси функция репозиторийиндеги функция азыр ар бир колдонуучу үчүн жеткиликтүү болгон нерсе. Эне тилинин өзгөчөлүгү алда канча жакшыраак жана натыйжалуураак болушу мүмкүн, бирок функция репозиторийси колдонуучуларга бардык жаңы функцияларды дароо колдонууга мүмкүнчүлүк берет. Жана эң негизгиси, бул концепция ар кимге каалаган жаңы функцияларды кошууга мүмкүндүк берет.
Мурда Вольфрам тилинин тарыхында бул идея мурдагыдай жакшы иштемек эмес, бирок бул этапта тилге ушунчалык көп күч-аракет жумшалып, тилди долбоорлоо принциптерин ушунчалык терең түшүнгөндүктөн, азыр ал абдан жакшы көрүнөт. колдонуучулардын кеңири чөйрөсү үчүн аларды пайдалуу кылуу үчүн дизайн ырааттуулугун сактай турган функцияларды кошууга мүмкүн.
Wolfram Language колдонуучуларынын коомчулугунда укмуштуудай талант (?) руху бар. (Албетте, бул жамаат ар түрдүү тармактарда көптөгөн алдыңкы R&D адамдарды камтыйт.) Мен Wolfram Feature Repository бул талант рухун ачуу жана жайылтуу үчүн эффективдүү платформаны камсыз кылат деп үмүттөнөм. Биз чогуу гана Вольфрам тилинин эсептөө парадигмасы колдонула турган аймакты кыйла кеңейте турган нерсени түзө алабыз.
30 жылдан ашык убакытта биз Вольфрам тили менен көп жолду басып өттүк. Эми чогуу, андан да ары кетели. Мен дүйнө жүзү боюнча бардык кадыр-барктуу Wolfram тилинин колдонуучуларын бул үчүн платформа катары функционалдык репозиторийди, ошондой эле Иштеп чыгуучулар үчүн Free Wolfram Engine сыяктуу жаңы программалык камсыздоо долбоорун колдонууга катуу чакырам.
Source: www.habr.com