Halo, Habr! Kuring nampilkeun ka perhatian anjeun tarjamahan tina tulisan Stephen Wolfram
Prasyarat pikeun konsistensi basa Wolfram
Dinten ieu kami nangtung dina bangbarung prestasi hébat babarengan jeung basa programming
The Wolfram Function Repository mangrupikeun hal anu dimungkinkeun ku sifat unik tina Wolfram Language henteu ngan ukur salaku basa pamrograman, tapi ogé salaku
Contona, dina Repository fungsi Wolfram geus ngandung
Kitu ogé leuwih ti
Pikeun dugi ka halaman, salin obyék di luhur (fungsi BLOB), lebetkeun kana garis input teras jalankeun fungsina - éta parantos diwangun kana basa Wolfram sareng dirojong sacara standar dimimitian ku
Ieu kudu dicatet yén nalika ngolah
Kuring miharep éta kalayan rojongan
Fungsi tina gudang bisa ngandung potongan leutik atawa badag kode ditulis dina Wolfram Basa. Salaku conto, ieu tiasa janten telepon
Struktur cangkang sareng program tina Wolfram Feature Repository dirancang supados sadayana tiasa nyumbang kana panyabab umum ku cara anu paling saderhana sareng merenah pikeun aranjeunna - kanyataanna, ngan
Aya seueur trade-offs sareng detil dina pendekatan ieu, tapi tujuan kami nyaéta pikeun ngaoptimalkeun gudang fitur Wolfram boh pikeun pangalaman pangguna sareng pikeun mastikeun yén fitur-fitur pangguna énggal nyumbang sacara bermakna pikeun pangembangan basa. Salaku urang tumuwuh, Kuring boga mamang yen urang kudu invent métode anyar pikeun ngolah jeung validating fungsi diwangun kana gudang, teu saeutik pikeun pangatur angka nu gede ngarupakeun fungsi sarta manggihan nu pamaké butuh. Sanajan kitu, éta encouraging yén jalur kami geus dipilih mangrupakeun mimiti alus. Kuring pribadi
Ningkatkeun efisiensi bari ngirangan biaya
Malah sateuacan Internét, aya cara pikeun ngabagi kodeu Wolfram Language (proyék terpusat utama munggaran urang nyaéta
Pikeun leuwih ti 30 taun, parusahaan urang geus digawé getol pikeun ngajaga integritas struktur basa Wolfram, sarta ieu penting pikeun mastikeun yén basa Wolfram jadi teu ngan hiji basa program, tapi ogé mangrupa
Rupa-rupa prosés komputasi lumangsung dina struktur palaksanaan unggal fungsi. Ieu kudu dicatet yén perlu yén fungsi ngabogaan penampilan jelas tur seragam jeung readability visual pikeun pamaké. Dina kontéks ieu, fungsi anu diwangun dina Wolfram Language dibere langkung ti 6000 conto sekuen ngeunaan kumaha leres program fungsi (ieu mangrupikeun conto kami.
Nyiptakeun gudang anu leres-leres tiasa dianggo mangrupikeun tugas pemrograman meta anu pikaresepeun. Salaku conto, kaleuwihan larangan dina program moal ngijinkeun kéngingkeun ngahijikeun sareng universalitas algoritma anu diperyogikeun. Sagampil sareng jumlah larangan fungsional anu teu cekap, anjeun moal tiasa ngalaksanakeun sekuen palaksanaan algoritma anu leres. Sababaraha conto sateuacana pikeun ngalaksanakeun kompromi tina pendekatan ieu, dilaksanakeun ku perusahaan kami, damel rada stabil - ieu nyaéta:
Sadaya conto di luhur gaduh fitur dasar - objék sareng fungsi anu dikumpulkeun dina proyék gaduh tingkat structuring sareng distribusi prosés anu kacida luhurna. Tangtosna, jéntré ngeunaan struktur naon demo atanapi jaringan saraf atanapi anu sanésna tiasa bénten pisan, tapi struktur dasar pikeun gudang ayeuna tetep sami. Janten kumaha pendapat anjeun, pangguna anu dipikacinta, ngeunaan nyiptakeun gudang sapertos anu nambihan ekstensi kana basa Wolfram? Basa Wolfram dirancang pikeun pisan fléksibel, ku kituna tiasa diperpanjang sareng dirobih ku cara naon waé. Kaayaan ieu penting pisan pikeun kamampuhan pikeun gancang nyieun rupa-rupa proyék software skala badag dina Wolfram Language. Perlu dicatet di dieu yén nalika kalenturan basa ningkat, biaya proyék anu dilaksanakeun dina basa sapertos kitu pasti bakal ningkat. Ieu alatan kanyataan yén beuki pamaké ngagunakeun basa sapertos, fungsionalitas beuki dedicated anjeunna nampi, tapi urang teu kudu poho yén pendekatan ieu ogé bisa boga sisi négatip tina segi henteu mampuh pikeun mastikeun konsistensi konsisten modul program.
Aya masalah umum sareng perpustakaan dina basa pamrograman tradisional - upami anjeun nganggo hiji perpustakaan, contona, kodeu bakal jalanna leres, tapi upami anjeun nyobian nganggo sababaraha perpustakaan, teu aya jaminan yén aranjeunna bakal berinteraksi kalayan leres. . Ogé, dina basa program tradisional - teu saperti basa komputasi full-fledged - teu aya cara pikeun ngajamin ayana konsistén diwangun-di representasi pikeun sagala fungsi atawa tipe data lian ti struktur dasar maranéhanana. Tapi, dina kanyataanana, masalahna malah leuwih badag batan sigana di glance kahiji: lamun hiji ngawangun vertikal skala badag fungsionalitas, teras tanpa waragad badag programming proyék terpusat nu urang nempatkeun kana basa Wolfram, mustahil mun ngahontal konsistensi. Éta kituna penting yén sakabéh modul software salawasna gawé bareng bener.
Janten ide di balik gudang fitur Wolfram nyaéta pikeun ngahindarkeun masalah anu digariskeun di luhur ku ngan saukur nambihan ekstensi kana basa dina potongan kode anu kawilang leutik liwat fitur individu anu langkung gampang dikembangkeun salaku modul anu koheren. Kitu cenah, aya fitur programming nu teu bisa dijieun merenah ngagunakeun fungsi individu (jeung parusahaan urang ngarencanakeun ngaleupaskeun hiji algoritma programming dioptimalkeun dina mangsa nu bakal datang pikeun mantuan nerapkeun bungkusan software skala badag). Sanajan kitu, dumasar kana fungsi geus diwangun kana Wolfram Basa, aya loba kemungkinan programming nu dilaksanakeun dumasar kana fungsi individu. Gagasan di dieu nyaéta yén kalayan usaha program anu kawilang sakedik tiasa nyiptakeun sajumlah fungsi anu énggal sareng mangpaat anu bakal nyayogikeun koherensi anu cekap pikeun desain, aranjeunna bakal saluyu sareng anu sanés, sareng ogé, salian ieu, aranjeunna. bakal bisa kalayan gampang tur loba dipaké dina basa dina mangsa nu bakal datang.
Pendekatan ieu, tangtosna, kompromi. Upami pakét anu langkung ageung dilaksanakeun, dunya fungsional anu énggal tiasa dibayangkeun anu bakal pisan kuat sareng mangpaat. Lamun aya anu peryogi pikeun meunangkeun fungsionalitas anyar nu bakal pas dina kalawan sagalana sejenna, tapi anjeun teu daék méakkeun loba usaha dina ngamekarkeun proyék, ieu, hanjakalna, bisa ngakibatkeun hiji réduksi dina lingkup proyek Anjeun. Gagasan di balik Repository fitur Wolfram nyaéta pikeun nyayogikeun fungsionalitas kana bagian anu ngahartikeun proyék; pendekatan ieu bakal nambihan fungsionalitas anu kuat bari ngagampangkeun pikeun ngajaga konsistensi anu hadé dina proyék program.
Ngabantosan nambihan fungsi khusus kana gudang fungsi
Tim kami parantos kerja keras pikeun ngagampangkeun pangguna pikeun nyumbang kana fitur gudang Wolfram. Dina desktop (geus di
Aya dua léngkah utama anu anjeun kedah laksanakeun: kahiji, nyerat kodeu pikeun fungsi anjeun sareng, kadua, nyerat dokuméntasi anu ngagambarkeun kumaha fungsi anjeun kedah jalan.
Pencét tombol "Buka Sampel" di luhur pikeun ningali conto naon anu anjeun kedah laksanakeun:
Intina, anjeun nyobian nyiptakeun anu sami sareng fungsi anu diwangun dina Wolfram Language. Kacuali yén éta tiasa ngalakukeun anu langkung spésifik tibatan fungsi anu diwangun. Dina waktos anu sami, ekspektasi ngeunaan kasampurnaan sareng reliabilitasna bakal langkung handap.
Anjeun kedah masihan nami fungsi anjeun anu nuturkeun pedoman penamaan fungsi Wolfram Language. Salaku tambahan, anjeun kedah ngembangkeun dokuméntasi pikeun fungsi anjeun, sami sareng fungsi basa anu diwangun. Kuring bakal ngobrol ngeunaan ieu dina leuwih jéntré engké. Pikeun ayeuna mah, perhatikeun yén dina barisan tombol di luhur file notebook definisi aya tombol
Lamun anjeun yakin sagalana geus kaeusi kaluar leres tur anjeun siap, klik tombol "Cék". Éta normal pisan yén anjeun teu acan terang sadayana detilna. Jadi fungsi "Cék" otomatis bakal ngajalankeun sarta ngalakukeun loba gaya jeung cek konsistensi. Seringna, éta bakal langsung ngajurung anjeun pikeun ngonfirmasi sareng nampi koréksi (Contona: "Garis ieu kedah ditungtungan ku titik dua," sareng éta bakal nyarankeun anjeun ngalebetkeun titik dua). Kadang-kadang manehna bakal nanya ka anjeun pikeun nambahkeun atawa ngarobah hal sorangan. Kami bakal terus-terusan nambihan fitur-fitur anyar kana pungsionalitas otomatis tina tombol Cék, tapi dasarna tujuanana nyaéta pikeun mastikeun yén sadaya anu anjeun kirimkeun kana gudang fitur parantos nuturkeun saloba pedoman gaya anu mungkin.
Janten, saatos ngajalankeun "Cék", anjeun tiasa nganggo "Preview". "Preview" nyiptakeun sawangan halaman dokuméntasi anu anjeun tangtukeun pikeun fungsi anjeun. Anjeun oge bisa nyieun sawangan pikeun file nu dijieun dina komputer Anjeun atawa pikeun payil nu aya di gudang awan. Upami, kusabab sababaraha alesan, anjeun henteu sugema ku naon anu anjeun tingali dina sawangan, kantun uih deui sareng ngadamel koréksi anu diperyogikeun, teras pencét deui tombol Tilik.
Ayeuna anjeun siap nyorong fungsi anjeun kana gudang. Tombol Deploy masihan anjeun opat pilihan:
Anu penting dina léngkah ieu nyaéta anjeun tiasa ngalebetkeun fungsi anjeun ka gudang fungsi Wolfram supados sayogi pikeun saha waé. Dina waktos anu sami, anjeun ogé tiasa nempatkeun fungsi anjeun pikeun sajumlah pangguna anu kawates. Contona, Anjeun bisa nyieun hiji pungsi nu hosted lokal dina komputer Anjeun jadi sadia sawaktos Anjeun make komputer nu tangtu. Atawa anjeun bisa masangkeunana dina Anjeun
Ku kituna hayu urang nyebutkeun rék sabenerna ngalebetkeun fungsi anjeun ka basis pangaweruh fungsi Wolfram. Jang ngalampahkeun ieu, anjeun klik tombol "Kirim" ka gudang. Janten naon anu kajantenan ayeuna? Aplikasi anjeun langsung antrian pikeun ditinjau sareng persetujuan ku tim kurator khusus kami.
Nalika aplikasi anjeun maju ngaliwatan prosés persetujuan (anu biasana nyandak sababaraha dinten), anjeun bakal nampi komunikasi ngeunaan statusna sareng kamungkinan saran pikeun dianggo ka hareup. Tapi sakali fitur anjeun disatujuan, éta bakal langsung diterbitkeun ka Wolfram Feature Repository sareng bakal sayogi pikeun saha waé anu dianggo. (Sareng ieu bakal muncul dina
Naon anu kudu aya di gudang?
Ieu kudu dicatet yén parusahaan urang boga standar kacida luhurna pikeun completeness, reliabilitas jeung kualitas sakabéh, sarta tina 6000+ fungsi nu urang geus diwangun kana basa Wolfram leuwih 30+ taun kaliwat, sadayana minuhan sarat di luhur. Tujuan tina Repository Fungsi Wolfram nyaéta ngagunakeun sadaya struktur sareng fungsionalitas anu parantos aya dina Basa Wolfram pikeun nambihan seueur fungsi anu langkung hampang (nyaéta, fungsi kinerja anu langkung luhur) sabisa-bisa.
Tangtu, fungsi dina Repository fungsi Wolfram kudu saluyu jeung prinsip desain Wolfram Basa - ambéh maranéhanana bisa pinuh berinteraksi sareng fungsi sejen tur ekspektasi pamaké ngeunaan kumaha fungsi kudu jalan leres. Nanging, fungsina henteu kedah lengkep atanapi reliabilitas anu sami.
Dina fungsi anu diwangun dina basa Wolfram, urang kerja keras pikeun ngajantenkeun fungsi program sacara umum sabisa. Kitu cenah, nalika dina Repository fungsi Wolfram teu aya anu lepat sareng gaduh fungsi di dinya anu ngan saukur nanganan sababaraha kasus anu khusus tapi mangpaat. Contona, fungsi
Titik anu sanés anu aya hubunganana sareng fungsi anu diwangun nyaéta perusahaan urang ngalakukeun sagala usaha pikeun nanganan sadaya kasus atipikal, pikeun nanganan input anu salah, sareng sajabana. Dina Repository fungsi, éta sagemblengna normal pikeun aya hiji fungsi husus nu handles kasus utama ngarengsekeun masalah jeung malire sakabeh batur.
Titik anu jelas nyaéta yén éta langkung saé gaduh fungsi anu langkung seueur sareng ngalakukeun éta langkung saé, tapi optimasi pikeun gudang fungsi - sabalikna tina fungsi anu diwangun dina basa Wolfram - kedah gaduh langkung seueur fungsi anu dibuntel sareng langkung seueur fungsi tinimbang ngagali kana. prosés palaksanaan unggal fungsi husus.
Ayeuna hayu urang tingali conto nguji fungsi dina gudang. Ekspektasi konsistensi pikeun fungsi sapertos sacara alami langkung handap tibatan fungsi basa anu diwangun. Ieu hususna leres dina kasus dimana fungsi gumantung kana sumber éksternal sapertos API, hal anu penting pikeun terus-terusan ngalaksanakeun tés konsisten, anu otomatis lumangsung dina algoritma verifikasi. Dina file nb, anjeun sacara eksplisit bisa nangtukeun definisi (dina bagian Émbaran Tambahan) jeung nangtukeun saloba tés sakumaha ditetepkeun ku boh input jeung output string atawa objék karakter pinuh tipe.
Hasilna, gudang fungsi bakal boga sababaraha complexities palaksanaan. Sababaraha baris ngan hiji baris kode, batur bisa ngawengku rébuan atawa puluhan rébu garis, kamungkinan ngagunakeun loba fungsi nulungan. Nalika éta patut nambahkeun hiji fungsi anu merlukeun saeutik pisan kode keur ngartikeun? Dasarna, lamun keur fungsi hiji aya
Tujuan utama gudang fungsi (sakumaha ngaranna nunjukkeun) nyaéta pikeun ngawanohkeun fitur anyar kana basa. Lamun hayang nambahkeun data anyar atawa
Sabenerna aya dua cara. Anjeun meureun hoyong ngenalkeun tipe objék anyar nu bakal dipaké dina fungsi anyar dina gudang fungsi. Sareng dina hal ieu, anjeun tiasa teras-terasan nyerat perwakilan simbolisna sareng dianggo nalika input atanapi kaluaran fungsi dina gudang fungsi.
Tapi kumaha upami anjeun hoyong ngawakilan obyék teras ngartikeun, ngalangkungan fungsi anu aya dina Basa Wolfram, yén anjeun badé damel sareng éta? The Wolfram Basa geus salawasna miboga mékanisme lightweight pikeun ieu, disebut
Janten, naon anu aya dina kode fungsi dina gudang fungsi?
Naha sadayana kode pikeun gudang fitur Wolfram kedah ditulis dina Wolfram? Tangtosna, kodeu di jero API éksternal henteu kedah diserat dina basa Wolfram, anu bahkan henteu ngadamel kode basa. Kanyataanna, lamun manggihan hiji fungsi dina ampir sagala basa éksternal atawa perpustakaan, Anjeun bisa nyieun hiji wrapper nu ngidinan Anjeun pikeun make eta dina Repository fungsi Wolfram. (Biasana anjeun kedah nganggo fungsi anu diwangun pikeun ieu
Janten naon gunana ngalakukeun ieu? Intina, ieu ngamungkinkeun anjeun ngagunakeun sakabéh sistem Wolfram Language terpadu sareng sadaya kamampuan parangkat lunak anu ngahijikeun. Upami anjeun nampi palaksanaan dasar tina perpustakaan atanapi basa éksternal, anjeun teras tiasa nganggo struktur simbolis anu beunghar tina Wolfram Language pikeun nyiptakeun fungsi tingkat luhur anu gampang anu ngamungkinkeun para pangguna gampang ngagunakeun fungsionalitas anu parantos dilaksanakeun. Sahenteuna, ieu kedah tiasa dilaksanakeun dina dunya idéal dimana sadaya blok wangunan perpustakaan loading jsb aya, nu hal ieu bakal diatur sacara otomatis ku Wolfram Language. (Perlu dicatet yén dina prakna meureun aya masalah sareng
Ku jalan kitu, nalika anjeun mimiti nempo perpustakaan éksternal has, aranjeunna mindeng sigana teuing kompléks bisa katutupan dina ngan sababaraha fungsi, tapi dina loba kasus, loba pajeulitna asalna tina nyieun infrastruktur diperlukeun pikeun perpustakaan jeung sagala fungsi pikeun. ngarojong eta. Nanging, nalika nganggo Basa Wolfram, prasarana biasana parantos diwangun kana bungkusan, janten henteu kedah ngalaan sadaya fungsi pangrojong ieu sacara rinci, tapi ngan ukur nyiptakeun fungsi pikeun fungsi khusus aplikasi "paling luhur" dina perpustakaan. .
"Ekosistem" tina basis pangaweruh
Upami anjeun parantos nyerat fungsi anu anjeun anggo rutin, kirimkeun ka Repository Fungsi Wolfram! Upami hal anu langkung seueur henteu kaluar tina ieu (kamekaran basa), teras éta bakal langkung merenah pikeun anjeun ngagunakeun fungsi pikeun panggunaan pribadi. Nanging, logis pikeun nganggap yén upami anjeun rutin ngagunakeun fungsi, panginten pangguna sanés ogé bakal mendakan éta mangpaat.
Alami, anjeun tiasa mendakan diri anjeun dina kaayaan dimana anjeun henteu tiasa - atanapi henteu hoyong - ngabagi fungsi anjeun atanapi upami anjeun kéngingkeun aksés kana sumber inpormasi pribadi. Malah dina kasus sapertos kitu, anjeun ngan saukur tiasa nyebarkeun fungsi dina akun awan anjeun nyalira,
Fungsi anu anjeun kirimkeun kana gudang fungsi Wolfram henteu kedah sampurna; aranjeunna ngan kudu jadi mangpaat. Ieu rada kawas bagian "Kasalahan" dina dokuméntasi Unix klasik - dina "Bagéan Definisi" aya bagian "Catetan Panulis" dimana anjeun tiasa ngajelaskeun watesan, masalah, sareng sajabana anu anjeun parantos terang ngeunaan fungsi anjeun. Salaku tambahan, nalika anjeun ngalebetkeun fitur anjeun ka gudang, anjeun tiasa nambihan catetan kiriman anu bakal dibaca ku tim kurator khusus.
Sakali hiji fitur diterbitkeun, kaca na salawasna mibanda dua tumbu di handap: "
Kadang-kadang anjeun ngan ukur hoyong nganggo fungsi tina gudang fungsi Wolfram, sapertos fungsi anu diwangun, tanpa ningali kodena. Nanging, upami anjeun hoyong ningali ka jero, sok aya tombol Notepad di luhur. Pencét éta sareng anjeun bakal nampi salinan anjeun sorangan tina notebook definisi asli anu dikintunkeun ka gudang fitur. Kadang-kadang anjeun ngan ukur tiasa dianggo salaku conto pikeun kabutuhan anjeun. Dina waktos anu sami, anjeun ogé tiasa ngembangkeun modifikasi sorangan tina fungsi ieu. Anjeun meureun hoyong masangkeun fungsi ieu anjeun kapanggih tina Repository dina komputer Anjeun atawa dina akun gudang awan aphid Anjeun, meureun anjeun hoyong ngalebetkeun kana basa pangaweruh fungsi, sugan salaku ningkat, versi dimekarkeun tina fungsi aslina.
Ka hareupna, kami ngarencanakeun pikeun ngadukung gaya Git forking pikeun repositori fitur, tapi pikeun ayeuna urang nyobian tetep saderhana, sareng kami ngan ukur gaduh hiji versi anu ditampi pikeun unggal fitur anu diwangun kana basa. Langkung sering ti henteu (kacuali pamekar nyerah ngajaga fitur anu dikembangkeun sareng ngabales kiriman pangguna), panulis asli fitur éta ngontrol apdet éta sareng ngirimkeun versi énggal, anu teras diulas sareng, upami aranjeunna lulus prosés ulasan. , diterbitkeun dina basa.
Hayu urang nganggap sual kumaha "versioning" fungsi dimekarkeun jalan. Ayeuna, nalika anjeun nganggo fungsi tina gudang fungsi, definisina bakal disimpen permanén dina komputer anjeun (atanapi dina akun awan anjeun upami anjeun nganggo awan). Upami versi anyar tina hiji fitur sayogi, waktos salajengna anjeun nganggo éta anjeun bakal nampi pesen anu ngabéjaan ngeunaan ieu. Sareng upami anjeun hoyong ngapdet fungsi kana versi énggal, anjeun tiasa ngalakukeun éta nganggo paréntah
Salah sahiji hal anu éndah ngeunaan Wolfram Function Repository nyaéta yén program Wolfram Language, dimana waé tiasa nganggo fungsina. Upami program némbongan dina notepad, éta sering cocog pikeun pormat fungsi gudang salaku fungsi "obyek binér fungsi" anu gampang dibaca (panginten sareng set versi anu pas).
Anjeun salawasna bisa ngakses sagala fungsi dina gudang fungsi ngagunakeun téks
Kumaha carana sangkan eta pagawean?
Jero fungsi dina gudang Wolfram ieu mungkin ngagunakeun persis sarua
nimbangkeun
Di jero anjeun tiasa ningali sababaraha inpormasi nganggo fungsina
Kumaha cara nyetel hiji fungsi sumberdaya jalan? Anu pangbasajanna nyaéta kasus lokal murni. Ieu conto anu nyandak fungsi (dina hal ieu ngan ukur fungsi murni) sareng ngahartikeun salaku fungsi sumberdaya pikeun sési program anu dipasihkeun:
Sakali anjeun parantos ngadamel definisi, anjeun tiasa nganggo fungsi sumberdaya:
Catet yén aya ikon hideung dina blob fungsi ieu . Ieu ngandung harti yén fungsi BLOB nujul kana fungsi sumberdaya di-memori diartikeun pikeun sési ayeuna. Fitur sumberdaya anu disimpen permanén dina komputer atanapi akun awan anjeun gaduh ikon abu . Sareng aya ikon oranyeu pikeun fitur sumber resmi dina Repository Fitur Wolfram .
Janten naon anu lumangsung nalika anjeun nganggo ménu Expand dina Notebook Definition? Mimiti, éta nyandak sadaya definisi dina notepad sareng ti aranjeunna nyiptakeun simbolis
Panyebaran lokal fungsi tina gudang dina komputer anjeun dilakukeun nganggo paréntah
Upami anjeun ngaklik tombol Kirim pikeun Repository Fungsi, naon anu aya di handapeunna
Sacara standar, kiriman dilakukeun dina nami pakait sareng ID Wolfram anjeun. Tapi upami anjeun ngirimkeun aplikasi atas nama tim pamekar atanapi organisasi, anjeun tiasa
Saatos Anjeun geus dikintunkeun salah sahiji fungsi anjeun ka basis pangaweruh fungsi, eta bakal antrian pikeun review. Upami anjeun nampi koméntar pikeun ngaréspon, aranjeunna biasana dina bentuk file téks anu ditambah "sél koméntar" tambahan. Anjeun salawasna tiasa pariksa status aplikasi anjeun ku ngadatangan
Sababaraha subtleties dina karya
Dina glance kahiji sigana anjeun ngan ukur tiasa nyandak notebook definisi sareng nempatkeun éta verbatim kana gudang fungsi, kumaha oge, saleresna aya seueur subtleties anu aub - sareng nanganan aranjeunna peryogi ngalakukeun sababaraha meta-programming anu cukup rumit, nanganan pamrosésan simbolis. salaku kode anu nangtukeun fungsi, sarta Notepad sorangan diartikeun. Kaseueuran ieu kajantenan sacara internal, di tukangeun layar, tapi éta tiasa gaduh sababaraha implikasi anu pantes dipikahartos upami anjeun badé nyumbang kana dasar pangaweruh fitur.
Kahalusan langsung munggaran: Nalika anjeun ngeusian Buku Catetan Harti, anjeun ngan saukur tiasa ngarujuk kana fungsi anjeun dimana-mana nganggo nami sapertos MyFunction, nu Sigana mah ngaran biasa pikeun fungsi dina Wolfram Basa, tapi pikeun dokuméntasi gudang fungsi ieu diganti.
The subtlety kadua: mun anjeun nyieun hiji fungsi sumberdaya ti Notebook Harti, sadaya kagumantungan aub dina harti fungsi kudu direbut tur eksplisit kaasup. Nanging, pikeun mastikeun yén definisi tetep modular, anjeun kedah nempatkeun sadayana anu unik
Biasana anjeun moal pernah ningali jejak kode anu dianggo pikeun ngonpigurasikeun rohangan ngaran ieu. Tapi lamun keur sababaraha alesan anjeun nyauran hiji simbol handapeun-dieksekusi jero fungsi Anjeun, mangka anjeun bakal nempo yén simbol ieu aya dina konteks internal tina fungsi. Sanajan kitu, nalika ngolah Harti Notepad, sahenteuna simbol pakait jeung fungsi sorangan
Repository fungsi pikeun nangtukeun fungsi anyar. Sareng fungsi ieu tiasa gaduh pilihan. Seringna parameter ieu (contona,
Kaseueuran fungsi ngan ukur ngalakukeun naon anu sakuduna dilakukeun unggal waktos aranjeunna disebut, tapi sababaraha fungsi kedah diinisialisasi sateuacan tiasa dijalankeun dina sési khusus - sareng pikeun ngarengsekeun masalah ieu, aya bagian "Initialization" dina bagian Definisi.
Fungsi tina Repository tiasa nganggo pungsi sanés anu tos aya dina Repositori; pikeun nyetél definisi pikeun Repositori fungsi anu kalebet dua (atanapi langkung) fungsi anu ngarujuk, anjeun kedah nyebarkeun aranjeunna dina sési program anjeun supados anjeun tiasa. rujukan kawas on aranjeunna
Prospek pangwangunan. Naon anu kedah kajantenan nalika gudang janten ageung?
Dinten ieu kami nembé ngaluncurkeun Repository Fitur Wolfram, tapi kana waktosna urang ngarepkeun yén ukuran sareng fungsionalitasna tiasa ningkat sacara dramatis, sareng nalika ngembang dina pangwangunan bakal aya sababaraha masalah anu parantos kami antisipasi bakal timbul.
Masalah kahiji masalah ngaran fungsi jeung uniqueness maranéhanana. Repository fungsi dirarancang ku cara kitu, sapertos fungsi anu diwangun dina Wolfram Language, anjeun tiasa ngarujuk kana fungsi anu dipasihkeun ku ngan ukur nunjukkeun namina. Tapi ieu inevitably ngandung harti yén ngaran fungsi kudu global unik sakuliah gudang, ku kituna, contona, ngan aya hiji.
Ieu mungkin sigana kawas masalah badag dina mimitina, tapi sia nyadar yén éta dasarna masalah sarua jeung hal kawas domain internét atawa handles média sosial. Sareng kanyataanna nyaéta yén sistem éta ngan ukur kedah gaduh registrar - sareng ieu mangrupikeun salah sahiji peran anu bakal dilakukeun ku perusahaan urang pikeun basis pengetahuan fungsi Wolfram. (Pikeun versi pribadi tina Repository a, registrars maranéhanana bisa jadi pangurus.) Tangtu, hiji domain Internet bisa didaptarkeun tanpa ngabogaan nanaon di dinya, tapi dina Repository fungsi, ngaran fungsi ngan bisa didaptarkeun lamun aya harti sabenerna fungsina.
Bagian tina peran urang dina ngokolakeun basis pangaweruh fungsi Wolfram nyaéta pikeun mastikeun yén ngaran nu dipilih pikeun hiji fungsi logis dibere harti fungsi sarta yén éta nuturkeun konvénsi ngaran Wolfram Basa. Kami gaduh pangalaman langkung ti 30 taun pikeun namikeun fungsi anu diwangun dina Wolfram Language, sareng tim kurator kami bakal mawa pangalaman éta ka gudang fungsi ogé. Tangtu, aya salawasna iwal. Contona, sigana leuwih hade mun boga ngaran pondok pikeun sababaraha fungsi, tapi leuwih sae pikeun "ngabela" kalawan panjang, ngaran leuwih spésifik sabab anjeun kurang kamungkinan kana ngajalankeun kana batur wanting nyieun ngaran fungsi sarupa dina mangsa nu bakal datang. .
(Perlu dicatet di dieu yén ngan saukur nambahkeun sababaraha tag anggota pikeun disambiguate fungsi moal boga pangaruh dimaksudkeun. Kusabab iwal mun keukeuh salawasna assigning tag, anjeun bakal kudu nangtukeun tag standar pikeun sagala fungsi dibikeun, sarta ogé allocate tag pangarang. , anu peryogi deui koordinasi global.)
Nalika dasar pangaweruh ngeunaan fungsi Wolfram tumuwuh, salah sahiji masalah anu sigana bakal timbul nyaéta kapendakan fungsi, anu sistemna nyayogikeun.
Pikeun diwangun-di fungsi dina Wolfram Basa aya nu disebut lapisan deteksi disadiakeun ku
Repository fungsi Wolfram dikonpigurasikeun salaku gudang fungsi pengkuh, dimana sagala fungsi di dinya bakal salawasna jalan. Tangtosna, vérsi fitur énggal tiasa sayogi, sareng kami ngarepkeun yén sababaraha fitur tangtosna bakal leungit dina waktosna. Fungsina bakal tiasa dianggo upami dianggo dina program, tapi halaman dokuméntasina bakal numbu ka fungsi anyar anu langkung maju.
The Wolfram Feature Repository dirancang pikeun mantuan anjeun gancang manggihan fitur anyar jeung diajar cara anyar ngagunakeun basa Wolfram. Kami optimis pisan yén sababaraha anu parantos digali dina gudang fitur antukna bakal asup akal pikeun janten bagian anu diwangun dina inti Wolfram Language. Dina dasawarsa ka tukang kami ngagaduhan set anu sami
Anu paling penting di dieu nyaéta yén fungsi dina gudang fungsi mangrupikeun hal anu sayogi pikeun unggal pangguna ayeuna. Éta kamungkinan yén fitur basa asli tiasa langkung saé sareng langkung saé, tapi gudang fitur bakal ngamungkinkeun para pangguna ngagaduhan aksés ka sadaya fitur énggal langsung. Sareng, anu paling penting, konsép ieu ngamungkinkeun sadayana pikeun nambihan fitur énggal anu dipikahoyong.
Saméméhna dina sajarah basa Wolfram, gagasan ieu moal bakal geus digawé sakumaha ogé mibanda, tapi dina tahap ieu aya kitu loba usaha nempatkeun kana basa, sarta misalna hiji pamahaman jero ngeunaan prinsip desain basa, nu ayeuna sigana rada. mungkin pikeun komunitas badag pamaké pikeun nambahkeun fitur anu bakal ngajaga konsistensi desain sangkan aranjeunna mangpaat pikeun rupa-rupa pamaké.
Aya sumanget anu luar biasa bakat(?) dina komunitas pangguna Wolfram Language. (Tangtu, komunitas ieu ngawengku loba R & D ahli ngarah dina rupa-rupa widang.) Kuring miharep éta Wolfram Feature Repository bakal nyadiakeun hiji platform éféktif pikeun muka konci na disseminating sumanget bakat ieu. Ngan babarengan urang tiasa nyiptakeun hal anu sacara signifikan bakal ngalegaan daérah dimana paradigma komputasi basa Wolfram tiasa diterapkeun.
Dina leuwih ti 30 taun, urang geus datangna jauh jeung basa Wolfram. Ayeuna babarengan, hayu urang leuwih jauh. Kuring ajak pisan sadaya pangguna anu dihormatan tina basa Wolfram di sakumna dunya ngagunakeun gudang fungsional salaku platform pikeun ieu, ogé proyék parangkat lunak énggal sapertos Mesin Wolfram Gratis pikeun Pamekar.
sumber: www.habr.com