小编Oly*_*Oly的帖子

是否可以在规范化理论中输入`min`,如System-F或Constructions?

min下面的定义适用于两个教堂数量和返回至少大.每个数字都成为一个延续,将其pred传递给另一个,zig和zag,直到达到零.此外,每次调用时,其中一个数字会将f附加到结果中,因此,最后,您将获得(\ f x -> f (... (f (f x)) ...))右边的'f'的数量是第一个连续调用的次数.

min a b f x = (a_continuator b_continuator)
    a_continuator = (a (\ pred cont -> (cont pred)) (\ cont -> x))
    b_continuator = (b (\ pred cont -> (f (cont pred))) (\ cont -> x))
Run Code Online (Sandbox Code Playgroud)

似乎min无法在System-F上输入.例如,为了在GHC上运行它,我不得不使用unsafeCoerce两次:

import Unsafe.Coerce

(#)   = unsafeCoerce
min'  = (\ a b f x -> (a (\ p c -> (c # p)) (\ c -> x) (b …
Run Code Online (Sandbox Code Playgroud)

haskell types type-theory agda dependent-type

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

是否可以将 DataTable 传递给实体框架中的即席 SQL 查询?

我希望能够使用使用表值参数的实体框架构建参数化的临时 SQL 查询。

注意:引起我兴趣的用例是在给定 ID 列表的情况下查询多个实体。我希望查询计划程序能够在可能的情况下缓存计划,但我不一定要创建存储过程。

假设我有一些 id:

IEnumerable<int> ids = new [] {0, 42, -1};
Run Code Online (Sandbox Code Playgroud)

如果我编写一个 EF 查询,例如

context.MyEntities
    .Where(e => ids.Contains(e.Id))
Run Code Online (Sandbox Code Playgroud)

生成的 sql参数化,如下所示:

SELECT
    [Extent1].[Name] AS [Name]
    FROM [MyEntities] AS [Extent1]
    WHERE [Extent1].[Id] IN (0, 42, -1)
Run Code Online (Sandbox Code Playgroud)

我想要得到的是类似的东西

SELECT
    [Extent1].[Name] AS [Name]
    FROM [MyEntities] AS [Extent1]
    WHERE EXISTS (SELECT
        1
        FROM @ids AS [Extent2]
        WHERE [Extent2].[Id] = [Extent1].[Id]
    )
Run Code Online (Sandbox Code Playgroud)

这是完全参数化的。

这可以在 EF 即席查询中完成吗?

我知道可以使用EF 传递表值参数来直接查询(例如存储过程),使用 withSqlParameterSqlDbType.StructuredaDataTable作为其值(请参阅/sf/answers/728679731/) …

c# sql sql-server entity-framework parameterized-query

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

稀疏矩阵的最小表示

我有一个大的二进制稀疏矩阵(任何单元格都可以保存0或1作为值).我不时想拍摄整个矩阵的快照. 快照必须尽可能小.

矩阵表示2d地图和发生在区域中的事件,因此它更像是看起来像示例A的快照而不是看起来像示例B的快照(它们都具有相同数量的"1"),尽管我需要支持算法中的两个示例.

Example A:
000000000000
000000011000
001100111100
001111111100
000000111100
000001111100
000000000000

Example B:
010010010010
001000001000
010010100100
000100101010
001000010010
010010001100
001000010000
Run Code Online (Sandbox Code Playgroud)

由于数据可以从单个"1"单元格到100%单元格变为"1"(在非常非常后的情况下)我认为我需要使用多个算法 - 并且当加载数据以加载它时存储它的算法相同.

例如,当只有一个单元格时,我只存储它的索引(和"索引"算法的标识符),当99%的矩阵为"1"时,我将它存储为位图(和"位图"算法的标识符) ).

所以我得到一个像这样的通用算法:

  1. 对于每个表示算法 - 代表矩阵
  2. 选择最小的表示
  3. 使用最小的表示存储数据

我的问题

  1. 我可以使用哪些算法 - 除了存储索引/位图?
  2. 处理这个问题有很好的依据吗?
  3. 我怎样才能证明我的解决方案是最小的?

底线: 如何以最小的方式存储位图矩阵?

编辑 用例:我有一个稀疏矩阵,我需要通过一个非常低的带宽介质传输.因此,假设介质两侧的计算能力很强,发送矩阵应包含尽可能少的位.

algorithm matrix sparse-matrix

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

nodejs承诺数组,我该怎么做?

我是异步编程的新手,之前从未做过承诺队列,所以我不知道如何解决这个问题.

我有一张有银行账户的桌子

对于每个银行帐户,我都有一个收据清单

Account 111
 - Receipt 001
 - Receipt 002
 - Receipt 003

Account 222
 - Receipt 004
 - Receipt 005
 - Receipt 006
Run Code Online (Sandbox Code Playgroud)

所以我建立了一个承诺,找到()所有的银行账户.

然后我循环通过所有银行帐户,并为每个帐户我找到所有收据.

我该怎么办?为每个收据find()创建一个承诺?

创建一系列承诺?(你怎么做的顺便说一句)

或者有第三种选择吗?

// 
// Find all bank accounts
// 
var findBank = new Promise(
    (resolve, reject) => {
    bankTable.find({}
    ,function(err, data) {
        if (!err) {
            resolve(data);
        } else {
            reject(new Error('findBank ERROR : ' + err));
        }
    });
});


// 
// Find the RECEIPTS for each bank account
// 
var findAllReceipts = …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

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

如何在C++中从数组中删除多个元素?

我有一个问题.如何从C++中的一维数组中删除多个元素?假设我有一个数组A = {1,3,5,8,9,7},我想从数组A中删除假设3,5,7.如果有人知道任何有效的算法,请告诉我.

c++ arrays element

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