问题标签 [fsi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
406 浏览

f# - F# fsi.AddPrinter:AddPrinter 有能力拆分列表吗?

在我们的项目中,我们fsi.AddPrinter用于打印类型formula<fol>.

为了更容易,我们fsi.AddPrinter sprint_fol_formula在 fsx 文件中包含将 AST 结果转换为人类可读的结果。

在创建测试用例的过程中,我们还输出 AST 结果和人类可读的结果。

AST 结果是处理公式的结果。为了在单元测试中将 AST 转换为人类可读的格式,我们只需使用sprint_fol_formula astResult.

现在如果结果formula<fol> list不是formula<fol>,使用 FSI 时会输出正确的结果,但sprint_fol_formula不接受formula<fol> list

对于差异,我可以得出的唯一合理答案是它fsi.AddPrinter具有将列表分开然后单独打印每种类型的内置能力。

这是真的,还是我错过了什么?

如果这是真的,您能否在记录的地方添加参考。

0 投票
1 回答
963 浏览

f# - 如何将通用类型的漂亮打印机添加到 fsi?

在 F# Interactive (fsi) 中,您可以使用AddPrinterAddPrinterTransformer为交互式会话中的类型提供漂亮的打印。如何为泛型类型添加这样的打印机?对类型使用通配符_不起作用:

只是没有使用打印机。

放入类型参数也会发出警告:

这也不是我想要的。

0 投票
1 回答
288 浏览

f# - 如何在 fsharpi 中添加在 Mono 中具有版本和公钥的引用

以下 #r 命令将在 Windows 上正常执行

#r "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

在带有 Mono 3.0.6 的 Osx 上,即使该文件位于搜索路径中,它也无法找到该文件。

我猜这可能与延迟登录 Mono 有关,任何人都可以确认这一点或知道最好的解决方法是什么?

0 投票
0 回答
411 浏览

f# - FSI 和加载顺序

在 a.fsx 中:

在 b.fsx 中:

在 c.fsx 中:

在 userdep.fsx 中:

在 user.fsx 中:

现在,如果我将 user.fsx 中的最后一条指令发送到 FSI,我会得到:

如果决定的加载顺序是显示的顺序,这是有道理的。如果我从 userdep.fsx 发送 2 行,那么我必须在不同的命名空间中引用 a:

是否有任何原则可以规避您所知道的这种行为?

0 投票
0 回答
327 浏览

f# - 仅在 FSI 中经过身份验证的 http 请求失败

我正在发出这样的经过身份验证的请求:

Http.Request 来自FSharp.Data

在已编译的 F# 应用程序上它工作正常,但是在 F# 交互式运行它时,发送的请求以某种方式略有不同,我收到此错误:

在提琴手下查看,该网址返回一个 302 重定向到https://nr-datafeed-cif.s3.amazonaws.com/CIF_ALL_FULL_DAILY%2Ftoc-full.json?...

但是在 fsi 下,后续请求会转到https://nr-datafeed-cif.s3.amazonaws.com/CIF_ALL_FULL_DAILY/toc-full.json ?... 。

0 投票
1 回答
1990 浏览

visual-studio - 有没有办法在 Visual Studio 中重新启动 FSI?

我正在学习 F#,并且不小心写了无限递归函数..

当我通过 Visual Studio(2010 或 2012)在 F# Interactive (FSI) 中调用这些时,除了重新启动 Visual Studio 之外,我找不到摆脱它的方法。有没有其他的——最好是更快的——出路?

0 投票
1 回答
159 浏览

f# - 在内存(不是文件)上调用 fsi

假设我们有一个这样的 fsi 脚本:

我们可以使用#load 在文件上调用 fsi,但是是否可以在不先将其写入文件的情况下以某种方式在内存中的字符串上调用 fsi?

用例是一个 API 兼容性测试器:给定一个 dll,我想创建一个调用其所有公共 API 的脚本,并针对同一 dll 的不同版本编译该脚本。

我总是可以将生成的脚本写入磁盘,但如果我可以直接运行它会更干净。

0 投票
1 回答
472 浏览

f# - F# FSI - 脚本长度有限制吗?字符串文字显得太长

将 F# 文件 -- Jira.fs 传输到脚本文件 -- Jira.fsx

我遇到了一个使用三引号并在其中包含双引号的常量字符串的问题(下面的示例)

Jira.fs = 成功 Jira.fsx = 失败并出现错误 FS0010:表达式中出现意外符号“:”。应为 '}' 或其他标记。

警告包括 - 警告:行太长,忽略某些字符

.fsx 脚本有限制吗?

如果是这样,有没有推荐的解决方法?只是从文件中读取字符串?

代码如下:谢谢

0 投票
1 回答
835 浏览

.net - 在 F# 中定义我自己的预处理器指令

我有一个 F# 脚本,打算在家里和工作中使用。该脚本在这两个地方的工作方式相似,但是,我在工作中有一系列问题需要处理(主要是关于防火墙和 http 代理),所以我想在一种情况下以稍微不同的方式运行我的脚本,在其他。

我想理想情况下我会在 FSI 级别设置一个特殊标志(指令),所以我可能不得不#if AT_WORK处理一些尖锐的极端情况。

如何做到这一点?

0 投票
1 回答
96 浏览

f# - 如何在 fsi 中取消定义?

ref例如,我错误地重新定义了 。它取代了默认的ref.

是否可以删除我的定义并恢复到原始定义而无需重新启动?