有没有办法检查用户是否安装了PDF阅读器?也许使用ActiveX组件?
请你帮助我好吗?
我正在使用AudioManager在拨打电话之前通过耳机播放声音,因此我使用AudioManager setMode(MODE_IN_CALL).
我没有任何问题,除了Galaxy S3,正确播放音乐后,铃声听起来非常扭曲,非常嘈杂.我读过setMode文档:
The audio mode encompasses audio routing AND the behavior of the telephony
layer. Therefore this method should only be used by applications that replace
the platform-wide management of audio settings or the main telephony application.
In particular, the MODE_IN_CALL mode should only be used by the telephony
application when it places a phone call, as it will cause signals from the
radio layer to feed the platform mixer.
Run Code Online (Sandbox Code Playgroud)
所以我怀疑可能有来自无线电层馈电平台混频器的信号.
所以我使用的代码是这样的:
am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
speakerWasOn = …Run Code Online (Sandbox Code Playgroud) 冈崎使用(基本上)
data Color = R | B
data RB a = L | T {-# UNPACK #-}!Color !(RB a) !a !(RB a)
Run Code Online (Sandbox Code Playgroud)
我知道在C中,颜色通常以更加繁琐的方式处理以节省空间,做一些事情,比如使指针的低位代表颜色(我想通常指向节点的指针会编码它的颜色,但它也会可以通过使左或右指针来模拟Okasaki的结构从一个节点代表它颜色).
显然,在Haskell中这种小小的变化是不可能的.那么,如何在Haskell中最有效地表示节点?
data RB' a = L | B !(RB a) !a !(RB a) | R !(RB a) !a !(RB a)
Run Code Online (Sandbox Code Playgroud)
似乎可能是合理的内存效率,但它似乎也可能使模式匹配相当冗长.
Data.List 定义
unfoldr :: (b -> Maybe (a, b)) -> b -> [a]
unfoldr f b = case f b of
Just (a,new_b) -> a : unfoldr f new_b
Nothing -> []
Run Code Online (Sandbox Code Playgroud)
有许多功能几乎可以使用unfoldr,但在列表的最后有问题.一个简单的"修复"是
unfoldr' :: (b -> Either (a,b) [a]) -> b -> [a]
unfoldr' f b = case f b of
Left (a, new_b) -> a : unfoldr' f new_b
Right r -> r
Run Code Online (Sandbox Code Playgroud)
这个功能有标准名称吗?它有不错的属性和良好的互动foldr吗?
我正在研究一个有文化的Haskell脚本,该脚本定义了一个Grammar数据类型,该数据类型将加载到我的Mac上的GHCI(v.7.8.3)中.我试图在我的脚本中打开名为KindSignatures和GADT的语言扩展(我完全不熟悉这些)但我被建议包括该行
{-# LANGUAGE KindSignatures, GADTs #-}
Run Code Online (Sandbox Code Playgroud)
在我的脚本的顶部.但是我收到一条错误消息:
Grammars.lhs:5:3:
Illegal kind signature ‘Grammar’
(Use KindSignatures to allow kind signatures)
In the data declaration for ‘Grammar’
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我我做错了什么吗?还有关于KindSignatures或GADT的任何文档吗?我一直找不到多少.
很容易表示自由岩浆(二元叶子树),自由半群(非空列表)和自由幺半群(列表),并且不难证明它们实际上是他们声称的那样.但自由团体似乎更棘手.似乎至少有两种使用常规List (Either a)表示的方法:
Left a :: Right b :: ...那么Not (a = b)相反.构建这些似乎有点困难.Left a :: Right a :: ...对(以及相反的方式).表达这种关系似乎非常复杂.其他人有更好的主意吗?
我刚刚意识到唯一的答案所使用的选项(1)根本无法在最常规的设置中工作.特别是,如果不实施可判定的平等,就无法定义组操作!
我应该首先想到Google.看起来Joachim Breitner 几年前在Agda做过,从他的介绍性描述来看,看起来他从选项1开始,但最终选择了选项2.我想我会自己尝试,如果我太卡住了我会看看他的代码.
运营商
$
. or <<<
<$>
<*>
=<<
<=<
Run Code Online (Sandbox Code Playgroud)
一起走得很好,每个人在某种意义上将左边的东西应用到右边的东西上.在考虑另一种方式时,我们有
&
>>>
>>=
>=>
Run Code Online (Sandbox Code Playgroud)
但有翻转的版本<$>和<*>?
如何在elm-repl中找出Elm表达式或子表达式的类型?
Haskell :type或:t等同于Elm REPL?
实现一个函数,计算e^x的值,x是函数的一个参数,一个整数。为此,请使用泰勒级数展开来计算 e 的效力。除了指数 x 之外,该函数还将接收作为参数的级数项数,它将作为 n 的最大值运行。为了解决这个函数,必须使用递归。
我做的:
factorial 0 = 1
factorial n = n * factorial (n-1)
consigna3::Int->Int->Float
consigna3 _ 0 = 1
consigna3 x n = (fromIntegral(x^n) / fromIntegral(factorial n)) + consigna3 x (n-1)
Run Code Online (Sandbox Code Playgroud)
但是有些结果是错误的,这是我的预期:
Ejemplo 1: Main> funcion3 1 1
2.0
Ejemplo 2: Main> funcion3 1 10
2.718282
Ejemplo 3: Main> funcion3 2 10
7.388997
Ejemplo 4: Main> funcion3 10 20
21991.48
Ejemplo 5: Main> funcion3 10 30
22026.46
Ejemplo 6: Main> funcion3 0 30
1.0 …Run Code Online (Sandbox Code Playgroud) 最近关于 Reddit 的一个问题引发了关于如何产生约束函数的讨论
type AddUp :: Nat -> Nat -> Nat -> Constraint
-- given
data Nat = Z | S Nat
type family m + n where
'Z + n = n
'S m + n = 'S (m + n)
Run Code Online (Sandbox Code Playgroud)
以至于
AddUp m n o意味着m + n = o.m、n和/ 或 的可用类型信息o都将尽可能地流向其他人。最棘手的部分是#2,和那最棘手的部分是,如果我们知道,例如,m ~ 'S x和n ~ 'S ('S y),那么我们就应该从推断AddUp m …