F# 在linux上,以前没有.NET经验

F# 在linux上,以前没有.NET经验,f#,functional-programming,mono,F#,Functional Programming,Mono,自上个月以来,我一直在使用Clojure,JVM上的一种功能性lisp语言。我在几个小爱好项目中使用了它。语言非常简洁,简单,但我得出的结论是s-表达式并不适合我 还有其他函数式语言,如Scala、Haskell、OCaml等,但它们似乎更多的是学术语言 最近,我正在考虑利用业余时间学习法语。我有几个问题: 我主要是linux用户。我担心Mono可能会落后 我主要是用一种动态语言进行web开发,我对此感到满意。我会用F#做一些爱好GUI应用,或者简单的游戏。两者都有很好的支持吗?Mono/F#

自上个月以来,我一直在使用Clojure,JVM上的一种功能性lisp语言。我在几个小爱好项目中使用了它。语言非常简洁,简单,但我得出的结论是s-表达式并不适合我

还有其他函数式语言,如Scala、Haskell、OCaml等,但它们似乎更多的是学术语言

最近,我正在考虑利用业余时间学习法语。我有几个问题:

  • 我主要是linux用户。我担心Mono可能会落后
  • 我主要是用一种动态语言进行web开发,我对此感到满意。我会用F#做一些爱好GUI应用,或者简单的游戏。两者都有很好的支持吗?Mono/F#可以在Iphone或Android设备上使用吗
当我学习Clojure时,我几乎没有Java经验。这并不是什么大问题。Java互操作非常简单,Java作为一种语言也非常简单,因此我在阅读文档时没有遇到任何问题

  • F#的互操作是否足够简单?缺乏.NET/C#知识是否会给使用外部库带来困难
  • 最后,哪些资源/书籍适合我学习F#(一些功能性经验,无.NET/C#)

谢谢,如果你不想在炒作浪潮的最前沿骑行的话,单声道已经足够好了。F#与它配合得很好

使用PInvoke的.NET与类似C的API的互操作并不难使用。如果要绑定一个庞大的API,这需要一些时间,这很难

我相信Mono有一些iPhone支持,但不知道Android支持。但我不从事移动编程,所以,对此持保留态度


我个人最喜欢的书是乔恩·哈洛普写的。它涵盖了足够多的材料,即使你不喜欢科学计算,也会很有趣,而且写得非常好。

至少在Ubuntu上,你会想自己编译Mono 2.8.2和F

我有专家F#2.0,它也很好,但我发现所有其他书籍的作者都在堆栈溢出方面很活跃

到目前为止,我在F中使用的C#/.NET远远少于在Clojure中使用Java


F#现在是一座教堂,但它非常…

在让F#在Mac和Linux上正常工作方面已经取得了很多进展:

  • 2010年11月,F#团队宣布了F#源代码的开源(Apache)版本。Mono团队计划将其集成到Mono的下一个版本中(请参阅)

  • Mono的人已经开始进行集成工作,他们有一个带有Mono风格Makefiles的版本,您可以使用它。如果你不想自己建造F#,你也可以使用

  • 我创建了一个可以为您提供非常好的用户体验(包括带有类型信息的工具提示、后台类型检查和完成)


关于interop-F#在Mono上运行得很好,原则上应该在Mono工作的任何地方运行(我希望Android可以工作,但我没有尝试)。它在iPhone上不起作用(即使C#可以工作),因为该版本的Mono有很多限制。

如果我是你,我会使用OCaml或Haskell。生产中的Haskell和OCaml比F#多得多。它们当然很吸引人,但有一个缺点是它们没有在任何主要平台jvm/net上运行。@Rafe:“生产中的Haskell和OCaml比F#多得多。”。也许是奥卡姆。哈斯克尔,我真的很怀疑。现实世界的函数式编程是一本很棒的书!你介意举一个iPhone/Mono限制的例子,它阻碍了F#而不是C#吗?@Joel:据我所知,iPhone版本的Mono以某种奇怪的方式删除了泛型。我不确定这是否是最新的信息(这只是基于Miguel在F#education workshop:-)上与深夜酒吧讨论的结果)为什么这会对F#产生不同于C#的影响?问题似乎只是一般的虚拟方法()不确定这是否会影响一些核心F#功能。Mono确实支持iPhone,参见Jon Harrop的“我个人最喜欢的是F#for Scientists”。谢谢