作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人告诉我,我应该将未装箱的向量用于繁重的科学计算(运行数小时甚至数天的模拟),而不是列表,甚至是装箱的向量。
最佳答案
有几件事要理解。首先,盒装与未盒装:
Char
是一个指向 Haskell 堆上某处的 64 位指针,它包含一个 32 位 Unicode 代码点,或者一个任意大的未计算的表达式,产生这样的代码点。另一方面,
Char#
实际上只是一个 32 位整数。它可能在堆上的某个地方,也可能在 CPU 寄存器或其他地方。
Char#
是 C 认为的整数,而
Char
是什么 C 会认为是指向...的指针实际上是一个数据结构,它告诉您它是否被评估,如果它被评估,整数就在那里。这要复杂一些。
[Double]
(或其他)是指向 double 浮点数的指针的单向链接列表。每个浮点数都可以不计算,列表中的每个链接也可以不计算。可以想象,这根本没有任何缓存一致性! 关于haskell - 用于繁重科学计算的列表、装箱向量和未装箱向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34692809/
我是一名优秀的程序员,十分优秀!