gpt4 book ai didi

haskell - 为什么这需要显式类型?

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

我使用 Haskell 中的类编写了一个泛型类型到类型转换器,如下所示:

{-# LANGUAGE FlexibleInstances #-}

class Convertable a where
convert::a

instance Convertable (Int -> String) where
convert = show

instance Convertable (String -> Int) where
convert = read

main = do
let result = ((+1) . convert :: String -> Int) "1"
print result

但是我需要显式类型 String -> Int 才能使其正常工作(这否定了通用类型转换器的目的......)

为什么需要这种类型声明,只有一种可能性可以满足类型?

最佳答案

convert 不是这里的问题,默认情况下数字的类型为 Num a => a,所以这里的问题是+1。您必须给它一个具体的类型。

关于haskell - 为什么这需要显式类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19800771/

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