如何在Haskell中编写嵌套的if语句?

苏琳达

我有此函数“路径”,它带有3个参数:

path::String->String->String->IO()
path place1 dir place2 =
  if place1 == "bedroom" && d == 'n' && place2 == "den"
    then do
      putStrLn "You are in a bedroom with a large, comfortable bed. It has  been a long, tiresome day, and you would like nothing better than to go to sleep."
  else
    if place1 == "bedroom" && d == 'd' && place2 == "bed"
      then describe "bed"
    else
      if place1 == "den" && d == 's' && place2 == "bedroom"
        then describe "bedroom"
      else
        if place1 == "bed" && d == 'u' && place2 == "bedroom"
          then describe "bedroom"
        else  putStrLn "Cannot go there!"

我想知道这是否是具有多个条件和多个if语句的正确方法?

ØrjanJohansen

这不是不正确的,但不是惯用语言(即习惯样式)。通常,我们喜欢使用警卫而不是if-then-else,例如@ user5402的答案。但是,在您的情况下,您还只是将常量常量与进行了比较==,这意味着最好的方法是将其进一步扩展并使用模式匹配(我对它进行了更漂亮的格式化):

path :: String -> String -> String -> IO ()
path "bedroom" "n" "den"     = putStrLn "You are in a bedroom with a large, comfortable bed. It has  been a long, tiresome day, and you would like nothing better than to go to sleep."
path "bedroom" "d" "bed"     = describe "bed"
path "den"     "s" "bedroom" = describe "bedroom"
path "bed"     "u" "bedroom" = describe "bedroom"
path _         _   _         = putStrLn "Cannot go there!"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Rails中使用嵌套JSON编写case语句

来自分类Dev

如何在coffeescript中编写require语句?

来自分类Dev

如何在JSON中编写if语句?

来自分类Dev

如何在 Javascript 中编写 if 语句?

来自分类Dev

如何在 bookshelfJS 中编写嵌套查询

来自分类Dev

如何在Haskell中编写游戏循环?

来自分类Dev

如何在Haskell中编写showIt函数?

来自分类Dev

如何在If的substr函数中嵌套If语句

来自分类Dev

如何在Haskell中实现嵌套函数

来自分类Dev

如何在clojure中的if块中编写多个语句?

来自分类Dev

如何使用嵌套联接编写选择语句

来自分类Dev

如何在Couchbase中为此SQL语句编写视图

来自分类Dev

如何在QML中编写条件导入语句?

来自分类Dev

如何在Thrift IDL中编写“ javadoc”语句?

来自分类Dev

如何在CriteriaBuilder中编写此JPA选择语句

来自分类Dev

如何在Robot Framework中编写if语句的多个条件

来自分类Dev

如何在字符串中编写IF语句?

来自分类Dev

如何在SQL中编写if和join语句

来自分类Dev

如何在angularJS控制器中编写Switch语句

来自分类Dev

如何在ruby erb html表中编写if语句

来自分类Dev

如何在python / selenium / scraping中编写此if语句

来自分类Dev

如何在SQL中编写IF语句以隐藏非重复行

来自分类Dev

如何在bash shell脚本中编写条件if语句?

来自分类Dev

编写测试语句时如何在UNIX中显示“或”关系?

来自分类Dev

如何在SQL Server中编写SAS的IF THEN DO语句

来自分类Dev

如何在SQL中编写if和join语句

来自分类Dev

如何在ng-class中编写条件语句?

来自分类Dev

如何在具有大量条件的 VBA 中编写 OR 语句

来自分类Dev

如何在 Laravel 中编写 sql 'like' 语句?

Related 相关文章

热门标签

归档