Haskell非数字字符串列表到不同的列表

the*_*ux4 -4 string haskell list

我有一个列表['%','&','/'].如何将其转换为[%,&,/]形式?

dav*_*420 6

myShow :: [Char] -> String
myShow s = concat ["[", intersperse ',' s, "]"]
Run Code Online (Sandbox Code Playgroud)

像这样使用它:

putStrLn (myShow ['%','&','/'])     -- prints [%,&,/]
Run Code Online (Sandbox Code Playgroud)

但是如果你想使用showprint,你必须定义自己的类型:

data MyChar = MyChar Char

instance Show MyChar
  where show (MyChar ch) = [ch]
Run Code Online (Sandbox Code Playgroud)

然后操作[MyChar]而不是[Char]:

let myList = map MyChar ['%','&','/']
-- ... do whatever you want with myList ...
print myList                        -- prints [%,&,/]
Run Code Online (Sandbox Code Playgroud)

  • 值得称道的努力.不幸的是,我怀疑它会被浪费掉. (2认同)