mathexpr 0.1.0.0 → 0.2.0.0
raw patch · 2 files changed
+7/−3 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- mathexpr.cabal +1/−1
- src/Data/MathExpr.hs +6/−2
mathexpr.cabal view
@@ -1,5 +1,5 @@ name: mathexpr-version: 0.1.0.0+version: 0.2.0.0 synopsis: Parse and evaluate math expressions with variables and functions description: A simple tool to evaluate math expressions as strings with support for custom functions and operators homepage: https://github.com/mdibaiee/mathexpr
src/Data/MathExpr.hs view
@@ -1,3 +1,4 @@+{-# Language ScopedTypeVariables #-} module Data.MathExpr ( evaluate , Settings (..)@@ -6,7 +7,6 @@ ) where import Data.Default.Class import Data.Maybe (isJust, fromJust)- import Debug.Trace import Data.List (find) data Settings = Settings { operators :: [(Char, Int, Double -> Double -> Double)]@@ -78,9 +78,13 @@ fns = functions settings helper :: [String] -> [String] -> Double+ -- negative numbers come in the form ["num", "-"] helper [] [o] = read o helper (c:cs) os- | isOperator c =+ | c == "-" && length os < 2 =+ let result :: Double = negate . read . head $ cs+ in helper (tail cs) $ (show result) : os+ | isOperator c && length os >= 2 = let result = (operatorFunction c) (read . head . tail $ os) (read . head $ os) in helper cs $ (show result) : drop 2 os | isFunction c =