форматирование строк в Haskell - PullRequest
34 голосов
/ 18 марта 2010

Что является эквивалентом haskell

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

Ответы [ 4 ]

34 голосов
/ 18 марта 2010

В GHC есть модуль Printf.

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

однако, вероятно, проще всего сделать

str = show 10 ++ " " ++ show 20
23 голосов
/ 22 августа 2011

Вы можете использовать функцию 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]
7 голосов
/ 09 апреля 2017

Размещение ответа здесь, если кто-то ищет библиотеки форматирования в Haskell в StackOverflow. Теперь есть библиотека безопасного и быстрого форматирования с именем fmt. С его помощью вы можете написать код:

> "There are "+|n|+" million bicycles in "+|city|+"."
4 голосов
/ 18 марта 2010

Это то, что вы ищете?

printf "%d %d" 10 20

См. Text.Printf.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...