- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
序幕
"For a self-recursive function, the loop breaker canonly be the function itself, so an INLINE pragma is always ignored," according to the GHC manual
-O2
编译器的标志达到与下面显示的优化版本相同的效果?--PRE-OPTIMIZED VERSION--
func :: (a -> a) -> [a] -> [a]
func f [] = []
func f [x] = [x]
func f (x:s:xs) = x:(f s):(func f xs)
----OPTIMIZED VERSION----
func :: (a -> a) -> [a] -> [a]
func f = loop
where
loop [] = []
loop [x] = [x]
loop (x:s:xs) = x : f s : loop xs
------Eg-USAGE----------
> mapToEverySecond (*2) [1..10]
[1,4,3,8,5,12,7,16,9,20]
f
is "still implicitly passed around just as much [as explicitlypassing f in the PRE-OPTIMIZED VERSION] by the closure-creatingmachinery" ?
最佳答案
这是一个相当糟糕的示例,因为通过内联此特定代码几乎没有任何好处。但在重要的情况下,类似的模式总是会变慢。大想法是在“优化”func
,如果我写
func myFun
GHC 可以内联
func
并得到
let
loop [] = []
loop [x] = [x]
loop (x:s:xs) = x : myFun s : loop xs
in loop
在这种情况下,这并不是更好,但如果
myFun
的结果被严格要求,那么它将用对已知地址的调用替换对任意地址的调用,这样更快。此外,如果
myFun
被用在“有趣”的上下文中(知道传递给它的参数或对其结果做了什么),那么 GHC 可能会内联
myFun
以利用这一点。
关于haskell - 递归函数的内联优化,借助 where 子句(在 Haskell 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66459630/
XmlTextReader 提供对 XML 数据流的只进只读访问。当前节点指读取器定位到的节点。使用任何读方法推进读取器并且属性反映当前节点的值。 此类实现 XmlReader 并符合 W3C 可扩
我需要在我的代码中调用一些java代码。我使用 BeanShell 来实现。所以,我可以这样做: public void testInterpreter() { Interpreter i =
嗨,我对 MySQL 相当陌生,我遇到了一个无法解决的问题。我有一个表“option_benefits_id”。 id | option_id | benefit_id ===============
我有一个很大的位图,当 qwerty 键盘可见时,我想将其保存在内存中。我的应用程序始终处于横向状态,因此这是唯一会导致重绘的配置更改。我听说这就是 onRetainNonConfigurationi
我正在尝试匹配以下字符串: something, something, something, something, something shouldignore 所需的输出为:[something,
我正在尝试借助对话框添加新客户端,但我的编辑文本似乎不存在。 看起来所有 ID 都是正确的,并且 Activity 生命周期一切都很好,但我得到: java.lang.NullPointerExcep
我有 2 个如下所示的列表。 List list1 = Arrays.asList("I'm a cat", "dog", "There's an elephant and I'm seeing",
在模板编程中,static_assert 帮助程序员检查模板参数的约束并在违反约束时生成人类可读错误消息。 考虑这段代码, template void f(T) { static_assert
我花了过去 6 个小时试图解决这个问题,但我找到的关于 Knockout.js 中的订阅如何工作的文档非常少,以至于它现在已经从“有点烦人”类别转移到“彻头彻尾令人沮丧”类别。 我想要实现什么目标?
您好,我正在尝试在“varags”和“增强型 for 循环”的帮助下进行加法。但是我得到了这个标记“此方法必须返回 int 类型的结果”。 class Hello1 { int pluss(int..
我想将 css 保存在 css 文件中,由 jquery 完成更改?例如。我想用 CSS 方法更改背景颜色并一直保存该背景颜色。 如果有人有其他方法可以做到这一点。请分享。基本上我想这样做,如果 Do
我需要使用 NLP 解决以下问题,你能给我一些关于如何使用 OpenNLP API 实现这个的指示吗 一个。如何判断一个句子是否暗示过去、现在或将来的某个 Action 。 (e.g.) I was
我在二叉树的帮助下构建了一棵树来评估包含一元和二元运算符、常量和变量的数学表达式。 但我现在面临如何可视化如何表示三元运算的问题?可以通过二叉树来完成吗?如果不是,我是否有更好的数据结构来表示和评估相
我想根据搜索栏的运动放大和缩小图像! !任何人都可以帮助我做到这一点,请您及时回复,我们将不胜感激! ! ! 最佳答案 onProgressChanged() 方法做我想做的事! ! 公共(publi
借助 Flurry 分析,我已将移动分析集成到我的 iPhone 应用程序中,但我无法跟踪页面浏览量。 我在我的 Application Delegate 中使用了以下代码,并在 navigation
如何借助 javascript 发送 http header ? 最佳答案 当然。 var xhr = new XMLHttpRequest(); xhr.open("POST", "/path/to
我们正在连接到远程机器,然后将 .log 文件检索到本地以查看日志。但是有没有一种方法可以让我在浏览器中使用 ULR,这样当日志内容被记录到文件中时,日志就会显示为 。 谢谢,拉杰什 最佳答案 Tom
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit th
我有一堆 需要向左浮动的节点。这些节点向左浮动时的宽度总和大于其父容器。 不是增加父节点的宽度,而是扩大父级的高度并基本上向下流动到下一行。 这个问题是否有 CSS 解决方案,或者我是否需要一个 j
脚本 1 #!/usr/local/bin/expect spawn sftp user@10.xx.xxx.xx expect \"password\" send \"pass\r\" intera
我是一名优秀的程序员,十分优秀!