3

2 つ以上のブロックで 'where' を使用する方法はありますか? このようなもの:

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

1 に答える 1

15

最初のものを除いてすべて省略してwhereください:

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

ご了承ください

  • 定義は互いに一致している必要があります
  • タブではなくスペースのみを使用して定義をインデントする必要があります(一部のテキストエディタはタブに標準のタブ幅を使用しないため、ghcは、最後の行が実際よりも大きくまたは小さくインデントされていると見なします。どちらの方法でもエラーが発生します)
于 2012-04-27T09:44:17.227 に答える