Ответ 1
В GHC есть модуль Printf.
import Text.Printf
str :: String
str = printf "%d %d" 10 20
однако, вероятно, проще просто сделать
str = show 10 ++ " " ++ show 20
Что такое haskell-эквивалент
string str = string.Format("{0} {1}",10,20); // C#
В GHC есть модуль Printf.
import Text.Printf
str :: String
str = printf "%d %d" 10 20
однако, вероятно, проще просто сделать
str = show 10 ++ " " ++ show 20
Вы можете использовать функцию format
, предоставляемую пакетом text-format-simple:
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]
Поместите ответ здесь, если кто-то ищет библиотеки форматирования в Haskell на StackOverflow. Там есть безопасная и быстрая библиотека форматирования, называемая fmt
. С его помощью вы можете написать такой код:
> "There are "+|n|+" million bicycles in "+|city|+"."
Это то, что вы ищете?
printf "%d %d" 10 20
См. Text.Printf
.