From 31eea2a8ea26023dfa76c28da8c3abe40095abb1 Mon Sep 17 00:00:00 2001 From: AlephAlpha Date: Thu, 9 May 2024 09:42:04 +0800 Subject: [PATCH] :camel: --- .github/workflows/test.yml | 2 +- analysis/corpus.txt | 3 +++ analysis/freq_1gram.txt | 46 +++++++++++++++++++------------------- analysis/freq_2gram.txt | 41 +++++++++++++++++++++++---------- analysis/freq_3gram.txt | 28 ++++++++++++++++++++++- analysis/freq_4gram.txt | 24 ++++++++++++++++++++ analysis/freq_5gram.txt | 21 +++++++++++++++++ analysis/particles.txt | 8 +++---- doc/GettingStarted.md | 2 +- test/Eval.hs | 41 +++++++++++++++++++++++++++++++++ 10 files changed, 174 insertions(+), 42 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c9a2f0a..346390d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,7 +5,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - ghc: ['9.0.1', '9.4.8', '9.6.4', '9.8.2'] + ghc: ['9.0.2', '9.4.8', '9.6.5', '9.8.2'] steps: - uses: actions/checkout@v4 - uses: haskell/actions/setup@v2 diff --git a/analysis/corpus.txt b/analysis/corpus.txt index b2ab8a7..f64cf92 100644 --- a/analysis/corpus.txt +++ b/analysis/corpus.txt @@ -330,3 +330,6 @@ Z:Ť‼Ť$ḟ ᶦ{ĕ~f}z Ṁ→↔$ŧᵖ{,:xŘṀ= Ħ¬ +ᵐ#:x+Ṁ$ᵒ%ᵐᶻ@ji +ŤđᵃSᵒÐj↕= +↕JᵐŤŤđ≡¿ᵐ≡ diff --git a/analysis/freq_1gram.txt b/analysis/freq_1gram.txt index 4444463..20fd150 100644 --- a/analysis/freq_1gram.txt +++ b/analysis/freq_1gram.txt @@ -1,47 +1,48 @@ { : 76 -$ : 53 -: : 47 -= : 47 -+ : 40 -ᵐ : 38 +$ : 54 +: : 48 += : 48 +ᵐ : 42 ++ : 41 ∑ : 36 ← : 30 → : 30 R : 30 * : 29 } : 28 +j : 26 - : 25 -j : 24 -x : 24 +x : 25 1 : 23 o : 23 ç : 23 , : 22 ᵉ : 21 +Ť : 21 2 : 21 +↕ : 20 a : 20 +# : 19 +ᵒ : 19 ↔ : 19 -# : 18 -↕ : 18 -Ť : 18 u : 18 +đ : 18 ~ : 18 -ᵒ : 17 ᵖ : 17 3 : 16 ĭ : 16 l : 16 -đ : 16 p : 16 +S : 15 t : 15 +Ṁ : 15 ĉ : 15 +Ð : 15 " : 14 -S : 14 +J : 14 Ƃ : 14 -Ṁ : 14 -Ð : 14 ᶦ : 13 -J : 13 +≡ : 13 Ɔ : 13 ∫ : 13 Z : 13 @@ -52,12 +53,12 @@ L : 13 < : 12 q : 12 ½ : 12 +ᶻ : 12 ᵑ : 12 ∆ : 12 ʷ : 11 Q : 11 -ᶻ : 11 -≡ : 11 +ᵃ : 11 c : 11 Ë : 11 N : 11 @@ -66,7 +67,6 @@ _ : 11 ũ : 10 ˡ : 10 Ţ : 10 -ᵃ : 10 r : 10 E : 10 ŋ : 10 @@ -77,8 +77,10 @@ O : 10 z : 10 ᶜ : 9 ž : 9 +% : 9 ŗ : 9 ≈ : 9 +i : 9 C : 9 P : 8 f : 8 @@ -90,10 +92,9 @@ f : 8 £ : 8 ≥ : 8 ‼ : 8 -% : 8 ƒ : 8 ∙ : 8 -i : 8 +@ : 8 Ƶ : 7 Ä : 7 / : 7 @@ -109,7 +110,6 @@ h : 7 > : 7 Ř : 7 ᵈ : 7 -@ : 7 ᵏ : 6 ƃ : 6 H : 6 @@ -143,6 +143,7 @@ s : 5 √ : 5 5 : 5 Þ : 5 +¿ : 5 ᵋ : 5 b : 5 A : 5 @@ -157,7 +158,6 @@ M : 4 ÷ : 4 § : 4 & : 4 -¿ : 4 ˣ : 4 ň : 4 õ : 4 diff --git a/analysis/freq_2gram.txt b/analysis/freq_2gram.txt index 9215975..70f9ac5 100644 --- a/analysis/freq_2gram.txt +++ b/analysis/freq_2gram.txt @@ -5,9 +5,10 @@ ᵑ{ : 7 ᶠ{ : 7 {$ : 6 +Jᵐ : 5 {: : 5 ᵐ{ : 5 -Jᵐ : 4 +Ťđ : 5 *→ : 4 ∕u : 4 £E : 4 @@ -21,6 +22,8 @@ xŘ : 4 ↕ũ : 4 Ňᵖ : 4 aş : 4 +ᵐ# : 3 +↕= : 3 S= : 3 {Ƶ : 3 ŢṂ : 3 @@ -51,7 +54,6 @@ R: : 3 &Þ : 3 -_ : 3 u# : 3 -Ťđ : 3 pN : 3 {ˣ : 3 Ṁ→ : 3 @@ -68,10 +70,8 @@ R∑ : 3 1: : 2 ᵉ+ : 2 ←P : 2 -ᵐ# : 2 qŁ : 2 ƀ= : 2 -↕= : 2 3* : 2 →I : 2 ĭᵐ : 2 @@ -123,6 +123,8 @@ R~ : 2 aj : 2 ᵐ∙ : 2 Ṁ← : 2 +ᵒ% : 2 +%ᵐ : 2 ᵐ∏ : 2 }∑ : 2 :E : 2 @@ -153,6 +155,7 @@ xq : 2 Þ½ : 2 Sđ : 2 ∩z : 2 +¿ᵐ : 2 ᵐj : 2 qŤ : 2 ;$ : 2 @@ -201,6 +204,7 @@ ut : 2 Ṗ↕ : 2 =} : 2 :# : 2 +#: : 2 x: : 2 ĭ? : 2 {* : 2 @@ -210,6 +214,7 @@ x: : 2 x- : 2 ŋ+ : 2 {ᵈ : 2 +≡¿ : 2 2Š : 2 }- : 2 $B : 2 @@ -230,6 +235,7 @@ rj : 2 :, : 2 {R : 2 #ᵑ : 2 +@j : 2 ±ĉ : 2 ĭ, : 2 Jĭ : 2 @@ -237,9 +243,11 @@ Jĭ : 2 ᵉt : 2 ti : 2 ᵐz : 2 +j↕ : 2 Ŝo : 2 oç : 2 ç∆ : 2 +:x : 2 ," : 1 :ᶦ : 1 $ᵉ : 1 @@ -385,8 +393,6 @@ l∑ : 1 ṁĨ : 1 ĨĦ : 1 Ħ+ : 1 -ᵒ% : 1 -%ᵐ : 1 ∏¬ : 1 ¬x : 1 x∙ : 1 @@ -520,7 +526,6 @@ S: : 1 :đ : 1 đ∩ : 1 z¿ : 1 -¿ᵐ : 1 Ťq : 1 Ť= : 1 $N : 1 @@ -768,7 +773,6 @@ h- : 1 -l : 1 p↔ : 1 ↔: : 1 -#: : 1 :Ë : 1 ËG : 1 GT : 1 @@ -807,7 +811,6 @@ f¡ : 1 ᶜŤ : 1 Ťĕ : 1 ĕ≡ : 1 -≡¿ : 1 ¿} : 1 ↕ᵃ : 1 {2 : 1 @@ -1125,7 +1128,6 @@ A± : 1 ᵉ{ : 1 $# : 1 ˣ@ : 1 -@j : 1 j, : 1 ,u : 1 u} : 1 @@ -1310,7 +1312,6 @@ J: : 1 :ᵐ : 1 hm : 1 mj : 1 -j↕ : 1 ũh : 1 h= : 1 :Ť : 1 @@ -1342,7 +1343,23 @@ f} : 1 ŧᵖ : 1 {, : 1 ,: : 1 -:x : 1 ŘṀ : 1 Ṁ= : 1 Ħ¬ : 1 +x+ : 1 ++Ṁ : 1 +Ṁ$ : 1 +$ᵒ : 1 +ᵐᶻ : 1 +ᶻ@ : 1 +ji : 1 +đᵃ : 1 +ᵃS : 1 +Sᵒ : 1 +ᵒÐ : 1 +Ðj : 1 +↕J : 1 +ᵐŤ : 1 +ŤŤ : 1 +đ≡ : 1 +ᵐ≡ : 1 diff --git a/analysis/freq_3gram.txt b/analysis/freq_3gram.txt index 2145cb6..7a40cc4 100644 --- a/analysis/freq_3gram.txt +++ b/analysis/freq_3gram.txt @@ -20,6 +20,7 @@ $ᵑ{ : 2 %ŗ} : 2 ŗ}k : 2 ᶦ{: : 2 +ᵒ%ᵐ : 2 ᶠ{$ : 2 ᵐ{x : 2 Rᶠ{ : 2 @@ -213,7 +214,6 @@ sNP : 1 :ṁĨ : 1 ṁĨĦ : 1 ĨĦ+ : 1 -ᵒ%ᵐ : 1 %ᵐ∏ : 1 ᵐ∏¬ : 1 ∏¬x : 1 @@ -1329,3 +1329,29 @@ $ŧᵖ : 1 :xŘ : 1 xŘṀ : 1 ŘṀ= : 1 +ᵐ#: : 1 +#:x : 1 +:x+ : 1 +x+Ṁ : 1 ++Ṁ$ : 1 +Ṁ$ᵒ : 1 +$ᵒ% : 1 +%ᵐᶻ : 1 +ᵐᶻ@ : 1 +ᶻ@j : 1 +@ji : 1 +Ťđᵃ : 1 +đᵃS : 1 +ᵃSᵒ : 1 +SᵒÐ : 1 +ᵒÐj : 1 +Ðj↕ : 1 +j↕= : 1 +↕Jᵐ : 1 +JᵐŤ : 1 +ᵐŤŤ : 1 +ŤŤđ : 1 +Ťđ≡ : 1 +đ≡¿ : 1 +≡¿ᵐ : 1 +¿ᵐ≡ : 1 diff --git a/analysis/freq_4gram.txt b/analysis/freq_4gram.txt index cdf12fc..2af881f 100644 --- a/analysis/freq_4gram.txt +++ b/analysis/freq_4gram.txt @@ -1070,3 +1070,27 @@ $ŧᵖ{ : 1 ,:xŘ : 1 :xŘṀ : 1 xŘṀ= : 1 +ᵐ#:x : 1 +#:x+ : 1 +:x+Ṁ : 1 +x+Ṁ$ : 1 ++Ṁ$ᵒ : 1 +Ṁ$ᵒ% : 1 +$ᵒ%ᵐ : 1 +ᵒ%ᵐᶻ : 1 +%ᵐᶻ@ : 1 +ᵐᶻ@j : 1 +ᶻ@ji : 1 +ŤđᵃS : 1 +đᵃSᵒ : 1 +ᵃSᵒÐ : 1 +SᵒÐj : 1 +ᵒÐj↕ : 1 +Ðj↕= : 1 +↕JᵐŤ : 1 +JᵐŤŤ : 1 +ᵐŤŤđ : 1 +ŤŤđ≡ : 1 +Ťđ≡¿ : 1 +đ≡¿ᵐ : 1 +≡¿ᵐ≡ : 1 diff --git a/analysis/freq_5gram.txt b/analysis/freq_5gram.txt index 10b25d5..d3c0335 100644 --- a/analysis/freq_5gram.txt +++ b/analysis/freq_5gram.txt @@ -833,3 +833,24 @@ $ŧᵖ{, : 1 {,:xŘ : 1 ,:xŘṀ : 1 :xŘṀ= : 1 +ᵐ#:x+ : 1 +#:x+Ṁ : 1 +:x+Ṁ$ : 1 +x+Ṁ$ᵒ : 1 ++Ṁ$ᵒ% : 1 +Ṁ$ᵒ%ᵐ : 1 +$ᵒ%ᵐᶻ : 1 +ᵒ%ᵐᶻ@ : 1 +%ᵐᶻ@j : 1 +ᵐᶻ@ji : 1 +ŤđᵃSᵒ : 1 +đᵃSᵒÐ : 1 +ᵃSᵒÐj : 1 +SᵒÐj↕ : 1 +ᵒÐj↕= : 1 +↕JᵐŤŤ : 1 +JᵐŤŤđ : 1 +ᵐŤŤđ≡ : 1 +ŤŤđ≡¿ : 1 +Ťđ≡¿ᵐ : 1 +đ≡¿ᵐ≡ : 1 diff --git a/analysis/particles.txt b/analysis/particles.txt index 750774c..81bd1d9 100644 --- a/analysis/particles.txt +++ b/analysis/particles.txt @@ -4,12 +4,12 @@ particle : with "{" / total ˣ : 0 / 4 ᶾ : 0 / 1 ᵉ : 1 / 21 -ᶻ : 1 / 11 +ᶻ : 1 / 12 ᶜ : 1 / 9 -ᵐ : 5 / 38 -ᵃ : 2 / 10 +ᵐ : 5 / 42 +ᵃ : 2 / 11 ᵋ : 1 / 5 -ᵒ : 4 / 17 +ᵒ : 4 / 19 ᵚ : 2 / 8 ᵗ : 2 / 7 ᵑ : 7 / 12 diff --git a/doc/GettingStarted.md b/doc/GettingStarted.md index 373589c..8046c35 100644 --- a/doc/GettingStarted.md +++ b/doc/GettingStarted.md @@ -2,7 +2,7 @@ ## Installation -Nekomata is written in [Haskell](https://www.haskell.org/). You need [Cabal](https://www.haskell.org/cabal/) (version 3.0 or newer) and [GHC](https://www.haskell.org/ghc/) (version 9.0.1 or newer) to build Nekomata. +Nekomata is written in [Haskell](https://www.haskell.org/). You need [Cabal](https://www.haskell.org/cabal/) (version 3.0 or newer) and [GHC](https://www.haskell.org/ghc/) (version 9.0.2 or newer) to build Nekomata. The easiest way to install these tools is through [GHCup](https://www.haskell.org/ghcup/). The packages provided by your Linux distribution's package manager may be too old to build Nekomata. diff --git a/test/Eval.hs b/test/Eval.hs index 2fd4479..4ec6b25 100644 --- a/test/Eval.hs +++ b/test/Eval.hs @@ -3561,3 +3561,44 @@ testEval = describe "Evaluation" $ do , ("2", all_ ["[1,1,0]"]) , ("0", all_ ["[0]"]) ] + describe "q272727: Weave two lists, cycling if necessary" $ do + specEval + "ᵐ#:x+Ṁ$ᵒ%ᵐᶻ@ji" + [ ("[[1],[2]]", all_ ["[1,2,1]"]) + , ("[[1,1],[2]]", all_ ["[1,2,1]"]) + , ("[[1,2,3],[6]]", all_ ["[1,6,2,6,3]"]) + , ("[[6],[1,2,3]]", all_ ["[6,1,6,2,6,3,6]"]) + , ("[[10,10],[42,42]]", all_ ["[10,42,10,42,10]"]) + , ("[[5,5],[5,5,5]]", all_ ["[5,5,5,5,5,5,5]"]) + , ("[[1,2,3,4,5],[6,7,8,9]]", all_ ["[1,6,2,7,3,8,4,9,5]"]) + , ("[[1,2,3,4,5],[7,8]]", all_ ["[1,7,2,8,3,7,4,8,5]"]) + , ("[[1,2],[6,7,8,9]]", all_ ["[1,6,2,7,1,8,2,9,1]"]) + , ("[[1,2,3],[7,8,9]]", all_ ["[1,7,2,8,3,9,1]"]) + ] + describe "q272771: Is it a cartesian product?" $ do + specEval + "ŤđᵃSᵒÐj↕=" + [ ("[[1,1]]", Check True) + , ("[[1,1],[1,2]]", Check True) + , ("[[1,1],[1,1],[2,1]]", Check True) + , ("[[1,4],[1,6],[2,4],[7,4],[7,6],[2,6]]", Check True) + , ("[[4,7],[4,6],[4,5],[4,4]]", Check True) + , ("[[1,2],[3,4]]", Check False) + , ("[[1,2],[2,2],[3,2],[1,3],[2,3]]", Check False) + , ("[[1,1],[1,1],[1,2],[2,1],[2,2]]", Check False) + , ("[[1,4],[7,4],[9,6]]", Check False) + , ("[[6,1],[1,6]]", Check False) + ] + specEval + "↕JᵐŤŤđ≡¿ᵐ≡" + [ ("[[1,1]]", Check True) + , ("[[1,1],[1,2]]", Check True) + , ("[[1,1],[1,1],[2,1]]", Check True) + , ("[[1,4],[1,6],[2,4],[7,4],[7,6],[2,6]]", Check True) + , ("[[4,7],[4,6],[4,5],[4,4]]", Check True) + , ("[[1,2],[3,4]]", Check False) + , ("[[1,2],[2,2],[3,2],[1,3],[2,3]]", Check False) + , ("[[1,1],[1,1],[1,2],[2,1],[2,2]]", Check False) + , ("[[1,4],[7,4],[9,6]]", Check False) + , ("[[6,1],[1,6]]", Check False) + ] \ No newline at end of file