在Windows中,需要初始化套接字,如网络中所示.
在Windows操作系统上,必须先使用withSocketsDo初始化网络子系统,然后才能使用任何网络操作.例如.
Run Code Online (Sandbox Code Playgroud)main = withSocketsDo $ do {...}虽然这在Windows平台上是非常必要的,但在其他平台上它是无害的,因此为了便于携带,最好始终使用它.
窗户有什么特别之处?
在另一个问题中,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)