Kontrol edebileceğiniz bir projeyle başlayın
N/M 0.6.0, tam proje şablonlarını, çalışma alanından otomatik içe aktarmayı ve üç sayısal iyileştirmeyi aynı araç zincirinde birleştirir. Bu rehberde önce Bell çalışma alanını oluşturacak, ardından sonucunu bağımsız olarak hesaplayabileceğiniz küçük bir sayısal program çalıştıracaksınız. Buradaki işlemler yerelde yürütülür.
Paket sürümü 0.6.0; N/M dil sözleşmesi ise 0.2.0 Önizleme olarak kalır. Bir paketin yayımlanması bütün deneysel yeteneklerin kararlı olduğu anlamına gelmez. 27 Ekim 2026 tarihinde kontrol edilen dağıtım kaydı kanalları ayrı gösterir:
| Bileşen | Doğrulanan sürüm ve kullanım |
|---|---|
| npm üzerindeki Core, CLI, Language Server ve MCP | latest kanalında 0.6.0; bu rehber için @0.6.0 ile sabitleyin |
| Open VSX üzerindeki VS Code eklentisi | Normal yayın kanalında 0.6.0 |
| Marketplace üzerindeki VS Code eklentisi | Normal 0.6.0; herkese açık indirme, doğrulanmış VSIX dosyasıyla eşleşir |
| Python/Jupyter adaptörü | CLI paketine dahildir; ayrı PyPI yayını yoktur |
Bileşenlerin geçmişi yayın kaydında yer alır. Kişisel, eğitim ve ticari kullanım, kurulan paketin lisansına göre ücretsizdir; paket kodunu değiştirmek ve yeniden dağıtmak ayrıca izin gerektirir.
Bell çalışma alanı oluşturun, çalıştırın ve test edin
Node.js 20 veya üzerini kurduktan sonra aşağıdaki komutları bell-project yolunun henüz bulunmadığı veya boş, gerçek bir klasör olduğu dizinden çalıştırın:
npm install --global @nm-lang/cli@0.6.0
nm --version --json
nm init bell-project --template bell --name bell-project --locale tr
cd bell-project
nm check src/main.nm
nm run src/main.nm --json
nm test tests/main.test.nm --jsonDevam etmeden önce sürüm raporunu kontrol edin. Oluşturucu src/main.nm, ortak src/helper.nm, tests/main.test.nm, nm-workspace.json ve Türkçe README.md dosyalarını üretir. İngilizce README için --locale en kullanın; iki dilde de program aynıdır. Dosyaları oluşturmak onları çalıştırmaz.
Ana program workspace.project_helper modülünü içe aktarır, Bell çifti hazırlar ve 7 tohumu ile 256 ölçüm örnekler. İdeal hesaplama bazı olasılıkları 00 ve 11 için ayrı ayrı yarımdır. Örneklem sayılarının tam 128/128 bölünmesi gerekmez; oluşturulan test ölçümden önceki olasılıkları kontrol eder. Testin geçmesi belirtilen yerel devre davranışını doğrular; donanım deneyini veya tek histogramdan dolanıklık kanıtını oluşturmaz.
Giriş dosyasıyla birlikte manifesti ve yardımcı modülü de okuyun. Manifest hem src hem tests dizinini indeksler; yalnız src/main.nm dosyasını başka yere taşımak bağımlılığı kaybettirir. Başka şablon için üst dizinden farklı bir hedefle nm init komutunu, --template parametric-training veya --template numerics seçeneğiyle çalıştırın. Oluşturulan README, o şablonun komutlarını ve gereken bayrakları gösterir. Oluşturucu, dolu klasörlerdeki mevcut projenin üzerine yazmaz.
VS Code içinde aynı akışı izleyin
Doğrulanan kanaldan 0.6.0 eklentisini kurduktan sonra komut paletinden N/M: Proje Oluştur komutunu çalıştırın. Önce şablonu, ardından üst klasörü ve proje adını seçin. bell-project gibi bir ad, seçilen üst klasörün içinde bu alt klasörü oluşturur; alt hedef yeni veya boş olmalıdır. README dili editörün arayüz dilini izler. Oluşturulan klasörü açıp README adımlarını uygulayın; eklenti rehberi editör komutlarını açıklar. Terminal komutları ayrıca kurduğunuz CLI'yi kullanır; gömülü dil sunucusu terminale nm komutu eklemez.
Daha büyük çalışma alanlarında tamamlama, başka bir modüldeki public fonksiyon, record ve enum adlarını önerebilir ve gereken use workspace.… satırını ekleyebilir. Private semboller dışarıda tutulur; takma ad, görünürlük ve döngü kontrolleri geçerliliğini korur. Disk indeksi hazırlanırken açık dosyalardan öneriler sunulabilir. Otomatik içe aktarma kaynağı değiştirdiğinden öneriyi kabul ettikten sonra eklenen satırı inceleyin. Bu işlem kapalı bir dil yeteneğini açmaz veya çalışma alanı güveninin yerine geçmez.
Public yardımcı fonksiyon örneğini izleyerek oluşturulan projeye src/math.nm ve src/import-demo.nm dosyalarını ekleyin. Aşağıdaki kontrol, örneğin klasik fonksiyon, tipli değer ve public görünürlük izinlerini açıkça gösterir. Yeni CLI 0.6.0 bu varsayılanları zaten açar; kaydedilmiş veya çağrıya aktarılmış false ayarları ayrı seçimlerdir ve otomatik içe aktarma onları değiştirmez:
nm check src/import-demo.nm --experimental-classical-functions --experimental-typed-classical-values --experimental-module-visibilitySayısal sonucu bağımsız olarak kontrol edin
Aşağıdaki bağımsız programı numerics.nm olarak kaydedin. Köşegen bir doğrusal sistem ve küçük bir en küçük kareler uyumu kullandığından beklenen sonuçları kolayca hesaplayabilirsiniz:
module blog_numerics;
fn main() {
let q = qreg[1];
let a: Matrix<Float, 2, 2> = matrix(2, 2, [2.0, 0.0, 0.0, 4.0]);
let b: Array<Float, 2> = [2.0, 8.0];
let solution: Array<Float, 2> = solve(a, b);
let basis: Matrix<Float, 2, 2> = eigvecsh(a);
let design: Matrix<Float, 3, 2> = matrix(3, 2, [1.0, 0.0, 1.0, 1.0, 1.0, 2.0]);
let observations: Array<Float, 3> = [1.0, 2.0, 2.0];
let fit: Array<Float, 2> = lstsq(design, observations);
let answer: Float = solution[0] + fit[1];
return answer;
}Bu komutlarda iki deneysel yeteneği açıkça etkinleştirin:
nm check numerics.nm --experimental-classical-functions --experimental-typed-classical-values
nm run numerics.nm --json --experimental-classical-functions --experimental-typed-classical-valuessolve, [1, 2] sonucunu verir. Uyum, (0,1), (1,2) ve (2,2) noktalarındaki artıkların karelerini en aza indirerek 7/6 sabit terimini ve 1/2 eğimini bulur. JSON raporunun classicalValues alanını inceleyin: answer, kayan nokta toleransı içinde 1.5 olur. eigvecsh, özvektörleri eigvalsh ile aynı sırada sütunlar halinde verir; bu köşegen matrisin sütunları 2 ve 4 özdeğerlerine karşılık gelir. Özvektörün genel işareti veya karmaşık fazı, dejenere özuzay içindeki baz seçimi gibi, tek değildir.
0.6.0 sayısal yeniliklerinin belirli sınırları vardır:
eigvecsh, desteklenen Float veya Complex Hermitsel matrisleri kabul eder. Parametreye bağlı analitik özvektör türevleri desteklenmez.- Gerçel
solve(A,b), aynı çağrının pivotlu ayrıştırmasını yeniden kullanarakA·dx = db − dA·xüzerinden birinci analitik türevi destekler. Bu kapsam Complex solve türevlerini veya ikinci türevleri içermez. lstsq(A,b), kare veya uzun, tam sütun ranklı Float sistemlerde sütun pivotlu QR kullanır. Geniş ya da rank eksik sistemler ve parametreye bağlı analitik türevler desteklenmez.
Boyutlar 1–16, matris elemanı sayısı en fazla 256 ile sınırlıdır; işlemler mevcut ortak iş bütçelerini kullanır. Geçerli boyut, uzun bir işlem dizisinin bütçeye sığacağını garanti etmez. Matris rehberi türleri, türevleri ve tanıları açıklar.
CLI'yi notebook'a açık adımlarla bağlayın
Python için @nm-lang/cli@0.6.0 paketini notebook projesine yerel kurun ve Python/Jupyter rehberini izleyin. Standart kütüphane köprüsü Python 3.10+ ve güvenilir bir Node.js/CLI komutu kullanır. İsteğe bağlı %%nm hücreleri belgelenen IPython ortamını ve açık %load_ext nm_jupyter çağrısını gerektirir; global kernel veya otomatik başlangıç kurulmaz. Yerel wheel kimliği 0.0.0.dev0'dır; PyPI yayını değildir. Adaptör VSIX'e dahil değildir.
Kaynak kontrolü, çalıştırma ve eğitim ayrı, açık işlemlerdir. Eklentinin test ve kayıtlı debugger akışları ayrı sonlu ölçüm eğitim host'unu başlatmaz; bu iş akışı için CLI eğitim rehberini izleyin. Sonuçları karşılaştırırken kaynağı, paket sürümünü, deneysel ayarları, tohumu ve ölçüm bütçelerini kaydedin; saklanan çıktıların özgün üretici metadatasını koruyun.
Kaynaklar ve sonraki adımlar
- npm üzerinde yayımlanmış CLI 0.6.0: kurulum ve paket kullanımı.
- Open VSX üzerinde N/M eklentisi: bağımsız dağıtılan editör eklentisi.
- CLI 0.6.0 rehberi: proje şablonları ve adaptör kurulumu.
- Yetenekler ve RFC arşivi: uygulanmış desteği ve olgunluğunu kayıtlı tasarım önerilerinden ayırın.
Bu örnekler küçük yerel simülatör ve sayısal sonuçlarını gösterir. Fiziksel QPU erişimini veya genel bir kuantum üstünlüğünü göstermez.