Haskell 套接字操作调用语法
Haskell socket action invocation syntax
代码片段s <- socket :: IO (Socket Inet Stream TCP)
中以“::”开头的子表达式是什么意思?
我能理解什么时候像 socket :: (Family f, Type t, Protocol p) => IO (Socket f t p)
那样在函数签名中使用“::”,但在这种情况下当“::”在动作调用中使用时我不能理解。
的示例代码中列出
它只是真正的意思"take this expression to produce this type"。费解?不是真的,考虑一下
x = 0
x是什么类型的? Num a => a
。如果您特别想要 Int
怎么办?
x = 0 :: Int
仅此而已。它根本不特定于套接字,它是标准 Haskell 语法的一部分。
代码片段s <- socket :: IO (Socket Inet Stream TCP)
中以“::”开头的子表达式是什么意思?
我能理解什么时候像 socket :: (Family f, Type t, Protocol p) => IO (Socket f t p)
那样在函数签名中使用“::”,但在这种情况下当“::”在动作调用中使用时我不能理解。
它只是真正的意思"take this expression to produce this type"。费解?不是真的,考虑一下
x = 0
x是什么类型的? Num a => a
。如果您特别想要 Int
怎么办?
x = 0 :: Int
仅此而已。它根本不特定于套接字,它是标准 Haskell 语法的一部分。