14

いくつかの let ステートメントをネストしようとしていますが、意味をなさない構文エラーが発生します。私はHaskellプログラミングに本当に慣れていないので、それは私が理解していないことだと確信しています(おそらく間隔に関係しています)。let と in は同じ列にある必要があることを理解しています。

その理由は次のとおりです。

aaa = let y = 1+2
          z = 4+6
      in y+z

完全に正常に動作しますが、

aaa = let y = 1+2
          z = 4+6
          in let f = 3
                 e = 3
             in e+f

エラーが表示されます:「式の構文エラー (予期しない `=')」

4

1 に答える 1

21

2 番目の例では、z = ...は と整列していませんy = ...。ブロックではlet、すべての定義を整列する必要があります。

あなたはタブ文字でインデントしていると思われます.タブを8スペース未満で表示するようにエディターを設定しているため、タブがあなたに合わせて配置されているように見えます. タブをスペースに置き換え、将来このような問題を回避するためにタブをスペースに展開するようにエディターを設定することをお勧めします。

于 2012-04-13T21:48:41.817 に答える