小编Ech*_*lan的帖子

如何用jq将数组拆分成块?

我有一个包含数组的非常大的JSON文件.是否可以使用jq将此数组拆分为几个固定大小的较小数组?假设我的输入是这样的:[1,2,3,4,5,6,7,8,9,10]我想把它分成3个元素的长块.所需的输出jq将是:

[1,2,3]
[4,5,6]
[7,8,9]
[10]
Run Code Online (Sandbox Code Playgroud)

实际上,我的输入数组有近300万个元素,都是UUID.

arrays shell json memory-efficient jq

12
推荐指数
2
解决办法
2082
查看次数

为什么没有用于在反应性香蕉中的非事件中构建事件的功能?

我正在教自己FRP和Reactive-banana,同时写下我希望对那些跟随我的人更有用的教程.您可以在此处查看我在本教程中的进度.

我坚持尝试使用事件来实现简单的嘟嘟噪声示例.我知道我需要做这样的事情:

reactimate $ fmap (uncurry playNote) myEvent
Run Code Online (Sandbox Code Playgroud)

在我NetworkDescription,但我无法弄清楚如何让网络反复做同样的事情,或做一次.理想情况下,我正在寻找这样的事情:

once :: a -> Event t a
repeatWithDelay :: Event t a -> Time -> Event t a
concatWithDelay :: Event t a -> Event t a -> Time -> Event t a
Run Code Online (Sandbox Code Playgroud)

Time上面的类型只是我们最终使用的任何时间测量的替身.我是否需要将系统时间作为行为来连接以驱动"延迟"功能?这似乎比必要的更复杂.

提前致谢,

回声诺兰

编辑:好的,repeatWithDelay和concatWithDelay的类型没有意义.这就是我的意思.

repeatWithDelay :: a -> Time -> Event t a
concatWithDelay :: a -> a -> Time -> Event t a
Run Code Online (Sandbox Code Playgroud)

haskell frp reactive-banana

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

如何使用泛型来提取特定类型的所有值?

我有这样的数据类型:

data MyType = Foo Bool
            | Bar
            | Baz Bool (Maybe String) Bool
            | Quux Int String
Run Code Online (Sandbox Code Playgroud)

我可以使用泛型来编写一个getBools :: MyType -> [Bool]返回输入中所有布尔字段列表的函数吗?

我想出了这种类型的签名:

getAllOfType ::
  (Generic inner, Generic outer, HasDatatypeInfo inner, All2 HasDatatypeInfo (Code outer)) =>
  Proxy inner -> outer -> [inner]
Run Code Online (Sandbox Code Playgroud)

使用generics-sop,但我不认为这是对的.比较DatatypeInfos不会说服类型检查器这两种类型是等价的.

haskell generic-programming

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

如何使用 wasm-bindgen 调用作为模块的 JavaScript 函数?

我正在尝试使用 Rust 中的 Web3 JavaScript 库,但我陷入了困境。该库的标准用法始于:

// In Node.js use: const Web3 = require('web3');

let web3 = new Web3(Web3.givenProvider || "ws://localhost:8545");
Run Code Online (Sandbox Code Playgroud)

您应该导入的模块是一个构造函数,它还有一些其他属性。我的 Rust 代码应该绑定这个 API,如下所示:

#[wasm_bindgen(module = "web3")]
extern "C" {
    type Web3;

    #[wasm_bindgen(constructor)]
    fn new(_: &Provider) -> Web3;

    type Provider;

    static givenProvider: Provider;
}
Run Code Online (Sandbox Code Playgroud)

最终输出import { Web3, givenProvider } from 'web3';并尝试运行new Web3(...)失败。它应该执行诸如import * as Web3 from 'web3';运行new Web3(...)和引用之类的操作Web3.givenProvider

我怎样才能让 wasm-bindgen 输出这样的代码?

rust webassembly wasm-bindgen

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

使用Control.Wire.Unsafe.Event时我应该保留哪些不变量?

我正在使用Netwire编写一个由来自网络的事件驱动的程序.我想这里有三个问题:

  1. 是什么让人Control.Wire.Unsafe.Event不安全?就像标题所说,我需要保持哪些不变量才能安全使用它?

  2. 我觉得我需要这样的东西:mapMaybeE :: Monad m => (a -> Maybe b) -> Wire s e m (Event a) (Event b).上下文是我有来自网络的消息,我想只响应其中一些消息.这就是我写的:

    mapMaybeE :: Monad m => (a -> Maybe b) -> Wire s e m (Event a) (Event b)
    mapMaybeE f = arr go . arr (fmap f)
      where go WU.NoEvent = WU.NoEvent
            go (WU.Event Nothing) = WU.NoEvent
            go (WU.Event (Just a)) = WU.Event a
    
    Run Code Online (Sandbox Code Playgroud)

    这是"合法的"吗?或者如果没有事件,我是否应该禁止?

  3. Netwire对这类问题有意义吗?我见过的所有例子都是不断循环的游戏.在这里,我只想在有事情要做的时候踩电线.大多数情况下,这将是网络事件,但我可能也想在计时器上做事情.例如,一个事件进入,然后五秒钟后程序执行某些操作.它不应该连续循环,直到会话中的时间比事件进入的时间大5秒.

haskell frp netwire

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

为什么我不能替换GHC分发的库?如果我做了会怎么样?

我看到这个答案这一个,"一切都可怕突破"和堆栈不会让我代替基地,但它让我代替字节字符串.这有什么问题?有没有办法安全地做到这一点,而无需重新编译GHC?我正在调试基本库的问题,这将非常方便.

NB当我说我想取代base我指的是修改后的版本base同一 GHC版本.我正在调试库,而不是针对不同的GHC版本测试程序.

haskell ghc haskell-stack

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