哈斯克尔。哪里有两个定义

时间:2012-04-27 09:42:32

标签: haskell

两个或两个以上的块有两种方式使用'where'吗?像这样:

plus:: Int -> Int -> Int
plus a b = x + y
         where x = f1 a
         where y = f2 b

1 个答案:

答案 0 :(得分:15)

除了第一个where以外的所有内容:

plus:: Int -> Int -> Int
plus a b = x + y
         where x = f1 a
               y = f2 b

请注意

  • 定义必须相互排列
  • 你应该只使用空格缩进定义,而不是缩进(一些文本编辑器不使用标签的标签选项卡宽度,导致ghc相信最后一行比实际缩进或更少;这两种方式导致误差)