haskell - Haskell 中元组内的函数出错

标签 haskell functional-programming

我正在玩一点 Haskell,但在使用带有元组(字符串、列表)的 snd 函数时遇到了这个错误。

snd ("Felix Felices",[("Escarabajos Machacados",52,[f1,f2]),("Ojo de Tigre Sucio",2,[f2])])
ERROR - Cannot find "show" function for:
*** Expression : snd ("Felix Felices",[("Escarabajos Machacados",52,[f1,f2]),("Ojo de Tigre Sucio",2,[f2])])
*** Of type    : [([Char],Integer,[(Integer,Integer,Integer) -> (Integer,Integer,Integer)])]

问题是,如果我删除 f1、f2 和 f3 (它们是函数),代码就可以正常工作,它会返回列表。为什么会发生这种情况,为什么我不能将函数放在元组的第二个位置中?

最佳答案

可以将函数放入元组中。但您无法显示它们 - ghci 想要显示结果并打印它。它应该如何显示(转换为字符串)函数?它不能,或者至少没有人愿意选择一种方法来做到这一点(无论如何,这可能是有缺陷的 - 至少我想不出任何没有巨大漏洞的方法,即使我能看到它们)。因此,您无法在 ghci 中计算返回函数或函数集合的内容。

关于haskell - Haskell 中元组内的函数出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5034270/

相关文章:

haskell - 如何向小村庄模板添加条件注释?

java - orElseGet 在 Optional<List<Entity>> 的情况下如何工作

c++ - С++ 将 lambda 包装在函数内的另一个 lambda 中

haskell - Objective-C 的跨平台函数式语言

haskell - 泛型系列生成无限列表

haskell - NamedFieldPuns,使用变量名称进行模式匹配

Haskell 中使用 list monad 的所有元素对的列表

oop - FP 和 OO 正交吗?

functional-programming - Clojure 代理是否总是调用 super.method()?

ruby-on-rails - 如何使用 Shoulda 正确测试此 Controller 操作?