なぜこれが起こっているのか疑問です。私は「YesodWeb」の電子ブックをフォローしていますが、足場のあるサイトを持っています。「messages」ファイル内で「plural」の関数を適用したい位置に到達すると、コンパイラは次のエラーを返します。
Foundation.hs:52:1:範囲外:`plural'
私が「ハムレット」と呼んでいるものと同じhsファイルで複数形が宣言されている場合。ただし、「Foundation.hs」ファイルの52行目の前に関数宣言を移動すると、エラーが消えて、効果的にコンパイルできます。なぜこれが起こるのですか?
module Handler.UserProfile where
import Import
import Data.Maybe (fromMaybe)
import Data.Text (pack, unpack)
viewCountName :: Text
viewCountName = "UserProfileViews"
readInt :: String -> Int
readInt = read
plural :: Int -> String -> String -> String
plural 1 x _ = x
plural _ _ y = y
getUserProfileR :: Handler RepHtml
getUserProfileR = do
viewCount <- lookupSession viewCountName
>>= return . (1 +) . readInt . unpack . fromMaybe "0"
setSession viewCountName (pack $ show viewCount)
maid <- maybeAuth
--msg <- getMessageRender
let user = case maid of
Nothing -> "(Unknown User ID)" --show MsgHello --
Just (Entity _ u) -> userEmail u
defaultLayout $ do
setTitleI MsgUserProfile
$(widgetFile "nhUserProfile")