3
以下のコードが機能しない理由を理解するのに何らかの問題があります。 Command
のデータ型は、ServerCommand
またはClientCommand
のいずれかであるため、Command
を受け取ることになっている任意の型のコンストラクタは、どちらか一方を受け入れることができます。私は、これらのデータ型がどのように並んでいるかについて基本的な誤解を持っているようです。ハスケル型混乱。 /または関係にもかかわらず予想されるタイプと一致しませんでした
data ClientCommand = SEND |
DISCONNECT |
CONNECT
data ServerCommand = CONNECTED |
MESSAGE |
RECEIPT |
ERROR
data Command = ServerCommand | ClientCommand
type Frame = (Command, Maybe String)
makeConnect :: Frame
makeConnect = (CONNECT, (Just "hello!"))
私はGHCiのにこのコードをロードしようとすると、私は次のエラーを取得する:
GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main (Frames.hs, interpreted)
Frames.hs:15:16:
Couldn't match expected type ‘Command’
with actual type ‘ClientCommand’
In the expression: CONNECT
In the expression: (CONNECT, (Just "hello!"))
Failed, modules loaded: none.