小编ajp*_*ajp的帖子

如何强制堆栈(haskell-stack)从不下载任何内容?

我的工作流程system-ghc: true专门使用。我希望堆栈在任何时候都无法通过它失败,否则它将访问网络以下载任何内容。是否可以配置(全局或每个项目都可以)?

haskell haskell-stack

5
推荐指数
0
解决办法
80
查看次数

#[inline] 可以在特征方法声明和实现中使用吗?

我有一些小方法的特征,这些方法通常作为实现结构所具有的其他方法的单行包装器来实现。如果我想确保特征方法是内联的,我应该放置#[inline(always)]在特征定义内部,还是放在impl每个结构内部?我更愿意简单地将其放入特征定义中,但据我所知,这是行不通的。

traits rust

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

为什么g ++和clang在这种情况下会破坏名称空间抽象?

这编译:

struct str {};

namespace a
{
    void foo(str s) {}
}
namespace b
{
    void foo(str s) {}

    void bar(str s) { foo(s); }
}
int main(int, char**)
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但这没有(结构定义在命名空间a内移动)

namespace a
{
    struct str {};

    void foo(str s) {}
}
namespace b
{
    void foo(a::str s) {}

    void bar(a::str s) { foo(s); }
}
int main(int, char**)
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

bad.cpp: In function ‘void b::bar(a::str)’:
bad.cpp:12: error: call of overloaded ‘foo(a::str&)’ is ambiguous …
Run Code Online (Sandbox Code Playgroud)

c++ overloading namespaces g++ clang

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

我可以使用monadic动作从Control.Lens过滤折叠吗?

Control.Lens.Fold包含filtered,我可以用来在应用一些monadic动作之前过滤列表.似乎没有相应的filteredM- 但有没有办法达到这个效果?

要清楚,说我有

xs      :: [ MyType ]
predM   :: MyType -> MyMonad Bool
actionM :: MyType -> MyMonad ()
Run Code Online (Sandbox Code Playgroud)

我怎么能申请actionM到的每个元素xs这对于predM返回True

一个重要的约束是我想predM在第一次调用之前对所有调用进行排序actionM- 所以我需要一种方法在列表上进行两次传递.我不能只是结合predMactionM成一个单一的功能.

haskell lenses haskell-lens

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

存在量词会无声地破坏Template Haskell(makeLenses).为什么?

我有这个文件:

{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE ExistentialQuantification #-}

module Toy where

import Control.Lens

data Bar = Bar { _barish :: String }
data Foo = forall a. Show a => Foo { _fooish :: a }

$(makeLenses ''Bar)
$(makeLenses ''Foo)

x = barish
y = fooish
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

Toy.hs:15:5:
    Not in scope: `fooish'
    Perhaps you meant `_fooish' (line 9)
Run Code Online (Sandbox Code Playgroud)

这是我第一次尝试使用存在量词; 我不知道为什么这些功能组合会中断.更令人担忧的是,为什么我没有收到有关makeLenses失败的错误消息?我跑了runhaskell Toy.hs

haskell template-haskell lenses

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

如何在Reflex Dynamic中分支值?

在最简单的情况下,假设我有一个Dynamic t Bool,当值为true时,我想要一个空div存在,当值为false时,我不希望有任何dom元素.

稍微更一般,如果我有一个Dynamic t (Either MyA MyB),并且我的函数知道如何渲染给定a Dynamic t MyA或a Dynamic t MyB,如何调用相应的函数来渲染?

haskell reflex

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

如何在Elm 0.17中一次突出显示单个组件?

我有一个带有各种组件的游戏UI,其中一些可以点击以突出显示("活动"组件).这是通过让Bool处于可以突出显示的每个组件的状态来完成的.但是,我想强制一次只能突出显示一个组件 - 因此,如果点击了某些内容,则当前突出显示的任何其他内容都必须更新为不突出显示.

实现此目的的一种方法是让共同的祖先向所有不同的孩子广播一些消息,并且每个组件都可以处理此消息并自行关闭 - 但这看起来非常复杂和浪费.可能有1000个组件,只有两个组件正在更改(一个突出显示,一个突出显示),那么我为什么要发送和处理1000条消息呢?

有没有更好的办法?

注意:这看起来非常类似于Elm 0.17:如何订阅兄弟/嵌套组件更改.我认为一个区别在于,在那个问题中有少量的相关组件,当一个组件发生变化时,另一个组件会发生变化.在我的情况下,整个模型中的不同位置有许多组件,当一个变化很少或其他都不会改变时.

elm

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

是否有类似于 try 运算符的 return-first-Some ?

我有一些代码看起来像这样

    if let Some(x) = { foo() } {
        return Some(x);
    } else if let Some(x) = { bar() } {
        return Some(x);
    }
    None
Run Code Online (Sandbox Code Playgroud)

有什么办法可以将其表达为类似的东西

return_first_some_or_none!(
  foo(),
  bar(),
)
Run Code Online (Sandbox Code Playgroud)

?我仍然想要惰性评估(即,如果 foo() 是 Some,则不评估 bar() )

rust

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

在vim启动时将光标设置为中间行

我想有时用一个启动命令调用vim(通过传递-c "something"命令行)将光标居中放在屏幕中间 - 效果就像M打开vim后立即按下一样.但是该-c选项只接受ex命令,而M不是.这是可能的(如果是这样的话)?

对于背景,结合使用scrolloff = 999,这将允许我j在打开vim 时立即开始向前滚动.

vim

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

我可以创建类型别名来指定 std 容器的分配器吗?

std我想使用自定义分配器为容器定义类型别名,例如

type MyBox<T> = Box<T, A=MyAlloc>;
Run Code Online (Sandbox Code Playgroud)

然而我被告知

error[E0229]: associated type bindings are not allowed here
  --> src/lib.rs:12:24
   |
12 | type MyBox<T> = Box<T, A=MyAlloc>;
   |                        ^^^^^^^^^ associated type not allowed here
Run Code Online (Sandbox Code Playgroud)

为什么这是不允许的,是否有一些解决方法(每晚都可以)?

操场

rust

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