gpt4 book ai didi

python - 相当于 Haskell 中的 python eval

转载 作者:太空狗 更新时间:2023-10-29 19:30:19 25 4
gpt4 key购买 nike

python 中有一个名为 eval 的函数,它接受字符串输入并对其求值。

>>> x = 1
>>> print eval('x+1')
2
>>> print eval('12 + 32')
44
>>>

Haskell 中什么是 eval 函数?

最佳答案

的确,在 Haskell 中,就像在 Java 或 C++ 或类似语言中一样,您可以调用编译器,然后动态加载代码并执行它。然而,这通常是重量级的,几乎不是人们在其他语言中使用 eval() 的原因。

人们倾向于在一种语言中使用 eval(),因为考虑到该语言的功能,对于某些类别的问题,从类似于该语言本身的程序输入构造一个字符串更容易,而不是而不是直接解析和评估输入。

例如,如果您希望允许用户在输入字段中输入的不仅仅是数字,还包括简单的算术表达式,在 Perl 或 Python 中,调用 eval() 会容易得多> 在输入上,而不是为您要允许的表达式语言编写解析器。不幸的是,这种方法几乎总是导致整体用户体验不佳(编译器错误消息不适用于非程序员)并打开安全漏洞。在不使用 eval() 的情况下解决这些问题通常需要相当多的代码。

在 Haskell 中,感谢像 Parsec 这样的东西,实际上很容易为这类输入问题编写解析器和求值器,并且大大消除了对eval的向往。

关于python - 相当于 Haskell 中的 python eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2469139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com