Haskell套接字动作调用语法

时间:2015-07-16 09:06:28

标签: sockets haskell syntax

在代码片段s <- socket :: IO (Socket Inet Stream TCP)中,以&#34; ::&#34;开头的子表达式是什么?意思?

我能理解&#34; ::&#34;在socket :: (Family f, Type t, Protocol p) => IO (Socket f t p)中用于函数签名,但在&#34; ::&#34;在这种情况下用于动作调用。

这是the Haskell socket manual

的示例代码中列出的内容

1 个答案:

答案 0 :(得分:4)

它只是意味着“将此表达式用于生成此类型”。令人费解?不是,请考虑

x = 0

x是什么类型的? Num a => a。如果您特别需要Int

,该怎么办?
x = 0 :: Int

这就是它的全部。它根本不是特定于套接字的,它是标准Haskell语法的一部分。