小编Pre*_*za8的帖子

滥用模式匹配

我来自C#,发现自己爱上了F#模式匹配语法,因为它比C#更简单switch,更有用.我喜欢尽可能地使用它,是否有表现或任何其他缺点,以这种例子中的奇怪方式使用它?

match 0 with
|_ when a<b -> a
|_ -> b
Run Code Online (Sandbox Code Playgroud)

f# pattern-matching

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

对于循环列表

人们常常使用

for i in [0 .. 10] do something
Run Code Online (Sandbox Code Playgroud)

但afaik创建了一个列表然后迭代,在我看来它使用更有意义

for i = 0 to 10 do something
Run Code Online (Sandbox Code Playgroud)

没有创建那个不必要的列表但具有相同的行为.我错过了什么吗?(我猜是这样的)

f# control-flow

4
推荐指数
2
解决办法
598
查看次数

来自C#6.0语法的错误

Resharper建议我打开C#6.0.我喜欢这些变化,但在我看来,Visual Studio 2013和C#6.0并不是真的很喜欢彼此,因为当我将lambdas用于像

public static MVector operator +(MVector l, MVector r) => new MVector(l.X+r.X, l.Y+r.Y);
Run Code Online (Sandbox Code Playgroud)

它说应该有';' 而不是lambda,但没有用红色加下划线.我把所有可能的东西都变成了那个文件中的lambdas并且得到了很多错误,但没有任何标记,这很奇怪.

c# resharper lambda visual-studio-2013 c#-6.0

3
推荐指数
1
解决办法
725
查看次数

通过F#解释脚本

我真的很喜欢F#,但我觉得这不是简单而且足够短.我想走得更远.我确实知道如何改进它,但我没有制作编译器的经验所以我认为我会使它成为一种脚本语言.然后我意识到我可以使用脚本语言并使用F#解释它,但由于F#有inline选项,它仍然可以获得100%的性能.我对吗?是否真的有可能在F#中创建一个脚本解释器,它将通过我的脚本并将其转换为许多仿函数和东西,从而获得非常好的性能?

scripting f# interpreted-language

2
推荐指数
1
解决办法
263
查看次数