【问题标题】:In F#, what is the correct way to store temporary results?在 F# 中,存储临时结果的正确方法是什么?
【发布时间】:2014-09-17 19:12:45
【问题描述】:

我必须在 F# 中编写一个 Excel 插件,它会进行一些非常繁重的计算,以便在某些用户定义的函数中作为第一步来校准一些曲线。

作为第二步,我需要重新使用宇宙的表示(在第一步中校准的曲线)作为其他函数的参数。

当我在带有状态的过程语言中执行此操作时,我将只返回一个关于 Universe 的字符串句柄,这将是我将存储在内存中的一个对象。如果我在 F# 中这样做,我是否打破了函数式语言范式?

有没有一种优雅的方式来做类似的事情,而不必在第一步进行重新校准?这里我使用的是 Excel,但这是一个更普遍的问题。

【问题讨论】:

    标签: math f# functional-programming


    【解决方案1】:

    您的意思是如果您有用户定义的函数 A 和 UDF B,它们都需要调用另一个函数来校准?如果是这样的话,听起来你应该记住校准功能,让A和B使用记忆功能。

    作为旁注,您应该考虑忽略记忆化的典型学术实施,并考虑使用limits on the upper bound of inputs

    附带说明 - Excel 是使用最广泛的函数编程范例之一。

    【讨论】:

    • 在我的 C# 实现中,我有一组函数返回诸如“CURVE1.1”“SPLINE2.1”之类的字符串,然后我可以通过另一个方法将它们组织成宇宙的表示例如返回句柄“UNIVERSE1.2”的函数。然后我会在第二部分只传递这个 Universe 句柄。我试图了解用函数式语言做类似事情的正确方法是什么。
    猜你喜欢
    • 1970-01-01
    • 2015-12-20
    • 2011-05-29
    • 2012-05-01
    • 2016-11-12
    • 1970-01-01
    • 2015-05-24
    • 2015-07-30
    • 1970-01-01
    相关资源
    最近更新 更多