使用 switch...case 的 Haskell 简单计算器程序


在本文中,我们将学习如何使用 switch…case 在 Haskell 中创建一个简单的计算器。在第一个示例中,我们将使用带不同运算符的 case 语句;在第二个示例中,我们将使用函数映射 (fromList [('+', (+)), ('-', (-)), ('*', (*)), ('/', (/))])。

方法 1:使用 case 语句创建简单计算器程序

在这种方法中,创建了一个简单的 Haskell 计算器程序,它接受三个参数:x、op 和 y。x 和 y 的类型为 Double,op 的类型为 Char。calculator 函数接受这三个参数,并使用 case 语句检查 op 的值。根据 op 的值,它对 x 和 y 执行相应的运算并返回结果。

算法

  • 步骤 1 − 使用 case 语句定义用户定义的 calculator 函数。

  • 步骤 2 − 程序执行将从 main 函数开始。main() 函数控制整个程序。

  • 步骤 3 − 初始化名为“x”和“y”的变量以保存操作数的值,并初始化“op”以保存运算符。

  • 步骤 4 − 调用函数后,使用‘print’函数将给定运算的结果打印到控制台。

示例 1

在此示例中,我们将了解如何使用 case 语句创建简单的计算器。

calculator :: Double -> Char -> Double -> Double
calculator x op y = case op of
   '+' -> x + y
   '-' -> x - y
   '*' -> x * y
   '/' -> x / y
   _   -> error "Invalid operator"

main :: IO ()
main = do
   let x = 5.0
   let op = '*'
   let y = 2.0
   print (calculator x op y)

输出

10.0

示例 2

在此示例中,我们将了解如何使用带 toLower 函数的 case 语句创建简单的计算器。

import Data.Char (toLower)

calculator :: Double -> Double -> Char -> Double
calculator a b op = case toLower op of
   '+' -> a + b
   '-' -> a - b
   '*' -> a * b
   '/' -> a / b
   _   -> error "Invalid operator"

main :: IO ()
main = do
   let a = 2
   let b = 5
   let op = "*"
   print (calculator a b (head op))

输出

10.0

示例 3

在此示例中,我们将了解如何使用函数映射创建简单的计算器。

import Data.Map (Map, fromList, lookup)

calculator :: Double -> Char -> Double -> Double
calculator x op y = case Data.Map.lookup op operators of
   Just f  -> f x y
   Nothing -> error "Invalid operator"
   where
      operators = fromList [('+', (+)), ('-', (-)), ('*', (*)), ('/', (/))]

main :: IO ()
main = do
   let x = 5.0
   let op = '*'
   let y = 2.0
   print (calculator x op y)

输出

10.0

结论

简单的计算器是一种设备或程序,用于执行基本的数学运算,如加法、减法、乘法和除法。它通常具有用户友好的界面,允许用户输入数字和运算符,并获得计算结果。在 Haskell 中,可以使用 case 语句或使用带 case 语句的 toLower 函数,以及使用函数映射来创建简单的计算器。

更新于: 2023年3月13日

734 次浏览

开启你的 职业生涯

完成课程获得认证

开始学习
广告