Salom, Xabr! E'tiboringizga Stiven Volfram postining tarjimasini taqdim etaman
Volfram tilining izchilligi uchun zarur shartlar
Bugun biz dasturlash tili bilan birga katta yutuqlar ostonasida turibmiz
Wolfram Function Repository - bu Wolfram tilining o'ziga xos tabiati tufayli nafaqat dasturlash tili, balki dasturlash tili sifatida ham mumkin bo'lgan narsadir.
Masalan, Wolfram funksiyasi ombori allaqachon mavjud
Xuddi shunday ko'proq
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
Bu erda shuni ta'kidlash kerakki, ishlov berishda
Umid qilamanki, qo'llab-quvvatlash bilan
Ombordagi funksiyalar Wolfram tilida yozilgan kichik yoki katta kod qismlarini o'z ichiga olishi mumkin. Masalan, bu qo'ng'iroqlar bo'lishi mumkin
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
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
Xarajatlarni kamaytirish bilan birga samaradorlikni oshirish
Internetdan oldin ham Wolfram tili kodini almashish usullari mavjud edi (bizning birinchi yirik markazlashtirilgan loyihamiz
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.
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
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:
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
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:
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
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.
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:
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
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
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
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.
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
Funktsiyalar omborining asosiy maqsadi (uning nomidan ko'rinib turibdiki) tilga yangi xususiyatlarni kiritishdir. Agar siz yangi ma'lumotlarni qo'shmoqchi bo'lsangiz yoki
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
Xo'sh, funktsiya omboridagi funktsiya kodida nima bo'lishi mumkin?
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
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
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,
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: "
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
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
U qanday ishlaydi?
Wolfram omboridagi funktsiyalar ichida buni xuddi shunday ishlatish mumkin
Tasavvur qiling
Ichkarida siz funktsiyadan foydalangan holda ba'zi ma'lumotlarni ko'rishingiz mumkin
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:
Ta'rifni tuzganingizdan so'ng, siz resurs funktsiyasidan foydalanishingiz mumkin:
E'tibor bering, ushbu funktsiya blokida qora belgi mavjud . 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 . Va Wolfram Feature Repository-da rasmiy manba xususiyati uchun to'q sariq rangli belgi mavjud .
Xo'sh, Aniqlash daftaridagi Kengaytirish menyusidan foydalansangiz nima bo'ladi? Birinchidan, u bloknotdagi barcha ta'riflarni oladi va ulardan ramziylikni yaratadi
Funktsiyani kompyuteringizdagi ombordan mahalliy joylashtirish buyruq yordamida amalga oshiriladi
Funktsiyalar ombori uchun Yuborish tugmasini bossangiz, uning ostida nima sodir bo'ladi
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
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
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
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
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
Funktsiyalar ombori yangi funktsiyalarni aniqlash uchun mo'ljallangan. Va bu funktsiyalarda variantlar bo'lishi mumkin. Ko'pincha bu parametrlar (masalan,
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
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.
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.
Volfram tilidagi o'rnatilgan funktsiyalar uchun tomonidan taqdim etilgan aniqlash qatlami mavjud
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
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