问题标签 [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 回答
727 浏览

f# - F#忽略缺失忽略

我经常以交互方式使用 F#。我在 Visual Studio 的脚本文件中键入语句,然后Alt + Enter在 F# Interactive 中按下以执行它们。我经常看到我忽略了表达式结果的警告。我当然不是,因为我以交互方式评估所有内容。

是否有关闭此警告的选项?

例子:

0 投票
0 回答
149 浏览

c# - 从 F# 交互式启动 WPF 窗口,键盘输入损坏

在 WPF 中开发了一个 GUI,当它作为一个独立的应用程序启动时,所有可编辑的字段(数据网格列、文本框等)都可以正常工作。

但是,当从 FSI 实例化窗口时,键入时不会注册单个键字符。有趣的是复制/粘贴和突出显示+删除所有工作。

窗口正在像这样初始化:

然后在 FSI 中调用此函数

所有其他功能似乎都可以工作(按钮单击、切换选项卡),但任何需要按键输入的元素都不会注册键入的字符。

0 投票
0 回答
132 浏览

f# - 如何在 Visual Studio Code 中进行 fsi 设置以防止打印输出

我在 Visual Studio Code 中使用 lonide for f#。

我想阻止 FSI 输出窗口打印出定义的代码和变量。我了解到这可以通过这样的设置来完成:

问题是,如何在 Visual Studio 代码的 lonide fsharp 扩展中进行此设置?

0 投票
0 回答
76 浏览

f# - 在 fsi F# 交互中引用 com 接口

我正在尝试在 F# 交互中重写这个matlab示例。.Net在示例中,使用了 COM 接口引用。如何从 fsi 中引用 COM 接口?

编辑

我参考所描述的

从项目菜单中,选择添加引用。在添加引用对话框中选择 COM 选项卡。选择 MATLAB 应用程序。

我无法通过右键单击将这个参考发送到交互式。在我的 matlab 目录中找不到描述 MLApp.dll 中引用的属性和 dll 中没有路径。这个 F# 程序有效:

但我想从FSI使用它。

0 投票
0 回答
262 浏览

f# - Visual Studio Code 中的 F#/Ionide,FSI 的最大脚本长度?

我在使用 Visual Studio Code 中的 Ionide 将 F# 脚本发送到 F# Interactive 时遇到问题。

我正在使用 Alt+Enter 的“FSI:发送选择”命令。这适用于较小的脚本,但脚本长度超过一定限制(大约 1.5kb)时,它不再发送到 FSI。FSI 中没有显示错误,没有任何反应。将选择大小减小到此限制以下会恢复原始行为,直到再次超过该限制。

我没有在网上找到任何线索,并希望获得有关如何解决/调查此问题的任何提示。我已经卸载并重新安装了 Ionide & Visual Studio Code,没有任何效果。

这是一个有效的示例脚本,但再添加一个字符就会超出限制:

0 投票
0 回答
147 浏览

f# - 我可以在 F# Interactive REPL 中自动打开特定的命名空间和库吗?

我注意到每次从 Visual Studio 中打开F# Interactive (FSI)以尝试REPL 样式时,我总是会发现自己首先执行一些命令,这些命令通常特定于任何给定的项目:

这只是一个例子,但我发现自己在问:这可以自动化吗?现在,我可以fsx为每个项目编写一个脚本并执行“发送到交互式”,但这仍然是一项相当多的工作(并且#r#time不会在那里工作)。此外,我必须在每次 FSI 重置时再做一次。

有人知道更简单的方法吗?我应该自己动手吗(我从来没有为 Visual Studio 创建过一个严肃的插件,但也许现在是个好时机)。其他建议?


PS:这里的解决方案不是我所追求的,因为它适用于 FSI 的每个实例,但并不适用opens。第二个解决方案是 add #if INTERACTIVE,但这会增加混乱,很难用相对路径编写,并且Ctrl-AplusCtrl+Shift+Enter会阻塞 any namespace,这也需要 in #if !INTERACTIVE,增加更多的混乱。

0 投票
1 回答
2120 浏览

f# - 在 vscode 终端中粘贴时的字符/行限制

在 VSCode 中使用 Fsi 时遇到问题。我从 1.7 开始就有这个问题,并且在当前版本的 1.8 中仍然存在。

如果我用来alt + enter向 VSCode 发送代码选择,它可以工作,但仅适用于短选择。When the selection is too long it doesn't do anything in the Fsi window.

在使用终端以及 Fsi 并粘贴部分文本时,我发现了同样的问题。

我找不到字符或行数限制。例如,我曾尝试在 38 行上粘贴 1415 个字符,它可以工作。38 行的 1416 不适用于我的一个文件。但是当我粘贴“a”的 1568 个字符时,它可以工作,而 1569 则不能。所以不一定是字数限制。当我输入一些换行符时,这有效:

在末尾添加另一个 a 并且它不会(1534 个字符,35 行)。

这真的很烦人,我发现的唯一解决方法是将一小部分代码单独复制到 Fsi 中,然后使用;;.

我在 Windows 7、VSCode 1.8.1、ionide-fsharp 2.21.0、F# 4.0 上。换行符计为 2 个字符 (\r\n)。

写下这些数字,显然只有a我们需要的换行符characters + newlines < 1569。但它不适用于任意其他字符。

0 投票
1 回答
228 浏览

unicode - F# - 卡片套装不显示在控制台中

我正在 f# 中制作基于控制台的纸牌游戏,并且正在努力使用 unicode 字符显示纸牌套装。将 suit-to-char 映射为以下函数:

显示这个使用

在 fsi 中工作正常:

金融情报服务
但是当使用 fsc.exe 编译时,它会显示不同的(不适合)字符:

命令提示符

我试过改变源文件的编码,但没有效果。编译时有什么方法可以工作吗?

编辑(30.01.2017):斯图尔特的回答是正确的,但我无法克服它需要输入的事实

每次我想运行我的游戏。

在研究了在 F# 中引用 DLL 的方法后,我想出了以下解决方案:

在我添加的主要功能代码中

它仅修改此进程的代码页,因此其他应用程序将正常运行。

0 投票
2 回答
446 浏览

.net - FSharp Interactive 无法启动;找不到 System.Runtime.dll

我已经通过 Visual Studio 2017 安装程序安装了 FSharp 4.1,但 FSI 拒绝启动:

我假设我在 PATH 变量或其他东西中丢失了一些东西,但是尽管进行了几次重新安装和修复,我还是无法克服这个错误。

FSI 在哪里寻找这个 dll,我应该安装什么来把它放在那里?

更新:

我尝试了一些事情,结果没有改变:

  • 通过 VS 2017 安装程序删除 F# 4.1,验证C:\Program Files (x86)\Microsoft SDKs\F#\4.1不存在,然后重新安装 F# 4.1
  • 卸载我安装的所有版本的 .NET Core
  • 删除C:\Program Files (x86)\Microsoft SDKs\F#\4.0似乎没有安装程序的目录。(该目录中的 FSI 在删除之前工作...)

我已将融合日志转储为 zip 文件并将其放在我的 Google Drive 上。有一大堆失败的绑定,System.Runtime, Version 4.1.0.0就是其中之一。

此处提交的问题:https ://github.com/Microsoft/visualfsharp/issues/3178

0 投票
0 回答
71 浏览

dictionary - 为什么这段代码在 FSI 中第二次执行时会崩溃?

我有一些生成异常的代码,second time 它在 FSI 中执行。顺序如下:

1)选择above它的所有行,继续FSI使用Alt+Enter.

2)选择代码,FSI使用Alt+Enter. 到目前为止没有错误。

3) 通过点击再次运行选定的代码Alt+Enter。错误(见下文)。

以下是生成此行为的代码行:

相关资料:

错误信息:

关于这种奇怪行为的原因有什么想法吗?