egison 3.3.14 → 3.3.15
raw patch · 4 files changed
+27/−16 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- egison.cabal +1/−1
- lib/string/japanese.egi +14/−13
- lib/string/string.egi +10/−0
- sample/salesman.egi +2/−2
egison.cabal view
@@ -1,5 +1,5 @@ Name: egison-Version: 3.3.14+Version: 3.3.15 Synopsis: Programming language with non-linear pattern-matching against unfree data Description: An interpreter for Egison, the programming langugage that realized non-linear pattern-matching against unfree data types.
lib/string/japanese.egi view
@@ -15,6 +15,7 @@ [,'ダ' #t] [,'ヂ' #t] [,'ヅ' #t] [,'デ' #t] [,'ド' #t] [,'バ' #t] [,'ビ' #t] [,'ブ' #t] [,'ベ' #t] [,'ボ' #t] [,'パ' #t] [,'ピ' #t] [,'プ' #t] [,'ペ' #t] [,'ポ' #t]+ [,'ヴ' #t] [,'ヰ' #t] [,'ァ' #t] [,'ィ' #t] [,'ゥ' #t] [,'ェ' #t] [,'ォ' #t] [,'ャ' #t] [,'ュ' #t] [,'ョ' #t] [,'ッ' #t] [,'ー' #t]@@ -57,19 +58,19 @@ (define $katakana-to-yomi-y-1 (lambda [$cs] (match cs (list char)- {[,{'キ' 'ャ'} {"K" "Y" "A"}] [,{'キ' 'ュ'} {"K" "Y" "U"}] [,{'キ' 'ョ'} {"K" "Y" "O"}]- [,{'ギ' 'ャ'} {"G" "Y" "A"}] [,{'ギ' 'ュ'} {"G" "Y" "U"}] [,{'ギ' 'ョ'} {"G" "Y" "O"}]- [,{'シ' 'ャ'} {"SH" "Y" "A"}] [,{'シ' 'ュ'} {"SH" "U"}] [,{'シ' 'ョ'} {"SH" "O"}]+ {[,{'キ' 'ャ'} {"KY" "A"}] [,{'キ' 'ュ'} {"KY" "U"}] [,{'キ' 'ョ'} {"KY" "O"}]+ [,{'ギ' 'ャ'} {"GY" "A"}] [,{'ギ' 'ュ'} {"GY" "U"}] [,{'ギ' 'ョ'} {"GY" "O"}]+ [,{'シ' 'ャ'} {"SH" "A"}] [,{'シ' 'ュ'} {"SH" "U"}] [,{'シ' 'ョ'} {"SH" "O"}] [,{'ジ' 'ャ'} {"J" "A"}] [,{'ジ' 'ュ'} {"J" "U"}] [,{'ジ' 'ョ'} {"J" "O"}] [,{'チ' 'ャ'} {"CH" "A"}] [,{'チ' 'ュ'} {"CH" "U"}] [,{'チ' 'ョ'} {"CH" "O"}] [,{'ヂ' 'ャ'} {"J" "A"}] [,{'ヂ' 'ュ'} {"J" "U"}] [,{'ヂ' 'ョ'} {"J" "O"}]- [,{'ニ' 'ャ'} {"N" "Y" "A"}] [,{'ニ' 'ュ'} {"N" "U"}] [,{'ニ' 'ョ'} {"N" "O"}]- [,{'ヒ' 'ャ'} {"H" "Y" "A"}] [,{'ヒ' 'ュ'} {"H" "Y" "U"}] [,{'ヒ' 'ョ'} {"H" "Y" "O"}]- [,{'ビ' 'ャ'} {"B" "Y" "A"}] [,{'ビ' 'ュ'} {"B" "Y" "U"}] [,{'ビ' 'ョ'} {"B" "Y" "O"}]- [,{'ピ' 'ャ'} {"P" "Y" "A"}] [,{'ピ' 'ュ'} {"P" "Y" "U"}] [,{'ピ' 'ョ'} {"P" "Y" "O"}]- [,{'ミ' 'ャ'} {"M" "Y" "A"}] [,{'ミ' 'ュ'} {"M" "Y" "U"}] [,{'ミ' 'ョ'} {"M" "Y" "O"}]- [,{'リ' 'ャ'} {"R" "Y" "A"}] [,{'リ' 'ュ'} {"R" "Y" "U"}] [,{'リ' 'ョ'} {"R" "Y" "O"}]- [,{'フ' 'ュ'} {"F" "Y" "U"}] [,{'テ' 'ュ'} {"CH" "U"}] [,{'デ' 'ュ'} {"D" "Y" "U"}]+ [,{'ニ' 'ャ'} {"NY" "A"}] [,{'ニ' 'ュ'} {"N" "U"}] [,{'ニ' 'ョ'} {"N" "O"}]+ [,{'ヒ' 'ャ'} {"HY" "A"}] [,{'ヒ' 'ュ'} {"HY" "U"}] [,{'ヒ' 'ョ'} {"HY" "O"}]+ [,{'ビ' 'ャ'} {"BY" "A"}] [,{'ビ' 'ュ'} {"BY" "U"}] [,{'ビ' 'ョ'} {"BY" "O"}]+ [,{'ピ' 'ャ'} {"PY" "A"}] [,{'ピ' 'ュ'} {"PY" "U"}] [,{'ピ' 'ョ'} {"PY" "O"}]+ [,{'ミ' 'ャ'} {"MY" "A"}] [,{'ミ' 'ュ'} {"MY" "U"}] [,{'ミ' 'ョ'} {"MY" "O"}]+ [,{'リ' 'ャ'} {"RY" "A"}] [,{'リ' 'ュ'} {"RY" "U"}] [,{'リ' 'ョ'} {"RY" "O"}]+ [,{'フ' 'ュ'} {"FY" "U"}] [,{'テ' 'ュ'} {"CH" "U"}] [,{'デ' 'ュ'} {"DY" "U"}] [<cons $c1 <cons $c2 <nil>>> {@(katakana-to-yomi-1 {c1}) @(match c2 char {[,'ャ' {"Y" "A"}] [,'ュ' {"Y" "A"}] [,'ョ' {"Y" "A"}]})}] })))@@ -79,10 +80,10 @@ (match cs (list char) {[,{'ウ' 'ィ'} {"W" "I"}] [,{'ウ' 'ェ'} {"W" "E"}] [,{'ウ' 'ォ'} {"W" "O"}] [,{'キ' 'ィ'} {"K" "I"}]- [,{'ク' 'ァ'} {"K" "W" "A"}] [,{'ク' 'ィ'} {"K" "W" "I"}] [,{'ク' 'ェ'} {"K" "W" "E"}] [,{'ク' 'ォ'} {"K" "W" "O"}]+ [,{'ク' 'ァ'} {"K" "A"}] [,{'ク' 'ィ'} {"K" "I"}] [,{'ク' 'ェ'} {"K" "E"}] [,{'ク' 'ォ'} {"K" "O"}] [,{'シ' 'ィ'} {"S" "I"}] [,{'シ' 'ェ'} {"SH" "E"}] [,{'ジ' 'ェ'} {"J" "E"}]- [,{'ツ' 'ァ'} {"TS" "A"}] [,{'ツ' 'ゥ'} {"T" "U"}] + [,{'ツ' 'ァ'} {"TS" "A"}] [,{'ツ' 'ィ'} {"TS" "I"}] [,{'ツ' 'ゥ'} {"TS" "U"}] [,{'ツ' 'ェ'} {"TS" "E"}] [,{'ツ' 'ォ'} {"TS" "O"}] [,{'チ' 'ェ'} {"CH" "E"}] [,{'フ' 'ァ'} {"F" "A"}] [,{'フ' 'ィ'} {"F" "I"}] [,{'フ' 'ェ'} {"F" "E"}] [,{'フ' 'ォ'} {"F" "O"}] [,{'ヴ' 'ァ'} {"V" "A"}] [,{'ヴ' 'ィ'} {"V" "I"}] [,{'ヴ' 'ェ'} {"V" "E"}] [,{'ヴ' 'ォ'} {"V" "O"}]@@ -112,6 +113,6 @@ [,{'ダ'} {"D" "A"}] [,{'ヂ'} {"D" "I"}] [,{'ヅ'} {"D" "U"}] [,{'デ'} {"D" "E"}] [,{'ド'} {"D" "O"}] [,{'バ'} {"B" "A"}] [,{'ビ'} {"B" "I"}] [,{'ブ'} {"B" "U"}] [,{'ベ'} {"B" "E"}] [,{'ボ'} {"B" "O"}] [,{'パ'} {"P" "A"}] [,{'ピ'} {"P" "I"}] [,{'プ'} {"P" "U"}] [,{'ペ'} {"P" "E"}] [,{'ポ'} {"P" "O"}]- [,{'ヴ'} {"V" "U"}] [,{'ヮ'} {"W" "A"}] + [,{'ヴ'} {"V" "U"}] [,{'ヮ'} {"W" "A"}] [,{'ヰ'} {"I"}] })))
lib/string/string.egi view
@@ -102,3 +102,13 @@ [,'u' 'U'] [,'v' 'V'] [,'w' 'W'] [,'x' 'X'] [,'y' 'Y'] [,'z' 'Z'] [$c c]}))++(define $lower-case+ (match-lambda char+ {[,'A' 'a'] [,'B' 'b'] [,'C' 'c'] [,'D' 'd'] [,'E' 'e']+ [,'F' 'f'] [,'G' 'g'] [,'H' 'h'] [,'I' 'i'] [,'J' 'j']+ [,'K' 'k'] [,'L' 'l'] [,'M' 'm'] [,'N' 'n'] [,'O' 'o']+ [,'P' 'p'] [,'Q' 'q'] [,'R' 'r'] [,'S' 's'] [,'T' 't']+ [,'U' 'u'] [,'V' 'v'] [,'W' 'w'] [,'X' 'x'] [,'Y' 'y']+ [,'Z' 'z']+ [$c c]}))
sample/salesman.egi view
@@ -22,9 +22,9 @@ (loop $i [2 5] <cons [,s_(- i 1) <cons [$s_i $p_i] _>] ...>- <cons [,s_5 <cons [(& ,"東京" $s_6) $p_6] _>]+ <cons [(& ,"錦糸町" ,s_5) _] _>)>- [(sum (map (lambda [$i] p_i) (between 1 6)))+ [(sum (map (lambda [$i] p_i) (between 1 5))) s]])) (define $main