小编Las*_*olt的帖子

Linux IA-32内存模型

我正在研究一个进程的Linux IA-32内存模型,我有一个简单的问题.图片中的灰色区域包含什么?它们仅用于显示记忆的开头和结尾吗?那么,文本是从0x0开始,堆栈是从0xFFFFFFFF开始的吗?

重新开放: 嗨,在操作系统课程中,我正在参加这个问题再次变得相关.具体来说,我需要知道灰色区域包含什么.基于到目前为止的答案,我可以看到它在顶部包含内核代码,在底部包含空指针解除引用页面.但是内核代码是什么?我不认为它是整个操作系统本身,但它可能是嵌入式调度程序,内核库调用还是?

最诚挚的问候,Lasse Espeholt

alt text http://img403.imageshack.us/img403/3156/capturecj.png

linux memory x86 model

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

如何在C#中扩充匿名类型对象

我经常需要使用属性来扩充对象.直到现在(厌倦了它;)它也很丑陋)我这样做了:

var someListOfObjects = ...;

var objectsWithMyProperty = from o in someListOfObjects
                            select new
                            {
                                o.Name,    /* Just copying all the attributes I need */
                                o.Address, /* which may be all of them. */

                                SomeNewProperty = value
                            };
Run Code Online (Sandbox Code Playgroud)

有一个聪明的方法来做到这一点?我以前做的是这样的:

var objectsWithMyProperty = from o in someListOfObjects
                            select new
                            {
                                OldObject = o,           /* I access all of the old properties from here */    
                                SomeNewProperty = value
                            };
Run Code Online (Sandbox Code Playgroud)

我想这可以用一些反思来完成,但我想有一种更快的方法可以使某些东西等同于第一种繁琐的方法.

谢谢,Lasse

c# linq anonymous-types

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

F#引用:变量可能会逃避范围

我有这段代码:

let rec h n z = if n = 0 then z
                else <@ (fun x -> %(h (n - 1) <@ x + %z @>)) n @>
Run Code Online (Sandbox Code Playgroud)

http://www.cs.rice.edu/~taha/publications/journal/dspg04a.pdf中的MetaOcaml示例转换而来

在本文中,解释了上面的例子将产生以下参数3.<1>.(在MetaOcaml表示法中):

.<(fun x_1 -> (fun x_2 -> (fun x_3 -> x_3 + (x_2 + (x_1 + 1))) 1) 2) 3>.
Run Code Online (Sandbox Code Playgroud)

正如你所看到x的那样被替换为x_1,x_2等等,因为x否则只会引用x最里面的fun.

但是在F#中这是不允许的.我得到编译时错误:"变量'x'在引号中绑定,但用作拼接表达式的一部分.这是不允许的,因为它可能会逃避其范围." 所以问题是:如何改变它以便编译并具有与MetaOcaml输出相同的语义?

更新评论:我使用PowerPack来实际评估报价.但我不认为这与它有任何关系,因为错误是在编译时.到目前为止,QuotationEvaluation仍然有效.但是,我知道它可能不是最有效的实现.

更新Tomas的回答: 我真的不希望它x是全局的,或者是为了逃避范围.但我想要的是相当于

let rec h …
Run Code Online (Sandbox Code Playgroud)

f# metaprogramming multi-stage-programming metaocaml

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

"有序功率集"/"图形着色"设置

我希望在Ocaml中完成以下操作,但是前F#中的答案可以让我有足够的洞察力来自己进行转换.

一个有序的电源组(从最大设置到最小设置)将使我更进一步解决下面的问题,我希望理想地想要解决.

对于效率低下的图形着色,我需要一个函数,它给出了以下内容:

f({a,b,c,d}):

{{a,b,c,d}}
{{a,b,c},{d}}
{{a,b,d},{c}}
{{a,c,d},{b}}
{{b,c,d},{a}}
{{a,b},{c,d}}
{{a,c},{b,d}}
{{a,d},{b,c}}
{{a},{b,c},{d}}
{{a},{b},{c,d}}
{{a},{b,d},{c}}
...
{{a},{b},{c},{d}}
Run Code Online (Sandbox Code Playgroud)

作为集合的列表(或更好,作为集合的惰性列表/枚举)

所以我想要在一些集合中表示所有变量.但是我希望它有序,所以我得到的是最先设置最少的那个,以及所有变量最后都设置的那个.

我有一个解决方案是这样的: f: Take powerset -> iterate -> apply f on the rest <- sort the whole list of possibilities

但我想避免排序指数列表.希望我可以用懒惰的列表来做到这一点,所以我避免迭代所有可能性.

f# ocaml

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

在(Visual)C++中调用动态创建函数的约定

我使用以下类型在运行时创建一个新函数:

typedef int (*pfunc)(int);

union funcptr {
  pfunc x;
  byte* y;
};
Run Code Online (Sandbox Code Playgroud)

这使我能够编写指令y,然后调用这个函数:

byte* p = (byte*)VirtualAllocEx(GetCurrentProcess(), 0, 1<<16, MEM_COMMIT, PAGE_EXECUTE_READWRITE );

// Write some instructions to p

funcptr func;
func.y = p;

int ret = func.x(arg1); // Call the generated function
Run Code Online (Sandbox Code Playgroud)

了解C++如何准备参数(调用约定)至关重要,因此我查找了项目属性(Visual C++),我可以看到它的用途__cdecl.它应该根据以下内容在堆栈上放置参数:http://msdn.microsoft.com/en-us/library/aa271989(v = vs.60).aspxhttp://en.wikipedia.org/wiki/X86_calling_conventions #cdecl但是当我查看生成的程序集时,参数将被移动到EAX寄存器.

我想绝对肯定这些论据是如何准备的.所以我忽略了一些关于cdeclVisual C++优化调用的内容,如果是这样,我如何确保它不会发生?

最诚挚的问候,Lasse Espeholt

c c++ x86 visual-c++

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

使用FParsec进行基本错误恢复

假设我有这个解析器:

let test p str =
    match run p str with
    | Success(result, _, _)   -> printfn "Success: %A" result
    | Failure(errorMsg, _, _) -> printfn "Failure: %s" errorMsg

let myStatement =
    choice (seq [
                pchar '2' >>. pchar '+' .>> pchar '3' .>> pchar ';';
                pchar '3' >>. pchar '*' .>> pchar '4' .>> pchar ';';
            ])

let myProgram = many myStatement

test myProgram "2+3;3*4;3*4;" // Success: ['+'; '*'; '*']
Run Code Online (Sandbox Code Playgroud)

现在,"2+3;2*4;3*4;3+3;"将失败并出现错误2*4;.但是,什么是最好的做法,如果我想无论是对错误2*4;3+3;?基本上,我想扫描到最近的';' …

.net f# fparsec

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

在Asp.Net中群发邮件HTML-newsletter

我正在开发一个网站,我需要将HTML简报发送到邮件列表.

我已经构建了一个html框架,其中我有"浏览器中的视图"和"Unsubscrib"链接(原因会有所不同).在管理模块中,我发布了html并上传了html-newsletter的图片.这是一个很好的方法吗?

我应该如何发送XX.XXX人的电子邮件?我不能使用BCC,因为取消订阅链接会有所不同.所以我想我必须单独发送所有的电子邮件.但是代码应该是容错的,所以如果出现错误,只有一半得到通讯.

最好的问候,Lasse

html asp.net email mailing-list newsletter

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

LINQ查询返回是否在数组中找到项?

我正在学习LINQ,我不知道如何写一个查询来返回一个布尔值,指示是否在数组中找到了一个项目.我有一个非常简单的清单:

var targetProperties = new string[] { "SelectedDate", "SelectedMonth" };
Run Code Online (Sandbox Code Playgroud)

我需要编写一个LINQ查询,如果传入的项目在数组中,则返回true,如果不是,则返回false.那个查询会是什么样的?谢谢你的帮助.

c# linq

4
推荐指数
2
解决办法
2766
查看次数

我该如何复制CSS样式?

在.master文件中我有......

<div id="menu">
    <ul>
        <li class="1"><a href="#">One</a></li>
        <li><a href="#">Two</a></li>
    </ul>
</div>
<div id="Div1">
    <ul>
       <li class="1"><a href="#">Three</a></li>
        <li><a href="#">Four</a></li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

在我有的CSS文件

#menu {
    width: 940px;
    height: 49px;
    margin: 0 auto;
    padding: 0;
}

#menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
    line-height: normal;
}
Run Code Online (Sandbox Code Playgroud)

那么为什么如何使用相同的样式"#menu"进行<div id="menu">AND <div id="Div1">

css asp.net visual-studio-2010 css-selectors

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

可以用jQuery删除title属性有负面影响吗?

我是一个完整的jQuery noob,如果这是一个愚蠢的问题,请原谅我.

这段代码会对我的网站产生负面影响吗?我在想SEO等等.

$(function() {
  $("[title]").removeAttr('title');
});
Run Code Online (Sandbox Code Playgroud)

我用它来防止鼠标悬停在图像上时弹出工具提示.

我在这里找了一下,发现这个代码也是:

$(this).data("title", $(this).attr("title")).removeAttr("title");
Run Code Online (Sandbox Code Playgroud)

但我无法让它发挥作用.

提前致谢!

jquery tooltip title

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