picolisp/src/Primitives.hs

16 lines
410 B
Haskell
Raw Normal View History

2021-02-27 23:20:42 +00:00
module Primitives (pAdd, pSub, pMul, pDiv) where
-- This module exports the primitve expressions for our language
import Expression
2021-02-27 23:20:42 +00:00
pArith :: (Double -> Double -> Double) -> [Expression] -> Expression
pArith f es = Number . foldr1 f $ map unnum es
where unnum = \(Number x) -> x
2021-02-27 23:20:42 +00:00
pAdd, pSub, pMul, pDiv :: [Expression] -> Expression
pAdd = pArith (+)
pSub = pArith (-)
pMul = pArith (*)
pDiv = pArith (/)