【问题标题】:How to set undefine function in ghci如何在 ghci 中设置 undefine 函数
【发布时间】:2014-04-14 08:38:09
【问题描述】:

我正在使用 Haskell 开发程序,并且为了调试,我创建了包含一些函数的文件。 我声明了一些“欠精细”的函数,我想在解释器(ghci)中设置这些函数。

例如:

r :: [String]
r = undefined

在 ghci (:load Experimental.hs) 中加载此文件后,我使用以下命令:

let r = "示例字符串"

但我有下一个例外:

"*** Exception: Prelude.undefined

我可以在 ghci 函数中声明,在源文件 (.hs) 中定义不足吗?或者可能存在其他解决方案?

【问题讨论】:

    标签: haskell ghci


    【解决方案1】:

    这是不可能的,主要是因为它破坏了引用透明性:在“设置”函数之后,其他一些函数的结果会有所不同。 (您可能会争辩说,undefined 引发异常已经足够清楚,以确保一切都安全,但是您需要某种方法来确保没有重新定义具有 正确 第一个定义的函数......这就是全部不值得麻烦。)

    这样做的正确方法是使未定义的值成为使用它的函数的显式参数。然后,您可以在从解释器调用该函数时更改此参数。

    【讨论】:

    • 非常感谢。我希望,存在解决这个问题的方法。我将在函数中明确提供参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多