這是我的數據類型:Haskell中,參數化的數據類型轉換成字符串
data Foo a = Value Integer
|Boo a
,我必須爲Foo數據類型轉換成字符串的函數:
showFoo::Show a=> Foo a -> String
showFoo (Value n) = show n
showFoo (Boo a) = show a
例如:showFoo(值10)變爲:「10」,但對於showFoo(Boo「S」),變成:「\」S \「」但我只需要「S」。
我明白你的意思劈它,但我不能改變功能的簽名(putStrLn不能使用)。 – Sam
我同情你,但是我不能(或者沒有動力去)在有人工約束的時候提供幫助。我想你可以做一些像'filter(/ =''')(show a)'(或者如果它們是第一個和最後一個字符,只是有條件地放下'''')。 –
我敢肯定,根本的問題是,OP希望「show」foo「'導致」foo「'。我不認爲不希望將函數'Foo a - > String'放入IO monad中,並且總是寫入控制檯是解決方案中的「人爲約束」。 – Ben