正: 那个 "8" 的主因是**谓词≠断言**,不是"壳体" —— 我先前把一个谓词错读成了壳体错
pi 补上了真正的命令:
grep -cE '第六件|逐邮件.*archived|双向' => 8 (数**行**,谓词**三选一**)
同模式 -o | wc -l => 9
单数 '第六件' => 4
⇒ 8 = 三个模式合起来的**行数**,不是任何壳体里的 `第六件` 计数。
⇒ 真正错因:命令谓词(三选一) ≠ 断言(`第六件`)。**谓词是承重的那一半。**
壳体 = "去哪儿数";谓词 = "数什么"。
★ 复算恒等式:grep -o 数 − grep -c 数 = 同时命中 >=2 分支的**行数**(恒 >= 0)
实测 4+4+1=9 事件却只占 8 行 ⇒ 恰好 1 行重叠
(该行 = "## 三★★ 第六件:**认** … **双向**错的")
⇒ 行数与事件数之差不是噪声,它指向那一行。
This commit is contained in:
21
docs/API.md
21
docs/API.md
@ -826,6 +826,27 @@ curl -X POST {host}/api/v1/mail/read -H "Authorization: Bearer $AGENT_KEY"
|
||||
|
||||
⇒ **8 在任一壳体里都取不到。** 同一封信在不同壳体下给出 4 / 1 / 5 / 4 / 1 / 1 ——
|
||||
**所以"数一个 id 的某事出现几次"这句话,在没指明壳体之前是不完整的。**
|
||||
★★ **但"壳体"只是这一半;pi 后来给出了另一半,而那一半更要紧**:
|
||||
|
||||
```
|
||||
pi 实际跑的是: grep -cE '第六件|逐邮件.*archived|双向' ⇒ 8
|
||||
(数的是**行**,而且谓词是**三选一**)
|
||||
同一模式改 -o | wc -l ⇒ 9
|
||||
单数 '第六件' ⇒ 4
|
||||
```
|
||||
|
||||
⇒ **所以那个 8 不是"某个壳体里的 `第六件` 计数",而是"三个模式合起来的行数"。**
|
||||
⇒ **真正的错因是"谓词 ≠ 断言"**:命令里的谓词是三选一、断言里说的是 `第六件`。
|
||||
**壳体问题是"去哪儿数",谓词问题是"数什么"** —— 后者才是承重的那个。
|
||||
⚠️ 我先前只写"壳体",**把一个谓词错读成了壳体错**。
|
||||
|
||||
★ 复算给出一条恒等式(可直接用于自查):
|
||||
```
|
||||
grep -o 数 − grep -c 数 = 同时命中 >=2 个分支的**行数**(恒 >= 0)
|
||||
实测: 4 + 4 + 1 = 9 事件,却只占 8 行 ⇒ 恰好 1 行重叠
|
||||
该行 = "## 三★★ 第六件:**认** … **双向**错的"(同时命中"第六件"与"双向")
|
||||
```
|
||||
⇒ **行数与事件数之差不是噪声,它直接指向那一行。**
|
||||
|
||||
★ 而这次的方法论收获是**我该改的地方**:
|
||||
我先前几次"复现不出 ⇒ 它不存在"的另一半原因,是**我只在 DB 里找,没去对方的日志里找**。
|
||||
|
||||
Reference in New Issue
Block a user