の最初の関数の後に複数の関数を宣言するのに問題がありwhere
ます。
私が修正しようとしている私の機能:
--initials function using where and pattern matching
initials :: String -> String -> String
initials firstname lastname = [f] ++ ". " ++ [l] ++ "."
where (f:_) = firstname
(l:_) = lastname
ファイルghci
の:l functionSyntax
名前がfunctionSyntax.hs
.
ここで何が間違っていますか?私が Haskell を学んでいるサイトLearnYouaHaskellのコードは次のように書かれています。
initials :: String -> String -> String
initials firstname lastname = [f] ++ ". " ++ [l] ++ "."
where (f:_) = firstname
(l:_) = lastname
これはまったく同じコードだと思いますが、エラーが表示されます:
ghci> :l functionSyntax
[1 of 1] Compiling Main ( functionSyntax.hs, interpreted )
functionSyntax.hs:86:31: parse error on input `='
Failed, modules loaded: none.
このエラーはかなり一般的なように見えるので調べてみましたが、この一見単純な問題を修正できないようです。どんな助けでも大歓迎です!