有点自我解释......
尝试在FSI中访问4.0 dll时出现各种错误。因此,我认为上述问题是正确的,而不是通过每一个问题。
这是我的问题或多或少的转贴in F# on MAC OSX and Ubuntu I get an error running FSI in 4.0
由于
加里
编辑我正在尝试使用Mono 2.8和fsharp在MacBook上的演示中运行以下内容。 (代码是由其他人选择的)
open System.Numerics
open System
let maxIteration = 100
let modSquared (c : Complex) = c.Real * c.Real + c.Imaginary * c.Imaginary
type MandelbrotResult =
| DidNotEscape
| Escaped of int
let mandelbrot c =
let rec mandelbrotInner z iterations =
if(modSquared z >= 4.0)
then Escaped iterations
elif iterations = maxIteration
then DidNotEscape
else mandelbrotInner ((z * z) + c) (iterations + 1)
mandelbrotInner c 0
for y in [-1.0..0.1..1.0] do
for x in [-2.0..0.05..1.0] do
match mandelbrot (Complex(x, y)) with
| DidNotEscape -> Console.Write "#"
| Escaped _ -> Console.Write " "
Console.WriteLine ()
答案 0 :(得分:2)
我下载了ZIP二进制文件并尝试在MacOS上运行4.0版本。最初,我得到了与您相同的错误(无法找到BigInteger
)。这可以通过添加-I
命令行参数来修复,但后来又出现了另一个错误,我还不确定如何处理这个错误:
fsmac:fsharp4 tomas$ mono Fsi.exe
-I:/Library/Frameworks/Mono.framework/Versions/2.8/lib/mono/4.0/
Microsoft (R) F# 2.0 Interactive build 4.0.30319.1
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
>
error FS0192: internal error: unreachable: GetGlobals
编辑这是另一项(不成功)尝试。这看起来像Mono bug,因为Mono(运行时4.0)上似乎不存在UnsafeLoadFrom
方法。至少,我在C#项目的MonoDevelop IDE中看不到它(当我将运行时改为4.0时)
fsmac:fsharp4 tomas$ mono --runtime=v4.0.30319 Fsi.exe --noframework
-r:/Library/Frameworks/Mono.framework/Versions/2.8/lib/mono/4.0/mscorlib.dll
-r:FSharp.Core.dll
Microsoft (R) F# 2.0 Interactive build 4.0.30319.1
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
> Missing method System.Reflection.Assembly::UnsafeLoadFrom(string) in
assembly /Library/Frameworks/Mono.framework/Versions/2.8/lib/mono/4.0/
mscorlib.dll, referenced in assembly /Users/tomas/Programs/fsharp4/
FSharp.Compiler.dll
答案 1 :(得分:0)
您应该尝试在GAC中安装F#程序集。要做到这一点:
bin/
gacutil
$ cd FSharp-2.0.0.0/bin/; for a in *.dll; do sudo gacutil -i $a; done
你可能想要做同样的PowerPack。
祝你好运。