gpt4 book ai didi

haskell - 无法匹配预期的 Haskell 函数类型

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

所以我对haskell很陌生,我们已经设置了一些类(class)来使用函数式编程创建算法。所以我尝试制作一个函数,它接受一个整数数组并将每个数字分隔成一个列表。但是,我不断收到相同的错误,即预期类型与实际类型不同,即使在对其进行了一些研究之后,我也不明白这意味着什么。我已经尝试制作一些产生此错误的函数,所以有人可以指出我到底做错了什么以及为什么这个错误一直以外行的方式发生?

module Cswk2 where

getCard :: Integer -> [Integer]
getCard n
| n < 0 = []
| otherwise = lst_numb : getCard pre_numb
where
(pre_numb, lst_numb) = n divMod 10

最佳答案

表达式 n divMod 10没有意义,因为 nInteger在这里,因此您无法使用 n 执行功能应用程序函数和divMod参数。

您可以使用 divMod n 10 调用该函数, 所以:

getCard :: Integer -> [Integer]
getCard n
| n < 0 = []
| otherwise = lst_numb : getCard pre_numb
where (pre_numb, lst_numb) = divMod n 10

或者您可以使用反引号来使用 divMod作为中缀运算符:
getCard :: Integer -> [Integer]
getCard n
| n < 0 = []
| otherwise = lst_numb : getCard pre_numb
where (pre_numb, lst_numb) = n `divMod` 10

关于haskell - 无法匹配预期的 Haskell 函数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61899087/

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