|
|
1
19
学习F#用于现实世界的最大优势是它与.NET的集成。 |
|
|
2
6
将Lisp直接与F#进行比较并不公平,因为在一天结束时,如果有足够的时间,你可以用两种语言编写相同的应用程序。 然而 学习F#的原因与C#或Java开发人员学习F#的原因相同,因为它允许在.NET平台上进行函数式编程 . 我对Lisp不是100%熟悉,但我认为它与OCaml有一些相同的问题,因为没有stellar库支持。如何在Lisp中访问数据库?高性能图形呢? 如果您想了解更多关于“为什么.NET”的信息,请查看此 SO question |
|
3
6
如果你知道F#和Lisp,你会发现这是一个相当奇怪的问题。 正如其他人所指出的,Lisp是 动态类型 . 更重要的是,Lisp的独特功能在于它的同音性: (名单)。宏系统通过允许您编写代码来利用这一点 在编译时执行并修改其他代码的代码 F#没有类似的东西——它是一种静态类型语言,从ML和Haskell那里借用了很多思想,并在.NET上运行 你的问题类似于“如果我知道如何使用叉子,为什么我需要学习使用勺子?” |
|
|
4
5
|
|
|
5
3
如果我从Lisp转换到F#,那完全是因为我手头有一项任务,它从一些只使用.NET的库中受益匪浅。 但我没有,所以我没有。 |
|
|
6
3
钱F#代码已经比Lisp代码更有价值,随着F#被广泛采用,这一差距将迅速扩大。 换句话说,使用F#比使用Lisp有更好的机会获得稳定的收入。 乔恩·哈洛普。 |
|
7
3
与大多数Lisp方言相比,F#是一种非常不同的语言。因此,F#为您提供了一个非常不同的编程角度-一个您无法从Lisp学习的角度。大多数Lisp方言最好用于符号软件的增量交互开发。同时,大多数Lisp方言不是函数式编程语言,更像是多范式语言——不同的方言在支持FPL功能上有不同的权重(没有副作用、不变的数据结构、代数数据类型等)。因此,大多数Lisp方言要么缺乏静态类型,要么不太重视静态类型。 因此,如果你懂一些Lisp方言,那么学习F#会很有意义。只是不要认为你的Lisp知识太多适用于F,因为F是一种非常不同的语言。在学习Lisp时,C或Java的命令式编程需要忘却一些想法,在使用F#时,也需要忘却Lisp习惯(无类型、副作用、宏等)。F#也由微软推动,并利用.net框架。 |
|
|
8
2
F#的好处是.NET开发(一般来说)被广泛采用,容易获得,并且更具大众市场。
此外,现有的.NET开发人员更倾向于使用F#而不是LISP,如果这对您有意义的话。 (这篇文章来自一位.NET开发人员,他在大学时编写并喜爱LISP)。 |
|
|
9
1
我不知道你会不会?如果你觉得F#有趣,那就是一个原因。如果你的工作需要它,这将是一个理由。如果你认为这会让你更有效率,或者给你现有的知识带来附加值,那就是一个原因。 但如果你觉得F#不有趣,你的工作不需要它,你也不认为它会让你更有效率或给你带来附加值,那你为什么要这样做?
|
|
|
10
0
我知道这条线索很古老,但由于我偶然发现了这条线索,我只想谈谈我的理由。我学习F#只是为了获得专业机会,因为.NET在主导我所在领域的一类公司中占有很大的权重。功能范式在越来越多的定量和数据导向型公司中得到应用,我想成为这一趋势的早期参与者之一。目前还没有一种强大的函数式语言能够完全安全地与.NET库集成。事实上,我试图从Lisp代码中移植一些.NET,这确实是一个难题b/c FFI只支持c原语,而.NET互操作性需要一个“接口”构造,即使我知道如何在c中实现这一点,但这确实是一个巨大的难题。如果Lisp在下一个标准中额外增加一英里,需要一个C++类(包括虚拟函数W/VTABLE)和FFI中的C型风格接口类型,那将是非常好的。甚至还可以加入Java接口样式类型。这将允许与.NET库完全互操作,并使Lisp成为大型语言的有力竞争者。尽管如此,来自Lisp的背景使得学习F#相当容易。而且我喜欢F#在提供你通常会看到的定量类型工作的类型方面付出了额外的努力。我相信F#是在数学工作的基础上产生的,它本身比Lisp更有价值。 |
|
|
11
0
和拿锤子和扳手比较没有太大区别。选择最适合工作的工具。试图选择一个客观上“最好”的工具是胡说八道。无论如何,20年后,所有目前“热门”的语言都可能过时。 |