Насколько я понимаю, эта функция сегодня недоступна в стандартной библиотеке F #. Учитывая, что у нас есть printf/printfn
, это может показаться полезным дополнением. Вы, конечно, можете определить это сами:
let sprintfn fmt =
Printf.kprintf (fun s -> s + "\n") fmt
sprintfn "Hello %s!" "world"
Чтобы ответить на вопрос, куда он пропал - я не совсем уверен, что это когда-либо существовало. Мой ответ SO - это всего лишь набросок, а не исполняемый код, так что, возможно, это просто ошибка. Код, предоставленный Скоттом, использует эту функцию только в комментарии.
Несомненно, существовал старый шаблон Visual Studio "F # Script File" (я могу найти копию на моем компьютере примерно с 2010 г.), который имел следующее :
/// A string computed using the 'sprintfn' string layout function
let stringE = sprintf "stringC = %s, stringD.Length = %d" stringC stringD.Length
Если вы выполните поиск по всему GitHub , вы найдете несколько ссылок на это, но большинство из них являются просто копиями кода Скотта. Есть несколько библиотек, которые определяют свои собственные функции sprintfn
, но их не так много.
Удивительно, но вы также можете загрузить выпуск кода F # от ноября 2010 г. из WebArchive , и это также нет упоминания о sprintfn
. Так что я действительно думаю, что его никогда не было: -).