问题列表 - 第25748页

如何在erlang中修改记录?

我需要修改op记录中的值{place}和{other_place}.

#op{
    action   = [walk, from, {place}, to, {other_place}],
    preconds = [[at, {place}, me], [on, floor, me], 
                [other_place, {place}, {other_place}]],
    add_list = [[at, {other_place}, me]],
    del_list = [[at, {place}, me]]
}
Run Code Online (Sandbox Code Playgroud)

但是erlang不允许修改变量.是否有数据类型?

erlang record immutability

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

同步访问ASP.NET会话的成员

我正在构建一个Javascript应用程序,而eash用户有一个单独的UserSession.该应用程序进行了一堆Ajax调用.每个Ajax调用都需要访问用户的单个UserSession对象.

  1. 每个Ajax调用都需要一个UserSession对象.

  2. UserSession对象中的数据对每个用户都是唯一的.

最初,在每次Ajax调用期间,我将创建一个新的UserSession对象,并将其数据成员存储在ASP.NET Session中.但是,我发现UserSession对象正在被实例化很多.为了最小化UserSession对象的构造,我将它包装在Singleton模式中并对其进行同步访问.

我相信同步正在应用程序范围内发生,但我只需要每个用户发生这种情况.我在这里看到一篇帖子说ASP.NET缓存是同步的,但是创建对象并将其插入缓存之间的时间另一个Thread可以开始构建它的另一个对象并将其插入缓存中.

这是我正在同步访问对象的方式.有没有比使用"lock"更好的方法...应该锁定HttpContext.Session对象?

private static object SessionLock = new object();

public static WebSession GetSession
{
    get
    {
        lock (SessionLock)
        {
            try
            {
                var context = HttpContext.Current;
                WebSession result = null;

                if (context.Session["MySession"] == null)
                {
                    result = new WebSession(context);
                    context.Session["MySession"] = result;
                }
                else
                {
                    result = (WebSession)context.Session["MySession"];
                }

                return result;
            }
            catch (Exception ex)
            {
                ex.Handle();
                return null;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net synchronization

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

UIAlertView在哪里生活而不被解雇

有谁知道在哪个子视图中有一个活动的UIAlertView,或者如何找到它运行的线程?

iphone multithreading subview uialertview

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

如何在Matplotlib中绘制非数字数据

我希望使用Matplotlib绘制我的y轴变量的时间变化.对于连续离散数据,这不是问题,但是如何解决非连续数据.

也就是说,如果我想要想象我的汽车在上班途中静止的时间,那么x轴将是时间,而y轴将由变量"静止"和"移动"组成(我知道这个非常无用的例子) )

非连续数据需要以某种方式编入索引,但我不知道如何继续...任何想法?

python visualization matplotlib

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

如何让Ctrl-Backspace在gnome-terminal中删除vim中的单词?

我想在Ctrl-Backspace中删除vim插入模式下的当前单词.从xterm内部我可以通过它来解决这个问题

:inoremap <C-H> <C-W>
Run Code Online (Sandbox Code Playgroud)

但在gnome-terminal中,我无法找到实现它的方法.

当处于vim插入模式时,如果我输入control-v然后按退格键,我在xterm中得到^ H,而^?在侏儒终端.不幸,

:inoremap <C-?> <C-W>
Run Code Online (Sandbox Code Playgroud)

在gnome-terminal中没有做到这一点; control-backspace无论如何都会删除单个字符.

关于ASCII码:

Gnome-terminal允许您更改编辑 - >配置文件首选项 - >兼容性下的退格字符.不幸的是,据我所知,没有选项可行:无论我通过设置应用于Backspace的任何字符,如果我尝试映射字符本身,就像

:inoremap <C-H> <C-W>
Run Code Online (Sandbox Code Playgroud)

然后定期退格和控制退格都擦除整个单词; 如果我尝试映射控制加上那个字符,比如

:inoremap <C-^H> <C-W>
Run Code Online (Sandbox Code Playgroud)

然后定期退格和控制退格只删除一个字符.

linux vim ascii gnome-terminal

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

在选择框中动态选择多个选项

有一个值[1,2,4]数组表示多选框的值,如何使用jquery或普通javascript将它们设置为选中?

谢谢你的帮助.

javascript jquery

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

如何将着色器应用于特定对象

我的场景中有几个物体.我想将我的着色器仅应用于其中一个.环境:OpenGL 2.0,C++,GLUT,GLEW.

c++ opengl glsl

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

我应该如何为中国邮递员问题生成分区/对?

我正在研究一个涉及解决中国邮递员问题的课程.我们的任务只要求我们编写一个程序来解决它的硬编码图,但我试图在我自己的一般情况下解决它.

给我带来麻烦的部分是为奇数顶点生成配对分区.

例如,如果我在图中有以下标记的奇数顶点:

1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)

我需要找到我可以用这些顶点做出的所有可能的配对/分区.

我发现我会i给出分配:

  n = num of odd verticies  
  k = n / 2  
  i = ((2k)(2k-1)(2k-2)...(k+1))/2^n
Run Code Online (Sandbox Code Playgroud)

因此,考虑到上面的6个奇数顶点,我们将知道我们需要生成i = 15分区.

15个部分看起来像:

1 2   3 4   5 6
1 2   3 5   4 6
1 2   3 6   4 5
...
1 6   ...
Run Code Online (Sandbox Code Playgroud)

然后,对于每个分区,我取每对,找到它们之间的最短距离,并为该分区求和.选择其对之间具有最小总距离的分区,然后我将奇数顶点之间的最短路径(在所选分区中找到)之间的所有边加倍.

这些代表邮递员必须走两次的边缘.

起初我以为我已经制定了适当的算法来生成这些分区:

  1. 从按升序排序的所有奇数顶点开始

    12 34 56

  2. 选择当前具有最大顶点的对后面的对

    12 [34] 56

  3. 将此对中的第二个数字增加1.将所选对的左侧所有内容保持相同,并使所选对中右侧的所有数字与集合中的其余数字一致,按递增顺序排序.

    12 35 46

  4. 重复

但是,这是有缺陷的.例如,我意识到当我到达最后并且选择对位于最左侧位置(即)时:

[16] .. ..

我计算出来的算法在这种情况下会停止,而不会生成其余开始的对[16],因为它的左边没有对可以改变.

所以,它又回到了绘图板.

之前有没有研究过这个问题的人是否有任何提示可以帮助我指出正确的方向来生成这些分区?

algorithm

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

书签中的XmlHttpRequest在GET上返回空的responseText?

我正在尝试为http://esv.to建立的特殊URL缩短服务构建一个javascript bookmarklet,用于缩短经文引用(即"Matthew 5"变为" http://esv.to/Mt5 ".小书签应该对http://api.esv.to/Matthew+5做一个GET请求,返回text/plain响应http://esv.to/Mt5.

bookmarklet本身的代码如下所示(为了便于阅读而扩展):

var body = document.getElementsByTagName('body')[0], script = document.createElement('script');     
script.type = 'text/javascript';
script.src = 'http://esv.to/media/js/bookmarklet.js';
body.appendChild(script);
void(0);
Run Code Online (Sandbox Code Playgroud)

代码http://esv.to/media/js/bookmarklet.js看起来像这样:

(function() {

    function shorten(ref, callback) {
      var url = "http://esv.to/api/" + escape(ref);
      var req = new XMLHttpRequest(); 
      req.onreadystatechange = function shortenIt() {
        if ( this.readyState == 4 && this.status == 200 ) {
          callback(req.responseText);
        };
      };
      req.open( "GET", url );
      req.send();
    };

    function doBookmarklet() {
      var ref = …
Run Code Online (Sandbox Code Playgroud)

javascript bookmarklet xmlhttprequest

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

在浏览器中检测AJAX请求(客户端)

有没有办法通过JavaScript(客户端)检测正在发生的任何AJAX请求,甚至获取正在进行的请求数量?

我问的原因是:我在一个应用程序中有一个全局处理指示器正在与几个开发人员一起工作,其中一些开发人员忽略了在发出AJAX请求时启动和停止指示器.

有没有办法检测到这个?

我知道处理它的最好方法是用请求触发一些东西,当请求完成时,但我无法控制其他开发人员或重写遗留代码,所以我正在寻找可以用JavaScript注入的东西检测请求.

javascript ajax

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