たとえば、次のように機能するように 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 ライブラリを参照することをお勧めします。
于 2009-11-10T20:47:59.097 に答える