【发布时间】:2019-08-22 04:32:57
【问题描述】:
当我在 F# REPL fsharpi 中工作时,只要我输入一个新函数,就会在我输入它们后打印签名:
> let foo x = x;;
val foo : x:'a -> 'a
有没有办法将它作为字符串检索?我问的原因是我将 IfSharp 用于不显示签名的 Jupyter 笔记本,但我希望能够显示函数类型以用于演示目的。
我搞砸了一点,但没有得到任何有用的东西,我试过了:
let foo x = (x, x)
printfn "%A" (foo.GetType())
printfn "%A" foo
但这并不是我所需要的:
FSI_0013+clo@3-1
<fun:it@5-2>
是否可以访问它?
【问题讨论】:
-
不幸的是,我不确定 F# 库中是否真的有一个函数可以做到这一点。但是,为此编写自己的函数可能并不难。
-
Dotnet Interactive 以nuget package 的形式提供。它可能有一个很好的方法
-
F# 交互也暴露在compiler nuget package。 FsiValuePrinter 看起来很有希望。