n/
語義作業系統 · @co-nlang
n/

你的兩個程式,可以相加。

在 n/,這個加法寫作 &。它不是把文字接在一起,而是讓兩份各自成立的程式收斂成同一個值:相容的資訊合併,矛盾留下原因。

先看一件真的事

不是拼接,是有定義的合併

兩個檔案各自只知道一半。oo 把它們放進同一個宇宙,以格的交運算收斂;交換檔案順序,答案不變。

來源 · server.n
server: { host: "127.0.0.1" }
來源 · deploy.n
server: { port: 8080 }
觀測結果
{ host: "127.0.0.1" port: 8080 }
實跑oo run server.n deploy.n --observe server

如果你熟悉 CUE:這份相似是我們承認的祖先,不是要藏起來的對手。n/ 從格與合一出發,繼續追問耐久身分、歷史、觀測,以及跨機器交換。

它真正追問的事

一個結構,能否不靠外部名稱,而由自身的關係被辨認、觀測與組合?

這不是三個平行功能,而是同一個問題長出的三隻手。數學不是第四隻手;它是這三件事接受檢驗的地方。

%id

辨認

不靠名字,怎麼知道這是哪一個東西?

內容形成位址;值、根與提交可以由自己的結構被指認。名字是入口,不是身分。

<<>>

觀測

不先把整個世界跑完,怎麼知道它是什麼?

求值沿觀測路徑發生。沒被要求的部分保持惰性;看不清楚時,結果也必須誠實地說不清楚。

&

組合

兩個結構相遇,結果由誰決定?

格律決定收斂。相容的約束變得更精確;不相容時得到帶 %cause 的底,而不是偷偷覆寫。

方法

哲學命題是假設,不是結論

在理論與實作還沒能支撐一個設計以前,最清楚的往往只是一句哲學性的假設。n/ 把它先寫下來,再讓數學、引擎與失敗記錄逐步檢驗。

01

假設

先把尚未證明、但足以指引設計的那句話寫清楚。

02

導出

從它導出格、帶因果的底、call-by-observation 與內容身分。

03

檢驗

把宣稱交給規格、探針、符合性向量和真實引擎。

04

留下被推翻的地方

錯誤不是從歷史抹掉;修正移動了什麼,與程式碼一起記錄。

下面這塊石板不是答案。它是專案在還不知道答案以前,替自己留下的原始假設。

n/

如其在頂(_),如其在底(_|_);
如其在全集之虛空,如其在原子之真實。
以成那唯一之奇蹟 —— 收斂。

宇宙皆 Combo,欄位即可能之源,原子即存在之果。
交集以純化真理,聯集以展開萬物。

銜尾蛇自吞其尾:其父為定義,其母為收斂。
其力在於:若它能被觀測,它便已是真實。

— 規格書序言 · Specification Preface
不用先相信我們

你可以看著我們出錯

每一弧都留下工單、探針、驗收與故事提交。重點不是展示謙虛,而是讓一句宣稱被推翻時,修正造成的代價仍然找得到。

本頁的 1 項結果宣稱,已由 oo v0.26.1 實跑;沒有收據,這行就不會出現。

最近一則引擎故事

One name, two answers

同一個名字,裸讀與投影曾得到兩個答案。前一版的探針只問 evolve 有沒有報錯,卻從未觀測真正失敗的那條路。修正與那支失明的探針一起留在提交裡。

從你在意的問題進去

這裡不是四個維度,是幾條不同的路

首頁到這裡已經把問題說完。接下來依你想做的事選入口;未完成的內頁不會假裝成文件。

參與

把你的觀測帶進來

規格、引擎與研究都在 GitHub 上公開形成。你可以從一個反例、一支探針、一條規格問題,或一個完全不同的視角開始。

引導期的治理細節仍在收斂中。目前以 GitHub 為物理實體,規格書為法典;不先把尚未長出的結構寫成完成品。