Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Salom, Xabr! E'tiboringizga Stiven Volfram postining tarjimasini taqdim etaman "Volfram funktsiyalari ombori: Wolfram tilini kengaytirish uchun ochiq platformani ishga tushirish".

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Volfram tilining izchilligi uchun zarur shartlar

Bugun biz dasturlash tili bilan birga katta yutuqlar ostonasida turibmiz Volfram tili. Faqat uch hafta oldin biz ishga tushdik Ishlab chiquvchilar uchun bepul Wolfram dvigatelifoydalanuvchilarimizga Wolfram tilini keng ko'lamli dasturiy ta'minot loyihalariga integratsiya qilishda yordam berish. Bugun biz ishga tushamiz Wolfram funktsiyalari ombori, Wolfram tilini kengaytirish uchun yaratilgan funktsiyalar uchun muvofiqlashtirilgan platformani ta'minlash maqsadida, shuningdek, dasturiy mahsulotimizni rivojlantirishga hissa qo'shishi mumkin bo'lgan har bir kishi uchun funksiyalar omborini ochamiz.

Wolfram Function Repository - bu Wolfram tilining o'ziga xos tabiati tufayli nafaqat dasturlash tili, balki dasturlash tili sifatida ham mumkin bo'lgan narsadir. to'liq miqyosli hisoblash tili. An'anaviy dasturlash tillarida muhim yangi funksiyalarni qo'shish odatda birgalikda foydalanilganda ishlamaydigan yoki ishlamaydigan butun qo'shimcha kutubxonalarni yaratishni o'z ichiga oladi. Biroq, Volfram tilida juda ko'p narsa allaqachon tilning o'zida qurilgan, butun tilning yaxlit tuzilishiga darhol birlashtirilgan yangi funktsiyalarni qo'shish orqali uning funksionalligini sezilarli darajada kengaytirish mumkin.

Masalan, Wolfram funksiyasi ombori allaqachon mavjud 532 ta yangi xususiyat 26 tematik toifaga tuzilgan:

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Xuddi shunday ko'proq 6000 standart funksiyalar, Wolfram tiliga o'rnatilgan, ombordagi har bir funktsiyada ularning batafsil tavsifi va ish namunalari ko'rsatilgan hujjatlar sahifasi mavjud:

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Sahifaga o'tish uchun yuqoridagi ob'ektni (BLOB funktsiyasi) nusxa ko'chiring, uni kiritish qatoriga joylashtiring va funksiyani ishga tushiring - u allaqachon Wolfram tiliga o'rnatilgan va sukut bo'yicha qo'llab-quvvatlanadi 12.0 versiyasi:

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Bu erda shuni ta'kidlash kerakki, ishlov berishda LogoQRCod Masalan, sizga “tasvirlarni qayta ishlash kutubxonasi”ni o‘rnatishning hojati yo‘q – chunki biz allaqachon Wolfram tilida izchil va sinchkovlik bilan algoritmik usulni joriy qilganmiz. tasvirni qayta ishlash, bu turli xil grafik til funktsiyalari tomonidan darhol qayta ishlanishi mumkin:

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Umid qilamanki, qo'llab-quvvatlash bilan ajoyib va ​​iste'dodli jamoa, bu so'nggi bir necha o'n yilliklar davomida o'sib bormoqda va kengaymoqda (Volfram tili asosida). Wolfram funktsiyalari ombori yaqin kelajakda tilda mavjud bo'lgan (ehtimol potentsial ahamiyatli, fan va texnologiyaning turli sohalarida ixtisoslashgan) funktsiyalar doirasini sezilarli darajada kengaytirish imkonini beradi. Shunday qilib, tilning mazmuni (uning o'rnatilgan funktsiyalari) va ham foydalanish mumkin bo'ladi rivojlanish tamoyillari, ular til asosida amalga oshiriladi. (Bu erda shuni ta'kidlash kerakki, Wolfram tilida allaqachon ko'proq 30 yillik rivojlanish tarixi va barqaror o'sish).
Ombordagi funksiyalar Wolfram tilida yozilgan kichik yoki katta kod qismlarini o'z ichiga olishi mumkin. Masalan, bu qo'ng'iroqlar bo'lishi mumkin tashqi API va xizmatlar yoki boshqa tillardagi tashqi kutubxonalar. Ushbu yondashuvning o'ziga xos tomoni shundaki, siz foydalanuvchi darajasidagi funksionallikka o'tsangiz, hech qanday nomuvofiqliklar bo'lmaydi, chunki yondashuv Volfram tilining izchil tuzilishi ustiga qurilgan va har bir funktsiya avtomatik ravishda to'g'ri ishlaydi - xuddi mo'ljallangan. u kerak.
Wolfram Feature Repository-ning qobig'i va dasturlash tuzilmasi shunday yaratilganki, har bir kishi umumiy ishga o'z hissasini qo'shishi uchun eng oddiy va qulay usulda - aslida bloknot matn faylini to'ldirish orqali (nb kengaytmasi bilan) WL. O'rnatilgan avtomatik funksiyalar tilga integratsiyalashuvini ta'minlash uchun omborga qo'shilgan yangi funksiyalarni tekshirish imkonini beradi. Bizning kompaniyamiz yangi funktsiyalarning katta murakkabligiga emas, balki o'z funktsiyalarini tilga integratsiya qila oladigan keng foydalanuvchilar doirasiga pul tikadi - va ko'rib chiqish jarayoni mavjud bo'lsa-da, biz shunga o'xshash narsani talab qilmaymiz. mashaqqatli dizayn tahlili yoki biz foydalanadigan asosiy tilga o'rnatilgan xususiyatlarni yanada qattiqroq sinovdan o'tkazishdan farqli o'laroq, yangi foydalanuvchi xususiyatlarining to'liqligi va ishonchliligi uchun qat'iy standartlar.

Ushbu yondashuvda ko'plab kelishuvlar va tafsilotlar mavjud, ammo bizning maqsadimiz Wolfram xususiyatlari omborini foydalanuvchi tajribasi uchun optimallashtirish va yangi foydalanuvchi xususiyatlari tilning rivojlanishiga mazmunli hissa qo'shishini ta'minlashdir. Biz o'sib ulg'aygan sari, biz omborga o'rnatilgan funktsiyalarni qayta ishlash va tekshirishning yangi usullarini ixtiro qilishimizga shubha qilmayman, nafaqat ko'p sonli funktsiyalarni tashkil qilish va foydalanuvchilarga kerakli narsalarni topish uchun. Biroq, biz tanlagan yo‘l yaxshi boshlanish ekani quvonarlidir. Shaxsan men bir qator xususiyatlarni qo'shdi asl ma'lumotlar bazasiga. Ularning ko'pchiligi men shaxsan ancha vaqt davomida ishlab chiqqan kodga asoslangan. Va ularni omborga surish uchun menga bir necha daqiqa kerak bo'ldi. Endi ular omborda ekan, men nihoyat - darhol va istalgan vaqtda - fayllarni qidirish, paketlarni yuklab olish va hokazolar haqida tashvishlanmasdan, kerak bo'lganda ushbu funktsiyalardan foydalanishim mumkin.

Xarajatlarni kamaytirish bilan birga samaradorlikni oshirish

Internetdan oldin ham Wolfram tili kodini almashish usullari mavjud edi (bizning birinchi yirik markazlashtirilgan loyihamiz MathSource, 1991 yilda Mathematica uchun CD-ROM va boshqalar asosida yaratilgan). Albatta, Wolfram funktsiyalari ombori asosida amalga oshirish uchun taklif qilingan yondashuv yuqoridagi vazifalarni amalga oshirish uchun yanada kuchli va ishonchli vositadir.

30 yildan ortiq vaqt davomida bizning kompaniyamiz Wolfram tili strukturasining yaxlitligini saqlab qolish uchun astoydil ishladi va bu Wolfram tilining nafaqat dasturlash tili, balki dasturlash tiliga aylanishini ta'minlash uchun juda muhimdir. to'liq huquqli hisoblash tili. Shunday qilib, Wolfram funktsiyalari omborini amalga oshirishga yondashuvning mohiyati ketma-ket qo'shiladigan va til doirasiga mos keladigan yangi funktsiyalarni dasturlash va ishlab chiqishda yagona yondashuvni qo'llashdan iborat bo'lib, u rivojlanishi va birgalikda rivojlanishi mumkin.

Har bir funktsiyani amalga oshirish strukturasida turli xil hisoblash jarayonlari sodir bo'ladi. Bu erda shuni ta'kidlash kerakki, funktsiya aniq va bir xil ko'rinishga ega bo'lishi va foydalanuvchi uchun vizual o'qilishi kerak. Shu nuqtai nazardan, Wolfram tilining o'rnatilgan funktsiyalari funktsiyalarni qanday qilib to'g'ri dasturlash haqida 6000 dan ortiq ketma-ket misollar bilan taqdim etilgan (bular bizning jonli dasturlash videolarishu jumladan standart dasturlarni yaratish jarayoni yuzlab soat). Ushbu yondashuv oxir-oqibat Wolfram funksiyalar omborini yaxshi ishlashga qodir qiladigan narsa Wolfram tilining tizimli tabiati, uning tilga allaqachon o'rnatilgan ko'plab qo'shimcha va xilma-xil kutubxonalari bilan. Misol uchun, agar sizda tasvirlarni qayta ishlaydigan funksiya bo'lsa yoki siyrak massivlaryoki molekulyar tuzilmalar, shuningdek geografik ma'lumotlar yoki ba'zi boshqalar - ularning izchil ramziy ko'rinishi allaqachon tilda mavjud va buning natijasida sizning funktsiyangiz darhol tildagi boshqa funktsiyalar bilan mos keladi.

Haqiqatan ham yaxshi ishlaydigan omborni yaratish qiziqarli meta-dasturlash vazifasidir. Masalan, dasturdagi cheklovlarning haddan tashqari ko'pligi algoritmning kerakli unifikatsiyasini va universalligini olishga imkon bermaydi. Funktsional cheklovlarning etarli emasligi kabi, siz algoritmni to'g'ri bajarish ketma-ketligini amalga oshira olmaysiz. Kompaniyamiz tomonidan amalga oshirilgan ushbu yondashuvlarni murosaga keltirishning bir qancha oldingi misollari ancha barqaror ishlagan - bular: Loyiha volfram namoyishlari, 2007 yilda ishga tushirilgan va hozirda 12000 XNUMX dan ortiq foydalanuvchi interaktiv demolari bilan onlayn rejimda ishlaydi. IN Wolfram ma'lumotlar bazasi Wolfram tilida foydalanish mumkin bo'lgan 600 dan ortiq tayyor ma'lumotlar bazalari mavjud va Wolfram neyron tarmog'ini saqlash deyarli har hafta yangi neyron tarmoqlar bilan to'ldiriladi (hozir ularning 118 tasi mavjud) va ular darhol funksiya orqali ulanadi. NetModel Volfram tilida.

Yuqoridagi barcha misollar asosiy xususiyatga ega - loyihada to'plangan ob'ektlar va funktsiyalar jarayonlarning tuzilishi va taqsimlanishining juda yuqori darajasiga ega. Albatta, demo yoki neyron tarmoq yoki boshqa narsa tuzilishining tafsilotlari juda farq qilishi mumkin, ammo har qanday joriy ombor uchun asosiy tuzilma har doim bir xil bo'lib qoladi. Xo'sh, aziz foydalanuvchi, Wolfram tiliga kengaytmalar qo'shadigan bunday omborni yaratish haqida fikringiz qanday? Wolfram tili juda moslashuvchan bo'lishi uchun yaratilgan, shuning uchun uni har qanday tarzda kengaytirish va o'zgartirish mumkin. Ushbu holat Wolfram tilida turli xil keng ko'lamli dasturiy ta'minot loyihalarini tezda yaratish qobiliyati uchun juda muhimdir. Shu o‘rinda ta’kidlash joizki, tilning moslashuvchanligi oshgani sayin, bunday tilda amalga oshirilayotgan loyihalarning narxi ham oshishi muqarrar. Buning sababi shundaki, foydalanuvchi bunday tildan qanchalik ko'p foydalansa, u shunchalik bag'ishlangan funksionallikni oladi, ammo shuni unutmasligimiz kerakki, bu yondashuv dastur modullarining izchil izchilligini ta'minlay olmaslik nuqtai nazaridan salbiy tomonlarga ham ega bo'lishi mumkin.

An'anaviy dasturlash tillaridagi kutubxonalar bilan bog'liq keng tarqalgan muammo bor - agar siz bitta kutubxonadan foydalansangiz, masalan, kod to'g'ri ishlaydi, lekin bir nechta kutubxonalardan foydalanishga harakat qilsangiz, ular bir-biri bilan to'g'ri o'zaro ta'sir qilishiga kafolat yo'q. . Bundan tashqari, an'anaviy dasturlash tillarida - to'liq huquqli hisoblash tilidan farqli o'laroq, ularning asosiy tuzilmalaridan tashqari har qanday funktsiyalar yoki ma'lumotlar turlari uchun izchil o'rnatilgan taqdimotlar mavjudligini kafolatlashning hech qanday usuli yo'q. Ammo, aslida, muammo bir qarashda ko'rinadiganidan ham kattaroqdir: agar biror kishi keng ko'lamli funksionallik vertikalini qurayotgan bo'lsa, biz Wolfram tiliga qo'ygan markazlashtirilgan loyiha dasturlashning katta xarajatlarisiz buni amalga oshirish mumkin emas. izchillikka erishish. Shuning uchun barcha dasturiy ta'minot modullari doimo birgalikda to'g'ri ishlashi muhimdir.

Shunday qilib, Wolfram funktsiyalari omborining g'oyasi yuqorida aytib o'tilgan muammoni bartaraf etishdan iborat bo'lib, ular izchil modullar sifatida ishlab chiqilishi osonroq bo'lgan individual xususiyatlar orqali nisbatan kichik kod qismlarida tilga kengaytmalarni qo'shishdir. Aytish joizki, individual funktsiyalar yordamida qulay qilib bo'lmaydigan dasturlash xususiyatlari mavjud (va bizning kompaniyamiz yaqin kelajakda keng ko'lamli dasturiy paketlarni amalga oshirishga yordam berish uchun optimallashtirilgan dasturlash algoritmini chiqarishni rejalashtirmoqda). Biroq, Wolfram tiliga allaqachon o'rnatilgan funktsiyalarga asoslanib, individual funktsiyalar asosida amalga oshiriladigan ko'plab dasturlash imkoniyatlari mavjud. Bu erda g'oya shundaki, nisbatan kam dasturlash harakatlari bilan dizaynning etarli darajada muvofiqligini ta'minlaydigan bir qator yangi va juda foydali funktsiyalarni yaratish mumkin, ular bir-biri bilan yaxshi muvofiqlashtiriladi va bundan tashqari, ular kelajakda tilda oson va keng qo‘llash imkoniyatiga ega bo‘ladi.

Bu yondashuv, albatta, murosadir. Agar kattaroq paket amalga oshirilsa, juda kuchli va foydali bo'lgan butunlay yangi funksional dunyoni tasavvur qilish mumkin edi. Agar hamma narsaga mos keladigan yangi funksionallikni olish zarurati tug'ilsa, lekin siz loyihani ishlab chiqish uchun ko'p kuch sarflashga tayyor bo'lmasangiz, bu, afsuski, loyihangiz doirasining qisqarishiga olib kelishi mumkin. Wolfram xususiyatlar omborining g'oyasi loyihaning aniq qismiga funksionallikni ta'minlashdir; bu yondashuv kuchli funksionallikni qo'shib, dasturlash loyihasida yaxshi izchillikni saqlashni osonlashtiradi.

Funktsiyalar omboriga maxsus funktsiyalar qo'shishga yordam bering

Bizning jamoamiz foydalanuvchilarga Wolfram ombori xususiyatlariga hissa qo'shishni osonlashtirish uchun ko'p harakat qildi. Ish stolida (allaqachon 12.0 versiyasi), Siz oddiygina asosiy menyu yorliqlarini ketma-ket o'tishingiz mumkin: Fayl > Yangi > RepositoryItem > Funktsiyalar ombori elementi va siz "Ta'rif daftar" (dasturiy ravishda ishchi stol ichida. Siz analog funksiyadan ham foydalanishingiz mumkin - Notebook yaratish["Funktsiya manbasi"]):

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Siz bajarishingiz kerak bo'lgan ikkita asosiy qadam mavjud: birinchidan, funktsiyangiz uchun kodni yozing va ikkinchidan, funktsiyangiz qanday ishlashini ko'rsatadigan hujjatlarni yozing.
Nima qilish kerakligi haqidagi misolni ko'rish uchun yuqoridagi "Namunani ochish" tugmasini bosing:

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Aslida, siz Wolfram tilidagi o'rnatilgan funksiyaga o'xshash narsani yaratishga harakat qilyapsiz. Bundan tashqari, u o'rnatilgan funksiyadan ko'ra aniqroq narsani qila oladi. Shu bilan birga, uning to'liqligi va ishonchliligiga oid umidlar ancha past bo'ladi.
Funksiyangizga Wolfram tilining funksiya nomlash ko‘rsatmalariga mos keladigan nom berishingiz kerak. Bundan tashqari, siz o'z funktsiyangiz uchun tilning o'rnatilgan funktsiyalariga o'xshash hujjatlarni ishlab chiqishingiz kerak bo'ladi. Bu haqda keyinroq batafsilroq gaplashaman. Hozircha, ta'rifli daftar faylining yuqori qismidagi tugmalar qatorida tugma mavjudligiga e'tibor bering "Uslub bo'yicha ko'rsatmalar", nima qilish kerakligini tushuntiradi va funksiyangiz hujjatlarini formatlash uchun vositalarni taqdim qiluvchi Asboblar tugmasi.
Har bir narsa to'g'ri to'ldirilganiga va tayyor ekanligingizga ishonchingiz komil bo'lsa, "Tekshirish" tugmasini bosing. Hali barcha tafsilotlarni aniqlab olmaganingiz mutlaqo normal holat. Shunday qilib, "Tekshirish" funksiyasi avtomatik ravishda ishlaydi va ko'plab uslub va mustahkamlik tekshiruvlarini amalga oshiradi. Ko'pincha, u sizni darhol tuzatishlarni tasdiqlash va qabul qilishni taklif qiladi (Masalan: "Bu qator ikki nuqta bilan tugashi kerak" va u sizni ikki nuqta kiritishni taklif qiladi). Ba'zan u sizdan biror narsani o'zingiz qo'shishingizni yoki o'zgartirishingizni so'raydi. Biz doimiy ravishda Tekshirish tugmachasining avtomatik funksiyasiga yangi funksiyalarni qo‘shib boramiz, lekin asosan uning maqsadi funksiyalar omboriga yuborgan har bir narsa imkon qadar ko‘proq uslub ko‘rsatmalariga qat’iy rioya qilishini ta’minlashdir.

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Shunday qilib, "Tekshirish" ni ishga tushirgandan so'ng, siz "Ko'rib chiqish" dan foydalanishingiz mumkin. "Ko'rib chiqish" funksiyangiz uchun siz belgilagan hujjatlar sahifasining oldindan ko'rishini yaratadi. Bundan tashqari, kompyuteringizda yaratilgan fayl yoki bulutli xotirada joylashgan fayl uchun oldindan ko'rishni yaratishingiz mumkin. Agar biron sababga ko'ra, oldindan ko'rishda ko'rgan narsangiz sizni qoniqtirmasa, shunchaki orqaga qayting va kerakli tuzatishlarni kiriting va keyin Ko'rib chiqish tugmasini yana bosing.
Endi siz o'z funktsiyangizni omborga kiritishga tayyormiz. Joylashtirish tugmasi sizga to'rtta variantni beradi:

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Ushbu bosqichda muhim narsa shundaki, siz o'z funksiyangizni Wolfram funktsiyalari omboriga topshirishingiz mumkin, shunda u hamma uchun mavjud. Shu bilan birga, siz o'z funksiyangizni cheklangan miqdordagi foydalanuvchilar uchun ham joylashtirishingiz mumkin. Misol uchun, siz kompyuteringizda mahalliy sifatida joylashtirilgan funktsiyani yaratishingiz mumkin, shunda u ma'lum bir kompyuterdan foydalanganda mavjud bo'ladi. Yoki uni o'z sahifangizga joylashtirishingiz mumkin bulut hisobi, bulutga ulanganingizda u siz uchun mavjud bo'lishi uchun. Bundan tashqari, bulutli hisob qaydnomangiz orqali xususiyatni ommaviy ravishda joylashtirishingiz (joylashtirishingiz) mumkin. U markaziy Wolfram funksiyalar omborida bo'lmaydi, lekin siz kimgadir sizning hisobingizdan xususiyatingizni olish imkonini beruvchi URL manzilini berishingiz mumkin bo'ladi. (Kelajakda biz butun kompaniyamizdagi markaziy omborlarni qo'llab-quvvatlaymiz.)

Aytaylik, siz haqiqatan ham o'z funktsiyangizni Wolfram funktsiyalari ma'lumotlar bazasiga topshirmoqchisiz. Buni amalga oshirish uchun siz omborga "Yuborish" tugmasini bosing. Xo'sh, hozir nima bo'lyapti? Sizning arizangiz darhol bizning maxsus kuratorlar jamoasi tomonidan ko'rib chiqilishi va tasdiqlanishi uchun navbatga qo'yiladi.

Arizangizni tasdiqlash jarayoni (odatda bir necha kun davom etadi) orqali davom etar ekan, siz uning holati va kelajakda foydalanish uchun takliflar haqida xabar olasiz. Ammo sizning xususiyatingiz ma'qullangandan so'ng, u darhol Wolfram Feature Repository-ga e'lon qilinadi va hamma foydalanishi mumkin bo'ladi. (Va bu ichida paydo bo'ladi yangi xususiyatlarning yangiliklar dayjestlari va hokazo.)

Saqlashda nima bo'lishi kerak?

Shuni ta'kidlash kerakki, kompaniyamiz to'liqlik, ishonchlilik va umumiy sifat bo'yicha juda yuqori standartlarga ega va biz so'nggi 6000+ yil ichida Wolfram tiliga o'rnatgan 30 dan ortiq funktsiyalarning barchasi yuqoridagi talablarga javob beradi. Wolfram Function Repository-ning maqsadi iloji boricha engilroq funktsiyalarni (ya'ni yuqori unumdorlik funktsiyalarini) qo'shish uchun Wolfram tilida mavjud bo'lgan barcha tuzilma va funktsiyalardan foydalanishdir.

Albatta, Wolfram funksiyalar omboridagi funksiyalar Wolfram tilining dizayn tamoyillariga mos kelishi kerak, shunda ular boshqa funksiyalar va foydalanuvchilarning funksiya qanday ishlashi kerakligi haqidagi taxminlari bilan to‘liq o‘zaro aloqada bo‘lishi mumkin. Biroq, funktsiyalar bir xil to'liqlik yoki ishonchlilikka ega bo'lishi shart emas.

Wolfram tilining o'rnatilgan funksiyalarida biz dasturlash funktsiyalarini iloji boricha umumiy qilish uchun ko'p harakat qilamiz. Aytish joizki, Wolfram funktsiyalari omborida juda aniq, ammo foydali ishni bajaradigan funksiyaga ega bo'lishning hech qanday yomon joyi yo'q. Masalan, funktsiya SendMailFromNotebook fayllarni ma'lum bir formatda qabul qilishi va ma'lum bir usulda pochta yaratishi mumkin. Poligonal diagramma faqat ma'lum ranglar va etiketkalar bilan jadvallarni yaratadi va hokazo.

O'rnatilgan funksiyalar bilan bog'liq yana bir nuqta shundaki, bizning kompaniyamiz barcha atipik holatlarni hal qilish, noto'g'ri kiritishni to'g'ri bajarish va hokazolar uchun barcha sa'y-harakatlarni amalga oshiradi. Funktsiyalar omborida muammoni hal qilishning asosiy holatlarini ko'rib chiqadigan va qolganlarini e'tiborsiz qoldiradigan maxsus funktsiyaning mavjudligi mutlaqo normaldir.

Ko'rinib turibdiki, ko'proq va yaxshiroq bajaradigan funktsiyalarga ega bo'lish yaxshiroq, lekin funktsiyalar ombori uchun optimallashtirish - Volfram tilining o'rnatilgan funktsiyalaridan farqli o'laroq - ko'proq funktsiyalarni o'rganishdan ko'ra ko'proq funktsiyalar bilan birlashtirilgan bo'lishi kerak. har bir aniq funktsiyani amalga oshirish jarayonlari.

Endi omborda funksiyalarni sinash misolini ko‘rib chiqamiz. Bunday funktsiyalar uchun izchillik kutishlari, tabiiy ravishda, o'rnatilgan til funktsiyalariga qaraganda ancha past. Bu, ayniqsa, funktsiyalar API kabi tashqi resurslarga bog'liq bo'lgan hollarda to'g'ri keladi, doimiy ravishda tekshirish algoritmlari ichida avtomatik ravishda sodir bo'ladigan izchil testlarni o'tkazish muhimdir. nb faylida siz aniq ta'riflarni belgilashingiz mumkin (Qo'shimcha ma'lumot bo'limida) va kirish va chiqish satrlari yoki turdagi to'liq belgilar ob'ektlari tomonidan aniqlangan ko'plab testlarni belgilashingiz mumkin. Tasdiqlash testi, qanchalik mos deb bilsangiz. Bundan tashqari, tizim doimiy ravishda siz taqdim etgan hujjat namunalarini tekshirish jarayoniga aylantirishga harakat qiladi (va ba'zida bu juda ko'p resurs talab qilishi mumkin, masalan, natijasi tasodifiy raqamlarga yoki kun vaqtiga bog'liq bo'lgan funksiya uchun).

Natijada, funksiyalar ombori amalga oshirishda bir qator murakkabliklarga ega bo'ladi. Ba'zilar faqat bitta kod qatori bo'ladi, boshqalari minglab yoki o'n minglab qatorlarni o'z ichiga olishi mumkin, ehtimol ko'plab yordamchi funktsiyalardan foydalanadi. Aniqlash uchun juda kam kod talab qiladigan funktsiyani qachon qo'shishga arziydi? Asosan, agar funktsiya uchun mavjud bo'lsa yaxshi mnemonik ism, qaysi foydalanuvchilar uni kod bo'lagida ko'rsalar, osongina tushunadilar, keyin uni allaqachon qo'shish mumkin. Aks holda, kodni har safar ishlatishingiz kerak bo'lganda dasturingizga qayta qo'shsangiz yaxshi bo'ladi.

Funktsiyalar omborining asosiy maqsadi (uning nomidan ko'rinib turibdiki) tilga yangi xususiyatlarni kiritishdir. Agar siz yangi ma'lumotlarni qo'shmoqchi bo'lsangiz yoki yangi ob'ektlar, foydalaning Wolfram ma'lumotlar ombori. Ammo hisob-kitoblaringiz uchun yangi turdagi ob'ektlarni joriy qilmoqchi bo'lsangiz-chi?

Aslida ikkita yo'l bor. Funktsiyalar omboridagi yangi funktsiyalarda ishlatiladigan yangi ob'ekt turini kiritishni xohlashingiz mumkin. Va bu holda, siz har doim uning ramziy tasvirini yozishingiz va funksiyalar omboriga funktsiyalarni kiritish yoki chiqarishda foydalanishingiz mumkin.

Ammo agar siz ob'ektni taqdim qilmoqchi bo'lsangiz va keyin Wolfram tilidagi mavjud funktsiyalar orqali u bilan ishlashni xohlayotganingizni aniqlasangiz nima bo'ladi? Wolfram tili har doim buning uchun engil mexanizmga ega bo'lgan Yuqori qiymatlar. Ba'zi cheklovlar bilan (ayniqsa, bunday funktsiyalar uchun argumentlarini baholay olmaydi), funksiyalar ombori oddiygina funksiyani ifodalash va uning qiymatlarini aniqlash imkonini beradi. (Volfram tili boʻylab toʻliq integratsiyalangan yangi yirik dizaynni yaratishda izchillik kutishini oshirish odatda juda muhim protsedura boʻlib, uni shunchaki loyiha narxini oshirish orqali erishib boʻlmaydi va bizning kompaniyamiz loyihalarning bir qismi sifatida bajaradigan narsadir. tilning uzoq muddatli rivojlanishi uchun bu vazifa omborni rivojlantirishning bir qismi sifatida belgilangan maqsad emas).

Xo'sh, funktsiya omboridagi funktsiya kodida nima bo'lishi mumkin? Hamma narsa Wolfram tiliga o'rnatilgan, albatta (hech bo'lmaganda, agar u ifodalamasa tahdidlar uchun xavfsizlik va dasturning o'zi, hisoblash muhiti sifatida ishlashi), shuningdek, funktsiyalar omboridan har qanday funktsiya. Biroq, boshqa funksiyalar ham mavjud: funksiyalar omboridagi funksiya API yoki ichida chaqirishi mumkin Volfram buluti, yoki boshqa manbadan. Albatta, bu bilan bog'liq ba'zi xavflar mavjud. API o'zgarmasligiga kafolatlar yo'qligi sababli va funktsiyalar do'konidagi funksiya ishlashni to'xtatadi. Shunga o'xshash muammolarni aniqlashga yordam berish uchun hujjatlar sahifasida (Talablar bo'limida) Wolfram tilining o'rnatilgan funksiyasidan ko'proq narsaga tayanadigan har qanday xususiyat uchun eslatma mavjud. (Albatta, haqiqiy ma'lumotlar haqida gap ketganda, hatto ushbu funksionallik bilan bog'liq muammolar bo'lishi mumkin - chunki real dunyo ma'lumotlari doimiy ravishda o'zgarib turadi va ba'zan hatto uning ta'riflari va tuzilishi ham o'zgaradi.)

Wolfram funksiyalar ombori uchun barcha kodlar Wolfram-da yozilishi kerakmi? Albatta, tashqi API ichidagi kod Wolfram tilida yozilmasligi kerak, bu hatto til kodini ham qilmaydi. Haqiqatan ham, agar siz deyarli har qanday tashqi til yoki kutubxonada funksiya topsangiz, uni Wolfram funksiyalar omborida ishlatishga imkon beruvchi o'ramni yaratishingiz mumkin. (Odatda buning uchun siz o'rnatilgan funktsiyalardan foydalanishingiz kerak Tashqi baholash yoki Tashqi funksiya Volfram tili kodida.)

Xo‘sh, buni qilishdan nima ma’no bor? Asosan, bu sizga butun Wolfram Language tizimidan va uning birlashtirilgan dasturiy ta'minot imkoniyatlaridan foydalanish imkonini beradi. Agar siz asosiy dasturni tashqi kutubxona yoki tildan olsangiz, foydalanuvchilarga allaqachon amalga oshirilgan har qanday funksiyadan osongina foydalanish imkonini beruvchi qulay yuqori darajadagi funksiyani yaratish uchun Wolfram tilining boy ramziy tuzilmasidan foydalanishingiz mumkin. Hech bo'lmaganda, bu kutubxonalarni yuklashning barcha qurilish bloklari va boshqalar mavjud bo'lgan ideal dunyoda amalga oshirilishi kerak, bu holda ular Volfram tili tomonidan avtomatik ravishda ishlanadi. (Ta'kidlash joizki, amalda muammolar bo'lishi mumkin tashqi tillarni sozlash maxsus kompyuter tizimi va bulutli saqlash qo'shimcha xavfsizlik muammolarini keltirib chiqarishi mumkin).

Aytgancha, odatdagi tashqi kutubxonalarni birinchi marta ko'rib chiqsangiz, ular ko'pincha bir nechta funktsiyalarni qamrab olish uchun juda murakkab bo'lib tuyuladi, lekin ko'p hollarda murakkablikning katta qismi kutubxona uchun zarur bo'lgan infratuzilmani va barcha funktsiyalarni yaratishdan kelib chiqadi. uni qo'llab-quvvatlang. Biroq, Wolfram tilidan foydalanilganda, infratuzilma odatda paketlarga allaqachon o'rnatilgan va shuning uchun ushbu qo'llab-quvvatlash funktsiyalarining barchasini batafsil ko'rsatishning hojati yo'q, faqat kutubxonada "eng yuqori" ilovaga xos funktsiyalar uchun funktsiyalar yarating. .

Bilimlar bazasining "ekotizimi"

Agar siz muntazam foydalanadigan funksiyalarni yozgan bo'lsangiz, ularni Wolfram Function Repository-ga yuboring! Agar bundan boshqa biror narsa chiqmasa (tilni rivojlantirish), shunda ham shaxsiy foydalanish uchun funktsiyalardan foydalanish sizga qulayroq bo'ladi. Biroq, agar siz funktsiyalardan muntazam foydalansangiz, boshqa foydalanuvchilar ham ularni foydali deb topishlari mantiqan to'g'ri.

Tabiiyki, siz o'z funktsiyalaringizni baham ko'ra olmaydigan yoki xohlamaydigan yoki shaxsiy axborot resurslariga kirish imkoniga ega bo'lgan vaziyatga tushib qolishingiz mumkin. Bunday holatlarda ham siz o'zingizning bulut hisob qaydnomangizda funktsiyalarni o'rnatishingiz mumkin, huquqlarni belgilash ularga kirish. (Agar tashkilotingiz mavjud bo'lsa Wolfram Enterprise shaxsiy buluti, keyin u tez orada tashkilotingiz ichidan boshqarilishi va koʻrishlarni uchinchi tomon foydalanuvchilari tomonidan koʻrishga majburlash yoki koʻrmaslikni sozlashi mumkin boʻlgan shaxsiy xususiyatlar omborini joylashtirishi mumkin boʻladi.)

Wolfram funksiyalar omboriga topshirgan funksiyalaringiz mukammal boʻlishi shart emas; ular faqat foydali bo'lishi kerak. Bu biroz klassik Unix hujjatlaridagi "Xatolar" bo'limiga o'xshaydi - "Ta'riflar bo'limi"da "Muallif eslatmalari" bo'limi mavjud bo'lib, unda siz o'zingizning funksiyangiz haqida allaqachon bilgan cheklovlar, muammolar va hokazolarni tasvirlashingiz mumkin. Bundan tashqari, siz o'zingizning xususiyatingizni omborga yuborganingizda, maxsus kuratorlar jamoasi tomonidan o'qiladigan taqdimot qaydlarini qo'shishingiz mumkin.

Xususiyat e'lon qilingandan so'ng, uning sahifasida har doim ikkita havola bo'ladi: "Ushbu xususiyat haqida xabar yuboring"Va"Wolfram hamjamiyatida muhokama qiling" Agar siz eslatma qo'shayotgan bo'lsangiz (masalan, menga xatolar haqida gapirib bering), siz xabaringiz va aloqa ma'lumotlarini xususiyat muallifiga ulashishni xohlayotganingizni bildiruvchi katakchani belgilashingiz mumkin.

Ba'zan siz Wolfram funktsiyalari omboridagi funktsiyalardan, masalan, o'rnatilgan funktsiyalardan, ularning kodiga qaramasdan foydalanishni xohlaysiz. Biroq, agar siz ichkariga nazar tashlamoqchi bo'lsangiz, har doim yuqori qismida Notepad tugmasi mavjud. Unga bosing va siz xususiyatlar omboriga yuborilgan asl ta'rifli daftarning o'z nusxasini olasiz. Ba'zan siz buni o'zingizning ehtiyojlaringiz uchun namuna sifatida ishlatishingiz mumkin. Shu bilan birga, siz ushbu funktsiyaning o'z modifikatsiyasini ham ishlab chiqishingiz mumkin. Siz kompyuteringizdagi ombordan yoki aphid bulutli saqlash hisob qaydnomangizdan topilgan ushbu funksiyalarni joylashtirishni xohlashingiz mumkin, ehtimol siz ularni funktsiya bilimlari bazasiga, ehtimol asl funktsiyaning takomillashtirilgan, kengaytirilgan versiyasi sifatida topshirishni xohlaysiz.

Kelajakda biz xususiyatlar omborlari uchun Git uslubidagi forkingni qo'llab-quvvatlashni rejalashtirmoqdamiz, ammo hozircha biz uni sodda saqlashga harakat qilmoqdamiz va bizda har doim tilga o'rnatilgan har bir xususiyatning faqat bitta qabul qilingan versiyasi mavjud. Ko'pincha (ishlab chiquvchilar o'zlari ishlab chiqqan xususiyatlarni saqlab qolishdan voz kechmasalar va foydalanuvchi taqdimotlariga javob bermasalar), xususiyatning asl muallifi unga yangilanishlarni nazorat qiladi va yangi versiyalarni taqdim etadi, keyinchalik ular ko'rib chiqiladi va agar ular ko'rib chiqish jarayonidan o'tgan bo'lsa. , tilida nashr etilgan.

Keling, ishlab chiqilgan funktsiyalarni "versiyalash" qanday ishlashi haqidagi savolni ko'rib chiqaylik. Hozirda funksiyalar omboridagi funksiyadan foydalansangiz, uning taʼrifi doimiy ravishda kompyuteringizda (yoki bulutdan foydalanayotgan boʻlsangiz bulut hisobingizda) saqlanadi. Agar funksiyaning yangi versiyasi mavjud bo'lsa, keyingi safar undan foydalanganingizda sizga bu haqda xabar beruvchi xabar keladi. Va agar siz funktsiyani yangi versiyaga yangilashni xohlasangiz, uni buyruq yordamida amalga oshirishingiz mumkin Resurs yangilanishi. ("Funktsiya bloki" aslida ko'proq versiya ma'lumotlarini saqlaydi va biz kelajakda buni foydalanuvchilarimiz uchun yanada qulayroq qilishni rejalashtirmoqdamiz.)

Wolfram Function Repository-ning go'zal jihatlaridan biri shundaki, har qanday Wolfram Language dasturi, istalgan joyda undan funksiyalardan foydalanishi mumkin. Agar dastur bloknotda paydo bo'lsa, ko'pincha ombor funktsiyalarini o'qish oson "funktsiyaning ikkilik ob'ekti" funktsiyalari sifatida formatlash qulay bo'ladi (ehtimol, tegishli versiyalar to'plami bilan).

Siz har doim matn yordamida funksiyalar omboridagi istalgan funksiyaga kirishingiz mumkin ResourceFunction[...]. Va agar siz to'g'ridan-to'g'ri Wolfram Engine uchun kod yoki skript yozsangiz, bu juda qulay, masalan, bilan IDE yoki matnli kod muharriridan foydalanish (Funktsiyalar ombori bilan to'liq mos kelishini alohida ta'kidlash kerak Ishlab chiquvchilar uchun bepul Wolfram Engine).

U qanday ishlaydi?

Wolfram omboridagi funktsiyalar ichida buni xuddi shunday ishlatish mumkin resurs tizimlari kabi asoslar boshqa barcha mavjud omborlarimiz (ma'lumotlar ombori, Neyron Net Repository, demo loyihalar to'plami Boshqa barcha Wolfram tizim resurslari kabi, Resurs funktsiyasi yakuniy funksiyaga asoslanadi ResourceObject.

Tasavvur qiling Resurs funktsiyasi:

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Ichkarida siz funktsiyadan foydalangan holda ba'zi ma'lumotlarni ko'rishingiz mumkin Axborot:

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Resurs funksiyasini sozlash qanday ishlaydi? Eng oddiyi - bu faqat mahalliy holat. Funktsiyani qabul qiladigan (bu holda faqat sof funksiya) va uni berilgan dastur sessiyasi uchun resurs funktsiyasi sifatida belgilaydigan misol:

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Ta'rifni tuzganingizdan so'ng, siz resurs funktsiyasidan foydalanishingiz mumkin:

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

E'tibor bering, ushbu funktsiya blokida qora belgi mavjud Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi. Bu shuni anglatadiki, BLOB funksiyasi joriy seans uchun belgilangan xotiradagi resurs funksiyasiga ishora qiladi. Kompyuteringizda yoki bulut hisobingizda doimiy saqlanadigan resurs xususiyati kulrang belgiga ega Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi. Va Wolfram Feature Repository-da rasmiy manba xususiyati uchun to'q sariq rangli belgi mavjud Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi.

Xo'sh, Aniqlash daftaridagi Kengaytirish menyusidan foydalansangiz nima bo'ladi? Birinchidan, u bloknotdagi barcha ta'riflarni oladi va ulardan ramziylikni yaratadi ResourceObject). (Va agar siz matnga asoslangan IDE yoki dasturdan foydalanayotgan bo'lsangiz, unda siz ham aniq yaratishingiz mumkin ResourceObject)

Funktsiyani kompyuteringizdagi ombordan mahalliy joylashtirish buyruq yordamida amalga oshiriladi LocalCache sifatida saqlash uchun resurs ob'ekti uchun LocalObject fayl tizimingizda. Bulutli hisob qaydnomasiga joylashtirish buyruq yordamida amalga oshiriladi CloudDeploy resurs ob'ekti uchun va ommaviy bulutni joylashtirishdir CloudPublish. Barcha holatlarda Resource Register resurs funktsiyasi nomini ro'yxatdan o'tkazish uchun ham ishlatiladi, shuning uchun ResourceFunction["ism"] ishlaydi

Funktsiyalar ombori uchun Yuborish tugmasini bossangiz, uning ostida nima sodir bo'ladi ResourceSubmit resurs obyektiga chaqiriladi. (Agar siz matn kiritish interfeysidan foydalanayotgan bo'lsangiz, qo'ng'iroq qilishingiz ham mumkin ResourceSubmit to'g'ridan-to'g'ri.)

Odatiy bo'lib, taqdimotlar Wolfram ID bilan bog'langan nom ostida amalga oshiriladi. Ammo agar siz dasturchilar guruhi yoki tashkilot nomidan ariza topshirayotgan bo'lsangiz, mumkin alohida nashriyot identifikatorini o'rnating va uning o'rniga o'z qarashlaringiz bilan muloqot qilish uchun nom sifatida foydalaning.

Funksiyalaringizdan birortasini funksiya bilimlari bazasiga topshirganingizdan so‘ng, u ko‘rib chiqish uchun navbatga qo‘yiladi. Agar siz javob sifatida sharhlar olsangiz, ular odatda qo'shimcha "sharh hujayralari" qo'shilgan matn fayli shaklida bo'ladi. Siz har doim tashrif buyurib, arizangiz holatini tekshirishingiz mumkin resurs tizimi a'zolari portali. Ammo sizning xususiyatingiz ma'qullangandan so'ng, sizga xabar beriladi (elektron pochta orqali) va sizning xususiyatingiz Wolfram funksiyalar omboriga joylashtiriladi.

Ishda ba'zi nozikliklar

Bir qarashda siz shunchaki ta'rif daftarini olib, uni so'zma-so'z funksiyalar omboriga qo'yishingiz mumkindek tuyulishi mumkin, ammo aslida juda ko'p nozikliklar mavjud va ularni boshqarish juda murakkab meta-dasturlashni, ramziy ishlov berishni talab qiladi. funktsiyani belgilaydigan kod sifatida va Notepadning o'zi aniqlanadi. Bularning aksariyati ichki qismda, sahna ortida sodir bo'ladi, lekin agar siz xususiyat bilimlari bazasiga hissa qo'shmoqchi bo'lsangiz, tushunishga arziydigan ba'zi oqibatlarga olib kelishi mumkin.

Birinchi zudlik bilan noziklik: Ta'rif daftarini to'ldirganingizda, siz o'z funksiyangizga o'xshash nom yordamida hamma joyda murojaat qilishingiz mumkin. MyFunction, bu Wolfram tilidagi funktsiyaning odatiy nomiga o'xshaydi, lekin funksiyalar ombori hujjatlari uchun bu o'zgartiriladi ResourceFunction["Mening funksiyam"] foydalanuvchilar funksiya bilan ishlashda aslida foydalanadigan narsadir.

Ikkinchi noziklik: Ta'rif daftaridan resurs funksiyasini yaratganingizda, funksiya ta'rifida ishtirok etadigan barcha bog'liqliklar qo'lga kiritilishi va aniq kiritilishi kerak. Biroq, ta'riflar modulli bo'lib qolishini ta'minlash uchun siz hamma narsani noyob qilib qo'yishingiz kerak nom maydoni. (Albatta, hammasini bajaradigan funktsiyalar, funksiyalar omborida.)

Odatda siz ushbu nom maydonini sozlash uchun ishlatiladigan kodning hech qanday izini ko'rmaysiz. Ammo, agar biron sababga ko'ra siz o'z funktsiyangiz ichida kam bajarilgan belgini chaqirsangiz, bu belgi funktsiyaning ichki kontekstida ekanligini ko'rasiz. Biroq, Definition Notepad-ni qayta ishlashda, hech bo'lmaganda, funktsiyaning o'ziga mos keladigan belgi eng yaxshi ko'rsatish uchun sozlanishi ichki kontekstda xom belgi emas, balki funktsional BLOB sifatida.

Funktsiyalar ombori yangi funktsiyalarni aniqlash uchun mo'ljallangan. Va bu funktsiyalarda variantlar bo'lishi mumkin. Ko'pincha bu parametrlar (masalan, usul yoki Tasvir hajmi) o'rnatilgan funktsiyalar uchun, shuningdek, o'rnatilgan belgilar mavjud bo'lganlar uchun ishlatilishi mumkin bo'ladi. Ammo ba'zida yangi xususiyat yangi variantlarni talab qilishi mumkin. Modullilikni saqlab qolish uchun bu parametrlar noyob ichki kontekstda (yoki butun resurs funktsiyalari, ya'ni o'zlari kabi) aniqlangan belgilar bo'lishi kerak. Oddiylik uchun funksiyalar ombori string ta'riflarida yangi variantlarni aniqlash imkonini beradi. Va foydalanuvchining qulayligi uchun ushbu ta'riflar (ular ishlatilgan deb hisoblasak OptionValue и OptionsPattern) funksiyalardan foydalanganda parametrlarni faqat satrlar sifatida emas, balki bir xil nomli global belgilar sifatida ham ko'rsatish mumkin bo'lgan tarzda qayta ishlanadi.

Aksariyat funksiyalar har safar chaqirilganda bajarishi kerak bo‘lgan ishni bajaradi, lekin ba’zi funksiyalar ma’lum bir seansda ishga tushishidan oldin ishga tushirilishi kerak – va bu muammoni hal qilish uchun “Ta’rif” bo‘limida “Initializatsiya” bo‘limi mavjud.

Ombordagi funktsiyalar allaqachon omborda mavjud bo'lgan boshqa funktsiyalardan foydalanishi mumkin; bir-biriga havola qiladigan ikkita (yoki undan ko'p) funktsiyalarni o'z ichiga olgan funksiyalar ombori uchun ta'riflarni o'rnatish uchun ularni dastur seansida joylashtirishingiz kerak, shunda ulardagi kabi havola ResourceFunction["ism"], keyin siz ushbu funktsiyalarning o'zingizga kerak bo'lgan kombinatsiyalarini, misollarni (tushunmadim) yaratishingiz va avvalroq e'lon qilinganlar asosida omborga yangi funktsiya qo'shishingiz mumkin. (yoki allaqachon yoki avval - ikkala so'z ham noqulay)

Rivojlanish istiqbollari. Ombor haqiqatan ham kattalashganda nima bo'lishi kerak?

Bugun biz endigina Wolfram Feature Repository-ni ishga tushirmoqdamiz, ammo vaqt o'tishi bilan biz uning hajmi va funksionalligi keskin o'sishini kutamiz va rivojlanish jarayonida biz kutgan turli xil muammolar paydo bo'lishi mumkin.

Birinchi muammo funksiya nomlari va ularning o'ziga xosligi bilan bog'liq. Funktsiyalar ombori shunday tuzilganki, Wolfram tilidagi o'rnatilgan funksiyalar singari, siz istalgan funksiyaga uning nomini ko'rsatish orqali murojaat qilishingiz mumkin. Ammo bu muqarrar ravishda funktsiya nomlari omborda global miqyosda yagona bo'lishi kerakligini anglatadi, shuning uchun, masalan, faqat bitta bo'lishi mumkin. ResourceFunction["Mening sevimli funksiyam"].

Avvaliga bu katta muammo bo'lib tuyulishi mumkin, lekin bu Internet domenlari yoki ijtimoiy media tutqichlari kabi narsalar bilan bir xil muammo ekanligini tushunish kerak. Va haqiqat shundaki, tizimda ro'yxatga oluvchi bo'lishi kerak - va bu bizning kompaniyamiz Wolfram funktsiyalari bilim bazasi uchun bajaradigan rollardan biridir. (Amborning shaxsiy versiyalari uchun ularning registratorlari administratorlar bo'lishi mumkin.) Albatta, Internet domenini hech narsaga ega bo'lmasdan ro'yxatdan o'tkazish mumkin, lekin funksiyalar omborida funksiya nomi faqat uning haqiqiy ta'rifi mavjud bo'lsa, ro'yxatdan o'tkazilishi mumkin. funktsiya.

Wolfram funksiyasi ma’lumotlar bazasini boshqarishdagi rolimizning bir qismi funksiya ta’rifidan kelib chiqqan holda funksiya uchun tanlangan nom mantiqiy bo‘lishini va u Volfram tilidagi nomlash qoidalariga rioya qilishini ta’minlashdan iborat. Biz Wolfram tilida o'rnatilgan funksiyalarni nomlash bo'yicha 30 yildan ortiq tajribaga egamiz va bizning kuratorlar jamoasi bu tajribani funksiyalar omboriga ham olib keladi. Albatta, har doim istisnolar mavjud. Misol uchun, ba'zi funksiyalar uchun qisqa nomga ega bo'lish ma'qul ko'rinishi mumkin, lekin uzoqroq va aniqroq nom bilan "himoya qilish" yaxshiroqdir, chunki kelajakda shunga o'xshash funktsiya nomini yaratmoqchi bo'lgan odamga duch kelish ehtimoli kamroq. .

(Bu yerda shuni taʼkidlash joizki, funksiyalarni ajratib koʻrsatish uchun oddiygina aʼzo yorligʻini qoʻshish moʻljallangan samarani bermaydi. Chunki har doim teg belgilashni talab qilmaguningizcha, har qanday funksiya uchun standart tegni belgilashingiz, shuningdek, muallif teglarini ajratishingiz kerak boʻladi. , bu yana global muvofiqlashtirishni talab qiladi.)

Wolfram funktsiyalari bo'yicha bilimlar bazasi o'sib borishi sababli, paydo bo'lishi mumkin bo'lgan muammolardan biri bu tizim tomonidan taqdim etilgan funktsiyalarning kashf etilishidir. qidiruv funktsiyasi (va ta'rif fayllari kalit so'zlarni va boshqalarni o'z ichiga olishi mumkin). Wolfram tilidagi o'rnatilgan funktsiyalar uchun hujjatlarda funktsiyalarni "reklama" qilishga yordam beradigan barcha turdagi o'zaro mos yozuvlar mavjud. Funktsiyalar omboridagi funksiyalar o'rnatilgan funktsiyalarga murojaat qilishi mumkin. Ammo boshqa yo'l haqida nima deyish mumkin? Buni amalga oshirish uchun biz o'rnatilgan funktsiyalar uchun hujjatlar sahifalarida ombor funktsiyalarini ochish uchun turli dizaynlar bilan tajriba o'tkazamiz.

Volfram tilidagi o'rnatilgan funktsiyalar uchun tomonidan taqdim etilgan aniqlash qatlami mavjud "yordam sahifalari" tarmog'i, bu muayyan hududlarga tegishli xususiyatlarning tashkil etilgan ro'yxatini taqdim etadi. Man sahifalarini to'g'ri muvozanatlash har doim qiyin va Wolfram tili o'sib borishi bilan man sahifalari ko'pincha butunlay qayta tashkil etilishi kerak. Repozitariydan funksiyalarni keng toifalarga joylashtirish va hatto bu toifalarni izchil ravishda ajratish juda oson, ammo tilga oid maʼlumot sahifalarini toʻgʻri tashkil qilish ancha qimmatlidir. Funktsiya bilimlari bazasi uchun ularni qanday qilib eng yaxshi yaratish hali aniq emas. Masalan, CreateResourceObjectGallery Xususiyatlar omborida har kim o'z "tanlovlari" ni o'z ichiga olgan veb-sahifani ombordan joylashtirishi mumkin:

Wolfram Function Repository: Wolfram til kengaytmalari uchun ochiq kirish platformasi

Wolfram funksiyalar ombori doimiy funksiyalar ombori sifatida sozlangan, undagi har qanday funksiya doimo ishlaydi. Albatta, funksiyalarning yangi versiyalari paydo bo'lishi mumkin va biz kutamiz, albatta, ba'zi xususiyatlar vaqt o'tishi bilan eskiradi. Funktsiyalar, agar ular dasturlarda ishlatilsa, ishlaydi, lekin ularning hujjat sahifalari yangi, yanada rivojlangan funksiyalarga havola qilinadi.

Wolfram Feature Repository yangi xususiyatlarni tezda kashf qilish va Wolfram tilidan foydalanishning yangi usullarini o'rganishga yordam berish uchun mo'ljallangan. Xususiyatlar omborida o'rganilganlarning ba'zilari oxir-oqibat asosiy Volfram tilining o'rnatilgan qismlariga aylanishiga juda optimistikmiz. So'nggi o'n yil ichida bizda shunga o'xshash to'plam bor edi dastlab Wolfram | da kiritilgan xususiyatlar Alfa. Va bu tajribadan olingan saboqlardan biri shundaki, biz Wolfram tiliga kiritilgan har bir narsada e'tibor qaratadigan sifat va izchillik standartlariga erishish juda ko'p mehnatni talab qiladi, bu ko'pincha g'oyani amalga oshirish uchun dastlabki harakatlardan ko'ra qiyinroqdir. Shunday bo'lsa ham, funktsiya bilimlari bazasidagi funktsiya kelajakda Wolfram tiliga o'rnatilishi mumkin bo'lgan kelajakdagi funktsiya uchun kontseptsiyaning juda foydali isboti bo'lib xizmat qilishi mumkin.

Bu erda eng muhimi, funksiyalar omboridagi funksiya hozirda har bir foydalanuvchi foydalanishi mumkin bo'lgan narsadir. Ona tili funksiyasi ancha yaxshi va samaraliroq bo‘lishi mumkin, ammo funksiyalar ombori foydalanuvchilarga barcha yangi funksiyalardan darhol foydalanish imkonini beradi. Va, eng muhimi, bu kontseptsiya har kimga o'zi xohlagan yangi xususiyatlarni qo'shish imkonini beradi.

Ilgari Wolfram tili tarixida bu g'oya avvalgidek ishlamagan bo'lardi, ammo bu bosqichda tilga shunchalik ko'p kuch sarflandi va tilni loyihalash tamoyillarini shu qadar chuqur anglab yetdiki, hozir u juda o'ziga xos ko'rinadi. katta foydalanuvchilar hamjamiyatiga ularni keng doiradagi foydalanuvchilar uchun foydali qilish uchun dizayn izchilligini saqlaydigan xususiyatlarni qo'shish mumkin.

Wolfram Language foydalanuvchilari hamjamiyatida aql bovar qilmaydigan iste'dod ruhi (?) mavjud. (Albatta, bu hamjamiyat turli sohalarda koʻplab yetakchi ilmiy-tadqiqotchilarni oʻz ichiga oladi.) Umid qilamanki, Wolfram Feature Repository ushbu isteʼdod ruhini ochish va tarqatish uchun samarali platformani taqdim etadi. Faqat birgalikda biz Wolfram tilining hisoblash paradigmasi qo'llanilishi mumkin bo'lgan maydonni sezilarli darajada kengaytiradigan narsani yaratishimiz mumkin.

30 yildan ortiq vaqt ichida biz Wolfram tili bilan uzoq yo'lni bosib o'tdik. Endi birga, yanada uzoqroqqa boraylik. Men butun dunyo bo'ylab Wolfram tilining barcha hurmatli foydalanuvchilarini buning uchun platforma sifatida xususiyatlar omboridan, shuningdek, Dasturchilar uchun Free Wolfram Engine kabi yangi dasturiy ta'minot loyihasidan foydalanishni qat'iy tavsiya qilaman.

Manba: www.habr.com

a Izoh qo'shish