egison 0.1.2 → 0.1.2.1
raw patch · 3 files changed
+34/−3 lines, 3 filesdep +parsec2dep −parsec3
Dependencies added: parsec2
Dependencies removed: parsec3
Files
- Egison.hs +1/−1
- egison.cabal +2/−2
- etc/sample/list-test.egi +31/−0
Egison.hs view
@@ -10,7 +10,7 @@ main :: IO () main = do args <- getArgs case length args of- 0 -> do flushStr "Egison, version 0.1.2 : http://hagi.is.s.u-tokyo.ac.jp/~egi/egison/\nWelcome to Egison Interpreter!\n"+ 0 -> do flushStr "Egison, version 0.1.2.1 : http://hagi.is.s.u-tokyo.ac.jp/~egi/egison/\nWelcome to Egison Interpreter!\n" defsRef <- newIORef [] runRepl defsRef _ -> putStrLn "Program takes only 0 argument!"
egison.cabal view
@@ -7,7 +7,7 @@ -- The package version. See the Haskell package versioning policy -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for -- standards guiding when and how versions should be incremented.-Version: 0.1.2+Version: 0.1.2.1 -- A short (one-line) description of the package. Synopsis: An Interpreter for the Programming Language Egison@@ -60,7 +60,7 @@ Main-is: Egison.hs -- Packages needed in order to build this package.- Build-depends: base >= 4.0 && < 5, haskell98, mtl, parsec3+ Build-depends: base >= 4.0 && < 5, haskell98, mtl, parsec2 -- Modules not exported by this package. -- Other-modules:
etc/sample/list-test.egi view
@@ -371,3 +371,34 @@ {[<nil> {}] [<cons $a $rs> {@(reverse rs) a}]})))+++(define $min+ (lambda [$Ns]+ (match Ns (List Int)+ {[<cons $n <nil>> n]+ [<cons $n $Rs>+ (let {[$r (min Rs)]}+ (match (compare n r) Order+ {[<less> n]+ [_ r]}))]}))) ++(define $gcd+ (lambda [$Ns]+ (let {[$Ns2 (remove-all Ns 0)]}+ (match ns2 (Multiset Int)+ {[<cons $n <nil>> n]+ [<cons ,(min Ns2)+ $Rs>+ (gcd {n @(map (lambda [$r] (mod r n))+ Rs)})]}))))++(define $gcd+ (lambda [$Ns]+ (let {[$Ns2 (remove-all Ns 0)]}+ (match Ns2 (Set Int)+ {[<cons $n <nil>> n]+ [<cons ,(min Ns2)+ $Rs>+ (gcd {n @(map (lambda [$r] (mod r n))+ Rs)})]}))))