我如何在没有C#知识的情况下进行认真的F#项目?


11

因此,基本上我希望承担的项目是SVG编辑器。我更喜欢使用WPF,因为这样我就可以在应用程序布局中使用XAML(那个设计师是如此漂亮)。不幸的是,我仅使用.NET框架仅几个月,而对大多数类名仍然不熟悉。

目标是使用F#,因为它是一种功能编程语言,并且F#的递归和与元组结合的出色列表操作将很好地实现我想要实现的目标。而目标是使用.NET,因为它拥有大量可用的和有文档的示例类库。

我已经看过这个问题了。/software/3129/is-there-a-canonical-book-on-f 但答案仅适用于F#,并假定您已经知道C#,这对我来说并不是特别有用。

回答上述问题的顶级书籍是《 Real-World Functional Programming:F#和C#中的示例》。但是,这本书上的三星级亚马逊评论虽然相当苛刻,甚至可能被夸张地正确说明了我的问题。

如果您对函数式编程感兴趣,但是您不是想学习F#的C#,则可以安全地跳过这本书。

我在网上查看了WPF F#示例,到处都有各种代码片段,但是没有实质性的内容或证明它在单个文件脚本.fsx之外使用,也没有真正的企业级甚至专业级的代码。

因此,即使Microsoft确实也没有很多关于如何在F#中执行.NET的示例。我发现的示例通常仅是F#特有的功能。看一下F#的基础和高级部分,您会发现它们仅教语法。例如,Line类在WPF上的MSDN上在F#中没有任何代码示例。

向下滚动F#的代码示例选项卡时,它只是说

No code example is currently available or this language may not be supported.

由于可用的代码示例很少,因此我很难进行这个项目。

我的问题
是对我不太了解C#时应如何使用F#处理该项目的帮助,我们将不胜感激。

Answers:


10

将问题分为两部分。

  1. 通过不使用WPF来学习F#的基础知识。学习如何编写功能,而无需使用mutableswhile statements使用function composition。完成此操作后,请学习如何使用可变变量来更新状态。

  2. 通过阅读John Liao的“ 通过F#学习WPF,反之亦然 ”来学习如何在F#中使用WPF 。

如果在F#中找不到您喜欢的任何代码,请记住F#是OCaml的后代,因此Google会使用OCaml和SVG,您可能会发现一些有趣的东西。尽管F#无法编译OCaml,但它非常接近并且不需要花费很多时间进行转换。我将大量的OCaml转换为F#,并且全部转换了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.