Haskell程序:读取身高并判断是高个子、矮个子还是中等身高


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

算法

  • 步骤1 - 程序执行将从main函数开始。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函数或使用模式匹配。身高值作为参数传递给这些函数,然后将该人的身高描述作为输出显示。

更新于:2023年1月23日

浏览量:101

开启你的职业生涯

完成课程获得认证

开始学习
广告