Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
斯普林特去了哪里,在F#?_F# - Fatal编程技术网

斯普林特去了哪里,在F#?

斯普林特去了哪里,在F#?,f#,F#,在F#中有几页提到了sprint fn 其中一个是经典: 但在这里,托马斯的回答是: 然而,我似乎无法使用它,它似乎没有定义。它从语言中删除了吗?据我所知,这个函数现在在标准F#库中的任何地方都不可用。考虑到我们有printf/printfn,这听起来可能是一个有用的补充。您当然可以自己定义它: let sprintfn fmt = Printf.kprintf (fun s -> s + "\n") fmt sprintfn "Hello %s!&q

在F#中有几页提到了
sprint fn

其中一个是经典:

但在这里,托马斯的回答是:


然而,我似乎无法使用它,它似乎没有定义。它从语言中删除了吗?

据我所知,这个函数现在在标准F#库中的任何地方都不可用。考虑到我们有
printf/printfn
,这听起来可能是一个有用的补充。您当然可以自己定义它:

let sprintfn fmt = 
  Printf.kprintf (fun s -> s + "\n") fmt

sprintfn "Hello %s!" "world"
要回答这个问题,它去了哪里?我不完全确定它是否存在过。我的答案只是一个草图,而不是一个可执行代码,所以这可能只是一个错误。Scott共享的代码仅在注释中使用该函数

当然有一个旧的Visual Studio“F#脚本文件”模板(我可以在我的机器上找到大约2010年的副本),它有以下内容:

/// A string computed using the 'sprintfn' string layout function
let stringE = sprintf "stringC = %s, stringD.Length = %d" stringC stringD.Length
如果您愿意,您会找到一些引用,但大多数都只是Scott代码的副本。有几个库定义了自己的
sprintfn
函数,但不是很多


令人惊讶的是,您还可以,而且这也没有提到
sprintfn
。所以,我真的认为它从未存在过:-)。

sprintf
,但没有
sprintfn
sprintfn
的要点是什么,因为
n
代表“新行”?我想作者在写这篇文章时可能只是想到了
printfn/printfn。据我所知,从来没有
sprintfn
函数,但你当然可以创建一个。只需使用<代码> KPrimtf并在延续函数中添加换行符。我发现自己有时输入Simulfn,所以看起来我可以使用它:D,我猜想其他类型的文档,等等,也有同样的方法来添加,我认为这些函数是由它们的C++等价物启发的,C++也没有<代码> SpRtfn < /代码>。这只是一个猜测,但我认为它只存在于控制台打印中,因为这只是一个常见的用例(使用
printfn
将一行打印到控制台);但是,是的,我想这是一件很小的东西,应该有意义