有一个Java Void- 大写的V-- 引用类型.我见过它唯一的情况是参数化Callables
final Callable<Void> callable = new Callable<Void>() {
public Void call() {
foobar();
return null;
}
};
Run Code Online (Sandbox Code Playgroud)
Java Void引用类型还有其他用途吗?可以分配除了以外的任何东西null吗?如果是的话,你有例子吗?
IO monad实际上是如何实现的?在意义上,该main函数的实际实现是什么?
我如何从另一种语言调用haskell函数(IO),在这种情况下,我是否需要维护IO自己?
是否main将IO操作(Lazily)作为引用拉出然后调用它们?或者它是解释工作,当它发现它可以调用它们的方式的行动?或者别的什么?
有不同语言的IO monad实现是否有助于深入理解主要功能中发生的事情?
编辑:
这hGetContents让我很困惑,让我不确定IO是如何真正实现的.
好吧,假设我有一个非常简单的纯Haskell解释器,不幸的是没有IO支持,并且为了好奇,我想向它添加这个IO动作(unsafeIO技巧也).很难从GHC,Hugs或其他人那里得到它.