代码之家  ›  专栏  ›  技术社区  ›  Tony The Lion

函数式编程更好地处理数据库数据列表?

  •  1
  • Tony The Lion  · 技术社区  · 14 年前

    我在看一些关于函数式编程和主要“数据结构”的讲座,可以这么说,但实际上在fp,i s lists中没有,所以我的问题是:当一个人处理大量的数据库和数据“列表”时,函数式编程是否不优于oop?

    2 回复  |  直到 14 年前
        1
  •  2
  •   doppelfish    14 年前

    lisp处理列表,但是列表是异构的,可以很好地表示树。其他语言,如haskell,为您提供结构化类型,命名和未命名,与lisp相反,允许静态类型检查。

    纯函数式语言所没有的一点是可以赋值的有状态变量的概念。一些lisp实现提供了这样的状态-您将得到 setq 然而,读写数据库的全部目的是拥有状态——而且很多状态,这就是数据库的用途——以及读写操作。因此,在数据库上操作与使用函数式语言完全相反。

    但是,创建一种数据库查询语言是有意义的,该语言以非命令式、声明式以及函数式的方式表示数据库操作。这就是sql的意义所在,也是linq的定义方式的意义所在。

    所以,有一个功能性的数据库语言是有意义的,但这不是因为列表。

        2
  •  6
  •   Mark Byers    14 年前

    近年来,从数据库中读取数据的最大改进之一是linq。linq实际上是基于函数式编程原理的。实际上,sql也是一种非常函数式的语言。

    我认为使用函数式语言从数据库读取数据没有问题。

    正在修改数据库…那是另一个故事。我再留一天。:)