小编Ben*_*boy的帖子

何时评估F#函数调用; 懒惰还是马上?

F#中的Curried函数.我得到了一个位,传入一个参数子集产生一个带预设的函数.我只是想知道传递所有参数是否有任何不同.例如:

let addTwo x y = x + y
let incr a = addTwo 1
let added = addTwo 2 2
Run Code Online (Sandbox Code Playgroud)

incr是一个带有一个论点的函数.是addedint还是函数?我可以想象一个实现,其中"添加"仅在使用时被懒惰地评估(就像Schroedinger的Cat打开盒子一样).是否有保证何时进行添加?

f# currying lazy-evaluation

16
推荐指数
3
解决办法
1985
查看次数

Crystal Reports/Windows 7:Crystal报告要求提供默认电子邮件客户端,并发布错误

Crystal Reports 11(craxdrt.dll 11.5.7.1048)Windows 7

我正在使用Crystal Reports 导出到PDF文档,使用CRYSTALCRAXDRT :: IReport :: Export,并且收到错误,仅限Windows 7.

"没有与执行请求的操作相关联的电子邮件程序.请安装电子邮件程序,如果已安装,请在"默认程序"控制面板中创建关联.

同样,我不是要发送电子邮件,只是创建一个文档.

我已经对此进行了一些调试,似乎正在发生的事情是这样的:

  1. 我通过IReport接口调用craxdrt.dll,函数Export(...),然后用procmon监控,我发现有几百个注册表查询默认邮件,联系人等.
  2. 似乎craxdrt.dll在任务之前构建了一个大型数据结构,其中包含一系列函数可能需要的任何信息.
  3. 当程序找不到默认的电子邮件客户端时,会发布错误

这个问题:

  1. Windows 7没有附带默认的电子邮件客户端,早期调查似乎表明安装一个并不一定能改善问题.在任何情况下,我都不希望我们所有的客户都安装了一个,我们的客户也不希望我们安装一个.
  2. 如果没有对电子邮件客户端的实际需求(即,在上述情况下),我们仍然会弹出此错误消息.

注:有趣的是,这实际上并没有阻止用户按下导出按钮再次,事实上,如果用户这样做,错误也不会显示出来,如注册表查询每个负载或使用craxdrt显然仅完成一次.dll文件.

crystal-reports windows-7

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