我可以在运行时通过评估字符串来创建函数吗?

代码4j

在我的离散数学求解程序中,我想让用户输入一串逻辑运算。例如,如果用户输入let f (x:y:_) = x && y,那么我将获得一个f在程序其余部分中使用的功能在GHCi中,我可以通过输入轻松测试我的程序let f (x:y:_) = x && y

我不知道如何完成这项任务。evalplugins软件包中了解了该函数,但似乎不是正确的函数。我可以在Haskell中这样做吗?

我计划将其用于的代码是:

type TruthTable = [[Bool]]
type TruthTableResult = [([Bool], Bool)]

solveTable :: ([Bool] -> Bool) -> Integer -> (TruthTableResult)
solveTable f n = let table = truthTable n
                     result = map f table
                 in  zipWith (\v r -> (v, r)) table result
彼得

没有标准的Haskell函数,因为已编译Haskell,而不对其进行解释。但是,有些库可让您在运行时读取和编译Haskell代码。其中之一就是暗示您的案例示例:

import Control.Monad
import Language.Haskell.Interpreter

main = do
    -- fExpr is a Haskell code supplied by your user as a String
    let fExpr = "let f (x:y:_) = x && y in f"
    -- Create an interpreter that runs fExpr
    r <- runInterpreter $ do
            setImports ["Prelude"]
            interpret fExpr (const True :: [Bool] -> Bool)
    -- run it and get an interface to the function
    case r of
        Left err -> putStrLn $ "Ups... " ++ (show err)
        Right f  -> do
            print $ f [True, False]
            print $ f [True, True]

此处提供更多示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以在运行时通过评估字符串来创建函数吗?

来自分类Dev

我可以通过编译来改善python运行时吗?

来自分类Dev

在运行时评估groovy字符串表达式

来自分类Dev

是否可以在运行时从Objective-C中的字符串创建一个块?

来自分类Dev

在运行时快速创建函数

来自分类Dev

我可以在运行时使用C#动态构建函数吗?

来自分类Dev

在运行时更改连接字符串–这是正确的方法吗?

来自分类Dev

如何构造函数注入仅在运行时已知的字符串?(温莎城堡)

来自分类Dev

在运行时使用连接字符串

来自分类Dev

是否可以在运行时将字符串添加到字符串池?

来自分类Dev

可以在运行时使用Javascript创建函数吗?

来自分类Dev

PyQt:在运行时转换模块字符串

来自分类Dev

在运行时通过包含在主内存中的XML字符串更改活动的布局

来自分类Dev

在Swift中可以在运行时从字符串执行代码吗?

来自分类Dev

如何避免作弊引擎在运行时看到我的字符串

来自分类Dev

是否可以在运行时为C中的字符串分配正确的空间量?

来自分类Dev

Android:我们可以在应用程序运行时创建带有字符串的位图吗?

来自分类Dev

在Python中,如何在循环中在文件中写入字符串,并且在循环停止之前,我可以在运行时获得结果?

来自分类Dev

我可以通过输入字符串来调用函数吗?

来自分类Dev

尝试在运行时编辑字符串

来自分类Dev

从字符串在运行时创建Delphi Firemonkey组件

来自分类Dev

在 Python 中,我可以在运行时更改全局变量后在函数中传递它吗?

来自分类Dev

Javascript:在运行时创建函数

来自分类Dev

在运行时通过字符串从 python 访问模块和模块变量

来自分类Dev

我们可以在运行时在 C# 中为运行时创建的控件创建多个事件吗

来自分类Dev

运行时字符串是实习的吗?

来自分类Dev

Dapper 在运行时更改连接字符串

来自分类Dev

我可以在运行时检查内置类型吗?

来自分类Dev

我可以在运行时更新 AMQP 设置吗?

Related 相关文章

  1. 1

    我可以在运行时通过评估字符串来创建函数吗?

  2. 2

    我可以通过编译来改善python运行时吗?

  3. 3

    在运行时评估groovy字符串表达式

  4. 4

    是否可以在运行时从Objective-C中的字符串创建一个块?

  5. 5

    在运行时快速创建函数

  6. 6

    我可以在运行时使用C#动态构建函数吗?

  7. 7

    在运行时更改连接字符串–这是正确的方法吗?

  8. 8

    如何构造函数注入仅在运行时已知的字符串?(温莎城堡)

  9. 9

    在运行时使用连接字符串

  10. 10

    是否可以在运行时将字符串添加到字符串池?

  11. 11

    可以在运行时使用Javascript创建函数吗?

  12. 12

    PyQt:在运行时转换模块字符串

  13. 13

    在运行时通过包含在主内存中的XML字符串更改活动的布局

  14. 14

    在Swift中可以在运行时从字符串执行代码吗?

  15. 15

    如何避免作弊引擎在运行时看到我的字符串

  16. 16

    是否可以在运行时为C中的字符串分配正确的空间量?

  17. 17

    Android:我们可以在应用程序运行时创建带有字符串的位图吗?

  18. 18

    在Python中,如何在循环中在文件中写入字符串,并且在循环停止之前,我可以在运行时获得结果?

  19. 19

    我可以通过输入字符串来调用函数吗?

  20. 20

    尝试在运行时编辑字符串

  21. 21

    从字符串在运行时创建Delphi Firemonkey组件

  22. 22

    在 Python 中,我可以在运行时更改全局变量后在函数中传递它吗?

  23. 23

    Javascript:在运行时创建函数

  24. 24

    在运行时通过字符串从 python 访问模块和模块变量

  25. 25

    我们可以在运行时在 C# 中为运行时创建的控件创建多个事件吗

  26. 26

    运行时字符串是实习的吗?

  27. 27

    Dapper 在运行时更改连接字符串

  28. 28

    我可以在运行时检查内置类型吗?

  29. 29

    我可以在运行时更新 AMQP 设置吗?

热门标签

归档