如果我们已经了解LISP,为什么还要学习F#?

时间:2020-03-06 14:39:28  来源:igfitidea点击:

如果我们已经熟悉LISP,那么学习的添加价值是什么?

解决方案

鉴于LISP是动态类型的,而Fis是静态类型的,我发现这样的比较很奇怪。

如果我从Lisp切换到F#,那完全是因为我手头上有一个只能从.NET库中受益的任务。

但是我没有,所以我没有。

直接将Lisp与Fisn进行比较并不公平,因为在一天结束时,如果有足够的时间,我们可以使用两种语言编写相同的应用程序。

但是,我们应该学习F的原因与Cor Java开发人员学习F的原因相同,因为它允许在.NET平台上进行功能编程。我不是100%熟悉Lisp,但是我认为它与OCaml存在一些相同的问题,因为它没有出色的库支持。我们如何在Lisp中进行数据库访问?高性能图形呢?

如果我们想了解有关"为什么要使用.NET"的更多信息,请查看此SO问题。

  • 静态类型(带有类型推断)
  • 代数数据类型
  • 模式匹配
  • 可扩展的模式与活动模式匹配。
  • 咖喱(语法不错)
  • 一元编程,称为"工作流",提供了一种进行异步编程的好方法。

其中许多是编程语言世界中相对较新的发展。这是我们在F中会看到的,而在Lisp中则不会,尤其是Common Lisp,因为Fstandard仍在开发中。结果,我们会发现有很多东西需要学习。当然,诸如ADT,模式匹配,monads和currying之类的东西都可以在Lisp中构建为一个库,但是更好地学习如何以一种方便内置的语言来使用它们。

学习Ffor实际使用情况的最大优势是它与.NET的集成。

我不确定你是否愿意?如果我们发现Finteresting,那将是一个原因。如果工作需要它,那将是一个原因。如果我们认为这会提高生产力或者为我们带来超过当前知识的添加值,那将是一个原因。

但是,如果我们找不到Finteresting,那么工作就不需要它了,并且我们认为它不会使工作效率更高或者为我们带来添加值,那我们为什么呢?

另一方面,如果问题是Lisp没有做什么,那么应该考虑类型推断,模式匹配以及与.NET框架的其余部分的集成。

钱。 Fcode已经比Lisp代码更有价值,并且随着Fsee的广泛采用,这一差距将迅速扩大。

换句话说,与使用Lisp相比,使用F获得稳定收入的机会要大得多。

干杯,
乔恩·哈罗普(Jon Harrop)。

与大多数Lisp方言相比,Fis是一种非常不同的语言。因此,为我们提供一个非常不同的编程角度,这是我们从Lisp不会学到的。大多数Lisp方言最适合用于符号软件的增量,交互式开发。同时,大多数Lisp方言不是功能性编程语言,而更像是具有不同方言的多范式语言,它们在支持FPL功能(没有副作用,不变的数据结构,代数数据类型等)上具有不同的重要性。因此,大多数Lisp方言或者缺少静态类型输入,或者就不十分重视它。

因此,如果我们了解Lisp的一些方言,那么学习Fcan非常有意义。只是不要以为Lisp知识很多都适用于F#,因为Fis是一种非常不同的语言。在学习Lisp时,用于C或者Java的命令式编程需要学习一些知识,使用F#时也需要学习Lisp习惯(没有类型,副作用,宏等)。 Fis也由Microsoft驱动,并利用.net框架。

如果我们知道Fand Lisp,就会发现这是一个非常奇怪的问题。

正如其他人指出的那样,Lisp是动态键入的。更重要的是,Lisp的独特之处在于它具有同音符号:Lisp代码是基本的Lisp数据类型(列表)。宏系统允许我们编写在编译时执行并修改其他代码的代码,从而利用了这一优势。

没什么像这样的东西,它是一种静态类型的语言,它借鉴了ML和Haskell的很多想法,并在.NET上运行

我们要问的是类似于"如果我知道如何使用叉子,为什么我需要学会使用勺子?"

具有.NET开发(通常)被广泛采用,易于获得和更大市场的好处。

如果要编写F#代码,则可以获得Visual Studio,这是许多开发人员已经拥有的...而不是启动和运行LISP环境。

此外,如果我们有任何需要,现有的.NET开发人员更有可能考虑使用Fthan LISP。

(这是来自.NET开发人员,他在大学时曾编码并喜欢LISP)。