小编jam*_*o00的帖子

尾递归Levenshtein距离

我在F#中以非常标准的方式实施了Levenshtein Distance作为练习

let lastchar (s:string) = s.Substring(s.Length-1, 1)
let lastchar_substring (s:string) len = s.Substring(len-1, 1)

let rec levdist (sa:string) (sb:string) alen blen = match alen, blen with
    | -1, -1 -> levdist sa sb sa.Length sb.Length
    | 0, 0 -> 0
    | _ , 0 -> alen
    | 0, _  -> blen
    | _ -> List.min [ (* How do I make this tail recursive...? *)
            (levdist sa sb (alen-1) blen) + 1;
            (levdist sa sb alen (blen-1)) + 1; …
Run Code Online (Sandbox Code Playgroud)

algorithm f# ocaml functional-programming tail-recursion

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

.NET CLR InternalCall

有没有办法托管.NET CLR运行时并注册MethodImplOptions.InternalCall函数?(这不是关于P/Invoke的话题)

.net c# clr

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

C全局静态 - 在线程之间共享?

在C中,在全局范围内声明变量static使其成为全局变量.这个全局变量是在线程之间共享还是每个线程分配?

更新:如果它们在线程之间共享,那么在预先存在的库中使用对于线程/非共享唯一的简单方法是什么?

Update2:基本上,我需要以线程安全的方式使用带有全局变量的预先存在的C库.

c c++ static multithreading global

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

Asm代码的说明

以下GCC内联asm取自LuaJit的coco库.有人可以逐行解释它的作用吗?

static inline void coco_switch(coco_ctx from, coco_ctx to)
{
  __asm__ __volatile__ (
    "movl $1f, (%0)\n\t" 
    "movl %%esp, 4(%0)\n\t" 
    "movl %%ebp, 8(%0)\n\t"
    "movl 8(%1), %%ebp\n\t" 
    "movl 4(%1), %%esp\n\t" 
    "jmp *(%1)\n" "1:\n"
    : "+S" (from), "+D" (to) : : "eax", "ebx", "ecx", "edx", "memory", "cc");
}
Run Code Online (Sandbox Code Playgroud)

谢谢

x86 assembly lua gcc inline-assembly

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

HDR渲染管道DIfferences

典型的HDR渲染管道和普通渲染管道之间有什么区别?(即bpp差异?一些额外的后处理步骤?)

opengl directx 3d shader rendering

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

3D图形批处理

很多网站/文章说'批量!批量!批量!'.有人可以解释什么'批处理'代表着色器?

即,确实如此

  1. 改变纹理
  2. 更改任意着色器变量

意味着什么东西不能'批量'?

(对不起,如果这是一个迟钝的问题:D)

c++ opengl directx 3d shader

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

Lua:使用table作为args

我有许多函数(在设计时未知),每个函数都采用特定数量的参数.我有一张参数表.如何使用此参数表调用这些函数?

谢谢,詹姆斯

lua arguments runtime

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

VC2010中的C++ 0x Peer构造函数

根据C++ 0x规范,以下是合法的

class A {
    A(int i) : x(i) {}
    A() : A(0) {}
    int x;
};
Run Code Online (Sandbox Code Playgroud)

但它无法"A" is not a nonstatic data member or base class of class "A"在VC 2010中编译().任何人都知道什么是错的?

c++ constructor c++11

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

Javascript Metaprogramming

有没有办法在javascript中指定类似于以下内容的东西?

var c = {};
c.a = function() { }

c.__call__ = function (function_name, args) {
    c[function_name] = function () { }; //it doesn't have to capture c... we can also have the obj passed in
    return c[function_name](args);
}

c.a(); //calls c.a() directly
c.b(); //goes into c.__call__ because c.b() doesn't exist
Run Code Online (Sandbox Code Playgroud)

javascript metaprogramming

5
推荐指数
2
解决办法
1289
查看次数

Moq和代码合同

使用类不变量时,代码契约似乎在任何地方都会引入代码.像这样的东西

[ContractClassFor(typeof(IX))]
interface IXContract  
{  
    [ClassInvariant]
    void Invariant() { ... }
}

[ContractClass(typeof(IXContract))]
interface IX { event EventHandler b; }

var a = new Mock<IX>();

a.Raise(x => x.b += null);
Run Code Online (Sandbox Code Playgroud)

失败并显示错误消息

Could not locate event for attach or detach method Void $InvariantMethod$().
Run Code Online (Sandbox Code Playgroud)

有人知道解决方案吗?

c# moq code-contracts

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