'show' returns 我想要的东西和一个奇怪的字符串
'show' returns what I want alongside a weird String
我有一个函数需要获取列表中的所有整数并将它们显示为字符串,即 "Beans 1.29" 应该 return 129。我的函数如下
multDigitsRecTest :: String -> String
multDigitsRecTest [] = ""
multDigitsRecTest (x:xs)
| isDigit x = show (digitToInt (x), multDigitsRecTest xs)
| otherwise = multDigitsRecTest xs
似乎return整数与其他奇怪的东西。有没有办法可以 return 将 int 作为字符串?
你基本上是想过滤数字字符。所以你可以将其实现为:
import Data.Char(isDigit)
multDigitsRecTest :: String -> String
multDigitsRecTest = <b>filter isDigit</b>
例如:
Prelude Data.Char> multDigitsRecTest "Beans 1.29"
"129"
打印噪音的原因是因为您调用 show (digitToInt x, multDigitsRecTest xs)
。这是一个 2 元组 (Int, String)
。因为 Int
和 String
都是 Show
类型类的成员。元组也是如此。例如,它将因此打印 (2, "(5, \"\")")
。
我有一个函数需要获取列表中的所有整数并将它们显示为字符串,即 "Beans 1.29" 应该 return 129。我的函数如下
multDigitsRecTest :: String -> String
multDigitsRecTest [] = ""
multDigitsRecTest (x:xs)
| isDigit x = show (digitToInt (x), multDigitsRecTest xs)
| otherwise = multDigitsRecTest xs
似乎return整数与其他奇怪的东西。有没有办法可以 return 将 int 作为字符串?
你基本上是想过滤数字字符。所以你可以将其实现为:
import Data.Char(isDigit)
multDigitsRecTest :: String -> String
multDigitsRecTest = <b>filter isDigit</b>
例如:
Prelude Data.Char> multDigitsRecTest "Beans 1.29"
"129"
打印噪音的原因是因为您调用 show (digitToInt x, multDigitsRecTest xs)
。这是一个 2 元组 (Int, String)
。因为 Int
和 String
都是 Show
类型类的成员。元组也是如此。例如,它将因此打印 (2, "(5, \"\")")
。