问题列表 - 第45657页

Ruby块的最佳解释?

您可以分享的Ruby块的最佳解释是什么?

使用和编写代码都可以阻塞?

ruby block

38
推荐指数
5
解决办法
3万
查看次数

通过高阶函数传递数据

最近我以某种形式出现了这个问题.让我们说我想取一个数字x并将一堆高阶函数应用于x生成y.然后我检查y是否满足某个属性,如果确实如此,那么我想返回x.

当我有一个数字列表[x1,x2..xn]并且我应用的函数压缩列表时,这个问题似乎变得非常棘手.例如,我将一个函数应用于列表中的每个元素(生成[y1,y2 ..]),sort,group,然后我想返回最大组的x值.例如:

head . reverse . sort . map (length) . group . sort . map (mod 4) $ [1..10]
Run Code Online (Sandbox Code Playgroud)

答案是6,但是如何重写这样的函数来告诉我哪些元素1到10属于那些6?

我已经玩过传递元组和使用fst的想法,直到snd是必需的,或者编写一个新类来使它像sort这样的东西只适用于类的一个元素,但我似乎无法出现干净的方法

谢谢您的帮助.

haskell

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

使用嵌入式资源w/ado.net的指南

我正在寻找使用嵌入式资源来保存SQL脚本然后通过C#中的执行读取器调用执行它的指南.有没有人有一个很好的资源来阅读如何做到这一点?

c# ado.net

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

如何在Eclipse中格式化html文件?

XML格式化工作完美但不是html格式.事实上,如果我使用"cmd-shift-F"作为html文件,它只是左对齐几乎所有内容.我附上了之前和之后的照片.

没有应用eclipse html格式

在应用eclipse html格式之后

有谁知道如何解决这一问题?我玩过HTML格式偏好但没有运气.请注意,相同的文档,如果保存为xml将完美格式化.

我正在使用带有WTP插件的eclipse 3.6.

eclipse code-formatting eclipse-wtp

53
推荐指数
2
解决办法
6万
查看次数

什么是繁忙的循环?

它可以是带或不带语句的循环吗?

while (1)
{
   //Empty
}
Run Code Online (Sandbox Code Playgroud)

要么

int i = 0;

while (1)
{
   i++;
}
Run Code Online (Sandbox Code Playgroud)

c++

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

着色器优化:三元运算符是否等同于分支?

我正在研究一个顶点着色器,我想要有条件地删除一些顶点:

float visible = texture(VisibleTexture, index).x;
if (visible > threshold)
    gl_Vertex.z = 9999; // send out of frustum
Run Code Online (Sandbox Code Playgroud)

我知道当相邻数据之间几乎没有共性时,分支会破坏性能.在这种情况下,每个其他顶点可能会得到一个不同的"可见"值,这对于本地着色器核心集群的性能(从我的理解)来说是不利的.

我的问题:三元运算符是否更好(无论可读性问题)?

float visible = texture(VisibleTexture, index).x;
gl_Vertex.z = (visible > threshold) ? 9999 : gl_Vertex.z;
Run Code Online (Sandbox Code Playgroud)

如果没有,是否将其转换为有价值的计算?

float visible = texture(VisibleTexture, index).x;
visible = sign(visible - threshold) * .5 + .5; // 1=visible, 0=invisible
gl_Vertex.z += 9999 * visible; // original value only for visible
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来放弃顶点而不依赖于几何着色器?

在此先感谢您的帮助!

graphics optimization shader

27
推荐指数
3
解决办法
2万
查看次数

在Python的sqlite3模块中,为什么cursor.rowcount()不能告诉我select语句返回的行数

所以我已阅读文档,并说:

Cursor.rowcount

虽然sqlite3模块的Cursor类实现了这个属性,但数据库引擎自己支持确定"受影响的行"/"所选行"是很古怪的.

这包括SELECT语句,因为在获取所有行之前,我们无法确定查询生成的行数.

为什么在执行SELECT之后,我不能用它来确定返回的行数.当然,已经执行的查询现在已经获取了所有行?

python sql sqlite

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

对void*指针的常量引用

我想别名一个void*变量,所以我可以用另一个名字.这意味着我可以将指针(p)设置为某个东西,并且别名变量(pp)也将设置为相同的地址.

例如:

class foo {
  private:
    static void* p; //I just happen to need this for static variable
    static const void*& pp;
};

//in cpp:
const void*& foo::pp = foo::p;
Run Code Online (Sandbox Code Playgroud)

海湾合作委员会抱怨:

错误:从'void*'类型的表达式初始化'const void*&'类型的引用无效

c++ static pointers const reference

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

在Haskell中,为什么我需要在我的阻止之前放一个$?

[这个问题是由"真实世界Haskell"中的第9章推动的]

这是一个简单的功能(减少到必需品):

saferOpenFile path = handle (\_ -> return Nothing) $ do
      h <- openFile path ReadMode
      return (Just h)
Run Code Online (Sandbox Code Playgroud)

我为什么需要那个$

如果要处理的第二个参数不是do块,我不需要它.以下工作正常:

handle (\_ -> putStrLn "Error calculating result") (print x)
Run Code Online (Sandbox Code Playgroud)

当我尝试删除$编译失败.如果我明确添加parens,我可以让它工作,即

saferOpenFile path = handle (\_ -> return Nothing)  (do
      h <- openFile path ReadMode
      return (Just h))
Run Code Online (Sandbox Code Playgroud)

我可以理解这一点,但我想我希望当Haskell击中do它时应该想到"我正在开始阻止",我们不应该明确地把它放在$那里来解决问题.

我还想过将do块推到下一行,如下所示:

saferOpenFile path = handle (\_ -> return Nothing)  
  do
    h <- openFile path ReadMode
    return (Just h)
Run Code Online (Sandbox Code Playgroud)

但是如果没有parens也行不通.这让我感到困惑,因为以下工作:

add a b …
Run Code Online (Sandbox Code Playgroud)

haskell

11
推荐指数
3
解决办法
583
查看次数

如何连接多个IObservable序列?

        var a = Observable.Range(0, 10);
        var b = Observable.Range(5, 10);
        var zip = a.Zip(b, (x, y) => x + "-" + y);
        zip.Subscribe(Console.WriteLine);
Run Code Online (Sandbox Code Playgroud)

打印
0 - 5
1 - 6
2 - 7
...

相反,我想加入相同的值
5 - 5
6 - 6
7 - 7
8 - 8
...

这是合并100个有序异步序列的问题的简化示例.加入两个IEnumerable非常容易,但我找不到在Rx中做这样的事情的方法.有任何想法吗?

更多关于投入和我想要实现的目标.基本上,整个系统是一个实时管道,具有通过fork-join模式连接的多个状态机(聚合器,缓冲区,平滑过滤器等).RX是否适合实现这些东西?每个输入都可以表示为

public struct DataPoint
{
    public double Value;
    public DateTimeOffset Timestamp;
}
Run Code Online (Sandbox Code Playgroud)

每个输入的数据位在到达时被加上时间戳,因此所有事件通过它们的连接键(时间戳)自然地排序.当事件穿过管道时,它们会分叉并加入.联接需要通过时间戳关联并按预定义顺序应用.例如,join(a,b,c,d)=> join(join(join(a,b),c),d).

编辑 以下是我匆忙提出的建议.希望有一个基于现有Rx运营商的更简单的解决方案.

static void Test()
    {
        var a = Observable.Range(0, 10);
        var b = Observable.Range(5, 10);
        //var …
Run Code Online (Sandbox Code Playgroud)

.net c# system.reactive

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