问题列表 - 第36839页

计算递归次数

我有一些代码可以反复接近一个解决方案,它实际上做的并不重要,但它通过改变mg(m猜测,从4.0开始因为我"知道"它应该在球场中)而对r'== rt有效. .

solve_m f ar st qt = solve_m' f ar st qt 4.0
  where
    solve_m' f ar st qt mg 
      | rd > precis    = f' (mg - sf)  
      | rd < (-precis) = f' (mg + sf)  
      | otherwise = mg
        where 
          f' = solve_m' f ar st qt
          rt = st + qt   
          r' = f st ar mg 
          rd = rt - r'    
          sf = abs(rd) 
Run Code Online (Sandbox Code Playgroud)

我想要做的是计算周期数,我知道正确的方法是使用State monad,但是最优雅的方法是将put/get放入这样的函数中?让f'成为阻止?或者只是添加一个计数器solve_m'并返回(counter,mg)?

谢谢!

编辑:这似乎基本上是我想要的,没有必要的Monads:

solve_m f ar st qt …
Run Code Online (Sandbox Code Playgroud)

haskell

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

为什么要使用外部JavaScript?

什么是使用外部JavaScript文件的优点?我只是无法弄明白,我看到大型网站几次使用它们而不是服务器端包含.它只是用于缓存吗?

如果这是一个干净的代码和关注点的问题,那么你仍然可以将它从服务器端包含到html中.例如,我使用SMARTY,我可以将文件包含{include file='javascript.js}<script></script>tages中.如果它是为了性能,除了额外的http请求之外我什么都看不到,这会使外部文件变慢.我相信我一定会遗漏一些东西,因为所有大型网站仍然会这样做.

是因为缓存文件吗?我的javascripts是动态的,不管怎么说都不应该缓存.

有人可以帮助我做出正确的决定,选择如何处理我的JavaScript文件.

ps:一个1.5K的用户可以为external-javascript创建一个标签吗?

javascript

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

gstreamer命令编写(pip)两个视频

我应该在gstreamer中执行什么命令才能将两个320x240视频组合成一个640x240的并排视频?

假设我有video1.avi和video2.avi

video video-processing gstreamer video-editing

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

有没有办法右对齐ListBox中的数字列

我们有一个包含多列的标准Access列表框.有没有办法让整数或货币列右对齐?

ms-access listbox text-alignment

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

CSS中的悬停问题 - 覆盖

好的,这是我放在母版页上的css代码,所以它也适用于所有子页面:

Master.css

a
{
  color:Red;
}

a:hover
{
  color:Blue;
}
Run Code Online (Sandbox Code Playgroud)

现在在某些页面上,我需要更改链接的颜色和悬停颜色,如:

一些子页面

a
{
  color:Gray;
}

a:hover
{
  color:Maroon;
}
Run Code Online (Sandbox Code Playgroud)

但问题是它不会改变我后来定义的方式.我使用了具体idclass方法,但它们也不起作用.

当我想改变一些特定的元素样式时,我使用内联样式属性来实现它,但现在:hover发挥作用,我不认为我可以声明它内联.

html css

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

将文件/文本拖放到托盘图标(C#,WindowsForms)

我正在尝试允许拖放到我的应用程序上的托盘图标.

我知道用更高级别的C#WindowsForms API做这件事是不可能的,因为NotifyIcon它不支持拖动事件.

所以在一位经验丰富的Windows朋友的帮助下,我开始尝试通过Win32 API.想法是在托盘窗口处理程序中注册一个钩子(在DragAcceptFiles(hWnd,TRUE);"SysPager"窗口处理程序上设置之后).

挂钩和下降部分正在从托盘到DLL工作.

LRESULT CALLBACK myHookProc (int code, WPARAM wParam, LPARAM lParam){
  if (code == HC_ACTION)
  {
    PMSG msg = (PMSG) lParam;
    switch(msg->message){
      case WM_DROPFILES:
        ::MessageBox(NULL, L"Dropped files!", L"Test", MB_OK);
        // call my app's registered hook
        break;
  }
  return CallNextHookEx(oldHookProc, code, wParam, lParam);
}
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,我弹出了消息框.

问题是我现在需要在我的C#(WindowsForms)应用程序上调用一个函数来通知这个事件.这是我遇到砖墙的地方.

当我从DLL中的应用程序注册回调时,我存储它; 但是当myHookProc被调用时,它的值为NULL.

事实证明我误解了DLL是如何工作的; 没有我的应用程序和托盘区(他们复制或每个人都有自己的"实例",如果你可以调用它的),所以我不能使用任何静态变量或类似的东西,以保持之间的共享实例回调参考回到我的应用程序.

花了几个小时研究这一点,唯一的解决办法似乎是共享内存(试过#pragma data_seg我跑进一些论坛,但都无济于事),但它开始觉得太矫枉过正的这种"简单"的用例.

所以百万美元的问题是:

  1. 是否真的有必要将挂钩卸载到DLL?
  2. 我真的需要求助于共享内存才能实现这一目标吗?
  3. (奖金问题)WM_DROPFILES仅适用于文件; 如何为文本触发drop事件?

请记住这是我第一次使用.NET,C#和Win32(不到一周); 解释原因的详细解答 - 而不仅仅是陈述 - 将不胜感激!

谢谢.

dll hook winapi drag-and-drop system-tray

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

你如何编写Prolog中的程序来使用递归打印1到10的数字?

你如何编写Prolog中的程序来使用递归打印1到10的数字?

我尝试过以下但它不起作用,你能告诉我为什么吗?

print_numbers(10) :- write(10).

print_numbers(X) :- write(X),nl,X is X + 1, print_numbers(X).
Run Code Online (Sandbox Code Playgroud)

recursion prolog

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

{0},{1}等如何成为格式化字符串的标准?

只是在开发历史中对此感到好奇......数组索引({0},{1}等等)的括号如何成为字符串格式的标准?

有什么特别的意义,或者80年代有人从空中挑选出来的东西?

.net string history

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

使用VirtualTreeview和OTL进行内存泄漏

我创建了一个小的多线程应用程序,我试图将其转换为使用OmniThreadLibrary.我正在使用Virtualtreeview显示日志和状态/结果.Vst Log只有两列,记录只包含两个字符串字段(非常简单,记录中没有对象).

使用OTL附带的DEMO项目(线程池#11)我将项目更改为使用VirtualTreeview而不是列表框.当我从演示中"运行任务"时没有内存泄漏,但是如果我不止一次运行"运行任务",就会发生内存泄漏.如果我多次运行任何任务,将发生内存泄漏.如果我根本不使用VirtualTreeView,则任何时候都不会发生内存泄漏.就在我使用VST和任务运行多次时.

我确实使用FreeNode事件并清除字符串,甚至尝试使用Finalize ...

例:

procedure TFormMain.vstLogFreeNode(Sender: TBaseVirtualTree;
  Node: PVirtualNode);
var
  LogData: PTreeLogData;
begin
  LogData:=Sender.GetNodeData(Node);

  if Assigned(LogData) then begin
    LogData^.Msgtype := '';
    LogData^.Msg := '';
  end; 
  //Finalize(LogData^);

end;
Run Code Online (Sandbox Code Playgroud)

当一个任务多次运行时,为什么会出现内存泄漏?Delphi 2010采用FastMM4最新的Virtualtreeview和OTL

delphi virtualtreeview omnithreadlibrary

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

log4j配置文件错误检测

我正在使用log4j编写一个记录器.一旦我加载了log4j.properties或log4j.xml文件,我就想知道是否有办法检测记录器配置文件是否有效.如果它无效,我希望加载默认设置(位于另一个文件中).

谢谢

java validation configuration log4j

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