Haskell 程序读取一个人的身高,并打印此人是高个子、矮个子还是平均身高的人

haskellserver side programmingprogramming更新于 2025/5/8 4:52:17

本教程将帮助我们读取一个人的身高,并在进行比较时打印此人是高个子、矮个子还是平均身高的人。身高值(以厘米为单位)作为参数传递给定义的函数,然后将身高与 Haskell 中定义的条件进行比较。并显示最终输出。

算法

  • 步骤 1 - 程序执行将从主函数开始。main() 函数对程序具有完全控制权。

  • 步骤 2 - 创建用户定义函数来执行任务

  • 步骤 3 - if-else 语句在高度上定义,如果高度 > 180,则该人很高;否则,如果身高 < 150,则该人是侏儒;否则,该人身高平均。

  • 步骤 4 - 使用"putStrLn"语句比较身高值后显示最终输出。

使用 if-else 语句

在此示例中,我们将使用 if-else 语句检查身高值并打印相应的消息。

示例 1

main :: IO ()
main = do
  let height = 165
  if height > 180
     then putStrLn "You are a tall person."
  else if height < 150
     then putStrLn "You are a dwarf."
  else putStrLn "You are an average height person."

输出

You are an average height person.

使用用户定义函数

在此示例中,heightDescription 函数用于根据输入确定人员身高的描述。heightDescription 函数使用保护来根据各种条件检查输入的值,并根据输入返回适当的字符串。

示例 2

main :: IO ()
main = do
  let height = 185
  putStrLn (heightDescription height)

heightDescription :: Float -> String
heightDescription height
   | height > 180 = "You are a tall person."
   | height < 150 = "You are a dwarf."
   | otherwise = "You are an average height person."

输出

You are a tall person.

使用模式匹配

在此示例中,模式匹配用于根据人员的输入确定其身高的描述。

示例 3

main :: IO ()
main = do
  let height = 145
  putStrLn (heightDescription height)
heightDescription :: Float -> String
heightDescription height = 
    case height of
        h | h > 180  -> "You are a tall person."
        h | h < 150  -> "You are a dwarf."
        _            -> "You are an average height person."

输出

You are a dwarf.

结论

在 Haskell 中,有多种方法可以读取一个人的身高,然后预测其身高描述。要检查这一点,我们可以使用 if-else 语句、用户定义的 heightDescription 函数或使用模式匹配。身高值作为参数传递给这些函数,然后将人的身高描述显示为输出。


相关文章