web-dev-qa-db-ja.com

Haskellでの文字列フォーマット

Haskellの同等物は何ですか

string str = string.Format("{0} {1}",10,20); // C#
36
Pratik Deoghare

GHCには Printf モジュールがあります。

import Text.Printf
str :: String
str = printf "%d %d" 10 20

ただし、実行する方がおそらく簡単です。

str = show 10 ++ " " ++ show 20
37
newacct

text-format-simple パッケージで提供されるformat関数を使用できます。

import Text.Format
format "{0} {1}" [show 10, show 20]

この関数には次の署名があります。

format :: String -> [String] -> String

したがって、必要なのはパラメータを文字列として提供することだけです。
もう一つの例:

format "Some {0} believes that 1 + 1 = {1}." ["people",show 10]
26
Dmitry Bespalov

StackOverflowのHaskellでフォーマットライブラリを検索している人のために、ここに答えを入れてください。 fmt と呼ばれるタイプセーフで高速なフォーマットライブラリがあります。これを使用すると、次のようなコードを記述できます。

> "There are "+|n|+" million bicycles in "+|city|+"."
8
Shersh

これはあなたが探しているものですか?

printf "%d %d" 10 20

見る - Text.Printf

5
Oded