gpt4 book ai didi

list - Haskell 从另一个等式中找到列表的长度

转载 作者:行者123 更新时间:2023-12-02 08:31:13 25 4
gpt4 key购买 nike

所以我有一个等式,它返回一个给定 int 的列表。我想将其放入另一个方程式中以查看长度是长度 1 还是长度 2,如果长度是 1 则返回 True,否则返回 False。

con :: Int -> [Int] -> Bool
con getList x
| length x == 1 = True
| otherwise = False

这是我能得到的最接近的但它抛出错误

ERROR - Cannot find "show" function for:
*** Expression : con 3
*** Of type : [Int] -> Bool

最佳答案

错误原因

错误是由于你的con具有以下类型:

 Int -> [Int] -> Bool

这意味着它需要两个 参数(类型分别为 IntInt 的列表)来返回 bool 值。

现在,表达式 con 3只适用 3con (提供一个参数),返回一个接受 Int 列表的函数s 和返回 Bool .

此函数的类型为 [Int] -> Bool和函数没有 Show实例(~无法打印在屏幕上)。

你可能是什么意思

你似乎不需要getST所以你可以使用:

con :: [a] -> Bool
con = (== 1) . length

Live demo

有一个给定列表的函数返回一个 bool 值,这样:如果列表的长度是1那么返回值为TrueFalse否则。

如果你只想传递列表的长度,那么事情会变得更简单:

con :: Int -> Bool
con = (== 1)

Live demo

关于list - Haskell 从另一个等式中找到列表的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26590148/

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