现在,我已经没有将自己应用于函数式编程了,近20年,当我们没有比写因子和文本更进一步时,所以我真的很想吸引社区寻求解决方案.
我的问题是:
"鉴于一组交易对象,我想找到所有交易的组合,净值为零+/-一些容差."
我十岁的首发是:
let NettedOutTrades trades tolerance = ...
Run Code Online (Sandbox Code Playgroud)
让我们假设我的起点是先前构造的元组数组(交易,价值).我想要的是一个数组(或列表,无论如何)的交易数组.从而:
let result = NettedOutTrades [| (t1, -10); (t2, 6); (t3, 6); (t4; 5) |] 1
Run Code Online (Sandbox Code Playgroud)
会导致:
[|
[| t1; t2; t4 |]
[| t1; t3; t4 |]
|]
Run Code Online (Sandbox Code Playgroud)
我认为这可以通过尾递归构造实现,使用两个累加器 - 一个用于结果,一个用于交易值的总和.但是如何把它们放在一起......?
我确信我可以使用c#删除一些程序性的东西,但它只是感觉不适合这项工作的工具 - 我相信使用功能范例会有一个优雅,简洁,高效的解决方案......我目前还没有很好地练习识别它!
我有第三方c ++ dll的内存泄漏问题.对于某些调用,dll为字符串分配内存,将其作为char*传递出去,然后期望接收该指针,以便它可以取消分配内存.
以下是头文件中的一些注释,几个返回char*的示例,以及"Release"方法的签名.
(这个dll被称为SW_API,它来自一个贸易交易所 - 如果有人已经包裹了这个,我很乐意和他们交谈!).
/* Strings returned by the API are similarly normal nul-terminated C strings.
* The user should not attempt to change any of the bytes or read past the
* terminating nul of any returned string. All returned strings must be
* released using SW_ReleaseString() once the user is finished with the
* result. Failure to do this will result in memory leaks.
*/
/**
* @typedef const char* SW_XML
* @brief A string …Run Code Online (Sandbox Code Playgroud)