gpt4 book ai didi

f# - 如何在我自己的代码中生成类似于 FSI 的 F# 类型签名?

转载 作者:行者123 更新时间:2023-12-04 02:05:56 26 4
gpt4 key购买 nike

如果使用 F# Interactive Shell (FSI),推断的表达式类型 ( signature ) 将与其值一起打印到控制台:

val it : int * string * float = (42, "Hello F#", 42.0)

我如何在自己的代码中模仿相同的行为,例如获取推断类型作为 F# 表达式的字符串?

我不需要动态评估任何 F# 表达式,这些表达式在编译时是已知的,并且是我的(静态)F# 代码的一部分。我需要此功能才能为我的 F# 演示模仿 LINQPad 中的 FSI 输出。

最佳答案

使用取消引用

Unquote具有获取类型的 F# 签名的功能。只需下载最新版本并通过 LINQPad 添加对 Unquote.dll 的引用,然后您就可以执行例如

enter image description here

如果您有兴趣,可以查看实现 FSharpName 的源代码。 Type分机号:http://code.google.com/p/unquote/source/browse/tags/2.1.0/Unquote/ExtraReflection.fs#54 .

使用 FsEye

另一种巧妙的方法是使用 LINQPad 的测试版 Custom Visualizer要嵌入的 API FsEye到 LINQPad(FsEye 使用与 Unquote 相同的 F# 类型签名打印算法)。这个也很简单,你只需要下载LINQPad beta ,从最新版本的 FsEye 下载并引用 FsEye.dll,然后你可以做例如

enter image description here

关于f# - 如何在我自己的代码中生成类似于 FSI 的 F# 类型签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9908052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com