16 lines
410 B
Haskell
16 lines
410 B
Haskell
module Primitives (pAdd, pSub, pMul, pDiv) where
|
|
|
|
-- This module exports the primitve expressions for our language
|
|
|
|
import Expression
|
|
|
|
pArith :: (Double -> Double -> Double) -> [Expression] -> Expression
|
|
pArith f es = Number . foldr1 f $ map unnum es
|
|
where unnum = \(Number x) -> x
|
|
|
|
pAdd, pSub, pMul, pDiv :: [Expression] -> Expression
|
|
pAdd = pArith (+)
|
|
pSub = pArith (-)
|
|
pMul = pArith (*)
|
|
pDiv = pArith (/)
|