egison 3.0.7 → 3.0.8
raw patch · 4 files changed
+44/−13 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- egison.cabal +1/−1
- elisp/egison-mode.el +26/−12
- lib/core/collection.egi +9/−0
- lib/core/number.egi +8/−0
egison.cabal view
@@ -1,5 +1,5 @@ Name: egison-Version: 3.0.7+Version: 3.0.8 Synopsis: An Interpreter for the Programming Language Egison Description: An interpreter for the programming language Egison. A feature of Egison is the strong pattern match facility.
elisp/egison-mode.el view
@@ -14,22 +14,28 @@ "\\<define\\>" "\\<test\\>" "\\<execute\\>"- + "\\<load\\>"+ "\\<load-file\\>"+ "\\<lambda\\>"- "\\<macro\\>"- "\\<do\\>"- "\\<if\\>" "\\<let\\>" "\\<letrec\\>"- "\\<matcher\\>"- "\\<algebraic-data-matcher\\>"+ "\\<if\\>"+ "\\<apply\\>"+ "\\<generate-array\\>"+ "\\<array-size\\>"+ "\\<array-ref\\>"+ "\\<loop\\>"- "\\<match-lambda\\>" "\\<match\\>" "\\<match-all\\>"+ "\\<matcher\\>"+ "\\<algebraic-data-matcher\\>"+ "\\<match-lambda\\>" "\\<pattern-function\\>"- "\\<generate-array\\>" + "\\<do\\>"+ "\\<undefined\\>" "\\<something\\>" @@ -115,18 +121,26 @@ (defun keyword-indent-point (name) (cond ((equal "define" name) 2)+ ((equal "test" name) 2)+ ((equal "load" name) 2)+ ((equal "load-file" name) 2)+ ((equal "execute" name) 2) ((equal "lambda" name) 2)- ((equal "match-lambda" name) 2)- ((equal "macro" name) 2) ((equal "let" name) 2) ((equal "letrec" name) 2)- ((equal "do" name) 2)+ ((equal "if" name) 2)+ ((equal "apply" name) 2)+ ((equal "generate-array" name) 2)+ ((equal "array-size" name) 2)+ ((equal "array-ref" name) 2)+ ((equal "loop" name) 2) ((equal "match" name) 2) ((equal "match-all" name) 2) ((equal "matcher" name) 2) ((equal "algebraic-data-matcher" name) 2)- ((equal "generate-array" name) 2)+ ((equal "match-lambda" name) 2) ((equal "pattern-function" name) 2)+ ((equal "do" name) 2) )) (defun egison-indent-line ()
lib/core/collection.egi view
@@ -158,6 +158,15 @@ ((occurrence a) xs)))) |# +(define $one-of+ (lambda [$pred $xs]+ (match xs (list something)+ {[<nil> #f]+ [<cons $x $rs>+ (if (pred x)+ #t+ (one-of pred rs))]})))+ (define $size (lambda [$xs] (match xs (list something)
lib/core/number.egi view
@@ -135,3 +135,11 @@ [$ [something] {[$tgt {(modulo tgt m)}]}] })))++(define $primes+ (letrec {[$next-primes+ (lambda [$primes1 $n]+ (if (one-of (lambda [$p] (eq-n? (remainder n p) 0)) primes1)+ (next-primes primes1 (+ n 1))+ {n @(next-primes {@primes1 n} (+ n 1))}))]}+ {2 @(next-primes {2} 3)}))