例如,它像这样工作 toString (Var x)="x"
问问题
1974 次
2 回答
1
使用show
功能:
putStrLn (show x)
将打印出“x”变量。(当然,您也不需要将它与putStrLn
, 一起使用 --show
返回一个可以像字符串一样在任何地方使用的字符串。)
于 2008-11-30T17:01:32.347 回答
0
如果我理解正确,您是在问如何将编程结构转换为字符串。您并不关心“x”代表什么,因为程序员在源文件中将其称为“x”。
您可以使用 Scrap Your Boilerplate 组件将数据构造函数转换为字符串。这是一个符合您要求的示例。
{-# LANGUAGE DeriveDataTypeable #-}
module Main where
import Data.Data
data Var a = Var a
data X = X deriving (Data, Typeable)
toString :: Data a => Var a -> String
toString (Var c) = show (toConstr c)
main :: IO ()
main = putStrLn $ "toString (Var x)= " ++ show (toString (Var X))
输出:
$ ghci Test.hs
GHCi, version 6.10.4: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer ... linking ... done.
Loading package base ... linking ... done.
[1 of 1] Compiling Main ( Test.hs, interpreted )
Ok, modules loaded: Main.
*Main> main
toString (Var X)= "X"
*Main>
举一个真实的例子,我建议查看RJson library。
于 2009-11-10T20:47:59.097 回答