fsi(FSharp interactive)安静模式

时间:2013-12-17 14:49:54

标签: f# fsi

如何将F#Interactive控制台的输出限制为我自己的输出?

在我当前的设置中,fsi在脚本中运行时会写入大量信息(关于数据结构的类型和内容)。 我试过quiet mode但没有成功。

谢谢!

2 个答案:

答案 0 :(得分:5)

您可以将ShowDeclarationValuesShowPropertiesShowIEnumerable设为false。

您仍然可以看到类型,但不是内容(通常是输出的大部分)。

#if INTERACTIVE
fsi.ShowDeclarationValues <- false
fsi.ShowProperties <- false
fsi.ShowIEnumerable <- false
#endif

答案 1 :(得分:4)

另一种非常规方法可能如下:

  • 使用--quiet option
  • 解雇您的FSI
  • 而不是printf使用eprintf作为您自己的输出,效果将正是您所要求的
脚本中的

eprintfn "Testing: %n" 123
在FSI窗口中

Testing: 123

任何其他但真实错误消息输出将不会出现在FSI窗口中,包括所有评估结果;与此同时,printf的所有便利仍可供您使用,包括熟悉的格式。

UPDATE: I posted进一步增强,允许在FSI输出的正常和“安静”模式下使用未更改的输出代码。