Haskell有一个不变地返回输入的标识函数。定义很简单:
id :: a -> a
id x = x
为了好玩,这应该输出8:
f = id id id id id id id id id id id id id id id id id id id id id id id id id id id
main = print $ f 8
几秒钟后(根据任务管理器,大约2 gb内存),编译失败,ghc:内存不足。同样,口译员说ghci:内存不足。
由于id
是一个非常简单的函数,我不希望它在运行时或编译时成为内存负担。所有内存都用于什么?
我们知道id的类型,
id :: a -> a
当我们将其专门化为id id时,id的左副本具有类型:
id :: (a -> a) -> (a -> a)
然后当您再次为id id
中最左边的id
专门化它时,您会得到:
id :: ((a -> a) -> (a -> a)) -> ((a -> a) -> (a -> a))
所以你看到你添加的每个id
,最左边的id
的类型签名是它的两倍大。
请注意,类型在编译期间被删除,因此这只会占用GHC中的内存。它不会占用您程序中的内存。
问题内容: 该表包含大约一千万行。 这会导致内存使用量稳定增加到4 GB左右,这时行将快速打印。第一行打印之前漫长的延迟使我感到惊讶–我希望它几乎可以立即打印。 我也尝试过以相同的方式表现。 我不知道Django将什么加载到内存中或为什么这样做。我希望Django在数据库级别遍历结果,这意味着结果将以大致恒定的速率打印(而不是经过漫长的等待一次全部打印)。 我误会了什么? (我不知道它是否相关,但
因此,我使用javafx创建了这个应用程序,它有一个登录屏幕,但我在这方面没有任何成功,我已经在这个项目的这个小部分工作了一些天,它根本不能以任何方式工作。我尝试这样做,我看了一些教程,其中大部分都是像下面的代码一样,但它对我来说不起作用,如果有人能帮我解释为什么我的标签文本没有改变(这就是我如何测试登录是否成功),这将是很好的,下面是代码: 控制器: FXML格式
这是我的第一个JMH基准测试。我可能做错了一切,但是... 我的基准看起来是这样的 是我开始的...等了又等,然后杀了它。我怀疑在< code>@Setup中有问题,所以我简化了它,但是什么都没有改变。这场赛跑开始时相当乐观... 然后什么都没发生。过了很长时间,它继续写下20行像 和5行像 然后它输出一些结果 并更正其估计的eta: 我的是否比我想象的更频繁地被调用,或者还有什么其他原因导致了缓
在Java中,什么与Python的pass等效?我意识到我可以使用continue语句或不完成语句体来实现这种效果,但我喜欢使用pass语句。
我的配置文件是类路径的路径。至少我认为是这样。我放置了log4j。资源文件夹中的属性文件,而log4j对此不做任何处理。即使我删除了它,也不会发生错误。 任何人都可以看到,我在使用maven LoggerTest的内容: 程序输出: log4j的内容。属性: 在波姆。xml并不是什么不同寻常的东西,只是一个依赖组织。阿帕奇。登录中。log4j log4j内核2.17.2,编译器源目标是16,没有插
问题内容: 我正在尝试使用一个字段来获取手动输入,然后使用该数据。 我发现的所有资料都声称我应该使用该函数,但是我还没有找到一个简单的可运行的迷你示例,因此无法正常工作。 我希望有人可以给我打电话,告诉我我做错了什么。这是一个迷你文件: 这给了我一个我可以输入的字段,但是一旦输入数据我就什么也不能做。 我怀疑我的代码不起作用,因为最初它是空的。但是,一旦输入了输入数据,我该如何访问呢? 问题答案: