代码之家  ›  专栏  ›  技术社区  ›  letronje

被FP迷住了,但仍然认为是必要的,我怎么认为是有用的?[关闭]

  •  1
  • letronje  · 技术社区  · 16 年前

    和大多数PPL一样,我开始了并且仍然做很多命令代码(主要是Java、Ruby、JavaScript)。

    我从来不是OO的忠实粉丝,要么因为我从来没有正确理解它,要么因为我不认为OO。

    我第一次通过javascript看到fp,传递函数,闭包等等,从那时起就爱上了fp。

    最近,我对Clojure(可能是scala)产生了兴趣,甚至有一天我会去Haskell。我喜欢我在功能性方法中看到的东西,但是我如何看待功能性呢?在过去的3-4年里,我一直在做命令式的事情,我的大脑在处理问题时倾向于认为命令式的事情。

    我如何才能释放命令式风格(我需要吗?)从功能上考虑?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Shaun    16 年前

    不,不要忘记命令式风格,因为你仍然需要它。即使是许多做得很好的FP库在封面下也显得有些必要。最好考虑将fp添加到工具和技术列表中,而不是使用一种或另一种技术实现完整的金属化。

    现在,关于如何学习FP风格?玩具项目-或实用项目,你写自己的用途。或者见鬼,再给自己写一篇博客——不过有点扭曲!如上所述,关键是实践。这样做时,请避免共享状态。在尽可能多的地方争取纯净(即避免副作用)。使用闭包、模式匹配(如果语言支持)和lambda函数。考虑在程序中作为一流数据类型的函数-将它们作为输入,并将它们作为输出返回。这个列表还在继续,但是如果你在观察的话,同样的概念会一次又一次地重复出现。

    如果你觉得在这方面你需要一个温和的推动,使用一个工具(语言)来 鼓励 fp样式,如f或scala。

    如果你觉得你需要更多的“坚强的爱”之类的帮助,那就去找哈斯克尔吧:)

    否则,请使用您选择的工具,并记住FP概念(如上)。如果你决定走这条路,有本好书叫 Real-World Functional Programming 它使用f和c来说明应用于“主要”fp语言(f)和“主要”oo语言c的技术。

        2
  •  1
  •   0x434D53    15 年前

    去找哈斯克尔。因为它是纯粹的,所以你不得不思考功能性的问题。在F或scala中,您仍然可以编写非常必要的代码。我强烈推荐格雷厄姆·赫顿写的关于哈斯克尔的书。

    推荐文章