我正在尝试访问主机并拥有以下代码
if(!InetAddress.getByName(host).isReachable(TIMEOUT)){
throw new Exception("Host does not exist::"+ hostname);
}
Run Code Online (Sandbox Code Playgroud)
我可以从Windows ping主机名,并在其上执行tracert并返回所有数据包.但java抛出异常"Host is not exists ::";
从实现2000ms到5000ms的超时值.我也试过3000.我无法理解这个问题的原因是什么.我在网上研究过,有人说InetAddress.getByName(host).isReachable(time)不可靠,并且根据内部系统行事.
如果这是真的,最好的选择是什么.请建议.
SPECIALIZE编译指示的目的是创建更具体的函数版本.
我有一个功能
adaptBlocks :: Int -> BlocksField a -> Maybe (BlocksField a)
Run Code Online (Sandbox Code Playgroud)
我把它专门化如下:
{-# SPECIALIZE NOINLINE
adaptBlocks :: Int -> BlocksField Element -> Maybe (BlocksField Element) #-}
Run Code Online (Sandbox Code Playgroud)
但编译器给了我这个令人困惑的警告:
SPECIALISE pragma for non-overloaded function ‘adaptBlocks’
Run Code Online (Sandbox Code Playgroud)
怎么了?
Okasaki 的Purely Functional Data Structures 中描述的偏斜二项式堆支持在最坏情况下合并O(log (max (m,n))),其中m和n是要合并的队列的长度。这比在最坏情况下支持它的分段二项式队列和在最坏情况下O(log (min (m,n)))支持它O(log (max (m,n)))但O(log (min (m,n)))分摊时间 [*] 的惰性二项式队列更糟糕。这似乎是队列表示中的偏斜二进制数采用规范形式(只有一个 2,并且仅作为最低有效非零数字)的限制所固有的。是否可以稍微放宽此限制以获得更有效的合并?基本挑战是不允许 2 级联到另一个 2。
[*] 我最近还提出了一种调度二项式队列的变体,其最坏情况边界与分段队列相同;该版本尚未完全实施。
经过几个小时的搜索,我很困惑,所以我现在告诉我学到了什么,所以如果我错了请纠正我:
光传感器:周围光线
磁传感器:我可以到达北方的位置.
加速度传感器:重力XYZ,地球重力或任何加速度.
接近传感器:就像停车传感器一样.
方向传感器:告诉XYZ度形成其轴.
我已经尝试过那些传感器使用Android市场上的一些应用程序,比如"我的传感器",我可以确认,如果你将手机在桌子上方旋转,加速计传感器感觉不到.方向传感器似乎抓住了所有的动作.现在我可以得出结论,罗盘应用程序使用磁传感器来查看北方的位置,然后使用方向传感器来了解您使用设备的位置,对吧?
在纵向和横向模式之间切换使用"加速计传感器"并检查哪个轴上的地球重力.
Q1:所以如果一切正常,什么是"陀螺仪"?和"方向传感器"一样吗?
Q2:大多数设备都可以使用方向传感器吗?
问题3:方向传感器的其他用途是什么?
问题4:为什么大多数网站甚至维基百科都说方向传感器==加速计传感器?
-Rami
aeson似乎采用了一种有点简单的方法来解析JSON:它将顶级JSON值(一个对象或数组)解析为它自己的固定表示,然后提供帮助用户将该表示转换为它们自己的工具.当JSON对象和数组很小时,这种方法非常有效.当它们非常大时,事情开始崩溃,因为在完全读取和解析JSON值之前,用户代码无法执行任何操作.这似乎特别不幸,因为JSON似乎是为递归下降解析器设计的 - 似乎应该相当简单,允许用户代码介入并说明每个部分应该如何解析.有没有深层原因aeson和早期的json工作方式,或者我应该尝试创建一个新库以进行更灵活的JSON解析?
让我们说:
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TupleSections #-}
import Control.Lens
data T a b = T { _foo :: a
, _bar :: a -> b
}
makeLenses ''T
Run Code Online (Sandbox Code Playgroud)
a出现在两个foo和bar,因此更新必须是"simulatenous",因为它是.没有镜头可以这样做:
eg1 :: T a (b -> c) -> b -> T (a, b) c
eg1 (T foo bar) b = T (foo, b) (uncurry bar)
Run Code Online (Sandbox Code Playgroud)
但是我怎么能用镜头呢?以下不适用于发生的检查:
eg :: T a (b -> c) -> b -> T (a, b) c
eg t b = …Run Code Online (Sandbox Code Playgroud) Control.Monad.Morph 包括
class MFunctor t where
hoist :: Monad m => (forall a. m a -> n a) -> t m b -> t n b
Run Code Online (Sandbox Code Playgroud)
据我所知,所包含的实例都没有使用Monad m约束.怎么可能这样做?是否有使用约束的有效实例(考虑到这一点,我有点难以想象hoist id = id)?约束的意义是什么,m而不是n?
用户2426021684的评论让我调查是否有可能提出一个类型函数,以证明对于某些和:FF c1 c2 fafa
fa ~ f ac1 fc2 a事实证明,最简单的形式很容易.但是,我发现很难弄清楚如何编写多角度版本.幸运的是,当我写这个问题时,我设法找到了一种方法.
从类别理论的角度来看,这个答案包括以下声明:
......事实是,co和逆变函数之间没有真正的区别,因为每个函子只是一个协变函子.
...
更详细地说,从类别C到类别D的逆变函数F只不过是F类型的(协变)函子:C op →D,从C的相反类别到类别D.
在另一方面,Haskell的Functor和Contravariant仅仅需要fmap和contramap,分别为实例来定义.这表明,从Haskell的角度来看,存在Contravariant但不是Functors的对象(反之亦然).
因此,似乎在类别理论中"co和逆变函子之间没有真正的区别",而在Haskell中,Contravariant和之间有区别Functor.
我怀疑这种差异与Haskell在Hask中发生的所有实现有关,但我不确定.
我认为我自己理解每个类别理论和Haskell的观点,但我很难找到连接两者的直觉.
haskell ×8
functor ×2
typeclass ×2
aeson ×1
android ×1
ghc ×1
gyroscope ×1
haskell-lens ×1
host ×1
java ×1
magnetometer ×1
monads ×1
orientation ×1
parsing ×1
ping ×1
polykinds ×1
sensor ×1
sequence ×1
terminology ×1