相关疑难解决方法(0)

为什么Windows需要withSocketsDo?

在Windows中,需要初始化套接字,如网络中所示.

在Windows操作系统上,必须先使用withSocketsDo初始化网络子系统,然后才能使用任何网络操作.例如.

  main = withSocketsDo $ do {...}
Run Code Online (Sandbox Code Playgroud)

虽然这在Windows平台上是非常必要的,但在其他平台上它是无害的,因此为了便于携带,最好始终使用它.

窗户有什么特别之处?

sockets haskell

4
推荐指数
1
解决办法
467
查看次数

lambda演算的call-by-value和call-by-name解释器之间的区别

在另一个问题中,Bob 为无类型lambda演算提供了以下解释器.

data Expr = Var String | Lam String Expr | App Expr Expr

data Value a = V a | F (Value a -> Value a)

interpret :: [(String, Value a)] -> Expr -> Value a
interpret env (Var x) = case lookup x env of
  Nothing -> error "undefined variable"
  Just v -> v
interpret env (Lam x e) = F (\v -> interpret ((x, v):env) e)
interpret env (App e1 e2) = case …
Run Code Online (Sandbox Code Playgroud)

haskell lambda-calculus callbyname call-by-value

4
推荐指数
1
解决办法
1408
查看次数