がはHaskellの関数は、それが必要何をしていないよう示しています。私は、関数を宣言するときが正しく改行に対処しない、を表示するようハスケル:ショーが台無しになった?
Prelude> let str = "stack\n\noverflow"
Prelude> putStrLn str
stack
overflow
Prelude> show str
"\"Stack\\n\\n\\noverflow\""
Prelude>
、私は通常タイプの署名を置きます。文字通り"\n"
ではなく、改行として\n
を扱いたい。型をStringに変更すると、関数はうまく動作します。
foo :: (Show x) => x -> IO()
foo x = do
putStrLn $ show x
を...とこのようにそれを呼び出す:しかし、私は、たとえばなど
など、山車、整数の別々の機能を実装する必要があり、私は、関数を宣言するだろう
予想される内容を返す機能はありますか?私。この関数はshow
に似ていますが、改行を含む文字列を返すことはできますか?
これは具体的なケースを教えてください。あなたの意図を理解しやすくなります。 – Martijn
入力が文字列かどうかを確認するだけで、それを印刷することができます。パターンマッチングは非常に便利です。 – Rayne
"show"はPythonでは 'repr()'と、以前はこれらの言語を使用していた場合はRubyで 'inspect'と似ています。 –