Skip to content

Commit

Permalink
😋 more test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
AlephAlpha committed Oct 15, 2023
1 parent ff21fad commit 6b392f1
Show file tree
Hide file tree
Showing 10 changed files with 1,220 additions and 1,095 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 0.5.2.0 -- Unreleased

* Updated some dependencies.
* Updated some dependencies. Now Nekomata can be built with GHC 9.8.1.
* Fixed a bug in printing truncated results.

## 0.5.1.0 -- 2023-09-27
Expand Down
8 changes: 8 additions & 0 deletions analysis/Ideas.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,14 @@ LiberationMono 字体所支持的字符列举于[此文件](analysis/LiberationM

等以后的版本再考虑这些问题。

## 关于助词

根据目前的统计结果,两个字符的组合中排前几名的都是助词 + `{` 的形式。也许可以像 Vyxal 等语言一样,让这些助词自动开启 block,省去一个 `{`。不过另外一些助词通常只修饰单个 built-in,自动开启 block 反而会额外需要一个 `}`。尤其是 ``````,两种用法都很常见,不好取舍。详见 [`analysis/particles.txt`](particles.txt)

自动开启 block 是很大的 breaking change,会影响到大量的解答。最好能有一个改动没有这么大的方案。

可以考虑如果一个助词出现在程序的结尾,其修饰的就是除它之外的整个程序。比如说 `ᶦ{Ƃ2ŗɔƃ3M` 可以写成 `Ƃ2ŗɔƃ3Mᶦ`。这样解决不了所有的问题,但可以解决一些问题。不过这会降低可读性,而且 parser 也会变得复杂。

## 关于 arity

当前,Nekomata 中的助词会检查它修饰的函数的 arity,如果不匹配就报错。这严格限制了函数的使用方式,比如说 `\map` 只能用于 arity 为 `n -> 1` 的函数。而且 arity 本身也有一些不太清晰的地方。
Expand Down
4 changes: 4 additions & 0 deletions analysis/corpus.txt
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ ox=
x↕=
→4ᵒE∑∆l
O3L
J$ᶻL
o↔ĭ∑ä
R:E∏
ux→=∕$p=
Expand Down Expand Up @@ -271,3 +272,6 @@ pNᵉ#ĉ#*
←ᶠ{ᵈqEů∑=
←ᶠ{ƵBƶ:o=
ˡ{N→v∩
ʷ∑→ᵉbD
ᶦ{Ƃ2ŗɔƃ3M
ĎSᵉti¦
48 changes: 24 additions & 24 deletions analysis/freq_1gram.txt
Original file line number Diff line number Diff line change
@@ -1,46 +1,46 @@
{ : 61
{ : 62
: : 44
$ : 43
$ : 44
= : 36
+ : 35
∑ : 33
∑ : 34
← : 28
ᵐ : 28
R : 28
* : 26
→ : 25
→ : 26
} : 25
- : 23
a : 22
1 : 21
ᵉ : 20
ç : 20
j : 20
ᵉ : 18
, : 18
o : 18
x : 18
↔ : 18
u : 17
2 : 17
# : 16
3 : 16
ᵒ : 16
p : 16
2 : 16
3 : 15
l : 15
~ : 15
↕ : 14
ĭ : 14
Ƃ : 14
ᵖ : 14
Ṁ : 14
Ƃ : 13
∫ : 13
t : 13
Ň : 13
Ð : 13
ᶦ : 12
S : 12
½ : 12
t : 12
ᶦ : 11
N : 11
S : 11
Q : 11
≡ : 11
đ : 11
Expand All @@ -51,22 +51,23 @@ Z : 11
_ : 11
" : 10
Ť : 10
ᶻ : 10
Ɔ : 10
Ë : 10
; : 10
∏ : 10
L : 10
ʷ : 9
z : 9
Ţ : 9
ᵃ : 9
ᶻ : 9
ŋ : 9
? : 9
ᵚ : 9
ᶠ : 9
L : 9
ʷ : 8
P : 8
ᶜ : 8
J : 8
< : 8
ũ : 8
× : 8
Expand All @@ -82,25 +83,25 @@ c : 8
ṁ : 8
C : 8
± : 8
J : 7
q : 7
ᵗ : 7
ˡ : 7
f : 7
£ : 7
ɗ : 7
ŗ : 7
Ĉ : 7
Ĩ : 7
4 : 7
∆ : 7
@ : 7
ᵏ : 6
ƃ : 6
ů : 6
∕ : 6
Ä : 6
/ : 6
Ø : 6
ŗ : 6
∙ : 6
ä : 6
O : 6
Expand All @@ -112,39 +113,40 @@ O : 6
Ƶ : 5
y : 5
Ö : 5
ƃ : 5
d : 5
Ď : 5
≤ : 5
Ĭ : 5
¦ : 5
ş : 5
µ : 5
¿ : 5
8 : 5
√ : 5
5 : 5
≈ : 5
i : 5
B : 5
b : 5
I : 4
H : 4
Ď : 4
Ç : 4
ŧ : 4
ʳ : 4
G : 4
¦ : 4
k : 4
F : 4
ƥ : 4
ɔ : 4
M : 4
h : 4
i : 4
÷ : 4
Þ : 4
ˣ : 4
ᵈ : 4
ň : 4
0 : 4
ᵋ : 4
b : 4
A : 4
ĝ : 3
Ṃ : 3
Expand All @@ -153,9 +155,8 @@ U : 3
Y : 3
T : 3
s : 3
ɔ : 3
Ħ : 3
M : 3
D : 3
7 : 3
> : 3
ƶ : 3
Expand All @@ -167,7 +168,6 @@ v : 3
§ : 3
Ƥ : 2
g : 2
D : 2
X : 2
K : 2
6 : 2
Expand Down
24 changes: 21 additions & 3 deletions analysis/freq_2gram.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ᶦ{ : 10
ᶦ{ : 11
ᵖ{ : 8
ʷ{ : 7
ᵑ{ : 7
Expand Down Expand Up @@ -147,6 +147,7 @@ _= : 2
aṁ : 2
0* : 2
x= : 2
$ᶻ : 2
o↔ : 2
ĭ∑ : 2
ux : 2
Expand Down Expand Up @@ -178,6 +179,7 @@ x: : 2
}- : 2
$B : 2
$L : 2
→ᵉ : 2
RS : 2
+= : 2
3~ : 2
Expand Down Expand Up @@ -556,6 +558,8 @@ x↕ : 1
∆l : 1
O3 : 1
3L : 1
J$ : 1
ᶻL : 1
↔ĭ : 1
∑ä : 1
E∏ : 1
Expand Down Expand Up @@ -651,7 +655,6 @@ D: : 1
m@ : 1
Øc : 1
c; : 1
$ᶻ : 1
Ťx : 1
xᶻ : 1
ᶻŘ : 1
Expand Down Expand Up @@ -752,7 +755,6 @@ a* : 1
$h : 1
h→ : 1
→L : 1
→ᵉ : 1
ᵉ_ : 1
_r : 1
rÇ : 1
Expand Down Expand Up @@ -1142,3 +1144,19 @@ o= : 1
N→ : 1
→v : 1
v∩ : 1
ʷ∑ : 1
∑→ : 1
ᵉb : 1
bD : 1
{Ƃ : 1
Ƃ2 : 1
2ŗ : 1
ŗɔ : 1
ɔƃ : 1
ƃ3 : 1
3M : 1
ĎS : 1
Sᵉ : 1
ᵉt : 1
ti : 1
i¦ : 1
17 changes: 17 additions & 0 deletions analysis/freq_3gram.txt
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,8 @@ x↕= : 1
E∑∆ : 1
∑∆l : 1
O3L : 1
J$ᶻ : 1
$ᶻL : 1
o↔ĭ : 1
↔ĭ∑ : 1
ĭ∑ä : 1
Expand Down Expand Up @@ -1120,3 +1122,18 @@ Bƶ: : 1
{N→ : 1
N→v : 1
→v∩ : 1
ʷ∑→ : 1
∑→ᵉ : 1
→ᵉb : 1
ᵉbD : 1
ᶦ{Ƃ : 1
{Ƃ2 : 1
Ƃ2ŗ : 1
2ŗɔ : 1
ŗɔƃ : 1
ɔƃ3 : 1
ƃ3M : 1
ĎSᵉ : 1
Sᵉt : 1
ᵉti : 1
ti¦ : 1
13 changes: 13 additions & 0 deletions analysis/freq_4gram.txt
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,7 @@ R+ŋ↕ : 1
4ᵒE∑ : 1
ᵒE∑∆ : 1
E∑∆l : 1
J$ᶻL : 1
o↔ĭ∑ : 1
↔ĭ∑ä : 1
R:E∏ : 1
Expand Down Expand Up @@ -909,3 +910,15 @@ Bƶ:o : 1
ˡ{N→ : 1
{N→v : 1
N→v∩ : 1
ʷ∑→ᵉ : 1
∑→ᵉb : 1
→ᵉbD : 1
ᶦ{Ƃ2 : 1
{Ƃ2ŗ : 1
Ƃ2ŗɔ : 1
2ŗɔƃ : 1
ŗɔƃ3 : 1
ɔƃ3M : 1
ĎSᵉt : 1
Sᵉti : 1
ᵉti¦ : 1
9 changes: 9 additions & 0 deletions analysis/freq_5gram.txt
Original file line number Diff line number Diff line change
Expand Up @@ -714,3 +714,12 @@ qEů∑= : 1
Bƶ:o= : 1
ˡ{N→v : 1
{N→v∩ : 1
ʷ∑→ᵉb : 1
∑→ᵉbD : 1
ᶦ{Ƃ2ŗ : 1
{Ƃ2ŗɔ : 1
Ƃ2ŗɔƃ : 1
2ŗɔƃ3 : 1
ŗɔƃ3M : 1
ĎSᵉti : 1
Sᵉti¦ : 1
8 changes: 4 additions & 4 deletions analysis/particles.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ particle : with "{" / total
ʳ : 0 / 4
ᵗ : 0 / 7
ˣ : 0 / 4
ᶻ : 0 / 9
ᶻ : 0 / 10
ᶾ : 0 / 1
ᵉ : 1 / 18
ᵉ : 1 / 20
ᵐ : 3 / 28
ᵚ : 1 / 9
ᶜ : 1 / 8
Expand All @@ -16,6 +16,6 @@ particle : with "{" / total
ᵑ : 7 / 11
ᵏ : 4 / 6
ᶠ : 7 / 9
ʷ : 7 / 9
ˡ : 6 / 7
ʷ : 7 / 8
ᶦ : 10 / 11
ᶦ : 11 / 12
Loading

0 comments on commit 6b392f1

Please sign in to comment.