- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何将常量应用形式变成,而不是常量应用形式,以阻止它在程序的生命周期中保留?
我尝试过这种方法:
-- | Dummy parameter to avoid creating a CAF
twoTrues :: () -> [[[Bool]]]
twoTrues _ = map (++ (True : repeat False)) . trueBlock <$> [1..]
但它似乎不起作用 - 配置文件显示它仍然被保留并且仍然将其标记为 CAF。
我找到了一个与此相关的 Google 结果:a reply by Simon Peyton-Jones尼尔·米切尔 (Neil Mitchell) 正是问了这个问题 - 但不幸的是,这个答案指的是一个死链接。
最佳答案
完整示例
这里有一个小例子来说明这种情况:
module A where
big :: () -> [Int]
big _ = [1..10^7]
看起来像一个函数,对吧?但GHC 是做什么的呢?它将枚举 float 到顶层!
A.big1 :: [Int]
[ Unf=Unf{Src=<vanilla>, TopLvl=True, Arity=0, Value=False,
ConLike=False, Cheap=False, Expandable=False,
Guidance=IF_ARGS [] 7 0}]
A.big1 =
case A.$wf1 10 A.big2 of ww_sDD { __DEFAULT ->
eftInt 1 ww_sDD
}
A.big :: () -> [Int]
[Arity=1,
Unf=Unf{Src=InlineStable, TopLvl=True, Arity=1, Value=True,
ConLike=True, Cheap=True, Expandable=True,
Guidance=ALWAYS_IF(unsat_ok=True,boring_ok=True)
Tmpl= \ _ -> A.big1}]
A.big = \ _ -> A.big1
糟糕!
<小时/>那么我们能做什么呢?
关闭优化
这可行,-Onot
,但不可取:
A.big :: () -> [Int]
[GblId, Arity=1]
A.big =
\ _ ->
enumFromTo
@ Int
$fEnumInt
(I# 1)
(^
@ Int
@ Type.Integer
$fNumInt
$fIntegralInteger
(I# 10)
(smallInteger 7))
不要内联,多一些函数
将所有内容都放入一个函数中,包括enumFromTo
,将参数传递给工作人员:
big :: () -> [Int]
big u = myEnumFromTo u 1 (10^7)
{-# NOINLINE big #-}
myEnumFromTo :: () -> Int -> Int -> [Int]
myEnumFromTo _ n m = enumFromTo n m
{-# NOINLINE myEnumFromTo #-}
现在我们终于摆脱了 CAF!即使使用 -O2
A.myEnumFromTo [InlPrag=NOINLINE]
:: () -> Int -> Int -> [Int]
A.myEnumFromTo =
\ _ (n_afx :: Int) (m_afy :: Int) ->
$fEnumInt_$cenumFromTo n_afx m_afy
A.big [InlPrag=NOINLINE] :: () -> [Int]
A.big = \ (u_abx :: ()) -> A.myEnumFromTo u_abx A.$s^2 lvl3_rEe
耶。
<小时/>什么不起作用?
关闭-ffull-lazyness
完整的惰性转换使定义向外 float 。默认情况下,-O1
或以上版本处于打开状态。让我们尝试使用 -fno-full-laziness
将其关闭。但是,这不起作用。
关于haskell - 如何在 Haskell 中使 CAF 不是 CAF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6090932/
如何将常量应用形式变成,而不是常量应用形式,以阻止它在程序的生命周期中保留? 我尝试过这种方法: -- | Dummy parameter to avoid creating a CAF twoTru
我正在尝试向接收方应用程序的关闭事件添加逻辑,但每次发送方断开连接时,调试器都会关闭并且不会执行任何逻辑(例如发送一些 HttpRequest)。我的一段代码: this.context.addEve
我使用下面的代码来合并两个 .caf 文件。 NSMutableData *datas = [NSMutableData alloc]; NSData *data1 = [NSData dataWit
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 去年关闭。 Improve this q
我想知道这些不同的音频封套之间的区别。 以及何时使用另一种。 对不起,如果我的问题看起来很愚蠢... 谢谢你的帮助。 蒂埃里 最佳答案 根本不是一个愚蠢的问题。 ADTS是AAC(数据格式)编码音频的
我正在为 Google Cast SDK 使用 React Native 包装器,但无法从发送方向接收方发送消息。我能够转换媒体或暂停并恢复它。问题仅在于自定义消息。我的自定义消息监听器永远不会在接收
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我正在开发 iOS 和 Android 发送器应用程序,从 Cast SDK v2 迁移到 Cast 应用程序框架 (CAF) 后,我无法再自己处理与已运行的接收器应用程序的连接。 我想要的用户体验是
我正在做一个项目,我正在录制语音并将其上传到服务器。上传的文件格式为.caf(核心音频格式) 现在,当我尝试使用AVPLayer 从服务器 播放此文件时,它会在下面给出错误消息。 Error Doma
我知道我在 iPhone 应用程序中创建(录制)的 blank.caf 音频文件的 url。我关心它的大小,想将它的大小输出到日志中。我找不到这样做的方法。我也很想知道音频文件的持续时间。 最佳答案
任何人都可以给我一个建议或示例,说明我将如何循环遍历 CAF(核心音频格式)文件的样本吗?比如取前 1000 个样本并将它们更改为 0? 类似于: for(int i=0; i < numberOfS
我有一个应用程序可以从 iPod 库中选择一首歌曲,然后将该歌曲作为“.caf”文件复制到应用程序的目录中。我现在需要播放并同时将该文件从 Accelerate 框架读入 Apples FFT,这样我
谁能告诉我如何获取录音数据?我想用不同的数据保存多个录制文件。我正在做的是访问 url 、目录路径并重命名它们,但结果是它们使用不同的名称保存,但不使用不同的数据。所有文件都播放我录制的相同的最后一个
是否可以将两个 wav 文件合并为一个,就好像它们同时播放一样?我需要以编程方式执行此操作。 到目前为止我发现的唯一方法是同时播放两者并使用 AVAudioRecorder 记录输出。但如果用户使用耳
我正在制作一个 iPhone 应用程序,我有大量 .wav 文件需要转换为 .caf 我可以对每个文件使用它: afconvert -f caff -d LEI8@22050 walking.wav
我在使用新的 CAF 接收器时遇到问题,无法将 YouTube iframe 播放器注册为播放器,但它正在播放。连接到接收器5分钟后,连接断开,因为它认为播放器空闲。 这是发件人代码 var meta
我正在使用以下链接为我的管理组创建/分配标准 Azure 策略。问题是我的组织。已使用 Azure 门户手动创建管理组和订阅。我是否仍然可以使用 ESLZ TF 代码创建/应用策略并应用到这些使用 T
我们正在使用PhoneGap构建iPhone游戏。 iOS设备支持多种音频格式,我们正在考虑将.mp3或.caf文件用于声音效果。 使用哪种音频格式有关系吗?使用一个与另一个之间有什么区别? 最佳答案
我正在使用以下链接为我的管理组创建/分配标准 Azure 策略。问题是我的组织。已使用 Azure 门户手动创建管理组和订阅。我是否仍然可以使用 ESLZ TF 代码创建/应用策略并应用到这些使用 T
通常我会自己解决一般编译错误,但对于我所面临的错误,我很难修复。我正在将 Android CAF 内核从 KitKat 分支移植到我的设备。错误(禁止警告)是 arch/arm/mach-msm/ac
我是一名优秀的程序员,十分优秀!