问题列表 - 第29817页

如何在Haskell中声明抽象数据容器类型?

我阅读了William Cook的"On Data Abstraction,Revisited",并重读了Ralf Laemmel的"表达引理",试图理解如何在Haskell中应用前一篇论文的思想.所以,我试图理解你如何在没有指定类型的情况下在Haskell中实现例如集合联合函数?

haskell types existential-type typeclass

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

Python IDLE与多线程兼容?

似乎IDLE(标准Python Windows安装的一部分)将不会正确执行多线程程序而不会出现令人讨厌的挂起或错误崩溃.有谁知道解决这个问题的方法?

以下程序将始终挂在IDLE中,但在使用Python解释器直接执行时正常完成:

import threading, time

printLock = threading.Lock()

def pl(s):
  printLock.acquire()
  print s
  printLock.release()

class myThread( threading.Thread ):
  def run(self):
    i = 0
    for i in range(0,30):
      pl(i)
      time.sleep(0.1)

t = myThread()
t.start()

while threading.activeCount() > 1:
  time.sleep(1)
  pl( time.time() )

print "all done!"
Run Code Online (Sandbox Code Playgroud)

样本输出:

U:\dev\py\multithreadtest>python mt.py
0
1
2
3
4
5
6
7
8
9
1277935368.84
10
11
12
13
14
15
16
17
18
19
1277935369.84
20
21
22
23
24
25
26
27
28
29 …
Run Code Online (Sandbox Code Playgroud)

python multithreading python-idle

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

如何基于坐标对角填充2D数组

我正在构建一个类似热图的矩形阵列接口,我希望"热"位置位于数组的左上角,而"冷"位置位于右下角.因此,我需要一个对角填充的数组,如下所示:

    0    1    2    3
  |----|----|----|----|
0 | 0  | 2  | 5  | 8  |
  |----|----|----|----|
1 | 1  | 4  | 7  | 10 |
  |----|----|----|----|
2 | 3  | 6  | 9  | 11 |
  |----|----|----|----|
Run Code Online (Sandbox Code Playgroud)

所以实际上,我需要一个函数f(x,y)

f(0,0) = 0
f(2,1) = 7
f(1,2) = 6
f(3,2) = 11
Run Code Online (Sandbox Code Playgroud)

(或者,当然,类似的函数f(n)其中f(7)= 10,f(9)= 6等).

最后,是的,我知道这个问题类似于这里,这里这里提出的问题,但那里描述的解决方案只是遍历而不填充矩阵.

arrays algorithm math

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

我的Android应用程序如何检测掉线?

我正在编写一个旨在通话期间运行的应用程序.在用户拨打电话并启动我的应用程序后,我希望我的应用程序能够知道是否从错误连接中删除了呼叫.这可能吗?谢谢

android

11
推荐指数
2
解决办法
6855
查看次数

使用方法重载和枚举的奇怪(可能是错误的?)C#编译器行为

今天我发现了一个非常奇怪的C#函数重载行为.当我有一个方法有2个重载,一个接受对象,另一个接受任何类型的枚举时,会出现问题.当我将0作为参数传递时,将调用该方法的Enum版本.当我使用任何其他整数值时,将调用Object版本.我知道这可以通过使用显式转换来轻松修复,但我想知道为什么编译器会以这种方式运行.这是一个错误还是我不知道的一些奇怪的语言规则?

下面的代码解释了问题(使用运行时2.0.50727检查)

感谢您对此的任何帮助,Grzegorz Kyc

class Program
{
    enum Bar
    {
        Value1,
        Value2,
        Value3
    }

    static void Main(string[] args)
    {
        Foo(0);
        Foo(1);
        Console.ReadLine();
    }

    static void Foo(object a)
    {
        Console.WriteLine("object");
    }

    static void Foo(Bar a)
    {
        Console.WriteLine("enum");
    }
}
Run Code Online (Sandbox Code Playgroud)

c# compiler-construction enums compiler-errors

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

以编程方式触发单击处理程序

我正在使用道场.我有这样的事情:

<a id="fooBar" onclick="foo();bar();">Foo then Bar</a>
Run Code Online (Sandbox Code Playgroud)

我想fooBar从另一个按钮触发点击处理程序.就像是:

<a onclick="dojo.query('#fooBar')[0].click()">Do FooBar</a>
Run Code Online (Sandbox Code Playgroud)

我能这样做吗?

javascript dojo dom-events

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

是否在snprintf中调用strlen会导致此段错误?

我有一个void *,叫它data,我知道它的长度,但不是空终止.我打这样的电话snprintf(line, sizeof(line), "%*s", n, (const char*)data),其中n已知的长度.几乎总是这样,但偶尔会导致段错误.

每当发生段错误时,后面跟踪表明问题出在strlen内部.当我data在gdb中打印时,我看到这样的东西

(gdb) p n
$1 = 88
(gdb) p (const char*) data
$2 = 0x1d752fa8
"JASDF" ... "ADS"<Address 0x1d753000 out of bounds>
(gdb) p 0x1d753000-0x1d752fa8
$3 = 88
Run Code Online (Sandbox Code Playgroud)

data确实是88个字符,但不是空终止,事实上,它似乎正好对着一个段.我的猜测是snprintf在数据上总是被称为strlen,我通常很幸运,即使data不是null终止,\0在我点击段之前还有一段时间我偶然发现它是不幸的.是对的吗?如果是这样,那是什么工作?

这就是堆栈跟踪的样子

#0  0x0000003c8927839e in strlen () from /lib64/libc.so.6
#1  0x0000003c89246749 in vfprintf () from /lib64/libc.so.6
#2  0x0000003c8926941a in vsnprintf () from /lib64/libc.so.6
#3  0x0000003c8924d0a3 in snprintf () from /lib64/libc.so.6 …
Run Code Online (Sandbox Code Playgroud)

c printf segmentation-fault strlen

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

从地平线获得一条线的角度

我想知道如何从水平轴X获得AB线的角度.SO中的其他问题仅在两条线之间进行.我知道我总是可以绘制第二行AC并计算,但我想知道是否有更快的方法.

编辑:我很确定我没有做过早优化.

c# math geometry drawing

7
推荐指数
2
解决办法
5466
查看次数

C#依赖注入问题

我有 3 个班级:A、B 和 C

所有这些类都实现了一个接口 IMyInterface

我希望接口像这样定义:

internal IMyInterface<E> where E: class
{
    E returnData();
}
Run Code Online (Sandbox Code Playgroud)

以便它可以返回类型 E 的数据。类型“E”将是使用实体框架 v4 创建的 POCO 对象。

在一个单独的课程中,我有:

public class MyClass()
{
   IMyInterface<??> businessLogic;

   public setBusinessLogic(IMyInterface<E> myObject)
       where E : class
   {
       businessLogic = myObject;
   }
}
Run Code Online (Sandbox Code Playgroud)

我尝试<object>代替,<??>但它无法转换我的 poco 实体类型。

我尝试让我的实体实现一个空接口,IEntity然后使用

IMyInterface<IEntity> businessLogic;
...
businessLogic = new A<POCOObject>();
Run Code Online (Sandbox Code Playgroud)

结果是:

 Cannot implicitly convert type
 'A<POCOObject>' to
 'IMyInterface<IEntity>'. An explicit
 conversion exists (are you missing a
 cast?)
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

编辑: …

c# dependency-injection inversion-of-control

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

Canvas.drawText(...)不打印换行符

我试着在我创建的表面视图上写一些文字.它的工作正常,如果title为false,并且没有为文本添加换行符.但是,如果我添加标题并因此添加换行符,则不会按预期打印换行符,而是打印此符号[].

任何提示为什么?

@Override
public void drawObject() {
String text = "";
if (title) {
   text = getGameBoard().getGame().getForeignProfile().getName() + "\n";
}
text = text + getScoreAsString();
getGameBoard().getCanvas().drawText(text, 0, text.length(), getPosition().getX(), getPosition().getY(), getPaint());
}
Run Code Online (Sandbox Code Playgroud)

android text canvas

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