标签: f#-interactive

7
推荐指数
1
解决办法
643
查看次数

如何让F#Interactive窗口使用与项目相同的路径?

在我的项目中,我打开一个文件,其中包含一些可执行文件的相对路径.我试图在F#Interractive窗口中测试我的代码,但它似乎是从一个完全不同的路径运行.如何更改路径/使其从与项目相同的路径运行?

f# f#-interactive

7
推荐指数
1
解决办法
2554
查看次数

为什么在F#Interactive中打印5000个数字会导致StackOverflowException?

在Windows 7上测试F#3.1

fsi.PrintLength < - 5000 ;;

[1..5000] ;;

由于StackOverflowException,进程终止.检测到会话终止.按Enter重新启动.

在Mono(F#4.0)上,似乎没有这样的限制.

f# f#-interactive

7
推荐指数
1
解决办法
326
查看次数

如何使用F#从列表中选择随机值

我是F#的新手,我正在试图弄清楚如何从列表/字符串数组中返回一个随机字符串值.

我有一个这样的列表:

["win8FF40", "win10Chrome45", "win7IE11"]
Run Code Online (Sandbox Code Playgroud)

如何从上面的列表中随机选择并返回一个项目?

这是我的第一次尝试:

let combos = ["win8FF40";"win10Chrome45";"win7IE11"]  

let getrandomitem () =  
  let rnd = System.Random()  
  fun (combos : string[]) -> combos.[rnd.Next(combos.Length)]  
Run Code Online (Sandbox Code Playgroud)

random f# f#-interactive

7
推荐指数
3
解决办法
2492
查看次数

如何在asp.net Web应用程序中安全地嵌入F#编译器

我正在开发一个asp.net Web应用程序,使用户能够提交F#代码,这些代码应该在服务器上动态编译和执行.我正在考虑使用此处显示的方法在Web应用程序中托管F#编译器: https ://fsharp.github.io/FSharp.Compiler.Service/compiler.html 或使用F#interactive:http://fsharp.github .IO/FSharp.Compiler.Service/interactive.html

我们的想法是动态编译F#代码,然后将其作为c#中的程序集加载,或让F#交互式解释代码.但是,我主要担心的是安全性以及如何阻止最终用户执行任意代码.是否有一种简单的方法来限制它?谢谢!

f# f#-interactive f#-compiler-services

7
推荐指数
1
解决办法
343
查看次数

F#IDE脚本支持,用于访问引用程序集中的内部类型

通常对于非脚本化的C#/ F#项目,可以InternalsVisibleTo在依赖性程序集中指定一个属性,并且能够在IDE中获取其内部类型的智能感知.但是在F#脚本中,我如何针对我正在使用的IDE配置依赖性程序集以获取内部类型的智能感知?当然为了让脚本运行fsi我假设我需要类似的东西

[assembly:InternalsVisibleTo("fsi")]
Run Code Online (Sandbox Code Playgroud)

但是为了获得IDE支持,我还应该指定依赖性程序集中的每个已知IDE吗?这似乎没有很好的扩展.

我做了一个代码搜索,发现这个地方fsc,fsi,编译器服务组件和它们的强名称版本等都是指定的,看似适应的IDE.这正是我关心的问题,我不想把这些装置丢弃.有没有更好的办法?

f# f#-interactive

7
推荐指数
0
解决办法
133
查看次数

在F#Interactive中创建新的AppDomain

我需要能够在F#interactive中创建一个新的AppDomain,以便托管多个WPF应用程序.我在编译的F#应用程序中获得必要的功能没有任何问题,但由于某种原因使其在F#interactive中工作似乎不可能.

这是最简单的案例: -

#r "PresentationCore.dll"
#r "PresentationFramework.dll"
#r "System.Xaml.dll"
#r "WindowsBase.dll"

open System    
open System.Threading
open System.Windows

type myClass() = 
    let domain = AppDomain.CreateDomain("another domain")

    //this function starts a WPF app
    let funct() =                
        let WPFStart() =
            let app = Application()
            let win = Window()            
            app.Run(win) |> ignore
        let thread = Thread WPFStart
        thread.IsBackground <- true
        thread.SetApartmentState ApartmentState.STA
        thread.Start()

    do CrossAppDomainDelegate(funct) |> domain.DoCallBack

myClass();;
Run Code Online (Sandbox Code Playgroud)

我总是回过头来做些什么

System.Runtime.Serialization.SerializationException: Type is not resolved 
for member 'FSI_0002+-ctor@24,FSI-ASSEMBLY, Version=0.0.0.0, 
Culture=neutral, PublicKeyToken=null'.
at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
at …
Run Code Online (Sandbox Code Playgroud)

.net wpf f# f#-interactive

7
推荐指数
1
解决办法
151
查看次数

使用Mono的VSCode Interactive语法高亮显示?

Visual Studio代码中的F#interactive(带有Ionide)在Windows 10上默认具有语法高亮.我刚刚安装了一个Linux发行版,而VSCode + Ionide在交互式终端中没有显示语法高亮.

知道如何配置吗?这就是它现在的样子:

没有语法高亮示例

f# syntax-highlighting f#-interactive visual-studio-code ionide

7
推荐指数
0
解决办法
112
查看次数

F#以编程方式运行.fsx脚本文件

我确信这一定非常简单,但我似乎无法使其发挥作用.假设我有一个.fsx脚本文件,并希望以编程方式执行它.我猜想有人必须在某个时候写过关于此的博客,但我似乎无法找到一个执行我简单场景的例子.基本上,我想以编程方式复制右键单击.fsx文件并选择"使用F#Interactive运行..."时发生的情况.

scripting f# f#-interactive

6
推荐指数
1
解决办法
2058
查看次数

F#interactive,对dll引用的API限制

你如何解决看起来像这样的错误消息?

`Binding session to 'C:\Program Files (x86)\NLog\.NET Framework 4.0\NLog.dll'...

error FS0193: API restriction: The assembly 
'file:///C:\Program Files (x86)\NLog\.NET Framework 4.0\NLog.dll' has 
already loaded from a different location. It cannot be loaded from a 
new location within the same appdomain.
Run Code Online (Sandbox Code Playgroud)

触发它的代码可能如下所示:

#r @"..\packages\NLog.2.0.0.2000\lib\net20\NLog.dll"
NLog.Config.SimpleConfigurator.ConfigureForConsoleLogging()
Run Code Online (Sandbox Code Playgroud)

f# f#-interactive

6
推荐指数
1
解决办法
368
查看次数