Haskell 读八进制数
八进制数是Haskell整数语法的一部分。还承认:Haskell 读八进制数,haskell,ghci,Haskell,Ghci,八进制数是Haskell整数语法的一部分。还承认: Prelude> lex "0o10" [("0o10","")] 但read没有在Ubuntu 18.04上阅读ghc 8.0.2: Prelude> read "0o10" *** Exception: Prelude.read: no parse 报告在6.3.3中对此不是很清楚。它只是声明lex读取一个lexem,并且lex由read使用。是否打算这样做?读取0o10的类型为: 在GHCi中,类型变量a将默认为: 请注意
Prelude> lex "0o10"
[("0o10","")]
但read没有在Ubuntu 18.04上阅读ghc 8.0.2:
Prelude> read "0o10"
*** Exception: Prelude.read: no parse
报告在6.3.3中对此不是很清楚。它只是声明lex读取一个lexem,并且lex由read使用。是否打算这样做?读取0o10的类型为:
在GHCi中,类型变量a将默认为:
请注意,您描述的行为不限于将被解析为八进制的字符串
GHCi> read "[1,2,3]"
*** Exception: Prelude.read: no parse
。。。与read不同,它专门生成字符串结果,而不允许您选择read的实例
要获得预期的行为,请提供适当的类型批注或签名:
GHCi> read "0o10" :: Integer
8
读取0o10的类型为:
在GHCi中,类型变量a将默认为:
请注意,您描述的行为不限于将被解析为八进制的字符串
GHCi> read "[1,2,3]"
*** Exception: Prelude.read: no parse
。。。与read不同,它专门生成字符串结果,而不允许您选择read的实例
要获得预期的行为,请提供适当的类型批注或签名:
GHCi> read "0o10" :: Integer
8
这与任何要读取的参数都会出现的错误相同,因为您没有指定要返回的值的类型。这与任何要读取的参数都会出现的错误相同,因为您没有指定要返回的值的类型。