0

たとえば、次のように機能するように toString (Var x)= "x"

4

2 に答える 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 に答える