小编ssh*_*ssh的帖子

Haskell中的$运算符给出了数据构造函数错误

1:([2]) 按预期工作.

1:$[2]<interactive>:15:2: Not in scope: data constructor `:$'

我认为$运算符将其后的所有内容括起来: Haskell:两者之间的区别.(点)和$(美元符号)

到底是怎么回事?

haskell

4
推荐指数
3
解决办法
142
查看次数

我怎么能优雅地不这样做.在哈斯克尔?

我试图找出如何否定两个参数布尔函数的结果,如not . any.我理解为什么它不能通过如下所示分解它,但我不知道如何编写一个优雅地执行此操作的函数.我设法做到了curry $ not . uncurry any

Prelude> :t not
not :: Bool -> Bool

Prelude> :t any
any :: Foldable t => (a -> Bool) -> t a -> Bool

Prelude> :t (.)
(.) :: (b -> c) -> (a -> b) -> a -> c

curry $ not . uncurry any
:: Foldable t => (a -> Bool) -> t a -> Bool
Run Code Online (Sandbox Code Playgroud)

haskell

4
推荐指数
3
解决办法
807
查看次数

二进制搜索缺少的元素是否总是在它存在之前的位置之前返回该元素?

这类似于lower_boundC++,二进制搜索的Javadoc也提到了这一点:"搜索键的索引,如果它包含在数组中;否则,( - (插入点) - 1)."

我已经能够通过一些例子验证它是真的,我很确定它是真的.但是,我无法证明这一点,所以我不确定.

我试图通过矛盾来做某种证明.它沿着这条线运行:如果元素在那里,那么我们必须通过消除包含该元素的范围来错过它.潜在位置和它应该是的位置之间的差距必须是最小的.最后,如果有两个元素,并检查第一个元素,那就是元素,或者元素可能位于的元素后面的元素.

我也试着考虑减少存在元素的情况,没有元素的情况,但这种方法无处可去.我觉得我正在挥舞着证据并抓住吸管.

问题中的陈述是真的吗?如果是这样,你能证明吗?

algorithm binary-search

1
推荐指数
1
解决办法
3181
查看次数

标签 统计

haskell ×2

algorithm ×1

binary-search ×1