使用 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 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告