packages feed

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 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 =