packages feed

egison 3.3.16 → 3.3.17

raw patch · 3 files changed

+16/−6 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

egison.cabal view
@@ -1,5 +1,5 @@ Name:                egison-Version:             3.3.16+Version:             3.3.17 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.@@ -20,7 +20,7 @@   <http://www.egison.org/demonstrations/>   .     Egison makes programming dramatically simple.-  Please help us to make Egison popular.+  Please try Egison. Homepage:            http://www.egison.org License:             MIT License-file:        LICENSE
hs-src/Language/Egison/Core.hs view
@@ -169,7 +169,7 @@  evalExpr env (ArrayExpr exprs) = do   refs' <- mapM (newObjectRef env) exprs-  return . Intermediate . IArray $ Array.listArray (1, toInteger (length exprs)) refs'+  return . Intermediate . IArray $ Array.listArray (0, toInteger ((length exprs) - 1)) refs'  evalExpr env (HashExpr assocs) = do   let (keyExprs, exprs) = unzip assocs@@ -318,8 +318,8 @@   evalExpr env expr >>= arraySize   where     arraySize :: WHNFData -> EgisonM WHNFData-    arraySize (Intermediate (IArray arr)) = return . Value . toEgison $ snd $ Array.bounds arr-    arraySize (Value (Array arr))         = return . Value . toEgison $ snd $ Array.bounds arr+    arraySize (Intermediate (IArray arr)) = return . Value . toEgison $ (snd $ Array.bounds arr) + 1+    arraySize (Value (Array arr))         = return . Value . toEgison $ (snd $ Array.bounds arr) + 1     arraySize val                          = throwError $ TypeMismatch "array" val  evalExpr _ SomethingExpr = return $ Value Something@@ -390,7 +390,7 @@ generateArray env name sizeExpr expr = do   size <- evalExpr env sizeExpr >>= fromWHNF >>= return . fromInteger   elems <- mapM genElem (enumFromTo 1 size)-  return $ Intermediate $ IArray $ Array.listArray (1, size) elems+  return $ Intermediate $ IArray $ Array.listArray (0, size - 1) elems   where     genElem :: Integer -> EgisonM ObjectRef     genElem i = do env' <- bindEnv env name $ toInteger i
lib/core/string.egi view
@@ -49,6 +49,16 @@   (lambda [$xs]     (eq? xs ""))) +(define $S.car+  (lambda [$xs]+    (match xs string+      {[<cons $x _> x]})))++(define $S.cdr+  (lambda [$xs]+    (match xs string+      {[<cons _ $r> r]})))+ (define $S.map   (lambda [$f $xs]     (pack (map f (unpack xs)))))