1

私は現在、Learn You a Haskell のオンライン版から Haskell を学んでおり、第 4 章: 関数の構文にいます。この本を読んでいる間、私はすべてのサンプル関数を逐語的にテキスト エディター (Notepad++) にコーディングし、GHCI で実行します。

私が行った最近の機能は、私を悩ませ始めています (第 4 章の Guards, Guards! セクションにあります)。

initials :: String -> String -> String
initials firstname lastname = [f] ++ "." ++ [l]
    where   (f:_) = firstname
            (l:_) = lastname

これは私のコードであり、本に示されているコードでもあります。私が自分でそれを書くときはいつでも、GCHI は常に私に解析エラーを与えます。ただし、本からコピー/貼り付けすると機能します。面白いのは、違いがないということです。私は自分のコードをコピーして貼り付けましたが、文字通りそれらの間に違いはありませんでした。私はこれを数回行ったので、妄想ではないと確信しています。

なぜこうなった?どうすれば修正できますか?最初に調べたのですが、「where」の後の 2 つのステートメントを同じ列に揃える必要があることがわかりました。私はそれをやっています。まだ機能していません。

4

1 に答える 1

3

タブを使用していて、一貫性がない (つまり、一部の行でタブを使用し、他の行でスペースを使用する) 可能性がありますか?

Haskell レポートは次のように述べています。

  • タブストップは 8 文字離れています。
  • タブ文字を使用すると、現在の位置を次のタブ位置に揃えるのに十分なスペースが挿入されます。

タブを使用せず、常にスペースを使用することをお勧めします。

于 2013-06-05T20:50:11.113 に答える